On Mar 12, 3:22 am, Mark Engelberg <mark.engelb...@gmail.com> wrote:
> I know of someone who tracked all his bugs in a year of coding in both
> Scheme (dynamic) and ML (static).  He said that there was no real
> difference.  The kind of bugs that are caught by static type systems
> are also quickly identified upon an initial run with a few basic test
> cases in a dynamic type system.  Any bug that was non-trivial to
> locate turned out to be a deep, logical error, not a surface issue
> that could be caught by a type checker.

The Erlang world has a tool called "Dialyzer" [1] which does among
other static checks also type checks. They ran it against some of the
flagship Erlang code bases which undergo extensive testing and still
they came up with places that would trigger runtime errors. [2]

Speaking of dialyzer - such a tool might be useful in the Clojure
world as well. It doesn't work on source but on bytecode level. While
I have yet to look at the JVM bytecode Clojure generates I can imagine
that some problems might be found by static analysis tools on bytecode
level. What do others think?

-nt

------------------------
[1] http://www.it.uu.se/research/group/hipe/dialyzer/
[2] http://user.it.uu.se/~kostis/Papers/war_story.pdf

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to