Hacker News new | past | comments | ask | show | jobs | submit login
Oak: A more portable alternative to C, powered by Brainfuck-inspired technology (github.com/adam-mcdaniel)
108 points by eterps on July 26, 2020 | hide | past | favorite | 19 comments



> About the Author

> I'm a freshly minted highschool graduate and freshman in college looking for work.

Jesus fuck that's impressive. At that age my mind was on being bad at skateboarding, casual arson and trolling pre-2000 online places


I'm pretty astounded by his productivity!. This isn't even his first programming language.

https://github.com/adam-mcdaniel/free

https://github.com/adam-mcdaniel/xasm

https://github.com/adam-mcdaniel/tsar


Well said. His work seems to have some elegant ideas. Imagine what he will be doing when he's finished college. Some people are truly brilliant.


I suspect he'll be figuring out more new and unique ways to serve us ads.

edit: and that's no knock on this kids skills / talents!


Then it's on us to make sure that society can provide opportunities beyond putting the best minds of our generation into generating more clicks.


I was working on a compiler for money during my first weeks of university (last year) and if I'm being honest it nearly ruined my entire year because I was completely on the back foot socially.

Combine that with a catastrophic sleep problem and you're in a rough time, in my case.


Excellent and fun project. Error handling seems light... especially at runtime, but for a toy, its cool. Hard to argue its more portable than C until it can self host though.


The best comparison is the popularity of forth in small resource-constrained situations.


Not to be confused with Oak [0], the precursor of the Java programming language.

[0] https://en.m.wikipedia.org/wiki/Oak_(programming_language)


Not to be confused with JavaScript, whoms percursor LiveScript should not be confused with LiveScript which was a successor of CoffeeScript, a Ruby inspired counterpart of JavaScript.


LiveScript is JavaScript, "JavaScript" was just a rebranding in a joint Sun-Netscape marketing effort, while other Netscape technology stuck to the "Live…" naming scheme, as in LiveWire or LiveBridge. When there was still a language attribute to script tags, "LiveScript" was happily accepted as a synonym for "JavaScript" (or, rather, the other way round).


I know. There are two LiveScripts.


Livescript was not a successor of CoffeeScript.


> Every instruction operates on a memory tape. This tape is essentially a static array of double-precision floats.

Why doubles? I would think integers are the more primitive type.


Probably because floats can represent ints, but not the other way around?


Having it written and distributed in Rust kind of defeats the whole “compact” sales pitch, as you now have to download a couple gigabytes to try it out...


> you now have to download a couple gigabytes

You... don't?

Default installation size of the Rust toolchain is about 800mb extracted to disk, way less so of downloading.

Hardly an inordinate filesize for a development toolchain. For example, MSYS is 950mb just for the C++ toolchain. You might shave a lot on Linux thanks to package reuse, but "conceptually" it would be about the same size, just that in practice you start with some parts downloaded.


They may be referring to the Windows MSVC target, where you have to install the C++ build tools to get access to link.exe.

... that being said, if they distributed a binary, you wouldn’t need any of that, too.


I thought this was going to be a troll post that links to Ook: https://esolangs.org/wiki/ook!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: