

Why You Should Learn "Weird" Languages - gnosis
http://alexthornton.net/Blog.aspx/2011/02/19/Why-You-Should-Learn-Weird-Languages

======
kunjaan
There is a hug mismatch between the title of the post and the actual content.

This is the only piece of content that talks about the why "you should
therefore consider spending some time experimenting with “weird” programming
languages.":

1\. "your goal is to broaden your mind about programming languages"

2\. "the mainstream offers fewer opportunities than the fringes"

3\. "you can future-proof your understanding of the mainstream by being aware
of what’s happening at the fringes"

4\. "“weird” programming languages gradually infiltrate mainstream languages"

5\. "broaden my understanding of programming as a discipline"

6\. " goal is to open your mind in ways it hadn’t been previously."

7\. " More learning is better, but some learning is infinitely better than
non"

Then the post goes on to superficially discuss one or two features about the
some languages. The author provides no interesting projects that he has built.
He doesn't tell us what languages were good for what kinds of applications. It
would help a lot if he told us what he built, linked the source, talked about
THAT experience. And the most frustrating bit being that he hardly explains
his adjectives like "weird" "fringe" "useful".

~~~
sambeau
I like the idea of a hug mismatch. Its like a couple hesitant to embrace and
miss-timing it so that there arms get all muddled.

It actually fits the scenario: title and content badly hugging.

:)

------
stephth
_An important part of spending time with “weird” languages is to acclimate
yourself to seeing syntax as the least important battle you face; the broader
ideas are always more important, in my view, than the low-level syntax._

This article is one of the most insightful story of personal experiences in
programming that I've read in a while. Thanks gnosis.

------
stewbrew
the examples for weird languages he puts forward are slightly disappointing -
with the exception of haskell maybe. but then, even haskell is the mainstream
version of ideas that where first put into practice someplace else.

~~~
gaius
Only on HN is Haskell "mainstream" :-)

~~~
zem
well, haskell itself may not be mainstream, but the author himself mentions
mainstream languages like c# borrowing features from it. J, on the other hand,
would be the sort of language I expected the author to be talking about -
built around paradigm that has _not_ worked its way into mainstream languages
yet, but which nevertheless contains useful ways to think about and attack
real problems.

~~~
gaius
Not "borrowing" exactly, Simon Peyton-Jones is a full-time employee of
Microsoft Research.

And for J, that's an APL derivative isn't it? APL was a mainstream language
once, still used a lot in banking, particularly in fixed income.

~~~
silentbicycle
Yes. It (<http://jsoftware.com/>) was released under the GPL recently.

There's also Kona (<http://github.com/kevinlawler/kona>), an ISC-licensed
implementation of K.

------
mirkules
As a graduate we were forced to learn CLIPS, a rule-based programming
language. Not only is it a very different language to master and program well
in, but any sort of Google search for CLIPS results in millions of video clips
with no mention of the language (at least that's how it was back in the day, I
guess there's much more support now). Try learning a language without Google -
someone on HN once said, "without Google I wouldn't be a programmer."

------
tobylane
As a complete outsider (1% web programmer, 99% lazy) I'd say that something
lower language would be good. It's probably different to what you've done
before. Something like Lua? I don't even know if this counts as low-level. You
don't know of any thing to do with your work, but by the time you've learnt,
you'll either know of one or have thought of one. Like a brainfuck intepreter.
Yeah.. just do brainfuck for a day and get back to your wonderful Objective C.

------
michaelochurch
None of these languages seem "weird" to me. At all. Does that make me
supremely weird?

~~~
zem
no, i was thinking the same. they're pretty much all in the first circle
outside the mainstream. i was hoping for the second circle of unusualness (J,
Factor, Unicon, Oz, ...) - practical languages with useful but "weird"
features that _haven't_ bled their way into the more mainstream languages yet.

~~~
elehack
I spent a semester in Oz in college. It forever changed the way I think about
parallelism, to the point where it's not uncommon for me to implement a very
rough equivalent of dataflow variables in other languages.

Some of its concepts do show up, though; Futures in Java, Qt, and I believe
.NET are a very crude analog of dataflow variables (crude largely because they
don't support Prolog-style unification like all Oz variables do).

------
wglb
Dude, you don't know weird. Where is RPG III? Bliss-32? Syclops? GOOFBOL?

You are listing some pretty mainstream ones.

