Live data from Hacker News

Ask HN: What "exotic" language to learn?

news.ycombinator.com

11–20 of 25 posts

Re: Ask HN: What "exotic" language to learn?

#13
Goodness, most of those languages (with the exception of Forth and possibly Lisp) are really only interesting for historical reasons. If you're interested in seeing where the wind is blowing, you should have a look at Agda (http://wiki.portal.chalmers.se/agda/). If you have any questions, come talk to us on freenode/#agda!

Re: Ask HN: What "exotic" language to learn?

#15
The only one on your list worth learning is Erlang. However, there is a JVM language called Clojure that is a form of LISP and is very worthwhile, but the main reason for learning Clojure is not that it is a form of LISP, but that, like Erlang, it deals with the issue of how to build highly scalable concurrent applications. A less exotic path to the same thing would be to use Groovy along with the Apache Camel library. Or to use Scala along with Akka which essentially is an implementation of Erlang's actorsystems in Scala.

J is an interesting suggestion, but I think that it is best learned along with another more conventional functional language such as Scala or Erlang. J was really innovative back in the 1960s when it was called APL, but now it is a bit of a niche language although still highly useful for financial applications.

Re: Ask HN: What "exotic" language to learn?

#16
Clojure or Haskell would be my choices, depending on how into static typing you are or how interested in lisp you are. I really would want to learn both, and if that's an eventual goal, I think Clojure might be an easier first step.

Re: Ask HN: What "exotic" language to learn?

#17
I would learn Common Lisp. It's not strongly tied to a paradigm like Haskell. For the same reason I'd stay away from Clojure. I think forcing a particular view or paradigm makes a language less "exotic".

CL molds itself to the paradigm and problem domain with no bias. It allows ultimate macro power even over other Lisp dialects.

There are efficient compilers. It's not tied to the JVM so you can deploy native, but there is a JVM alternative if you want it.

Re: Ask HN: What "exotic" language to learn?

#18
Here's a real exotic language for you: F18 assembly. Different from x86 assembly, it is a RISC assembly language of 32 instructions, and is runs on a stack. F18s are tiny computers, so you're not only working at the bare metal, you're working with not a lot of bare metal: they have 64 byte-words of RAM, but because the instruction set is so terse, you can usually fit 6-9 functions in there (I've fit close to 30). If you can learn to use it, the next step would be to learn to use many of them together, in parallel. A $20 dollar chip contains 144 of these cores, and they're tightly networked.

Re: Ask HN: What "exotic" language to learn?

#19

I really think Haskell. Purity is super cool. As is functional programming in general.

If only Haskell were pure...

Since I'm being downvoted, let me clarify for the “hackers”.

By “pure”, I mean lacking unaccounted side effects (including crashing and non-termination).

I take a rather strong view, as you can tell, of what it means to “support” pure functional programming. That is, I think it is insufficient to show that your code lacks appeals to falsehood and rampant non-termination. Because your code is linked with other code from other sources, it must be shown that appeals to falsehood and rampant non-termination are in fact _impossible_.

(By “rampant non-termination” and “appeals to falsehood”, I mean the use of circular reasoning. This is distinct from structural recursion and coinduction, which can be used to do REPLs and servers.)

So yes, Virginia, there is indeed a Pure Functional Programming. But you can't do it in Haskell.

Post reply on HN