Oh, I forgot a major issue -- some unhelpful error messages, at the
moment. (There's nothing wrong with making errors; they provide
feedback on unusual or unexpected situations.) Unfortunately, I
suspect you'll have a hard time with Clojure's error messages.
Particularly if you're not used to lazy sequences (but rather eager
ones), where code doesn't necessarily execute until the last moment.

There's a couple ways I deal with this. For one thing, when something
unexpected happens when I'm hacking something out, I use a more
conservative approach, where I think things through more carefully and
modularize things better. Because the debugging cost of a bug has
increased. Other possibilities include using asserts (code which
signals an error when an assumption of yours is violated), and better
testing.

Also, I stick types onto data, and customize how they print to screen.
So for instance, an eBay order might print like this:
  #<eBay 132 paid>
emphasizing only order# and payment status, rather than its in-memory
representation as a big XML structure. And when I do want to examine
big representations, I use a "pretty printer" to format them readably.


Tayssir



On Dec 1, 4:00 pm, Tayssir John Gabbour <tayssir.j...@googlemail.com>
wrote:
> 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

Reply via email to