[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Lightness vs. Largeness



Quoth Dan Weinreb on Thursday, 6 December:

: Me too, but my current opinion is that the next time I write a
: 100,000-line application, I'm going to use type declarations
: everywhere I can, if the langauge makes them available (whether
: mandatory or optional).  I've really changed my mind on this over the
: years.  Partly it's because type declarations sometimes catch
: programming mistakes statically, and partly it's because they make
: programs easier to read.

The first is offset by hindley-milne/martin-loeff type inference
systems.  I'm skeptical about the second.  It could easily be handled
by *gack* hungarian notation!

: (Maybe someday I'll get
: for Xmas a tool that creates the UML diagrams...)

That would be TogetherJ, best round-trip UML-Java tool I know.  Bloody
expensive however.  Since I've sworn-off warez, I miss it dearly.

While I'm posting, here's my 5-dimensional test of lightness for a
language *implementation* (which is of much more practical importance
than the weight of the language itself):

How many lines of code does it take to pop-up a "Hello, world.  [OK]"
dialog?  (Substitute your most trival domain-specific task here.)

How long does it take a neophyte to learn to write that code?

How long did it take to download/install the environment so the code
ran?

How long did it take for the code to run?

What was the high-water memory mark when it ran?

I can see merit in adding another dimension, lightness qua formal
semantic tractability.  But it's more difficult to define a trivial
metric along this dimension, and there seems to be a negative
correlation between lightness along this dimension and lightness along
the others mentioned.