6 ms·
Why You Should Learn "Weird" Languages
- stewbrew 16y agothe 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 16y agoOnly on HN is Haskell "mainstream" :-)
- michaelochurch 16y agoIt's not "mainstream" but I'd expect any serious programmer to know, at least, that the language exists and a few talking points about it-- that it's statically-typed, lazy, and functional-- and why people like those properties for some uses. You don't have to be using Haskell or Lisp to be a serious programmer, but if you're using Java instead, you should know why you're using Java.
- zem 16y agowell, 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 16y agoNot "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 16y agoYes. It (http://jsoftware.com/ http://jsoftware.com/) was released under the GPL recently. There's also Kona (http://github.com/kevinlawler/kona http://github.com/kevinlawler/kona), an ISC-licensed implementation of K.
- zem 16y agomatlab has probably taken a lot of ideas from apl too, but i wouldn't really call either scientific or banking number crunching mainstream. a bit too specialised a niche for that.
- dons 16y agoHaskell is the #15 most popular language on GitHub. Scala (17), Clojure (19), Erlang (20), Go (30), OCaml (31), F# (#37). Which surprises me, since a lot of the community uses darcs..
- pimeys 16y agoHaskell or Erlang may not be so mainstream for enterprise Java or C# coders...
- michaelochurch 16y agowith the exception of haskell maybe There is Nothing weird about it; it's Just different.
- kunjaan 16y agoThere 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 16y agoI 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. :)
- michaelochurch 16y agoNone of these languages seem "weird" to me. At all. Does that make me supremely weird?
- zem 16y agono, 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 16y agoI 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).
- billswift 16y ago"Weird" depends on where you are starting from. They actually look like good first choices for someone whose previous work has been entirely procedural.
- deleted 16y ago[deleted]
- tobylane 16y agoAs 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.
- stephth 16y agoAn 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.
- mirkules 16y agoAs 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."
- wglb 16y agoDude, you don't know weird. Where is RPG III? Bliss-32? Syclops? GOOFBOL? You are listing some pretty mainstream ones.