Wednesday, February 28, 2007
Why Enterprises avoid Smalltalk...
Everyone has their own religion in terms of static vs. dynamic languages but the simple fact remains that there is a strong preference towards languages that do static typing. Some will be of the belief that this is a historical trend coming from the likes of COBOL and therefore Java is familiar in terms of the paradigm, however I believe something else is at play.
Statically typed languages work better for the masses of unmotivated programmers that fill the corridors of large enterprises. They desire for computers to catch their mistakes. Likewise the notion of any enterprise caring about individual productivity of their developers is long gone. If enterprises continue to outsource to places such as India where folks may have lots of academic credentials but otherwise are horrific at software development (overgeneralization) then the ability to at least ensure that the code when it comes back that it can compile becomes crucial.
Several weeks ago, I ran across an architect that works for a large enterprise down the street where he shared with me some interesting politically incorrect statistics on their relationship with their outsourcing firm. He has been privately tracking the amount of code they receive on a daily basis that simply won't compile. It would be intriguing if other enterprises not only captured these metrics but started to share them publicly with others.
Anyway, Dynamically typed languages do require better developers than statically typed languages. If you take a dynamically typed language such as Smalltalk and put it into the hands of someone competent then you will end up with something better. Likewise, if you put it into the hands of the average corporate software developer, it is a prediction that you will end up with a mess.
Have you ever considered how many enterprise applications would break if Garbage Collection wasn't of high quality within Java?