5 ms·
Golang was initially sold as a "expressive, concurrent, garbage-collected systems programming language", not as a "cloud infrastructure" language. Screenshot o
by capableweb 3y ago
Golang was initially sold as a "expressive, concurrent, garbage-collected systems programming language", not as a "cloud infrastructure" language.
Screenshot of the Golang website from ~2010: https://i.imgur.com/AYeUvuE.png https://i.imgur.com/AYeUvuE.png
- swader999 3y agoReadability and comprehension are very important. You want to minimize the translation between business and technical worlds in this space. C# worked well in the past if you didn't get distracted by all the frameworky tangents but it doesn't seem like there's as much new work in that language.
- pohl 3y agoPike later expressed regret about using the term "systems programming" so loosely. I believe it was during this panel discussion: https://learn.microsoft.com/en-us/events/lang-next-2014/panel-systems-programming-languages-in-2014-beyond https://learn.microsoft.com/en-us/events/lang-next-2014/pane...
- capableweb 3y agoRegardless, I don't think anyone in the first couple of years would describe Golang's goal as to be "designed for cloud infrastructure" like what parent did.
- pohl 3y agoWell, except for the context where google's cloud infrastructure code were precisely what they meant by "systems" back then.
- benatkin 3y agoI agree with you. To me that sentence broadens its applicability. Systems narrows it a bit, but he didn't intend to so much. People misunderstood this use of the term. In this context, it's more related to systems thinking than operating systems. systems =/= close to the metal
- yencabulator 3y ago"Systems programming" = "programming things that are used by programs, not by end users". https://en.wikipedia.org/wiki/Systems_programming https://en.wikipedia.org/wiki/Systems_programming
- pjmlp 3y agoThankfully some folks completly ignored whatever the rest of the world thinks system programming is all about and created: - TinyGo (https://tinygo.org/ https://tinygo.org/), which is acknowledged by people in the industry[0][1] - TamaGo unikernel on USB Armory secure key (https://www.withsecure.com/de/solutions/innovative-security-hardware/usb-armory https://www.withsecure.com/de/solutions/innovative-security-...) And then there is the question if writing compilers, assemblers, linkers is systems programming or not. [0]-https://www.cnx-software.com/2019/08/28/tinygo-go-compiler-for-microcontrollers-now-works-on-arduino-boards/ https://www.cnx-software.com/2019/08/28/tinygo-go-compiler-f... [1]-https://twitter.com/ArmSoftwareDev/status/1316804813317967875 https://twitter.com/ArmSoftwareDev/status/131680481331796787...
- veber-alex 3y agoBy that logic Python is a systems programming language because MicroPython exists. Just because you can provide some niche examples where Go is used as a systems programming language doesn't mean it is a general purpose systems programming language. Putting Go in the same category as C/C++/Rust/Zig is ridiculous.
- pjmlp 3y agoWhen Python manages to bootstrap itself, Lisp Machine or Smalltalk style, yep. Ridiculous is being a gatekeeper lacking imagination. Thankfully for mankind's progress they tend to be a minority, even though they sometimes get into the way.
- vacuity 3y agoThe term "systems programming" is just way too vague. I imagine most languages could be contorted to write compilers and whatnot. Go doesn't seem special in that regard. However, the popular definition of systems programming, that of performing well in resource-constrained environments (probably butchered that a bit), is where languages like C/C++/Rust shine. For all your shiny high-throughput database, kernel development, bleeding edge graphics needs. I know you're an experienced programmer, so you probably understand this and view the terminology as gatekeeping. I personally don't know of a better term.