views:

756

answers:

11

Wikipedia: An esoteric programming language (sometimes shortened to esolang) is a programming language designed as a test of the boundaries of computer programming language design, as a proof of concept, or as a joke. There is usually no intention of the language being adopted for real-world programming. Such languages are often popular among hackers and hobbyists. This use of esoteric is meant to distinguish these languages from more popular programming languages. Some more popular languages may appear esoteric (in the usual sense of the word) to some, and though these could arguably be called "esoteric programming languages" too, this is not what is meant.

I think it might be worth it, just to learn a new language and go through the process, although only if you don't have anything else to do (like a real project or learning a new real language). But what does the community think? Is there some value in these languages?

+4  A: 

It depends on what you are looking to do.

If you are a language designer, then there is possibly some merrit in seeing how someone else writes new languages. In doing this you can include/deiscard ideas at will. However, for most every day programmers I would believe that your time might be better spent on something you might actually use 'in anger' at a later date.

TK
+2  A: 

They can be interesting, but your time would be better spent learning another "normal" language.

Eric Haskins
+1  A: 

My feeling is that there is always likely to be a better non-esoteric alternative if you have some time to spend learning a new language.

N8g
A: 

The opportunity cost is too high. Sure, it might be fun to learn BF or LOLCODE, but your time would be better spent refining your skills in a practical language or working on an open source project. Do you really have nothing else to do? :-)

Robby Slaughter
+4  A: 

I personally don't think there's much merit in learning a language unless you intend on using it. My may spend a month or so mastering the ins and outs of the language, but if you aren't going to use it regularly, you'll probably forget a lot of what you learned about it in a year or two. Also, because nobody uses these languages for serious work, there often aren't a lot of good libraries to support your code, so doing anything complex means you end up writing a lot of stuff that would already be done for you in most other languages. I would say spend some time learning a language that you could use on a more regular basis. If you want to learn a different kind of language, that might actually prove useful, try something like prolog, lisp, or haskell.

Kibbee
+1  A: 

It's your free time, and yours only... You have a choice to use it to expand your brain, or use it in a frivolous and flippant way. A mixture of both is probably best, you can't be 100% serious and work focused the whole time...

Since there is no functional (ie: need it for work) reason why you would want to learn something like BF or Intercal, you just have to decide whether you'd have more fun playing with one of these esoteric languages, rather than watching crap on youtube or blowing up stuff in a fps game, or whatever else you would be doing in front of the screen instead.

Arguably, there are benefits, such as learning more about programming history and culture, and understanding what makes a language tick in a way that challenges what you have learned from mainstream programming languages.

maetl
+6  A: 

Learning an esoteric language is great academic and mental exercise. Most languages are very good at one, maybe two things, i.e. Lisp is purely functional while Ruby is objective. Learning a language, even if you do not think it will be useful, provides you the opportunity to gain better understanding of those concepts and apply them back to your primary languages. Many languages are adding new features from other languages all the time and having familiarity with those concepts early will ease your entry when those new features become mainstream. Learning an esoteric language will likely not pay off directly, but it will, without a doubt, make you a stronger developer.

Barrett Conrad
Lisp isn't strictly functionally "pure" - the only thing it is pure about is using prefix notation. Common lisp has all sorts of prodedural bits, OO bits, that allow you to go all non "pure". For a pure functional - I think haskell would be the most current (descending from miranda). But for most purposes, lisps do make purer styles easy. Even scheme allows non pure functional stuff. Haskell would be described as purely functional.
Michael Neale
A: 

Learning a new language can provide you with new ways of thinking about problems and solutions. So I would say its worth it for the mind expanding experience.

grom
A: 

I have a very fun and challenging time in the 2 days I spent with INTERCAL I think esoteric programming languages are great problems to exercise your mind and this experience will expand the way you think, something I think every software developer needs.

kmilo
INTERCAL is an *obfuscated* language, which is not quite the same thing.
finnw
From wikipedia, "The earliest, and still the canonical example of an esoteric language was INTERCAL, [...]."
Jesse Millikan
+2  A: 

Learning an esoteric programming language will not help you in any way and is a waste of time. Good programmers, however, typically want to waste time on things that are totally useless and geeky, just because it's fun ;-)

You got that right. After all, the programmers are the ones who create these languages in the first place... ;)
Anders Sandvig
+2  A: 

As long as you feel good doing it - just go for it ;)