DEV Community

Jesse
Jesse

Posted on

Most Esoteric Language You've Used

Title pretty much sums it up.

I work using a kind of unusual proprietary language (in the sense that it has a niche audience), and am wondering what the strangest language y'all have used is. 😄

Top comments (37)

Collapse
 
jonrandy profile image
Jon Randy 🎖️ • Edited

I dabbled in Rockstar for fun - codewithrockstar.com - I guess that makes me a rockstar developer! 😛

I've also written in Z80 assembly language which I guess is quite unusual

Collapse
 
miketalbot profile image
Mike Talbot ⭐

Woo Rockstar is hilariously cool. I think my weirdest assembler coding is ARM RISC on an Acorn Archimedes.

Collapse
 
leonimella profile image
Leoni Mella • Edited

Elixir. Not super esoteric, but the least used language that I use on work.

But I use a PHP framework called Phalcon and that I consider to much esoteric

Collapse
 
kelvinmai profile image
Kelvin Mai

viml, clojure and bash for me

Collapse
 
jldohmann profile image
Jesse

I have a couple of colleagues who love Clojure, and it's on my list to check out if/when I ever get enough time outside of the other projects in my queue. The language I currently use is also LISP-inspired, but Clojure is more like a true LISP 😄

Collapse
 
kelvinmai profile image
Kelvin Mai

Oh yeah, I love clojure. But lisp is super esoteric when you first go in for most programmers

Thread Thread
 
jldohmann profile image
Jesse

Maybe for most, but I think it'll be pretty easy for me to pick up tbh. I use a symbolic functional language that has a lot of similarities

Collapse
 
ivanpierre profile image
Ivan Pierre

For sure.

Collapse
 
eljayadobe profile image
Eljay-Adobe

For real applications, I think my most esoteric programming languages I have used have been: Prolog, Adam, Eve0.8, Eve2.

Prolog is a declarative language of relations, which solves for queries. I used it when I was a linguistics major. It was created by Alain Colmerauer and Robert Kowalski.

Adam is a declarative language of relations and constraints, which solves for state. It was created by Sean Parent.

Eve0.8 and Eve2 are declarative layout languages, for describing where static text, buttons, edit fields, pulldown, columns, rows, et cetera all go. They have similarities to WPF XAML. Both were also created by Sean Parent.

For toy programs, I've used quite a few of the well known different (and silly) programming languages.

Collapse
 
nathanminchow profile image
Nathan Minchow

I used Prolog in a programming languages course in college.

The class was supposed to introduce us to how different languages approached similar problems. I was able to make the switch to functional programming with Haskell pretty easily, but Prolog did not click.

Collapse
 
neilmadden profile image
Neil Madden

POP-11, which I used for a few years at university. It's an extraordinarily flexible language which is now a mostly forgotten relic of old AI departments. It had its own editor, Ved, which was primarily distinguished by being even harder to exit than Vim (I remember resorting to kill -9 on more than one occasion).

Collapse
 
sam_ferree profile image
Sam Ferree

Depends on your definition of “use” but I try to complete as many programming challenges as I can in Befunge, or Funge++ my procedural extension.

I wrote a template engine called Candle that was inspired by Razor, but used CSV files as the view model and wasn’t specific to html. A company I worked for used that all the time for data conversion jobs in a smattering of ways. I originally developed it to take CSV output from one system and project it onto an XML template for upload into another system. Saved the company like $40k in consulting fees and they ended up using it for a whole bunch of stuff.

Wish I still had the compiler for it, it was pretty handy given the amount of data that lives only in spreadsheets...

Collapse
 
jldohmann profile image
Jesse

That sounds incredibly useful, I really hope you got a hefty raise for saving them so much $$

Collapse
 
ashleyjsheridan profile image
Ashley Sheridan

Does XSLT count? I've never seen anyone else actually use it, but I used to use it quite a bit for documentation; same documentation needed to be on an internal wiki in wiki format, then html and markdown for a blog. Using XML and XSLT seemed logical at the time.

I've also used it to turn a custom content format sent for i18n into SQL statements to re-import into a DB.

Not how I'd do it now though.

Collapse
 
jldohmann profile image
Jesse

Yes, absolutely it counts! 😄 I work on documentation tools, and I've worked with my fair share of obscure document formats lol

Collapse
 
amananandrai profile image
amananandrai

I have used Brainf**k, Arnold C and Piet.


Piet is a language whose code looks like an abstract painting.
Collapse
 
jldohmann profile image
Jesse

Wow, I had no idea a language like Piet existed 😮, I'm definitely going to check it out--it's right up my alley!

Collapse
 
tomfa profile image
Tomas Fagerbekk • Edited
Collapse
 
jldohmann profile image
Jesse

Ok, this video is straight up amazing, thanks for sharing!

Collapse
 
skydevht profile image
Holy-Elie Scaïde

Definitely bash

Collapse
 
jldohmann profile image
Jesse

ngl, I always thought bash was well known/widely used. Maybe it's less common than I thought, or maybe just decreased in use over the years

Collapse
 
ahferroin7 profile image
Austin S. Hemmelgarn

This is just my perspective, but despite bash (and POSIX shell scriptt in a more general sense) being widely used and relatively well known, I'd actually still consider it a somewhat esoteric language simply because of how drastically different it is from most mainstream programming languages.

There are all kinds of strange quirks and odd holdovers from the largely organic development of the language which make it difficult for people to learn and use in a lot of cases. Examples of this that come to mind include:

  • It's comparatively trivial to use computed variable names without using maps/dictionaries/hashes.
  • A large number of metacharacters have behavior that's dependent on their context, sometimes including what adjacent whitespace they have (see ! in the context of the conditional in an if statement for a really good example, depending on the exact shell and how you put whitespace around it, it's either a command history lookup, a negation of the condition, or a syntax error).
  • Statements resulting in errors don't terminate the script executing them (except that on some rare occasions they actually do) unless you configure the shell to have them work that way.
  • Controlled error propagation requires a non-negligible amount of code and has no side-channel (you can only do it through return codes or variables, there is no dedicated concept of an exception/error that can be caught like in many languages).
  • Errors in pipelines are dependent on later commands in the pipeline for error propagation, and most commands just eat the error.
Thread Thread
 
jldohmann profile image
Jesse

Loved reading this comment, thanks for sharing all this!