Hacker News new | ask | show | jobs
by pjmlp 3641 days ago
It is as much system level as Oberon or Mesa/Cedar, both with proofs on how to write a full graphic Workstation with them.

As for Go, it is fully bootstraped in itself, including the whole runtime.

There are already some bare bones examples at OS Dev

http://wiki.osdev.org/Go_Bare_Bones

And there are people writing bare metal runtimes for the STM32F4 and STM32L1-Discovery boards.

https://sites.google.com/site/embeddedgo/home

For me that is a system level programming language.

1 comments

I can run Javascript on an Arduino does that make it a systems level programming language?

There's so many things missing from Go, from volatile semantics to memory control(good luck getting memory banks on PIC working).

Just because you can do something doesn't mean it's a good fit.

> I can run Javascript on an Arduino does that make it a systems level programming language?

Johnny-Five? It isn't running on the Arduino.

A systems programming language is one that is possible to write the whole stack all the way from the boot loader, with a very tiny help from Assembly in the process, like bootloader, interrupt handling, DMA.

The day I am able to write a JavaScript AOT and JIT, in JavaScript, maybe.

As for volatile semantics, many system programming languages in the early days didn't had them as well.

PIC, well. How would you make PIC banks work in a standards compliant ANSI C compiler without language extensions?

With Assembly of course, so can Go.

Also nothing prevents a Go compiler to provide extensions just like what many think of C features for systems programming are actually not part of ANSI C.

Go already has "pragmas" in the form of //go:...... And nothing prevents a Go compliant compiler to provide more.

The code for Xerox Star, ETHZ Oberon, ETHZ EthOs, ETHZ AOS are available for anyone that cares to read them and how it is possible to write a full stack workstation.

Or better yet, getting the 2013 edition of Project Oberon book and building the whole computer, including the motherboard.