Hi Curtis, I get my fuzzies from at least a few places: 1. bottom-up, interactive development. This means frequent testing (at the REPL) of individual or small sets of functions, as I write them. 2. assertions liberally sprinkled in key places. 3. multimethods that are difficult to call with the wrong type of arguments.
I don't miss compiler-generated errors much, since the equivalent runtime errors will typically be triggered the first time a given code path is executed, and by (1) this is usually soon after I've written the code (often much sooner than I would have compiled a corresponding C++ file). Also, keep in mind that there are just not that many types of Clojure objects to get confused (sequences, vectors, sets, maps). Of course, maps in particular can be used to represent many different types of things (e.g., structs). To prevent bugs from confusing different types of maps, I use clojure.contrib.map-utils/safe-get extensively in the place of "get". Anyway, that's my 2 cents, but I'm sure other people can give you much more eloquent and convincing answers :) Cheers, Jason On Mar 9, 10:16 pm, zoltar <cur...@stanfordcomputing.com> wrote: > Hey everyone. I've been keeping up with developments in Clojure for a > few months now and have a question for all you long-time static typers > out there (I know you're there :) > > I really like what I read about Clojure and LISP in general and can > see the potential for great power and flexibility. I know the > advantages/disadvantages of static vs dynamic languages but I can't > help feeling like I'm losing something whenever I try Clojure. I am > admittedly brainwashed after years of C, C++ and Java but I miss the > warm fuzzies when I know the compiler has checked all the types for me > and I don't have to worry about a whole class of run-time errors. I'm > willing to give that up for the advantages Clojure gives me but I was > wondering how others have dealt with the loss of these static warm > fuzzies. I always feel a bit lost in Clojure, not knowing what types a > function expects or what it will return. I suppose this goes away in > time but any advice is appreciated. > > Curtis --~--~---------~--~----~------------~-------~--~----~ 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 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 -~----------~----~----~----~------~----~------~--~---