4 ms·
Haskell is surprisingly fun to hack about in. You've got a fast dev environment, a huge selection of libraries to play with, and a syntax that can pretty much b
by pook 16y ago
Haskell is surprisingly fun to hack about in. You've got a fast dev environment, a huge selection of libraries to play with, and a syntax that can pretty much be manipulated into any style of programming you want. It's also one of the few languages in which you can tell your code works by how sexy and sleek it is.
It doesn't get as much press for tweakability as Ruby, but you can definitely muddle and muck around in Haskell for the sheer sake of creating something.
Check out #haskell on Freenode. Between the category-theoretical arguments, you'll find plenty of hacking for the sake of hacking.
edit: check out http://www.willamette.edu/~fruehr/haskell/evolution.html http://www.willamette.edu/~fruehr/haskell/evolution.html and tell me you don't think such a flexible language requires a sense of play.
- gtani 16y agoBesides Haskell, lots of rubyists have diversified into clojure, scala, and erlang. FP is a powerful paradigm, you can start looking at STM and actor models. There's 3 main FP "lineages", lisp, haskell and ML. Also, F# is a really nice implementation from what I've read about it (I haven't bought VS 2010 yet). To be fair, when you're getting into concurrent structures, you have a fundamental conflict with the OP's criteria. (Scala and haskell will teach you a lot about language design.) "less of an emphasis on, e.g., doing things "the right way", programming language theory, strict enforcement of rules" ------------- Some other language i find interesting, tho i haven't written much or any code: factor, ioke, objective-C, J, common lisp, scheme ------------ sounds like you shd go to emerging languages: http://emerginglangs.com/speakers/ http://emerginglangs.com/speakers/
- pook 16y agoI haven't used F#, but I do love Ocaml. I haven't coded anywhere near enough in it, compared to how cool I find it. Have you seen how complete Ocaml's coverage on PLEAC is? http://pleac.sourceforge.net/pleac_ocaml/index.html http://pleac.sourceforge.net/pleac_ocaml/index.html
- CarlSmotricz 16y agoI second gtani's suggestion of clojure. It's a lisp that takes some of the pain out of lisp by using fewer parentheses where possible, and different kinds of parentheses (round, square and squiggly) so it's a little easier to eyeball where groupings start and end. Also, good support and interconversion of highly useful data types: vector, hashmap and set, among other things. It's very FP but you can mutate state explicitly if you insist. It runs on the JVM so performance is very good (much faster than Ruby and Groovy) and Java interop is excellent, even better than with Scala. So you have access to the whole wealth of Java library code. A big advantage is the very strong concurrency support. Laziness and FP give you some multi-core goodness with no effort, and the STM functionality gives you cleaner and more foolproof inter-activity synchronization. In other words, recommended.
- mark_l_watson 16y agoClojure is nice (I have been using it more often for customer work). For me, Clojure still lacks the totally immersive feeling of using (as examples) Gambit-C with Marc Feeley's Emacs support (unbelievably sweet error handling/debugger) or Common Lisp with Slime. Clojure with swank-clojure is nice, but is still running in second place. All that said, given a free choice, I use Ruby for most tasks.