175 karma · joined August 7, 2009
The author then conflates Actor based concurrency with functional programming in general. Let me lay my bias on the table right now: I'm sick to death of hearing about Actors. Erlang put them on the map and I think Scala made them popular, but Scala missed the point. Erlang's actors are only one piece of its distributed-ness; there's a lot more to Erlang that lets it scale as well as it does: a VM tuned for a large number of green threads, a transparent network stack, the supervisor model etc. Scala has none of these. Not only that, but actors themselves only solve one tiny problem in the world of concurrent (really, for actors, distributed) computing. They do nothing to address shared state. Finally, neither of these languages is really, truly functional.
If the author has titled the post "Actors are Overrated" I might have agreed with it.
His first complaint is that getting started with Clojure involves starting a REPL and that this is not how actual development is done. Well, no, it isn't. It is however, where you will spend most of your time. Not only that, but the most accessible documentation on both the Ruby and Python official sites mostly involve using a REPL. Clojure's only problem is that running the REPL is slightly more involved. Also, Clojure 1.1 is not already outdated and I'm not sure where the author got this idea. 1.2 will have some great features, but AFAIK will be completely backwards compatible. I'm not sure where a beginner would even learn about 1.2 without some serious internet trolling.
Next the author complains about how difficult obtaining Clojure is difficult. There is a "Download" link right on the clojure.org homepage that lists zip files for both 1.1 and 1.0, both of which include the source. This is less difficult than getting Python or Ruby, which involves downloading and installing a pre-compiled binary or compiling it from source. Also, the author complains about 1.2 not being available, even though 1.2 has not been publicized and is still in beta; true beginners probably don't know that 1.2 even exists.
The author complains about the fact that there are a whopping three choices for IDEs for Clojure, despite the fact that each of these IDEs also have plugins for Ruby, Python and PHP. There are no fewer IDE choices for these languages. If you ask most Rubyist which IDE you should use many of them will tell you TextMate, and editor that is neither free nor cross-platform. The author then brings up Xcode; well, of course every Objective-C developer uses Xcode, they don't have much choice. Clojure's myriad of IDEs is not a problem unique to Clojure.
Build systems, again, I don't think this problem is unique to Clojure. Where is the great documenation for Rake? Or Buildr? What build system do Pythonistas even use? Seriously, I've been using Python for a while now and I have no idea if there exists a canonical build tool. Comparing these platforms to the likes of Objective-C and .NET in terms of tool support is just unfair, in my opinion.
Like I said, I agree with the spirit of the post. Clojure is not an easy language to get into, but it has very little to do with the points the author made. Much of the cognitive load involved in getting started with Clojure has to do with the fact that it's a Lisp and most programmers are used to ALGOL syntax and Object Oriented semantics. Another thing to keep in mind is that Clojure is an incredibly young language. Much, much, much younger than Python, Ruby, PHP, Objective-C or even Scala. Taking into account Clojure's youth it's amazing that it's as far as it is.
Which parts did you find frustrating? Did you use ELPA? I ask because I've been using Clojure for so long now that I don't run into a lot of hurdles setting up new development environments.
Personally I spent a long time in the Java world and then migrated to Python and Ruby. I was shocked at how easy to use many libraries are in the Python world. Libraries like Feedzirra, Mechanize, Python Twitter Tools and so on don't really have equivalents with respect to ease of use in the Java world.
edit to add: How does one even know to install SBCL and hit M-x and type slime to get started? You and I might already know these things, but it doesn't really help a stone-cold newbie, they still need a more concrete starting point.
Don't get me wrong, I love Clojure and I... well, I don't hate Emacs, but it's frustrating to have to deal with a lot of setup when one just wants to hack in a new language.
(Sorry about the multiple login, I mistakenly logged in with clickpass last time)
Which is a shame, really, because there aren't a whole lot of alternatives out there for OS X.
Why not have a more semantic approach? Why can't I tag my applications and have the application menu be more like a tag cloud and let applications be under multiple menus. At least then I could put Emacs under Editors and Programming.
Its cosmetic changes are, in my opinion, dubious at best. Window controls are on the left hand side of the Window for no good reason. The color scheme is way too dark, it made me long for the old human theme. UI elements are glitchy in places. The "Me Menu" is useless to me. And why the heck did they ever remove the startup/shutdown options from the system menu? Why are they off on their own?
I like the idea of the Ubuntu Software Center but its execution leaves a lot to be desired. Last time I checked it was just another front end to apt. Many of the packages available are totally useless to the vast majority of people.
Ubuntu One and the Ubuntu Music store, well, we'll see how those go. Personally, I've never, ever used them and I have to wonder if they're the type of things that will actually draw people to Ubuntu
And, well, I hate to come off as a curmudgeon because I really do like Ubuntu, but to say that 10.04 blows OSX and Windows 7 out of the water is just wrong. It doesn't. For instance, why does Ubuntu still have the same old application menu? Both OSX and Windows 7 (and even KDE4) have moved away from this model. The categorized, hierarchical menus that have been around forever are really unhelpful. Why can't I search this menu like in Windows 7 and KDE4? For that matter, why can't I easily search everything like I can in Windows 7 and OSX (spotlight). If they really want to compete with Windows or OSX they need to give me better ways to find, sort and organize everything on my computer.
Whatever the pros and cons of the image based system may be the immediacy and transparency of it is really enjoyable. It's a shame that the idea has been pretty much abandoned by all but a small contingent of developers.