6 ms·
Except it did replace C++ in the domains it claimed it would replace C++ in. It made clear from day one that you wouldn't write something like a kernel in it. I
by randomdata 3y ago
Except it did replace C++ in the domains it claimed it would replace C++ in. It made clear from day one that you wouldn't write something like a kernel in it. It was never trying to replace every last use of C++.
You may have a point that Python would have replaced C++ in those places instead if Go had never materialized. It was clear C++ was already on the way out, with Python among those starting to push into its place around the time Go was conceived. Go found its success in the places where Python was also trying to replace C++.
- deleted 3y ago[deleted]
- bcrosby95 3y agoWhat domains are those? It seems to mostly be an alternative to what people have use(d) Java or C# for.
- randomdata 3y agoThe original Go announcement spells it all out pretty nicely.
- jeswin 3y ago> You may have a point that Python would have replaced C++ in those places instead if Go had never materialized. I don't think Python was starting to occupy C++ space; they have entirely different abilities. Of course, I am also glad it didn't happen.
- randomdata 3y agoI don't think so either, but as we move past that side tangent and return to the discussion, there was the battle of the 'event systems'. Node.js was also created in this timeframe to compete on much the same ground. And then came Go, after which most contenders, including Python, backed down. If you are writing these kinds of programs today, it is highly likely that you are using Go, Node.js, or some language that is even newer than Go (e.g. Rust or Elixir). C++ isn't even on the consideration list anymore.
- unscaled 3y agoI'm not sure what you were meaning by "it". The main domain the original team behind Go were aiming at was clearly network software, especially servers. But there was no consensus whether kernel could be a goal one day. Rob Pike originally thought Go could be a good language for writing kernels, if they made just a few tweaks to the runtime[1], but Ian Lance Taylor didn't see real kernels ever being written in Go[2]. In the pre-release versions of Go, Russ Cox wrote an example minimalistic kernel[3] that can directly run Go (the kernel itself is written in C and x86 Assembly) - it never really went beyond running a few toy programs and eventually became broken and unmaintained so it was removed. [1]: https://groups.google.com/g/golang-nuts/c/6vvOzYyDkWQ/m/3T1DD47AHKcJ https://groups.google.com/g/golang-nuts/c/6vvOzYyDkWQ/m/3T1D... [2]: https://groups.google.com/g/golang-nuts/c/UgbTmOXZ_yw/m/NH0jskB_xF0J https://groups.google.com/g/golang-nuts/c/UgbTmOXZ_yw/m/NH0j... [3]: https://github.com/golang/go/tree/weekly.2011-01-12/src/pkg/runtime/tiny https://github.com/golang/go/tree/weekly.2011-01-12/src/pkg/...
- deleted 3y ago[deleted]
- yencabulator 3y agoYou might like Biscuit: https://github.com/mit-pdos/biscuit https://github.com/mit-pdos/biscuit It was specifically written to measure the performance overhead of a high-level language in kernel, so it explicitly makes the same design choices as Linux: monolithic, POSIX-compatible. Results look pretty good.