

Standardizing Go - mightybyte
http://softwaresimply.blogspot.com/2009/11/standardizing-go.html

======
wglb
First, I think there is a difference between a language that one would call
"bare metal" programming and a systems programming language. A systems
programming language gives good performance, and gives you good libraries, and
makes it feasible or easier to write large programs, such as, say, a compiler.

Second, while we always think of C as a "bare metal" language, there are two
things that I would count as important in that category. Bare metal
programming would have some cache consciousness, perhaps. And a bare metal
programming language would make it easy to write coroutines, such as BLISS did
and was actually easy in languages like Sigma 5 assembler. C does not do these
things for me. Also, how many would agree that a "bare metal" language would
have GC?

Another thing I would expect from a systems programming language is a little
more confidence that my program is correct than I get from raw C. Lack of
pointers, array bounds checking would be plus features here.

And I disagree a little with the assertion that C lacks a controlling body.
Nowadays there is not that much disagreement amongst C compilers. C++ is quite
another story.

I like the thrust of GO, particularly in the context of the systems
programming area, where C++ is usually truncated by internal coding standards
(see exceptions in the google coding standards), and templates are often
limited by internal coding convention.

~~~
mightybyte
You may be interpreting "bare metal" a little different than I intended. I
meant for "bare metal" to increase the scope. It sounds like you interpret it
as decreasing the scope. Your use of "systems" sounds like what I meant for
"bare metal". I interpret "systems" as relating primarily to operating systems
and direct hardware, but maybe my perception is not mainstream. I guess I just
chose the wrong phrase.

I agree that C now has a better controlling body. Those comments generally
referred to the whole history of C and C++ combined.

~~~
wglb
I see what you mean.

Having spent some formative years writing assembler in an interrupt-rich
environment has tended to shape my idea of bare metal.

~~~
mightybyte
I edited the post to use the term "performance-oriented" instead of "bare-
metal". Hopefully that makes more sense.

