1. 34
  1.  

  2. 11

    Most lists of “weird programming languages” get bogged down in brainfuck and brainfuck skins. I like that this one doesn’t!

    1. 11

      I agree. Although I feel that APL and especially Lisp don’t really fit with the rest of the list - those are languages that (some) people really do want to program in.

      1. 7

        I think a listicle like this about unusual languages people actually use would be really interesting. Probably something like

        • Forth
        • APL/J/K
        • Inform7
        • Orca
        • Golfscript (stretching it, I know)

        Damn I’ve heard of so many bizarre languages

        1. 10

          PostScript.

          1. 2

            Any good resources on PS? I’ve heard… rumors, but never investigated myself.

            1. 7

              I’m dead tired and can’t find the docs before sleep, but PostScript is an awesome concatenative language and sincerely my favorite in the genre other than Factor. It’s not hard. I’ll find links to the guides in the morning. You can literally code in the GhostScript REPL meanwhile if you want to play.

              1. 3

                I really like what I’ve read of Bill Casselman’s Mathematical Illustrations which covers PostScript and some fun geometry.

                1. 1

                  Back when I had to use PostScript for work, the language reference was the best document I was able to find.

                  1. 1

                    Unfortunately no, like so many of my opinions I’ve gotten it from The Internet.

                    I believe my primary memory of PostScript being used for programming is from this comment by JWZ: http://regex.info/blog/2006-09-15/247#comment-3085

                2. 3

                  And there’s INRAC (used for at least two, possibly three, commercial products that I know of) where flow control is non-deterministic.

                  1. 2

                    I saw you mention INRAC on the alien languages ask, which to my eternal shame I didn’t notice until two weeks later. What are some resources for learning about it as an outsider? Sounds really interesting!

                    1. 4

                      Unfortunately, there isn’t much available and most of the references I’ve come across just mention INRAC. I think, aside from the original creator of INRAC (William Chamberlain) I think I’ve inadvertently became an INRAC expert:

                      Deconstruction Racter

                      The Psychotherapy of Racter, or The Descent Into Madness of Sean Conner

                      The Psychotherapy of Racter, or The Further Descent Into Madness of Sean Conner

                      INRAC, the mind bending implementation language of Racter

                      WTF INRAC?

                      So how do you determine undefined behavior in a language you are reverse engineering?

                  2. 2

                    Hey, if the software historian / archeologist hasn’t heard of it…

                    For that hypothetical listicle, I’d consider adding one or two of your modelling languages - like, TLA+ looks pretty magical to people who are not you ;-). Also, I’d consider - LaTeX is not actually that uncommon, but very different from other languages in both appearance and semantics. (Maybe TikZ, but I’m not sure that counts as a programming language.)

                    Something like Haskell is probably too common, but Prolog might make the list?

                    [Quick EDIT: also, maybe assembly for the original MIPS CPUs, where you could apparently read the old value of a register if you manage to execute the instruction before the previous instruction has actually written the new value? It doesn’t look too evil, but…]

                    … do people use Orca?

                    1. 3

                      … do people use Orca?

                      @rwhaling introduced me to it and was using it for his synth music, so at least one person uses it :P

                      1. 2

                        Re MIPS, you may be thinking of https://en.m.wikipedia.org/wiki/Delay_slots. For some reason this is still being taught in introductory computing classes at university.

                        1. 2

                          [Quick EDIT: also, maybe assembly for the original MIPS CPUs, where you could apparently read the old value of a register if you manage to execute the instruction before the previous instruction has actually written the new value? It doesn’t look too evil, but…]

                          Were you thinking of the divide and multiply instructions? Some instruction sequences give unpredictable results.

                          1. 2

                            I was thinking of https://retrocomputing.stackexchange.com/questions/17598/did-any-cpu-ever-expose-load-delays. (kameliya’s Wikipedia page is a little less informative; note that sufficiently-embedded processors may be able to ensure that an interrupt doesn’t happen. Which would allow one to write rather mind-bending code.)

                        2. 2

                          SQL is based around relationships (in the mathematical sense) and is the most popular goofy programming language no one thinks about.

                          Lex/Yacc let you write half your program as a cfg and the rest in C, a language/tool chain that again no one thinks of in these lists.

                          Wolfram is based on term rewriting and is somewhat popular and extensively used in physics.

                          Erlang is based around a distributed model that is again something few other languages support naively.

                          Most of the ‘esoteric’ language lists are list of ‘languages that do the same thing as C but poorly’.

                          1. 1

                            MiniZinc is also worth an include on that list.

                            1. 1

                              Factor is a really nice forth dialect.

                              1. 1

                                Yes, I was also just about to suggest Inform 7. It’s fantastic.

                                1. 1

                                  Golfscript (stretching it, I know)

                                  No you’re not. I want to write an implementation that is not Ruby

                                  1. 1

                                    Prolog, MUMPS

                                    1. 1

                                      Mumps, RPG…

                                    2. 1

                                      TBH I interpreted the inclusion of CL on this list as a trolling attempt toward lispers.

                                  2. 11

                                    #21. Scala

                                    A language with a feel of design-by-master-thesis caused by being largely designed-by-master-thesis.

                                    Characteristic is its complete disregard of ideas that may be considered good practices for adoption beyond enthusiasts, like “having documentation”, “shipping a new release with working IDE support”, or “not abandoning the ecosystem Android, due to ‘nah, we all have iPhones’ core team”.

                                    The language recently addressed its critics’ biggest complaint – too many features – by developing a successor that adds more features.

                                    1. 4

                                      Malbolge makes Intercal look like a polite joke. It moves from esoteric and even unfriendly to absolutely hostile.

                                      1. 3

                                        Befunge has always been my favorite esoteric language. Glad to see it was on the list!

                                        1. 2

                                          You might enjoy hexagony!

                                        2. 3

                                          Malboge (and Piet) has always been fascinating for me but it also feel like a way to deep rabbit hole to fall into.

                                          PS: Why putting APL, Lisp and J on that list?

                                          1. 2

                                            Why putting APL, Lisp and J on that list?

                                            Perhaps the author felt they were intriguing or unusual.

                                          2. 2

                                            A+ trolling of lispers.

                                            1. 1

                                              Re: Whitespace, Perl has Acme::Bleach.

                                              1. 1

                                                In Nick Hornby’s High Fidelity, the protagonist describes how in his youth he recognized every single one of the band names appearing on the fly posters around town, but over the years the number of times he sees an unfamiliar band names has started to increase, and he flippantly predicts that one day he’ll be in front of a boarded-up shop window and won’t recognize a single band name, whereupon he will go home and hang himself. Every time I see one of these lists of esolangs with an entry I’d never heard of before, I think of that passage.

                                                1. 1

                                                  It’s missing tabloid, I like that one a lot:

                                                  https://github.com/thesephist/tabloid

                                                  1. 1

                                                    So, where’s FORTH, Joy, and Factor? :^)