|
Re: Bill Burke on Dynamic Language Myths and Rationalizations
|
Posted: Feb 28, 2008 9:00 PM
|
|
I think that Burke is really disinformed about dynamic languages:
- "I do wish that a statically typed dynamic language would come of age". The first version of Smalltalk was created in 1972, and the first public release was around 1980. Smalltalk is a dynamic language, and is older than Java. (I don't too much about LISP, but I think that enters in the same category).
- "Lack of type safety doesn’t scale well to large teams" Did he has some study to back that claim? In fact if you don't have tests or a good modular design, even static typed languages don't scale well on large teams. For example the "Web" is not static typed, and is the best example on scalability that I can think.
- "Dynamic Language XXXX didn’t do well against Java in XXXX benchmark" Well Burke you should read more about the history of the JVM. Before Java, most of the JVM team at Sun worked in two dynamic languages: Strongtalk (an Smalltalk with optional type annotations) and Self (a really dynamic prototype based language). Is true that static typing allows some heavy optimizations, but if you read the research papers on Strongtalk you will be surprised that they found that with some techniques the difference between having static information or not is really low. In fact, Strongtalk can do static type check, but at the VM level the type information is not used at all.
- "One of Burke's main points is that modern IDEs for statically typed languages support reliable refactorings" I worked a lot with Eclipse, and also with Smalltalk. (by the way the concept of refactoring comes from an Smalltalk tool called Refactoring Browser) Is true that the static information allows some refactorings that are difficult in dynamic languages, but in big systems even if you have static typing you can broke things specially if you have distributed components. So in the end, no matter how well the IDE checks all the static preconditions, if you don't have unit test is difficult to gain some level of confidence after a big refactoring.
|
|