Live data from Hacker News

Go 2018 Survey Results

blog.golang.org

51–60 of 91 posts

Re: Go 2018 Survey Results

#51
post #26
post #25

Earlier quoted context omitted.

That's largely because it's the easiest way to deal with Custom Resource Definitions within Kubernetes, and because many of the tools that make writing a Controller or Operator easy are only exposed as internal APIs.

It's also because a k8s daemonset or sidecar takes 5 to 10x less memory to run using Go. No one wants to run small pods with JVM and xms / xmx settings to 512MB.

When not doing AOT compilation, yes that can happen.

Re: Go 2018 Survey Results

#52
post #33

Earlier quoted context omitted.

>Go also favors libraries over frameworks and is super thoughtful about using too many untested dependancies which means we don’t get stuck in frameworks that become legacy (rails) The Go standard library doesn't come close to replicating the functionality of Rails, let alone the gem ecosystem of Ruby/Rails. If you don't need it, great! Otherwise, you're spending time re-implementing what already exists and probably…

> The Go standard library doesn't come close to replicating the functionality of Rails Why would it? It's the standard library. Go has a massive ecosystem of third parties libraries, and unlike Ruby, which was a one trick pony, Go has libraries for pretty much anything you could want to do. It's exceedingly versatile and it has better integration into modern infra. Why? Because it's all written in Go. Prometheus, Kub…

> Go has libraries for pretty much anything you could want to do.

Except for CRMs, GUI, DB drivers with the same feature level as JDBC or ADO.NET, Office/PDF docs (full spec not hello world stuff), GPGU, 3D game engines (Unreal/Unity/CryEngine,...), ...

Modern infra is the NoSQL of 2019.

Re: Go 2018 Survey Results

#53
post #44

Earlier quoted context omitted.

> This is nonsense. There's no definition or checklist that defines what a complete type system is The Go programming language and the compiler have too many soundness holes, therefore I call the type system incomplete. When you can pass in a null literal in place of an object and the compiler doesn't stop you, it goes against any common sense. Not to mention the pervasive use of reflection (interface{}) due to lack…

I think I'm misunderstanding, but doesn't Java and C# allow you to pass null in the place of an object?

Yes, but they are 20 years older than Go.

C# 8 will fix this by switching defaults (opt-in due to backwards compatibility), and Java has type annotations since ages.

Hence why it feels wrong to a new kid on the block to ignore what the language community at large already agreed were design errors.

Re: Go 2018 Survey Results

#54

Earlier quoted context omitted.

You can define methods on structs which is not unlike classes. You can define an interface with methods that allow objects to be processed in a more generic fashion. I think that more than anything it would require a change of mindset that people understandably don't want to deal with.

There's also always a package to handle that issue. [0][1][2] As well as other options. [3] I like to imagine that the "no generics, no way" crowd would never use the stairway in their building if the elevator broke down. [0] https://github.com/clipperhouse/gen [1] https://github.com/cheekybits/genny [2] https://github.com/cosmos72/gomacro [3] https://appliedgo.net/generics/

Ah, but the generics building was conceived with an elevator to start with, and it will eventually be repaired.

Go's building architects decided an elevator was superfluous, as everyone should walk 20 stores high every single day, it is good for their health.

Re: Go 2018 Survey Results

#55

Earlier quoted context omitted.

You can define methods on structs which is not unlike classes. You can define an interface with methods that allow objects to be processed in a more generic fashion. I think that more than anything it would require a change of mindset that people understandably don't want to deal with.

There's also always a package to handle that issue. [0][1][2] As well as other options. [3] I like to imagine that the "no generics, no way" crowd would never use the stairway in their building if the elevator broke down. [0] https://github.com/clipperhouse/gen [1] https://github.com/cheekybits/genny [2] https://github.com/cosmos72/gomacro [3] https://appliedgo.net/generics/

Well yes I wouldn’t move into a building without an elevator if I felt I needed an elevator at that height

Re: Go 2018 Survey Results

#56

Go and Rust are actually a great combo with only a little overlap. What’s great is that they are both C family and have some shared principles and flow. When you need a decent concurrency story, moderate speed, and have a problem that is concrete, choose Go. It’s a good candidate for replacing Python, Ruby, JavaScript, and smaller Java projects. Rust is better if you need maximum performance, are building a large pro…

There is a strong narrative around rust being suitable for “extracting/wringing/squeezing” the last drop of performance.

Why do people pushing those claims think a go program compiled down to native executable is slower then rust Is it the rust compiler is better ? Is the go stdlib slower ? Is it the gc

The GC is going to add some overhead is it that bad for most uses except for real time critical large s/w

Re: Go 2018 Survey Results

#57
post #31

Off topic but it's quite interesting to see that on HN, a great amount of the comments of a GO post talk about Rust, and vice versa. As a system guy, I am also happy to follow two OS projects in these two: [1] https://github.com/mit-pdos/biscuit [2] https://github.com/redox-os/redox

Probably because these two communities are the most involved in flinging propaganda about their language. Of course, sometimes their courses collide.

Re: Go 2018 Survey Results

#58
post #37
post #16

Earlier quoted context omitted.

Go has not displaced anything around here. Still plain old Java, .NET and C++ as always.

Where I'm located, .NET has died years ago. Just Java, Go and C++ now. I guess these things are regional. Unity is increasing C# popularity, though. So maybe .NET is not going away, at least yet.

Same here... .net core is around but the APIs and runtimes MS created aren't really loved by anyone. With WPF seemingly abandoned and UWP being ... itself, there isn't much enthusiasm left. A little sad, since I believe C# to be superior to JAVA, but I haven't used it for anything for about two years now.

It maybe won't go away, but I think it lost a lot of relevance.

Re: Go 2018 Survey Results

#59
post #53

Earlier quoted context omitted.

I think I'm misunderstanding, but doesn't Java and C# allow you to pass null in the place of an object?

Yes, but they are 20 years older than Go. C# 8 will fix this by switching defaults (opt-in due to backwards compatibility), and Java has type annotations since ages. Hence why it feels wrong to a new kid on the block to ignore what the language community at large already agreed were design errors.

Maybe there's some pattern here

"By 1960, we had a long list of amazing languages: Lisp, APL, Fortran, COBOL, Algol 60. These are higher-level than C. We have seriously regressed, since C developed" - Fran Allen

Re: Go 2018 Survey Results

#60

Go and Rust are actually a great combo with only a little overlap. What’s great is that they are both C family and have some shared principles and flow. When you need a decent concurrency story, moderate speed, and have a problem that is concrete, choose Go. It’s a good candidate for replacing Python, Ruby, JavaScript, and smaller Java projects. Rust is better if you need maximum performance, are building a large pro…

Rust is a nice idea, but as of 2019 C++17 is simply better in every way.

Yes, there's can be benefit to starting from scratch with a different language w.r.t. training new teams with good habits and skills from the start.

But going into Rust just because it's fashionable at the moment is a recipe for pain several years down the line.

If you want a working pain-free solution learn C++17 instead.

Post reply on HN