TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Go 1.17 Release Notes

197 pointsby aofeishengalmost 4 years ago

22 comments

benhoytalmost 4 years ago
To me, the most interesting change is the performance improvement due to the new register-based calling convention. Your CPU-bound programs will magically get 5% faster when compiled with 1.17:<p>&gt; Go 1.17 implements a new way of passing function arguments and results using registers instead of the stack. Benchmarks for a representative set of Go packages and programs show performance improvements of about 5%, and a typical reduction in binary size of about 2%. This is currently enabled for Linux, macOS, and Windows on the 64-bit x86 architecture (the linux&#x2F;amd64, darwin&#x2F;amd64, and windows&#x2F;amd64 ports).<p>I love how they&#x27;re doing it in such an iterative fashion: even assembly functions don&#x27;t have to be rewritten. Then again, I guess doing it progressively like this is the only feasible way to avoid reworking all the low-level assembly routines in one fell swoop.
评论 #28204131 未加载
评论 #28206210 未加载
umvialmost 4 years ago
At first I didn&#x27;t like Go because I thought it was too opinionated. But the more I used it, the more I found the tooling to be just heads and shoulders above similar languages like C&#x2F;C++.<p>I use VSCode a lot, and in VSCode you can press &quot;F12&quot; to jump to the location of a function definition. In Go I find myself deep diving into github libraries all the time just because F12 takes me there. That <i>never</i> happened with C&#x2F;C++ - the tooling was just too disparate and fragile.<p>My biggest complaint with Go is lack of generics. I mean technically you can achieve generics with an unholy empty interface&#x2F;reflection incantation but it&#x27;s a huge pain compared to C++.
评论 #28206223 未加载
评论 #28204134 未加载
评论 #28203447 未加载
评论 #28203906 未加载
评论 #28203567 未加载
评论 #28207578 未加载
评论 #28203478 未加载
评论 #28206553 未加载
评论 #28212823 未加载
_008_jb_almost 4 years ago
When I started using Go I was more than sceptical. I had to mirgrate a CLI tool written in Kotlin (still my favorite language) because the memory consumption was to high.<p>After a while I actually understood why Go is such a successful language &#x2F; ecosystem:<p>Go&#x27;s priority is to make projects easier. It is doing so by all it&#x27;s smaller and larger features respectivly skipped features. But one soon understands the big picture of the Go team. Go is designed by very experienced devs who knew what is important and what not.<p>In my Go projects, I don&#x27;t have to worry about:<p>- Memory safety<p>- Tooling<p>- Performance<p>- Structure (once I understood the package desgin philosophie)<p>- Difficult syntax<p>- Concurrency<p>- Libraries, as we can do most with the standard lib<p>- Maturenes and stability<p>Instead I focus on the things that count:<p>- Solve the problem at hand<p>- Create correct, stable and maintable software<p>And as this was not enough, the Go team comes around the corner with an 5 % average performace gift.<p>Awesome.
评论 #28206408 未加载
pxuealmost 4 years ago
The go code I wrote in 2015 looks and works exactly the same way new Go code I&#x27;m writing today. Even with all the upgrades.<p>You have no idea how amazing that feels.
评论 #28206306 未加载
评论 #28208045 未加载
评论 #28204046 未加载
评论 #28204089 未加载
37ef_ced3almost 4 years ago
My appreciation for Go has been monotonically increasing for years.<p>The more Go code I write, the more I like the language, the tools, and the standard library.<p>Low-friction, high-quality software development.<p>If only I could use it professionally, instead of C++.
评论 #28206495 未加载
kubbalmost 4 years ago
I’ve been using Go at a large software company for 4 years. It does the job, my biggest complaints are the low capacity for abstraction, verbosity and ergonomic pain points. It can do certain things well, but in a large enough project you’ll inevitably find that it doesn’t give you the best tools for certain types of problems.<p>I don’t know what to think about the upcoming generics. It feels late to make such a big change so long after the language has been established. At least a plan for it should have been integrated into the language from the start.<p>It feels like a missed opportunity - an effort with similar funding but a more sound theoretical foundation than being Newsqueak 3.0 could have become an industry game changer. Instead it fills a niche, which is a success, albeit smaller.
评论 #28205041 未加载
评论 #28206566 未加载
评论 #28210444 未加载
avl999almost 4 years ago
Go is my favorite language to write code in. I was very skeptical when I first started learning it for a new job with error handling that looked archaic in comparison to exceptions but once I got the hang of it it has quickly become my preferred language of choice for any project.<p>Once generics are finally added the language should basically be a no-brainer for any serious production code.
评论 #28204311 未加载
matthewmacleodalmost 4 years ago
A couple of nice tweaks that I&#x27;m happy to see.<p>I didn&#x27;t completely expect it, but I now find myself reaching for Go first when writing something like a small script or utility that I&#x27;d previously have written in something like Ruby or Python. It all feels much more solid.<p>That said… I really chafe against the anaemic type system when writing anything a larger than that. I hate not being able to communicate things like &quot;this can never be nil and if it&#x27;s is then it&#x27;s an error&quot; to the compiler. I resent having to write three lines of boilerplate every time I want to reverse a flipping 10-item slice, and the design decisions leading to the existence of `time.IsZero()` are bordering on criminal.<p>I don&#x27;t know if I&#x27;m the odd one out for feeling like that – parts of the language and ecosystem are just absolutely wonderful to work with, but the unergonomic sharp edges bother me so much that I end up finding it really _annoying_ to write a lot of it.
评论 #28204930 未加载
评论 #28204259 未加载
machinecontrolalmost 4 years ago
It looks like the language is really maturing. The changes are all fairly minor optimizations and improvements to the stdlib. Impressed with the Go team’s discipline for simplicity and stability.
评论 #28203469 未加载
dangalmost 4 years ago
Two recent related threads:<p><i>Go 1.17 Beta</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=27462884" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=27462884</a> - June 2021 (118 comments)<p><i>Go 1.17 is deprecating the traditional use of &#x27;go get&#x27;</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=27630625" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=27630625</a> - June 2021 (215 comments)
harikbalmost 4 years ago
&gt; Module authors may deprecate a module by adding a &#x2F;&#x2F; Deprecated: comment to go.mod, then tagging a new version. go get now prints a warning if a module needed to build packages named on the command line is deprecated.<p>Very good for the ecosystem. Nudge folks to upgrade from broken&#x2F;insecure versions
leo_bloomalmost 4 years ago
&gt; We’ve also introduced pruned module graphs in this release. Modules that specify go 1.17 or higher in their go.mod file will have their module graphs include only the immediate dependencies of other Go 1.17 modules, not their full transitive dependencies.<p>This is a very welcome change and make the go.mod much more obvious to understand. Hooray!
skybrianalmost 4 years ago
Apparently type parameter compiler work was supposed to get merged just after 1.17. [1] Does anyone know if it’s still on?<p>[1] <a href="https:&#x2F;&#x2F;groups.google.com&#x2F;g&#x2F;golang-dev&#x2F;c&#x2F;U7eW9i0cqmo&#x2F;m&#x2F;ffs0tyIYBAAJ" rel="nofollow">https:&#x2F;&#x2F;groups.google.com&#x2F;g&#x2F;golang-dev&#x2F;c&#x2F;U7eW9i0cqmo&#x2F;m&#x2F;ffs0t...</a>
评论 #28203498 未加载
评论 #28203534 未加载
peterohleralmost 4 years ago
Just tried [OjG](<a href="https:&#x2F;&#x2F;github.com&#x2F;ohler55&#x2F;ojg" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ohler55&#x2F;ojg</a>) and saw anywhere from zero to 20% faster on the various benchmarks. Nice improvement overall. Hats off to the golang maintainers.
tech_dreameralmost 4 years ago
Golang release no longer excites me in a good way - I know my old aws hosted apps continue to work, as do my pet projects
评论 #28203459 未加载
kplexalmost 4 years ago
Worth it if only for the go.mod tidy-up, how that made it into a release in the first place baffles me.
rawoke083600almost 4 years ago
Lol Good Little Go ! :) Still one of my favourite languages whenever &quot;heavy lifting&quot; or concurrency is required (really they make it stupidly easy).<p>Now add pattern matching please ! Well done to everyone that worked on Go ! It&#x27;s still a pleasure to use.
zz865almost 4 years ago
Anyone seen jobs for business applications? Go seems to have a sweet spot for systems. I&#x27;d like to replace Java at my work but no one else is doing it.
评论 #28203825 未加载
评论 #28203513 未加载
评论 #28203497 未加载
hakubealmost 4 years ago
How do you add dependencies and in Go? I&#x27;m still confused. I use the VSCode extension and the code I wrote that uses external packages gets deleted when I save my file even though the package is installed
评论 #28204528 未加载
评论 #28204487 未加载
denysvitalialmost 4 years ago
&gt; Go 1.17 adds support of 64-bit ARM architecture on Windows (the windows&#x2F;arm64 port). This port supports cgo.<p>Yay!
Techasuraalmost 4 years ago
Never tried to write Go before, maybe it’s time that I stop by.
评论 #28203421 未加载
评论 #28203795 未加载
throw149102almost 4 years ago
I hate to be &quot;that guy&quot;, but you should try Rust. It also has amazing tooling, and is probably more comparable to C&#x2F;C++, considering you don&#x27;t have to use a garbage collector in Rust.
评论 #28204161 未加载
评论 #28204080 未加载
评论 #28269171 未加载
评论 #28203759 未加载
评论 #28205820 未加载