Easy, - Backed by Google - Plan 9 and UNIX people as designers - Docker migrated from Python to Go - Kubernetes migrated from Java to Go - After Docker and Kubernetes explosion, all Cloud Native Foundation projects start using the same language, thus adoption
Kubernetes never really migrated, the first prototype were built in Java but the real first version that released were in Go, so it's not a migration, the poc were in a different language.
The Go Programming Language and Environment
151–160 of 250 posts
Re: The Go Programming Language and Environment
#152Earlier quoted context omitted.
> Kubernetes moved when some Go advocates joined the team and pushed for a rewrite Frankly, that hardly says anything about the technical merits of that switch. In fact, it reads like a poorly-though tautology.
Well it's pretty clear 10 years ago than Java would have been a disaster, imagine all the controle planes + pods + side cars etc ... running on the JVM, you would have needed 20x more memory. Even to this day JVM memory consumption is way way higher than Go and it would make no sense to use it in Kubernetes. It's resources than workload could not use meaning higher overhead for Kubernetes which would reduce adoption.
I'm not sure if you are aware, but the web runs on Java.
Android is also Java, thus even the people in charge of developing one of the most popular resource-constrained devices in history disagree with you.
Beyond desktop (specially games, except Minecraft), front-end and embedded devices, you'd be hard-pressed to find any class of applications whose bread and butter does not involve the JVM.
Even desktop, Microsoft is heavily invested in C#, which was the company's answer to Java and dubbed "an imitation" and described as "(..) sort of Java with reliability, productivity and security deleted."
https://en.wikipedia.org/wiki/C_Sharp_(programming_language)...
Frankly, I'd question the competency and technical background of anyone who throws that sort of uninformed and detached criticism at Java.
Re: The Go Programming Language and Environment
#153Earlier quoted context omitted.
The "Backed by Google" is an under-appreciated social piece of the puzzle. It's not just that Go has institutional backing, it's that googlers produce a lot of startups, and they bring their favorite things with them, and quite often one of those things is Go.
That's why we all use Dart today.
Golang obviously didn't have that constraint, it didn't depend on any external runtime.
After the browser rebuff Google had a meandering approach to figuring out where Dart could fit in instead. Whereas Go slotted quite easily into one specific niche, building microservices at Google.
I think the lesson is that clear positioning is crucial
Re: The Go Programming Language and Environment
#154Easy, - Backed by Google - Plan 9 and UNIX people as designers - Docker migrated from Python to Go - Kubernetes migrated from Java to Go - After Docker and Kubernetes explosion, all Cloud Native Foundation projects start using the same language, thus adoption
> - After Docker and Kubernetes explosion, all Cloud Native Foundation projects start using the same language, thus adoption This take sounds highly unrealistic. No one in their right mind would ever say "well Docker/Kubernetes were developed in Go, thus that means it's a good idea to develop a totally unrelated application that bares no resemblance or shares any use case in Go as well". Also, migrating away from an…
> No one in their right mind would ever say "well Docker/Kubernetes were developed in Go, thus that means it's a good idea to develop a totally unrelated application that bares no resemblance or shares any use case in Go as well".
I agree that this take sounds silly, but in practice I've seen it play out just like that. So many projects centered around CloudNative seemed to have picked Go simply because it's the language used by many other leading CloudNative tools. GoLang == the cloud native language according to many folks.
Re: The Go Programming Language and Environment
#155Earlier quoted context omitted.
> newcomers are buffed about weirdly different take on things they consider "basic" or "common sense" Yep makes sense: "2006-01-02 15:04:05"
Oh yes, great example. It's literally "1st month, 2nd day, 3rd hour, 4th minute, 5th second, 6th year, 7th timezone" Clever mnemonic tecnhique which is much easier to use and memorize. Most people can remember "January 2nd 2006" and "15:04:05" easily, and then crafting date/time format strings becomes a toy. While with more widespread and common "HH/MM/SS" approach, which has bunch of incompatible implementations in…
Re: The Go Programming Language and Environment
#156Earlier quoted context omitted.
> newcomers are buffed about weirdly different take on things they consider "basic" or "common sense" Yep makes sense: "2006-01-02 15:04:05"
Oh yes, great example. It's literally "1st month, 2nd day, 3rd hour, 4th minute, 5th second, 6th year, 7th timezone" Clever mnemonic tecnhique which is much easier to use and memorize. Most people can remember "January 2nd 2006" and "15:04:05" easily, and then crafting date/time format strings becomes a toy. While with more widespread and common "HH/MM/SS" approach, which has bunch of incompatible implementations in…
Which, would be intuitive and easy to remember if month-day-hour-minute-second-year-timezone was a sane logical ordering.
> Format string "D m y", for example, produces:
> - '05/31/22 05 22' in Ruby and Rust
How are you doing that in Ruby? The standard Ruby DateTime formatting method is DateTime#strftime() which uses approximately (mostly, fixing the locale-dependent options because the method is not locale sensitive) POSIX strftime format strings, which that is not.
Did you mean “%D %m %y”? Then that's right for Ruby/Rust. But that doesn't seem to produce the results you list for other languages (some of which also have a POSIX-ish strftime, though, e.g., it is deprecated in PHP.)
Re: The Go Programming Language and Environment
#157Earlier quoted context omitted.
>This is a compelling advantage over Java,C#,Python,Ruby that require runtimes or complicated virtual environments. You can deploy c# app without having to install anything.
>You can deploy c# app without having to install anything. The C# option of self-contained executables is very recent with VS2019 & VS2022 and was not available when Go came out in 2009 . Before that, you had extra steps of ClickOnce installer deployment or obscure AOT experiments that nobody was using in production. (Also as trivia, the new C#/NET6 self-contained executables don't work on Windows 7 and Server 2012.…
Re: The Go Programming Language and Environment
#158Earlier quoted context omitted.
The most interesting thing about the go vs rust debate is that it happened. In hindsight it seems abundantly clear that they aim for entirely different fields with negligible overlap, almost as if you'd lump together tennis and golf because they are both ball games with a somewhat upperclass bias ("how different can they be? And I hear polo is the same but with horses!"). But back then? Yeah, I was kind of expecting…
Rust and Go are both general purpose languages. They overlap way more than they don't i.e. there is way more software that you can write in both languages than software that you can write in only one of them. The "best language for the job" is mostly a myth. The choice of language is mostly dictated by what you cannot do, rather than what you can do. Can I use Go or Java to program a micro-controller with 128 kB of R…
Re: The Go Programming Language and Environment
#159Earlier quoted context omitted.
Well it's pretty clear 10 years ago than Java would have been a disaster, imagine all the controle planes + pods + side cars etc ... running on the JVM, you would have needed 20x more memory. Even to this day JVM memory consumption is way way higher than Go and it would make no sense to use it in Kubernetes. It's resources than workload could not use meaning higher overhead for Kubernetes which would reduce adoption.
> Well it's pretty clear 10 years ago than Java would have been a disaster, imagine all the controle planes + pods + side cars etc ... running on the JVM, you would have needed 20x more memory. I'm not sure if you are aware, but the web runs on Java. Android is also Java, thus even the people in charge of developing one of the most popular resource-constrained devices in history disagree with you. Beyond desktop (spe…
I stand my point, the JVM is not the right tool to build components for Kubernetes because Kubernetes needs lots of small service running everywhere, running those in the JVM would have resulted in large memory consumption.
You can try yourself, build a very simple hellow world web app with the most popular JVM ( Oracle one ) on version 8 for example, you'll see how much memory it uses by default.
Re: The Go Programming Language and Environment
#160I think it misses * Made by really famous veteran language designers * Backed by Google Not saying it doesn't deserve its popularity, but most of the things listed are not necessary for explaining its popularity, and none of them (even taken together) are sufficient.
>- 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…
Docker makes deploying Java about the same as Go