
Static typing considered harmful - pius
http://blog.jayfields.com/2008/02/static-typing-considered-harmful.html
======
stcredzero
I work in a Smalltalk shop, where we extend and maintain an application that
has been around over a decade. During the maintenance part of our job, it
would be really nice to have type declarations on variables. For maintenance,
the more dependable information we have, the better! The fewer things that can
escape as runtime exceptions, the better! Not having static typing makes new
development faster, but maintenance is harder. What would be ideal is an
optional typing system like Strongtalk. As parts of the system mature, they
would become statically typed. This gives us the best of both worlds.

~~~
pretzel
I agree with this, being able to do both would be best. For my PhD I have been
using various AI techniques to get information out of Computational Fluid
Dynamic simulations. Initially I wrote a whole bunch of scripts in python to
do various tasks, eg make data files, monitor the progress of a simulation and
extracting and processing data. Then I wrote more scripts to tie these scripts
together (automate the progress of a CFD) and then more scripts that tied all
these together, automating many runs simultaneous CFD runs and teaching the
results to neural nets.

In the end it was hell. I had data going everywhere in 3 and 4D arrays, was
getting confused which data was input data and which was output data and
forgetting the return type of functions. I rewrote it all in Java and though
it took some time, was definitely worth it. Creating a nice framework where
you can label everything and see it in front of you makes understanding what
you have done much easier, especially with Java's generics and a good ide that
can predict what you want to type.

I got a lot done at the start, and that is thanks to python. But to understand
what is going on and thus be able to tweak stuff you haven't touched in months
or years, self-documentation in the form of a good type system is invaluable.

Now if only there were a language that I could write a thesis in quickly...

------
SamReidHughes
"Confined to the type system" is funny language. Which type system? I have
personally never felt confined to any type system except for C++'s and Java's.
And even then, it's not so much the type system as it is the verbiage needed
to define new types. I don't mean to go all Haskell-zealot on this comment's
readers, but Haskell's would be an example of a type system where I have not
felt confined. I am confined in the sense that I am confined to the three
dimensions of this universe, but not any more than that. Wanting to violate
its type system would be like wanting to walk in the direction of the fourth
dimension. But then again, you can (and should not) violate its type system if
you really want to do so.

Also, static typing can help with testing, since if you know your types, you
have handy tools like QuickCheck that you can use.

> "Type verification provides very little confidence that an application
> works."

So what? It makes finding errors and fixing them faster and easier. And it
makes making changes easier, unless you're changing the behavior of stateful
objects.

