Hacker News new | past | comments | ask | show | jobs | submit login

In that list, Clojure is the language that excites me the most. It's a modern, pragmatic Lisp ready for the multiprocessor world. You can do a lot worse than trying it out if you haven't already.



Lot of people claim that STM in Clojure is the big reason to use it. To me it's been a lot simpler:

a) I want some macros to use for JVM-based projects

b) I like using Emacs + SLIME (it's the best development environment, period).

Unfortunately the noise of Rails fanboys migrating to it with their usual laundry list of complaints ("no IDE support", "no good web framework") is annoying. I have nothing against Ruby in general (in fact I really like the language) and Rails in specific (I know people who love it), but the whole reduction of programming languages to merely web frameworks is a setback for software engineering. That mindset has now been spreading: not only is it impossible to hear about Ruby without "Rails" mentioned next to it, it's now common to hear "Python/Django" and "Scala/Lift".

Web is just a UI layer, a fairly mundane and boring part of an application. Lisp has very little to show for these sorts of applications, but has a lot to show for more science/engineering intensive ones. You hear all the time about webapps being re-written into PHP and other blub languages, but the community is interpreting it as a setback for the languages (and an argument in favour of using blub from the start) rather than the fact that advanced language features make really little difference for web development.


Are "Rails fanboys" really complaining about lack of IDE support? I was under the impression that IDEs weren't especially popular among Rails programmers (as compared to Vim and TextMate).


Yeah, I should probably have been less vitriolic and more refined. The IDE complaints mostly come from Java migrants and people who are looking out for the newbies. Honestly, using an IDE (or at the other extreme, vi) for a Lisp is like using Latin to write in Russian: you can do it, but you're better off if you take some time initially to learn Cyrillics.

(Doug Hoyte disagrees with me on the vi point, arguing in his book that Lisp is expressive enough not to require any editor support. I respectfully disagree.)


I don't think strlen is being accurate by saying its "Ruby fanboys" who are the source of a lot of criticism. Clojure does have a lot of former Java developers who aren't used to non-IDE development on the JVM. Others don't like the apparent complexity Emacs comes with (Emacs, Slime, Swank, Paredit? All I want to do is enter some ascii characters and run a compiler!) That said, I think Clojure is improving in those fronts with broader editor support, guides to getting Emacs set up, and a growing list of libraries.


I think there's at least one clojure plug-in for each of the main Java IDEs:

    Enclojure (NetBeans)
    Counterclockwise (Eclipse)
    La Clojure (JetBrains)
The other thing that has really improved immensely is "project management" (right term?) provided by Leiningen. Now you can basically do "lein new proj_name", then edit a simple config file in the created directory and do "lein deps" to get all the packages that you referenced.


Plus "lein swank," which once you've got slime set up is an absolute godsend. The two things I do first on a new machine are install clbuild to get slime and the emacs config, then leiningen to get clojure working. It does make things nice and simple.


"lein swank" is reason enough (for me) to use Clojure


Though whining is annoying, publicizing a gap - an unsatisfied need - can encourage someone to fill it. a problem is an opportunity

A web framework is still useful, even if many people assess a language purely in terms of it.


I was playing with Clojure this last weekend, and so far have enjoyed it. I ran through a dozen or so project euler problems, but am now looking for something that takes longer than 10 lines of code to complete.

HN, what other projects do you do to familiarize yourself with a new language?


I found going through "Introduction to Algorithms" and porting the algorithms in the book to <new language> a great way to get used to a new language.


Okasaki's _Purely Functional Data Structures_ can be a good choice, too - depends on the language.


Write a game. ASCII Tetris or Pac Man or Space Invaders would be fine. Whether that is a simple afternoon activity or a somewhat epic undertaking might tell you something about the language.


I've been writing a couple of small games with Clojure + Swing as a way of learning Clojure, and it's been very smooth so far. I haven't even touched concurrency or macros yet but the basic language feels even more consistent and logical than Ruby.


Read some of the Clojure code, both in main and in contrib.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: