On Wednesday, June 20, 2012 11:07:16 PM UTC-5, Jack Moffitt wrote: > > > So taking up the task of insuring correctness/consistency but leaving > aside > > static typing as is typically practiced. How can we best catch errors > and > > inconsistencies in our code before our end users do? How can we do this > > better than any competing system (like Haskell)? How quickly can errors > be > > caught - run time, compile time, edit time? > > Dialyzer (a tool widely used in Erlang) may provide some ideas in this > direction. It can be used to infer types and to check for type > violations, in some cases without any annotations. > > I don't think it's quite what you want, but like I said, perhaps more > food for thought. > > More interesting is the work Kostis et al have done with Purity > (http://user.it.uu.se/~kostis/Papers/purity.pdf) which uses static > analysis to determine whether functions are referentially transparent > in order to have user-defined guard functions for Erlang's pattern > matching. > > If you look at the other tools he and his colleagues have made > (http://www.erlang-factory.com/upload/presentations/347/Kostis.pdf) > you'll see that the Clojure community has already been busy along the > same lines (test.generative, the various semi-automated refactoring > tools, etc). > > jack. >
Very interesting Jack I will be looking into this myself. Any work in this direction could really make a difference for clojure. I don't doubt that such potential benefit is a motivation behind the work of whomever is doing these tools. I think in particular the purest the code is. The easier such analysis should be. Dealing with state makes those kind of analysis much more complicated. One other area that I see that would be very interesting is having a completely new browsing IDE. I believe the best functions are small functions, and I still find code where functions are following each other in a sequential fashion in a way that aids reading comprehension. And that is good if we are trying to understand this one thread. But what about other threads. Static analysis may be able to bring together threads of functions that "tell" any number stories by placing related functions on the same screen. Arturo -- 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