Hi, As an occasional Clojure user, and someone who's used Common Lisp a lot, I'd venture that Clojure is a good first choice. But let me metion areas of difficulty first. Geoffrey Teale discussed the big things, so let me mention some little ones:
- Java's classpath currently demands that you respect its inflexibility. If you have a problem with a library which seems to work for everyone else, the classpath is a big thing to check. (Clojure's add-classpath should increase its flexibility. But people aren't supposed to depend on it; and I noticed it interacts weirdly with Java's database manager, JDBC. Last week, JDBC promised it knew of my MySQL lib which I loaded using add-classpath; but when it came time to actually pull data, it complained that it didn't have the library loaded.) - Also, Java prioritizes security over usability. Which I also recently ran into: <http://my.opera.com/karmazilla/blog/how-to-grab-the-certificate-from- a-website-and-import-it-with-java-keytool> That said, I would've been best served by learning Clojure or Common Lisp first. (Or flexible ancestors like Lisp Machine lisp. Not Scheme though.) Due to whatever quirks in my personality. For me, Clojure can be engrossing like a good video game; I'm not always happy (maybe I'm coasting along and then the big boss kills me a few times, and I have to figure out how to defeat or bypass it), but it's at least not unnecessarily boring. In addition to the all-important video game metric, you get to interop with the normal world through Java/.net/etc, and I'm sure you'll meet with the approval of at least some theoreticians. Clojure may also help you evaluate other languages better. There's some advantages Common Lisp holds over Clojure (and vice- versa), but the ones most important to me are dwindling. For instance, CL's multimethods have really nice features. I use them regularly for web programming. However, Mikel Evins is releasing an interesting Clojure library for this called Categories. (Not that I know much about it.) http://mikelevins.livejournal.com/ Hope this helps, Tayssir On Dec 1, 6:38 am, Towle <towle.m...@gmail.com> wrote: > Hi all, > > Thanks for taking the time to read my post. I'm interested to get some > opinions from experienced Clojure programmers on whether the language > would be a good first language to learn, or rather to learn in-depth. > I have minimal experienced with more common languages like Java, HTML, > and C++, but having the personality I do, felt compelled to shop > around a bit before choosing a first language to learn seriously on a > deep and intuitive level-- perhaps my odd notion of there being a > connection between a programmer and the first language s/he > understands on that high of a level. So after shopping around > thoroughly and picking up bits about on theoretical computer science > and the history of programming languages, I decided to pick up a Lisp; > I'm intrigued by the greater concept/idea behind the Lisp family of > languages. > > After a long while trying to figure out which of the Lisps would be a > good first choice, I stumbled across Clojure and immediately thought > it a brilliant idea, conceding of course that at my current level of > knowledge, I likely have no idea what a brilliant idea in computer > programming looks like. Regardless, it still feels brilliant. > > As I see it, among other features of the language, the idea of a Lisp > designed to be a capable choice for "real-world" code applications, > that is a Lisp which embodies the spirit of that family of languages > yet one which resolves many of the "practicality" complaints which > stand as hurdles on a Lisp's path to real-world use. For my situation, > that of a student who wants both a) to learn a first language I can > have a real, intellectual appreciation for and b) to begin the journey > to "expertise" in a language it would be practical to code web > applications in. > > So, Clojure programmers, am I wrong? Should I pass on Clojure in favor > of another langauge? Or learn Common Lisp or Scheme first, then try my > hand at Clojure? Am I mistaken for a different reason? Or perhaps > there are some criteria I should consider before diving in? > > Thanks in advance, and again for taking the time to read. > --Towle -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en