For me it were four things: 1) no bloat 2) great tooling 3) speed, speed, speed 4) developed by legends in Computer Science To expand a little bit more: 1) Go is still the only language is not developed by analogy (i.e. let's do X because all other languages have it). It's designed from the first principles, and that's why so many newcomers are buffed about weirdly different take on things they consider "basic" or "c…
The Go Programming Language and Environment
171–180 of 250 posts
Re: The Go Programming Language and Environment
#172Go is successful for similar reasons as Java. - Backed by a well known Company with a good image (at the time). - Made by well known experts at the top of their field. - Most of the risky, complex and powerful stuff is in the runtime. - The language surface is small, familiar, conservative and consists of mostly orthogonal features. - Very straightforward to integrate libraries and a good standard library. - Portabil…
I wouldn't just say mainstream business perspective. Go's small surface area makes it a great language for a team with large turnover. What better example of that than open source, where contributors come in, contribute a change, and then leave.
Re: The Go Programming Language and Environment
#173Earlier quoted context omitted.
>- Made by really famous veteran language designers - Backed by Google Looking at decades of how various programming languages gain popularity, those proposed reasons don't seem that convincing when we look at counterexamples . E.g. counterexamples of unknown (at the time) creators creating popular languages : Bjarne Stroustrup (C++), James Gosling (Java), Rasmus Lerdorf (PHP). E.g. counterexamples of famous computer…
"1) compiles to a single executable that's easy to deploy. This is a compelling advantage over Java,C#,Python,Ruby that require runtimes or complicated virtual environments." Docker makes deploying Java about the same as Go
Which doesn't matter all that much until you're distributing an app made out of 10-20 such services...
Re: The Go Programming Language and Environment
#174Go is successful for similar reasons as Java. - Backed by a well known Company with a good image (at the time). - Made by well known experts at the top of their field. - Most of the risky, complex and powerful stuff is in the runtime. - The language surface is small, familiar, conservative and consists of mostly orthogonal features. - Very straightforward to integrate libraries and a good standard library. - Portabil…
Go will probably continue to grow in usage a while but I'm not certain it will pass even c# in usage.
I think there is too little to gain from rewriting java or c# code and for speed I think rust is better. We will see what happens the next 5 years or so.
Re: The Go Programming Language and Environment
#175Go is successful for similar reasons as Java. - Backed by a well known Company with a good image (at the time). - Made by well known experts at the top of their field. - Most of the risky, complex and powerful stuff is in the runtime. - The language surface is small, familiar, conservative and consists of mostly orthogonal features. - Very straightforward to integrate libraries and a good standard library. - Portabil…
One area in which Go lacks is its static type system. Until recently, it was practically straight out of the '70s. Static type systems are a mechanism for outlawing the compilation of programs that are known to be problematic at the expense of outlawing comparatively few good programs — a worthwhile trade-off for a language meant to be used in industry, especially when writing complicated code. It's a shame because t…
Re: The Go Programming Language and Environment
#176Earlier quoted context omitted.
"1) compiles to a single executable that's easy to deploy. This is a compelling advantage over Java,C#,Python,Ruby that require runtimes or complicated virtual environments." Docker makes deploying Java about the same as Go
A.k.a.: Why just have a single thing (a statically compiled binary), when you can have several moving pieces and different levels of infrastructure and configuration to worry about (the hypervisor, the container runtime, the container cli, the open ports and shared volumes configuration, the host OS image, the JVM inside the image, java memory and gc tuning, and so on)
Re: The Go Programming Language and Environment
#177Go is successful for similar reasons as Java. - Backed by a well known Company with a good image (at the time). - Made by well known experts at the top of their field. - Most of the risky, complex and powerful stuff is in the runtime. - The language surface is small, familiar, conservative and consists of mostly orthogonal features. - Very straightforward to integrate libraries and a good standard library. - Portabil…
One area in which Go lacks is its static type system. Until recently, it was practically straight out of the '70s. Static type systems are a mechanism for outlawing the compilation of programs that are known to be problematic at the expense of outlawing comparatively few good programs — a worthwhile trade-off for a language meant to be used in industry, especially when writing complicated code. It's a shame because t…
Slice index expressions accept any integer type. Integer subtypes can be defined, but there is no way to define a slice type that is legally indexed with only that defined type.
An expression a.b in some unfamiliar code may denote either a struct field access, or a pointer dereference followed by struct field access. We must read surrounding code (or lean on an IDE) to know which is meant. There was a lot to be said for C's -> operator, however unaesthetic it may appear to the eye.
Re: The Go Programming Language and Environment
#178Earlier quoted context omitted.
Yes! The "killed by Google" meme is young. Back in the days it was like "i want to be like Google" (ignoring the fact that most people don't have scale like Google and very different problems) and anything out of Google must be good!
Google also can't really "kill" Go. The license doesn't permit it. They could stop supporting it, at which point the community may or may not pick it up. (I'm inclined to think they would, but I can't guarantee that.) They could try to drag it in some hypothetical super-Google oriented direction (integrating Google Cloud somehow deeply into the language?) but they haven't yet, and at this point, again I think the com…
Anyways, key point was that Google reputation was different, when Go took up. I can imagine if it would launch now it would find different reaction, which could prevent a community forming, thus less of safety.
Re: The Go Programming Language and Environment
#179Earlier quoted context omitted.
Why people always mention tooling but never explicitly mention which tooling they miss? I use Java for 4 years and I constantly find stuff that's missing here where other languages have it baked in from day one
> I constantly find stuff that's missing You didn't mention which tooling you miss.
Neither did you.
Re: The Go Programming Language and Environment
#180Earlier quoted context omitted.
One area in which Go lacks is its static type system. Until recently, it was practically straight out of the '70s. Static type systems are a mechanism for outlawing the compilation of programs that are known to be problematic at the expense of outlawing comparatively few good programs — a worthwhile trade-off for a language meant to be used in industry, especially when writing complicated code. It's a shame because t…
Are you responding to the parent's post and suggesting that this is something to do with Go's success, or are you simply complaining?
My point was that Go seems to have managed to be successful (for some reasonable definitions of "successful") despite at least one large deficiency. In fact, it is the same deficiency for which Java's success can be said to be surprising, though Java had ~20 years fewer history to draw upon. (Java is relevant because it's what the parent comment was comparing Go to.) It is disappointing to me that Go had a really good position to provide a new language in a specific niche, but they squandered at least one significant aspect of the language design due to (in my opinion) a lack of knowledge in the relevant area. This despite being designed by "experts at the top of their field", as the parent comment noted.