5 ms·
I know Go has been touted as a C successor since inception, but most new users seem to be coming from interpreted languages. Like this blogger, they attribute a
by wting 13y ago
I know Go has been touted as a C successor since inception, but most new users seem to be coming from interpreted languages. Like this blogger, they attribute a lot static language advantages as unique to Go.
I don't see a lot of C/C++ developers switching, probably because they have sunk costs with their respective languages and Go doesn't offer very much by comparison.
I would definitely use Go where it seems appropriate, but I don't see it replacing C as a systems language.[0] Sometimes when I write something in Go, I look back and wonder why didn't I just do it in C. However, Go is great in a distributed systems / networking environment where most new code seems to be written.[1]
In the words of a friend, "You can pry raw memory access from my cold, dead fingers."
[0] systems == OS, drivers, etc.
[1] Motivations summarized in the abstract: http://talks.golang.org/2012/splash.article#TOC_1 http://talks.golang.org/2012/splash.article#TOC_1.
- wonderzombie 13y agoLike this blogger, they attribute a lot static language advantages as unique to Go. This is true, but there is one piece ~unique to Go: type inference. It doesn't exist in Java or C, and it's only just made it to C++. For an individual coming from an interpreted language, it makes an otherwise statically typed language feel a lot less unwieldy and bureaucratic.
- pjmlp 13y agoThis is one of the areas where I actually take Go's defence. Have a look at Native Oberon and AOS, both desktop operating systems developed at Zurich's technical university. They are done in GC enabled systems programming languages and were used both as desktop systems by the teachers, as well as to teach operating systems classes. Quite nice desktop environments using strong typed languages, but offering a Smalltalk like user experience. http://www.inf.ethz.ch/personal/wirth/books/ProjectOberon.pdf http://www.inf.ethz.ch/personal/wirth/books/ProjectOberon.pd... https://www.ics.uci.edu/~franz/Site/pubs-pdf/BC03.pdf https://www.ics.uci.edu/~franz/Site/pubs-pdf/BC03.pdf http://www.ocp.inf.ethz.ch/wiki/Documentation/WindowManager http://www.ocp.inf.ethz.ch/wiki/Documentation/WindowManager The problem with any systems programming language is that it is only used as such, if an OS vendor makes it the only way to do OS programming. Like Microsoft does with C++ or Apple with Objective-C.
- coldtea 13y ago>The problem with any systems programming language is that it is only used as such, if an OS vendor makes it the only way to do OS programming. Well, one has to question then why no vendor made something like Oberon etc "the only way to do" his OS programming. Perhaps because having POC OSes at some university wasn't enough, and performance was lacking of OS level work, and lacking in a way that Moore's law cannot address? (E.g we see Go pausing for 1-10 secs every few minutes on large memory loads. Which might be hood for an academic OS, but not for the OS I want to run video editing, audio DAWs, large apps and application servers on. And even the attempt by SUN to write something as basic as a web browser in pure Java was dog slow circa 2000).
- pjmlp 13y agoIt is always a matter of investment. If Sun did not invest in JIT research Java would already be gone, the same for JavaScript JIT research. Having used those systems I can say they were fast enough to be able to display videos. The codecs make use of Assembly, but the same is true when C is used. Those languages were just victims of the C trap, were the OS copied the UNIX model and thus were being developed in C as well. Which mainstream OS vendor can you imagine bringing an OS to the market, with an alternative systems programming language and being able to succeed at it?
- coldtea 13y ago>Which mainstream OS vendor can you imagine bringing an OS to the market, with an alternative systems programming language and being able to succeed at it? If the language is good for this purpose, and the resulting OS is better, as in equally fast AND far more secure than the current ones (a marginal increase in security won't matter at all), then any big vendor. If the OS is feature complete and can run current apps (even if recompiled) with a compatible system call API, then why not?
- gillianseed 13y agoMicrosoft certainly have the resources, and some interest as proven by their Singularity experiment. Obviously they haven't found it commercially viable as of yet, we'll see what the rumored Midori can bring. But if Microsoft with all their resources can't make it performant enough to be of interest outside of academia (where Singularity ended up) then I doubt anyone can. The thing is of course that native non-garbage collected operating systems aren't crash-prone, if they were then we would have seen a shift in systems language out of pure necessity ages ago. As it stands, bugs are found, bugs get fixed, systems end up stable and very performant.