Live data from Hacker News

Go 1.7 is released

blog.golang.org

111–120 of 141 posts

Re: Go 1.7 is released

#111

Great work, Go team! Standout points in my opinion: Overall performance improvements: >> "We observed a 5–35% speedup across our benchmarks." Decreased compile times and binary size: >> "While these changes across the compiler toolchain are mostly invisible, users have observed a significant speedup in compile time and a reduction in binary size by as much as 20–30%." Vendoring dependencies by default: >> "...and in…

The faster compilation time & speed up is quite real in our real life prod application. From Go 1.6 to 1.7: Test suite (CI), from 3:34 to 1:48 Docker image building, from 3:05 to 1:50 https://twitter.com/mattetti/status/763913903600349184

From Go 1.5.4 to 1.7, I can see that the compilation time has improved. Didn't measure it, though.

However, the binary size didn't change appreciably. From 11129144 bytes, it reduced by 0.00179708340551618345%.

Re: Go 1.7 is released

#112
post #76
post #38

Earlier quoted context omitted.

That's a ridiculous speed improvement. Holy shit.

1. Make compile times slower for every release. 2. Restore compile times to 1.3 or so levels. 3. Collect praise from g-sheep.

It would be interesting to see some benchmarks from each version... :)

Re: Go 1.7 is released

#113

Earlier quoted context omitted.

I'd second this. Rails is still probably the fastest way to get an MVP off the ground, and most of the time it's more than fast enough. You can get UX on par with a well done SPA almost entirely using server code with Turbolinks 5 + Action Cable, too.

The fastest way to get an MVP off the ground is to use the tools you know best. It doesn't have to be Rails :)

Yes, this is also usually true. But if you don't know tools that are particularly well suited for the job, or you just don't like them and are looking for something else to try, I would put Rails at the top of the list for productivity. (For most use cases)

Re: Go 1.7 is released

#114

Earlier quoted context omitted.

This is a hurdle, but IMO it's not too annoying if you already have rights to install packages. Just automate interpreter installation in bash if it's not already there. Way too much time and money is invested in fighting the esoteric crannies of Bourne shell when the logic would be much clearer in Ruby or Python. Ansible's moment in the sun is fading now that Docker came onto the scene, but that was a glorious momen…

You might have the right to install packages, but that may not solve your problem, that the application may require different version than available in the repo. The classical case is Ruby + Rails + Passenger + CentOS. While there is SCL with any Ruby and Rails version you might want, that does not mean, that the Passenger package will work with it :(.

Yeah, if you can install packages, then you can run the RVM installation script and install the right version of Ruby. In fact, you don't even need admin privileges if you use RVM.

Re: Go 1.7 is released

#115

Earlier quoted context omitted.

You might have the right to install packages, but that may not solve your problem, that the application may require different version than available in the repo. The classical case is Ruby + Rails + Passenger + CentOS. While there is SCL with any Ruby and Rails version you might want, that does not mean, that the Passenger package will work with it :(.

Yeah, if you can install packages, then you can run the RVM installation script and install the right version of Ruby. In fact, you don't even need admin privileges if you use RVM.

That will get you off package system for the entire stack and now the maintenance of the whole circus is up to you. Which is exactly what I'm trying to get away from.

Re: Go 1.7 is released

#116

Earlier quoted context omitted.

> I suggest giving Ruby a try too. If you like Go, I don't see much reason to try Ruby except intellectual curiosity. Ruby is clearly a language on its way out and it is not just a lot slower than Go, it's also dynamically typed.

Why is it 'clearly' on its way out? IMO Rails is still the best web framework around, and the last release has really put it ahead of its closest competition.

I can't speak to this. I'm a Go and Python programmer. I learned Go in about ~8 hours and have been very productive with it over the past 2 years.

I've been struggling at work to learn and use Rails for the better part of a year. I constantly have to grab someone and have them help me. Either I'm an idiot, or Rails has a bigger learning curve than people make it out to have because I've never experienced this in all my 10 years of programming professionally.

Re: Go 1.7 is released

#117

The semantics of Go is too ugly. It has no taste.

It's also a necessary "evil" to demonstrate that languages should have the right amount of features, no more and tools are part of a language, along with ease of deployment. It's is questionable whether Go strikes the right balance when it comes to features vs "simplicity" though, but it might inspire better solutions in the future. I think MSFT is trying to follow the same path with .net core and its tool chain, I h…

I wrote C# professionally for 7 years. IMO, it's in almost way inferior to Go:

* requires a separate and quite heavy run-time * still too windows-centric * Enforces a class-based OOP style * Functional programming elements feel very tacked-on * Feels heavier, slower, more bureaucratic * The async/await Task-based concurrency features are still not as flexible as Go's concurrency.

I find Go much more light-weight, easer to get into, enjoyable, and fun. So, how exactly is C# "vastly superior" to Go?

Re: Go 1.7 is released

#118
post #98

Earlier quoted context omitted.

Obviously no backend is in SSA format after register allocation, but before allocation what do other compilers use if not SSA? Is there some kind of low-level LLVM and GCC IR separate from the front-end and middle one? That isn't in SSA? I know that the C2 and Graal compilers are SSA all the way until register allocation is done.

You can stay in SSA form even after register allocation. In libFirm the assigned registers are just attributes of the values in the SSA representation. There was some additional discussion regarding this in [1]. GCC uses a separate representation (RTL) for their backend that is not in SSA form [2]. LLVM stays in SSA form for some backend phases but lowers the SSA form before register allocation (as also mentioned in…

I think you didn't understand Chris' post.

C2 is the HotSpot Server compiler. It definitely does not use LLVM anywhere.

Re: Go 1.7 is released

#119
post #99

I wish the Clojure compiler was half as fast as Go's :( I'm not much of a fan of using Go for anything 'big', but I have taken to using it in places where I would have previously used Python (tiny/simple services, housekeeping/utility scripts fired by cron, etc.) I'd love to use Go at work (amongst many other things), but my employer already gives me a hard time for writing small utilities in Python rather than Java…

Spinup of the JVM is 50 msec or so, for a hello world. Perhaps it's been a while since you tried running a small program on it? I can see why you might think the JVM starts slowly if you only ever run huge programs on it.

Re: Go 1.7 is released

#120
post #31
post #22

Earlier quoted context omitted.

I suggest giving Ruby a try too. I find it great for both web dev and local automation scripts. You can do pretty much anything you can do in bash but with clearer and shorter code. I've been writing all my non-trivial automation code in Ruby for years. Rails is just a popular web framework for Ruby, there's a lot more the language can do.

It's annoying to have to install the ruby interpreter onto everything. Go feels a lot like a scripting language, but produces binaries.

Maybe try Crystal (https://crystal-lang.org/) then. It has many of the benefits of Go and a Ruby-like syntax. It feels even more like a scripting language than Go because of awesome type inference, uses a similar model as Go for concurrency, and even has proper generics ;-)
Post reply on HN