At 09:49 AM 6/26/01 , you wrote:
>Interestingly enough, I find it much faster to write code in
>dynamically typed languages like Lisp (or these days, Ruby of course).
>However, for reading other people's code, I find it much easier and
>faster to make sense of it if it is written in a clean statically
>typed language like Java.  This is especially true for a large
>application (e.g. > 100 classes).  

What makes code readable is a complicated thing. For me, it feels as if
minor things like naming conventions and layout conventions matter more
than they should. One of the things I like about ruby is
the_more_readable_underscore_convention. WhenILookAtJavaOrSmalltalkCode, my
initial visual impression is of density, difficult reading ahead. Does that
really make it harder for me to make sense of code? Don't know. 

However, you've given me a chance to plug an OOPSLA workshop that Ward
Cunningham, Andy Hunt, Dave Thomas, and I will be hosting at OOPSLA, two
days after the Ruby conference (and relevant to this mailing list because,
well, anything Dave Thomas and Andy Hunt do is relevant, right?)

It's called "Software Archaeology: Understanding Large Systems". Here's the
abstract:

How do you come to grips with 1,000,000 lines of code right away?

Programmers are often given a large system they?ve not seen before, 
built by people they don?t know, touched by many people since, 
documented sketchily if at all. They?re told to improve it. Their task 
might be to fix a bug, add a feature, or complete a refactoring. They 
are under time pressure, so they need to minimize the total time spent 
learning and the time spent improving. 

In this workshop, we will share techniques and approaches for 
understanding enough about a lot of code in not much time. We are 
concerned not just with speed, but also with confidence: how can 
you know you?ve made an improvement, not made the system worse?

URL for more details: <http://visibleworkings.com/archeology/> 
OOPSLA: <http://oopsla.acm.org/>


--
Brian Marick, marick / testing.com
www.testing.com - Software testing services and resources
www.testingcraft.com - Where software testers exchange techniques
www.visibleworkings.com - Adequate understanding of system internals