On Mar 20, 2006, at 12:24 PM, Bryan Sant wrote:
As far as java being verbose, it's about on par with object-oriented
C++ code. You'll never have a type-safe language that's as compact as
a dynamic language because you're always declaring types. It's a
trade-off. However, with a modern IDE, the task is trival. And you
make up any time that may have been lost (I don't believe that any is
with an IDE), by avoiding many runtime errors that the compiler finds
for you. As well as avoiding the need to write hundreds of unit tests
that do little more than validate type-safety because your dynamic
language of choice doesn't do so.
So, actually, when you factor in the time to write type-safe-ish unit
tests for your ruby or python project, you're actually more verbose
than Java.
Although I agree that the amount of time that it takes to enter type
annotations is not really significant, that's not really the point.
For some tasks, working around the type system takes a significant
amount of extra logic. Witness Design Patterns, a significant number
of which are methods of doing things in statically-typed languages
that require no extra thought in dynamically-typed languages. IDEs
don't really do anything to alleviate this.
And another point: statically-typed languages in the ML and Haskell
families are often more compact than dynamically-typed languages.
Types are (mostly) inferred, so there are very few type annotations
in the code. There is also special syntax for pattern matching that
makes for very succinct code in situations where it's useful.
The verbosity of a language is not inherently tied to its type
system. It only seems that way because of the current crop of
languages in the mainstream. The choice of dynamic vs. static typing
ought to be made on its own merits, and both are appropriate in
different situations. The ability to create powerful abstractions
(and thus write succinct code) is almost always a win, though.
--Levi
/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/