1. 60
    Tag Proposal: Forth meta

Hi! There are quite a few posts here about Forth and other concatenative / stack languages, an average of more than one a week; maybe worthy of a forth tag? Below are 12 posts from the past 2 months; I’ll concede that there was a burst last week on May Forth (haha), and that two of these were submitted by me, but I think it’s still a significant number. (For comparison, the current proposal for an Ada tag lists 16 posts over two years.)

BTW, searching lobste.rs for Forth is really annoying, since search is case-insensitive and “forth” is a common English word; less than 10% of the results were relevant. [Edit: I was sorting by Newest; turns out Relevance works better, but was not relevant(!) to my needs.] Same goes for Factor, and I didn’t even attempt Joy or Cat. This alone might be a justification for a tag!

  1. 21

    Thanks for finding the example submissions!

    Forth seems like a good tag to me. :)

    1. 6

      So the apl tag has the advantage that “apl” is both the language and the acronym for the class of languages (“array programming languages”).

      I’m fine with forth but given that there are many Forths and Forth-like languages, perhaps concatenative would be better? Then again, Moore himself refers to various languages as “forths”, so he seems to use the word as a descriptor of an entire class of languages himself.

      1. 24

        Doesn’t the lisp tag cover a lot of different languages too? I’m fine with forth covering all forths.

        1. 4


        2. 5

          “Concatenative” is less well known than “stack based”

          1. 2

            Yeah, I had never heard the term until I ran across Factor last year. Even now I’m seeing stuff about Forth that doesn’t use the C-word, so I don’t think it’s well known. It’s also long and hard to spell ;)

            1. 4

              Let’s call them “c11e languages” and confuse everyone!

            2. 2

              Totes gonna flood “stack based” with stuff on befunge and golfscript

              (No opinions either way, I’ve just been knee deep in weird research for the last month)

            3. 3

              So the apl tag has the advantage that “apl” is both the language and the acronym for the class of languages (“array programming languages”).

              SIGAPL was originally for APL (‘Special Interest Group on A Programming Language’). Then the k people wanted to present at it as well, so it was backronymed to ‘…Array Programming Languages’. I think they were the first to pull that little trick.

              It’s not entirely clear to me how much k the language has to do with apl, but there is a shared lineage and a lot of common ground. I think the same principle applies here.

              (Though at least one person has attempted to blend the two.)

              1. 1

                I don’t think a language has to be concatenative to be a forth. Forth is stacks, primarily. Concatenation just seems to be the most optimal way to manipulate them.

                1. 2

                  My understanding is that “concatenative” is the more general term, for a system where each function modifies the state of computation and passes it on to the next … not necessarily with a stack. Whereas a stack language ends up concatenative by its nature.

                  1. 2

                    That is actually fair enough and I didn’t think about my statement too deeply.

              2. 3

                I do not know if upvoting the proposal is similar to casting the vote, but I am certainly for it.

                It would represent a family of languages with forth-like syntax and other features. You are also correct that is very difficult to search for ‘forth’ as the word itself too common.

                Some of the technologies we use today, I am sure, are accidental in their prevalence. And it is incredibly useful to understand in systemic way (not just by occasional glance) – other programming paradigms, design and expressiveness approaches.

                Having these other approaches and implementations being organized by a separate tag, makes Lobsters into a better knowledge base.

                1. 1

                  That would great, it could be a sort of catch-all umbrella for RPN/Stack languages, similarly to how the lisp tag is being used for that other family of languages.