Forth

(xkcd.com)

232 points | by beardyw 4 days ago ago

53 comments

  • jihadjihad 4 days ago ago

    Slightly OT, but nothing can beat DonHopkins’s “About” section here on HN [0].

    0: https://news.ycombinator.com/user?id=DonHopkins

  • dchest 4 days ago ago

    FORTH LOVE? IF HONK THEN

  • mikewarot 4 days ago ago

    I never noticed the disclaimer at the bottom until today

      xkcd.com is best viewed with Netscape Navigator 4.0 or below on a Pentium 3±1 emulated in Javascript on an Apple IIGS
      at a screen resolution of 1024x1. Please enable your ad blockers, disable high-heat drying, and remove your device
      from Airplane Mode and set it to Boat Mode. For security reasons, please leave caps lock on while browsing.
    
    Also, the font chosen is all caps
  • 7734128 3 days ago ago

    My first ever programming experience was a Minecraft computer running Forth

    https://technicpack.fandom.com/wiki/Forth_language

    I built a massive mining platform that repeated a series of about 200 movements to vacuum up blocks, and used that computer block to orchestrate it.

    Must admit that I got a bit scared of programming until I tried again in university.

    • Xmd5a 3 days ago ago

      My first PID controller was in Industrial Craft & Tekkit modded Minecraft.

  • kentbrew 4 days ago ago

    My dad proudly flew one that said FORTH <3 IF HONK THEN. Yes, people did honk.

  • hmokiguess 4 days ago ago

    Prediction: someone will make a reverse polish notation skill for interacting with claude claiming all sorts of things, like caveman, turn into another markdown as a service company, and make the news.

  • ngvrnd 3 days ago ago

    Hey whatever happened to Factor? That was an amazingly professional offering in a weird and dusty corner of the programming languages.

    • nwalkr 2 days ago ago

      it's somewhat alive.

      they do some releases, they have a somewhat big project of rewriting vm in zig.

  • add2 4 days ago ago

    Iがforthをloveする

    • ithkuil 4 days ago ago

      Forward Japanese Notation

  • lhakedal 4 days ago ago

    Saw the same joke with Postscript many years ago.

    • rbanffy 3 days ago ago

      I don't think anyone loves PostScript though...

      • jhbadger 3 days ago ago

        Don Lancaster did. He used to write programs in Postscript to make figures - he preferred that to using drawing programs.

        • rbanffy 3 days ago ago

          I think he did that only to impress his hacker friends. ;-)

          And because laser printers were often the fastest computer in the office.

      • lhakedal 2 days ago ago

        The PS version went something like

        {honk} ps love if.

        You never heard a lot of honks, come to think of it.

  • joshu 4 days ago ago

    is it me or is forth coming up a lot lately? or am i just having a plate-o-shrimp situation?

    • sph 4 days ago ago

      The Forth (and Lisp) posts will continue until the entire HN population has been converted.

      I am glad that this forum that has mostly been colonized by the ‘normies’ still manages to keep these two languages in the conversation, capturing curious passersby with their exotic allure. In every post you see new prey with the comments like ‘I keep reading about Lisp and I still don’t get why it’s popular. All I see is parentheses. Can anybody explain?’

      I fear the day HN closes is the day those languages will die.

      • pjmlp 4 days ago ago

        Nah, we will keep hoping around.

        USENET, Slashdot, Reddit, HN, Lambda the ultimate,....

        There will surely be a spot left for the refugees.

        The biggest issue is when natural language programming would make all these paradigms irrelevant, a curiosity for computing history museums.

    • stevekemp 3 days ago ago

      I think there are phases where it becomes more popular, if some discussion topically references FORTH, or Lisp, you know that within a few hours other people will read them and make submissions on the same theme.

      It's nice.

      As for me I'll almost blindly vote up anything that references FORTH because I love implementing it. I don't use it. Few people do these days, but writing toy implementations is satisfying, for sure.

      (I do use Lisp, and within the past month posted my own lisp compiler here. A few votes and a brief bit of commentary which is about all it deserved. But I like seeing other people's approaches and I suspect that's why it got the minimal attention it did.)

    • RetroTechie 3 days ago ago

      It's archaic, powerful, expressive, compact. I'd describe it as an interactive macro-assembler on steroids. What's not to like?

      But it's different. Certainly not for everyone (imho that makes it even more interesting). So yeah, shouldn't hurt the HN audience to pop by now & then.

    • firesteelrain 4 days ago ago

      It does seem like it the last few days

      • rbanffy 3 days ago ago

        It's a beautiful little language.

        We should do more with FORTH.

  • iberator 4 days ago ago

    FYI: Forth can be very readable!

    IT DOES NOT NEED TO BR ALL IN ONE LINE

    Most commercial forth source code is totally readable and maintainable:

    comments, newlines, macros, high level commands etc

    It's a total myth that its 'write only'. The same nonsense is spreaded by some nerds who actaully never wrote a single program in it.

    ps. same goes to COBOL. 99% of fud by guys who never even wrote a simple program in it.

    • pjmlp 4 days ago ago

      Complaining about COBOL in 2026 feels like a joke, especially when doing AI coding and writing book sized instructions to be read by bots.

    • psd1 3 days ago ago

      You can't have _any_ BR all in one line.

  • ajhenrydev 4 days ago ago

    Can someone explain for me?

    • e12e 4 days ago ago

      A different way to say the same: in forth, words get pushed on the stack, and popped from the stack by words that take arguments:

          code           stack
          I Forth love
      
          Forth love     I
      
          love           I
                         Forth
      
          ; love presumably pops
          ; subject, object args
          ; from stack - and does something 
          ; perhaps prints as side effect
      • DonHopkins 4 days ago ago

        Here is some inexplicably but meticulously formatted FORTH code that uses right justified indentation! Including reverse polish notation assembley.

        https://donhopkins.com/home/code/tomt-cam-forth-scr.txt

        https://donhopkins.com/home/code/tomt-users-forth-scr.txt

          ( FMOVE -- functional intersegment move                   ) HEX
        
          88 CONSTANT *MOV*  ( fn = 0 )   20 CONSTANT *AND*  ( fn = 1 )
          08 CONSTANT  *OR*  ( fn = 2 )   30 CONSTANT *XOR*  ( fn = 3 )
        
          CODE FMOVE ( fn s.seg s.off d.seg d.off length --)  AX, SI MOV
              CX POP  DI POP  ES POP  SI POP  DS POP  DX POP  AX PUSH
                                AL, # *XOR* MOV  DX, # 3 CMP  1$ JE
                                AL, #  *OR* MOV  DX, # 2 CMP  1$ JE
                                AL, # *AND* MOV  DX, # 1 CMP  1$ JE
                                AL, # *MOV* MOV               1$:
             CS: HERE 5 + , AL MOV  ( modify "[DI], AL MOV" ) 2$:
                              LODS  ES: [DI], AL MOV  DI INC  2$ LOOP
              AX, CS MOV  ES, AX MOV  DS, AX MOV  SI POP  NEXT,  END-CODE
        
                                                                    -->
      • forsalebypwner 4 days ago ago

        Is that loss?

        • fwip 4 days ago ago

          No.

        • joshu 4 days ago ago

          well played

    • spott 4 days ago ago

      Forth I assume uses reverse polish notation: arguments before the operator.

      3 4 +

      for example, would return 7.

      • zabzonk 4 days ago ago

        > would return 7

        more pedantically, it would push 7 onto the stack

        • dbcurtis 4 days ago ago

          even more pedantically, would remove 3 and 4 from the stack before pushing 7

          • DonHopkins 4 days ago ago

            Even oddly more pedantically, that's the operand stack, not to be confused with the separate return stack. >R and R> move values between the two stacks.

            On the other hand, PostScript also has a dictionary stack, which you can use to implement a Smalltalk-like object oriented programming system. And its data types and executable code are basically polymorphic homoiconic JSON (like Lisp), not raw untyped bytes like FORTH.

            https://news.ycombinator.com/item?id=22456471

            https://news.ycombinator.com/item?id=47812317

      • argimenes 4 days ago ago

        The stack is really a convenience that makes pipeline-driven programming possible in the language.

        • nagaiaida 4 days ago ago

          somewhat relatedly, shell pipelining is very amenable to being massaged into (non stack-based) concatenative programming

    • HFguy 4 days ago ago

      Forth uses RPN so the "verb" is last.

      That is, you provide the data first (I and Forth) and the command (heart) last.

      • ithkuil 4 days ago ago

        AKA FJN (Forward Japanese Notation)

      • undefined 4 days ago ago
        [deleted]
    • daureg 4 days ago ago
  • perpil 4 days ago ago

    I first thought this was some spin on May the fourth be with you. As in how Yoda might say it.

    • throw-the-towel 4 days ago ago

      Master Yoda's speech, secret solved is; an old Forth programmer is he simply.

    • sdenton4 4 days ago ago

      I doubt yoda speak is actually strict enough, but I do enjoy the idea that Yoda comes from a reverse Polish civilization.

    • weikju 4 days ago ago

      My brain tells me Yoda speak would likely be: love Forth, I do.

      But then he would also say: Forth is the path to the Light Side…

  • dwheeler 4 days ago ago

    That beautiful is.