5 ms·
> go is billed as a systems language When people say "system" they mean "back end" servers and tools. They don't mean kernel programming.
by spriggan3 10y ago
> go is billed as a systems language
When people say "system" they mean "back end" servers and tools. They don't mean kernel programming.
- jfoutz 10y agoI can imagine a webserver that drives a little robot via bluetooth. Low consequence for failure. It's easy to imagine the webserver part of the functionality causing a long pause, and a "stop" message to the robot being late. golang would do a fantastic job at this, i think it would be far more enjoyable than C. Latency almost never matters. But sometimes it matters.
- vortico 10y agoMany people consider Go (and Rust) as a reasonable choice for developing a toy kernel, and some projects have turned out to be somewhat serious.
- vvanders 10y agoGo and Rust aren't in the same domain. Any time you have a GC then you need to talk about pinning, non-determinism and a whole host of other issues. FWIW last time I looked Go doesn't even specify heap vs stack which would be a non-starter for me.
- dualogy 10y ago"When possible, the Go compilers will allocate variables that are local to a function in that function's stack frame. However, if the compiler cannot prove that the variable is not referenced after the function returns, then the compiler must allocate the variable on the garbage-collected heap to avoid dangling pointer errors. Also, if a local variable is very large, it might make more sense to store it on the heap rather than the stack. In the current compilers, if a variable has its address taken, that variable is a candidate for allocation on the heap. However, a basic escape analysis recognizes some cases when such variables will not live past the return from the function and can reside on the stack." https://golang.org/doc/faq#stack_or_heap https://golang.org/doc/faq#stack_or_heap
- nilved 10y agoNot true. Ruby is not a systems language. I would say a systems language is characterized by static compilation, static typing and fast performance with low latency. Of course, someone will quickly suggest a counterexample like this comment.
- MichaelGG 10y agoAccidental downvote, sorry. Counterexample: Holy-C isn't typechecked.
- olalonde 10y agoI've most often seen "systems software" used to designate software whose primary users are other programmers or systems as opposed to end users (e.g. databases, message queues, monitoring tools, etc.). Ruby is typically used for writing business web applications and while those applications run on the back end, their primary users are business/end users. Of course, there doesn't seem to be a clear consensus on how those terms are used and the line is often blurry between the categories.
- spriggan3 10y ago> Ruby is not a systems language Ruby can be used for everything go is used for. It will just be slower.
- rdtsc 10y agoThere was some confusion about it, but in general people backpedalled once they realized the language is not a systems langauge and so they redefined what "systems" means. http://techcrunch.com/2009/11/10/google-go-language/ http://techcrunch.com/2009/11/10/google-go-language/ --- Go attempts to combine the development speed of working in a dynamic language like Python with the performance and safety of a compiled language like C or C++ [...] the compiled code runs close to the speed of C. We’re hoping Go turns out to be a great language for systems programming --- They pit it against C and C++ and if Rob Pike doesn't know what "systems" means then well, nobody does ;-) It doesn't matter really, Go is a popular, productive, useful language. There is nothing wrong if it "pivoted" or updated its description a few times in the past. It doesn't make bad or deficient, but there is also no point in denying it or trying to rewrite history.
- spriggan3 10y ago> It doesn't matter really, Go is a popular, productive, useful language. Yes it does, definitions matter or you end up with marketing buzzword like "serverless". Was calling Go "a system language" a marketing ploy? that's the question.