<story><title>The Oforth Programming Language</title><url>http://www.oforth.com</url></story><parent_chain><item><author>luckydude</author><text>[I&amp;#x27;m sticking this here because there was a dude who said this was a good reply and I tried to reply to him and HN say s his post was deleted.  I don&amp;#x27;t know why, his post seemed pretty reasonable to me, he was asking if forth was a good boot loader.  Shrug.]&lt;p&gt;I don&amp;#x27;t for a minute think that forth is the best answer, it&amp;#x27;s an awful answer.  Even lisp, which I hate with a passion, would be a better answer because more people have experience in lisp than forth.&lt;p&gt;Forth is just less shitty than what Intel came up with, I think it was part of EFI, it&amp;#x27;s amazingly bad.  I&amp;#x27;ve designed  a few programming languages and I&amp;#x27;m not good at it, but holy crap, I could be drunk and come up with a better answer than  Intel did.  Forth is just a crappy language but it&amp;#x27;s less crappy than what Intel did.&lt;p&gt;The idea that Forth is somehow special for boot loaders is nuts.  There is nothing, that I know of, that makes forth somehow magical for that.&lt;p&gt;What you want for the bootloader, and for the debugger that you drop into when there is a panic, is something like C but interpreted.  You want to be able to walk a linked list of page table structures.  And to its credit, Sun&amp;#x27;s forth could do that.  It&amp;#x27;s sort of twisted to think it could but it did, there were forth words that did all sorts of kernel magic.&lt;p&gt;I think that the magic of forth was that it was tiny, back 30 years ago you didn&amp;#x27;t want to have a lot of storage for your debugger.  That&amp;#x27;s not the case today, if someone made the case that they could make things better, here you go, here&amp;#x27;s a gig of storage.  That&amp;#x27;s a little crazy but still.  Forth was cool when a meg of storage was a crazy amount.&lt;p&gt;We can do better.  Intel pushed us backwards, Forth would be a step forwards, but man, I&amp;#x27;d take python or Tcl (because then I&amp;#x27;d get my pet language L, &lt;a href=&quot;http:&amp;#x2F;&amp;#x2F;little-lang.org&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;little-lang.org&lt;/a&gt;) or even perl as a better boot language.&lt;p&gt;Froth has no special boot sauce in my opinion.  It was just small.</text></item><item><author>luckydude</author><text>I&amp;#x27;m a forth programmer, I&amp;#x27;ve implemented an editor in forth, a more(1) clone in forth, a grep(1) in forth and I did a bunch of stuff I&amp;#x27;ve forgotten in forth for the geophysics department at UW Madison.&lt;p&gt;I HATE forth.  It&amp;#x27;s a miserable language, I just hate it.&lt;p&gt;And then I went to Sun and the boot prom language was forth, still hated it.&lt;p&gt;Then I got to PCs.  The BIOS had no language and then Intel did whatever garbage they did and I was like please, just give me Forth.  It&amp;#x27;s not what I&amp;#x27;d do for debugging a panic but I could make it work.  The Intel stuff was way worse.&lt;p&gt;I suspect that Mitch priced himself out, otherwise we&amp;#x27;d all be using Forth as the boot language, I dunno what happened.  But if you had asked me 20 years ago would I be saying anything positive about forth I would have kicked you in the XXXs.  Yet here I am wishing that forth was how we dealt with a panic.  We&amp;#x27;d all be happier.</text></item></parent_chain><comment><author>lukego</author><text>Speaking of Lisp and Forth, I was really stunned when I noticed that adding syntactic support for &amp;quot;structs&amp;quot; in the language is about 10 lines in Forth (&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;openbios&amp;#x2F;openfirmware&amp;#x2F;blob&amp;#x2F;master&amp;#x2F;forth&amp;#x2F;lib&amp;#x2F;struct.fth&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;openbios&amp;#x2F;openfirmware&amp;#x2F;blob&amp;#x2F;master&amp;#x2F;forth&amp;#x2F;l...&lt;/a&gt;) and about 2000 lines in Lisp (&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;sbcl&amp;#x2F;sbcl&amp;#x2F;blob&amp;#x2F;master&amp;#x2F;src&amp;#x2F;code&amp;#x2F;defstruct.lisp&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;sbcl&amp;#x2F;sbcl&amp;#x2F;blob&amp;#x2F;master&amp;#x2F;src&amp;#x2F;code&amp;#x2F;defstruct....&lt;/a&gt;).&lt;p&gt;Mitch Bradley wrote up an explanation of the Forth library, and lots of other cool bits of Openfirmware, at &lt;a href=&quot;http:&amp;#x2F;&amp;#x2F;wiki.laptop.org&amp;#x2F;go&amp;#x2F;Forth_Lesson_18&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;wiki.laptop.org&amp;#x2F;go&amp;#x2F;Forth_Lesson_18&lt;/a&gt;.</text></comment>
<story><title>The Oforth Programming Language</title><url>http://www.oforth.com</url></story><parent_chain><item><author>luckydude</author><text>[I&amp;#x27;m sticking this here because there was a dude who said this was a good reply and I tried to reply to him and HN say s his post was deleted.  I don&amp;#x27;t know why, his post seemed pretty reasonable to me, he was asking if forth was a good boot loader.  Shrug.]&lt;p&gt;I don&amp;#x27;t for a minute think that forth is the best answer, it&amp;#x27;s an awful answer.  Even lisp, which I hate with a passion, would be a better answer because more people have experience in lisp than forth.&lt;p&gt;Forth is just less shitty than what Intel came up with, I think it was part of EFI, it&amp;#x27;s amazingly bad.  I&amp;#x27;ve designed  a few programming languages and I&amp;#x27;m not good at it, but holy crap, I could be drunk and come up with a better answer than  Intel did.  Forth is just a crappy language but it&amp;#x27;s less crappy than what Intel did.&lt;p&gt;The idea that Forth is somehow special for boot loaders is nuts.  There is nothing, that I know of, that makes forth somehow magical for that.&lt;p&gt;What you want for the bootloader, and for the debugger that you drop into when there is a panic, is something like C but interpreted.  You want to be able to walk a linked list of page table structures.  And to its credit, Sun&amp;#x27;s forth could do that.  It&amp;#x27;s sort of twisted to think it could but it did, there were forth words that did all sorts of kernel magic.&lt;p&gt;I think that the magic of forth was that it was tiny, back 30 years ago you didn&amp;#x27;t want to have a lot of storage for your debugger.  That&amp;#x27;s not the case today, if someone made the case that they could make things better, here you go, here&amp;#x27;s a gig of storage.  That&amp;#x27;s a little crazy but still.  Forth was cool when a meg of storage was a crazy amount.&lt;p&gt;We can do better.  Intel pushed us backwards, Forth would be a step forwards, but man, I&amp;#x27;d take python or Tcl (because then I&amp;#x27;d get my pet language L, &lt;a href=&quot;http:&amp;#x2F;&amp;#x2F;little-lang.org&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;little-lang.org&lt;/a&gt;) or even perl as a better boot language.&lt;p&gt;Froth has no special boot sauce in my opinion.  It was just small.</text></item><item><author>luckydude</author><text>I&amp;#x27;m a forth programmer, I&amp;#x27;ve implemented an editor in forth, a more(1) clone in forth, a grep(1) in forth and I did a bunch of stuff I&amp;#x27;ve forgotten in forth for the geophysics department at UW Madison.&lt;p&gt;I HATE forth.  It&amp;#x27;s a miserable language, I just hate it.&lt;p&gt;And then I went to Sun and the boot prom language was forth, still hated it.&lt;p&gt;Then I got to PCs.  The BIOS had no language and then Intel did whatever garbage they did and I was like please, just give me Forth.  It&amp;#x27;s not what I&amp;#x27;d do for debugging a panic but I could make it work.  The Intel stuff was way worse.&lt;p&gt;I suspect that Mitch priced himself out, otherwise we&amp;#x27;d all be using Forth as the boot language, I dunno what happened.  But if you had asked me 20 years ago would I be saying anything positive about forth I would have kicked you in the XXXs.  Yet here I am wishing that forth was how we dealt with a panic.  We&amp;#x27;d all be happier.</text></item></parent_chain><comment><author>jacobush</author><text>The special sauce was that it was tiny, that was not only important, it was &lt;i&gt;imperative&lt;/i&gt; back when EPROMs ruled the motherboards and the backplanes. It was only until the serial flash memory arrived that bloaty alternatives became possible at all.</text></comment>