Programming languages you've never used

in #programming6 years ago

Alright, maybe that's not completely true. If you're particularly adventurous you might've used a few. Most will at least recognize their names. But regardless, all of these languages remain unique, and can introduce you to new mindsets and unfamiliar ideas in the world of programming. Because of this alone, I believe they're worth at least knowing about.

Figured I'd start out with a bang with: APL

If you've heard of this one before, probably the only time you've used it is to make jokes about its unreadability. And you wouldn't be wrong, as demonstrated by the above image. The image actually shows a single-line implementation of Conway's game of life (wikipedia, or web demo if that's your thing) in APL. This is a clear demonstration of the power and brevity of APL. This shortness comes with some downsides though, namely the accusation that APL is a "write only language". As in, nobody can tell what your code does besides the you because code readability is just that bad. However, the proponents of APL claim that it becomes a form of speech of its own if one takes the time to master it. APL also holds the appeal of being very close to mathematics, incorporating many common mathematical symbols. The language itself isn't the only interesting thing about APL. The name "APL" actually stands for "A Programming Language". Despite the catchy name, APL is used less and less. It's just to hard to understand, and actually really hard to type.
(programmers actually used to use special APL keyboards covered in mathematical symbols just to program in APL)

The next on the list is, well, LISP

Lisp, you'll be happy to know, is a little more readable. In fact a lot of you will probably have worked with either Lisp itself, or one of its many dialects. Lisp and its extended family are very much alive and kicking, but it still warrants a spot on this list do to its uniqueness. If you take a look at the code snippet (I mean really take a hard look) you might notice the parenthesis. This is the distinctive feature of Lisp and most of its relations. This peculiar structure is referred to as the S-expression and is the defining principle of the language. The peculiarities of this language have caused it to be accused of being "academic" or not really practical in the real world. However, many claim that learning can fundamentally alter the way you think about programming. I myself have not had the chance to undergo such an epiphany, and so I can only say results may vary.

And then there's Smalltalk

Smalltalk is another old language, which also rose to very high popularity at the time. Smalltalk is sort of the anti-APL. It was designed to bring programming to the masses through educational usage. This is shown very clearly by the way Smalltalk source code so closely resembles plain English. Smalltalk's true purpose was to make the interaction between humans and computers as seamless as possible. This new paradigm of interaction was supposed to spark a revolution in computing. Well, it didn't really, but Smalltalk was still a success for its time none the less.

Finally, Forth

Forth is perhaps one of the most interesting, not to mention unique, languages on this list. To start out with, forth is aimed at "interactive" programming on embedded systems. A sort of low-level language written in a high-level fashion. A forth interpreter itself is amazingly simple, as the language itself is amazingly simple. With Forth, instead of using variables, everything is stored on a data structure called a stack. All commands (called "words") in turn, are performed on the stack. Forth boasts being an extremely powerful, as well as flexible language. Everything you do is extensible, meaning you can sort of code-up your own programming language. You could even... I don't know... redefine the number seven as six, if you want to give yourself a headache. All in all, a pretty unique language.

And that's it

If you want to expand your programming knowledge, and you don't mind learning dead languages (I took latin, so I'm used to it), then I would definitely recommend exploring these in more detail. I hope you found this intersesting!

Sort:  

Befunge is super cool, probably not practical though. You point in the direction you want the code to go with arrows >. Code can even run vertically. It's super cool to watch it in action (where it shows what part of the code is running at the moment.