Interesting line from a Paul Graham article...

by Graham Email

In the excellent collection of essays on Paul Graham's web site, there is an essay about start-up companies. One paragraph in this essay caught my eye:

During the Bubble, a lot of people predicted that startups would outsource their development to India. I think a better model for the future is David Heinemeier Hansson, who outsourced his development to a more powerful language instead.


He then goes on to point out that the capability and productivity of modern languages (he uses Python as a example) is way better than older languages such as C++.
My view on this is "absolutely", although I would caution that there is still a significant potential cost saving available by shifting work from a country with higher labour costs to a country with lower labour costs. At present a lot of CIOs are demanding significant cost savings via that route.
However, I would go one stage further. When I worked on I-CASE tool consulting in the 1990's, we found that a properly-structured project using those tools could be a factor of 4-5 times more productive than having developers code in lower-level languages. Not only that, but maintenance and enhancement used microscopic numbers of developers compared to more conventionally-built solutions.
My conclusion: if you want to be competitive, forget Python. Go for Model Driven Development tools. Developers and support staff are the biggest I.T. expense - just about everything else dropped to commodity status some time ago. MDD tools, properly deployed by people who know how to get the best out of them, offer a mchanism for allowing corporations to build I.T. solutions without using 150 drones in a warehouse in NowhereIstan. The problem with running remote development organizations is that the industry has a terrible track record of converting requirements to solutions, because of the overall lack of a precise enough language for requirements definition. Instead, we use natural language, which is terrible for requirements because it contains concepts such as "nuance" which drive software designers and developers crazy when they try to convert the requirements to software. MDD tools, if they contain a powerful and precise collection of DSLs for specification of requirements, can help to sidestep the current inefficiencies and ineffectiveness of conventional programming approaches, which IMHO are still largely stuck in the dark ages.