zcaudate <z...@caudate.me> writes: > I'm a little bit miffed over this current craze of `types` and > `correctness` of programs. It smells to me of the whole `object` craze of > the last two decades.
Programming is a highly fashion-centric occupation for any number of reasons. This shouldn't be a surprise. > I agree that types (like objects) have their uses, especially in very > well defined problems, but they have got me in trouble over and over > again when I am working in an area where the goal is unclear and > requirements are constantly changing. Types are good. But they have overhead. One of the curious things about Clojure is that it can turn into a strange mix of typed and untyped. I'm building a library in clojure that, in turn, wraps a typed Java library. The types in Java are so complex that one of my desires was to simplify that away. But, ironically, I use a lot of reflection underneath to make it all work. If I had type based dispatch (i.e. and yes, I know about multimethods), I would use it lots. > However, everywhere I look, there are smug type-weenies telling me that my > dynamically typed program is bad because it cannot be `proven correct` and > not `checked by the compiler`. But they are correct. You cannot answer this because it is true. > I'm hoping to collect a few more `proofs` from the clojure community... for > example... if there is a paper on "why are type systems so bad at > classifying animals"... then please forward it on. Classifying animals is a difficult problem, although I quite liked this paper when I read it. Don't bother if you were using a metaphor! http://bioinformatics.oxfordjournals.org/content/24/13/i313.full The best source for a counter argument would be to look at the discussion comparing UML, design-driven approaches with the various agile methodologies; the "less-is-more" argument is hard to push, but it can work. For me, the main advantage is that you are not forced to build complex hierarchies just to support the type system (and this holds for Scala type languages with good type inferencing), and that having only a few abstractions makes it worthwhile adding lots of functions operating over them. Phil -- -- 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 --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.