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.

Reply via email to