Send to Printer

development

Programming as if it mattered

May 11, 2004 16:48:47.309

Bob Congdon points to this excellent essay that I've been meaning to discuss:

The golden rule of programming has always been that clarity and correctness matter much more than the utmost speed. Very few people will argue with that. And yet do we really believe it? If we did, then 99% of all programs would be written in something like Python. Or Erlang. Even traditional disclaimers such as "except for video games, which need to stay close to the machine level" usually don't hold water any more. After all, who ever thought you could use an interpreted, functional language to decode Targa images, especially without any performance concerns?

Follow the second link to the original essay - it makes a point about how fast things now perform even in fully interpreted languages on modern hardware - pointing to the absurdity of things like primitive data types in Java. In the vast majority of applications now, that counts as premature optimization. The software industry is guided more by inertia than logic. People continue to select unproductive languages based on the "everyone else uses it" mindset. They stick with manifest typing, even when the best data we have (from Capers Jones) - shows that languages like Smalltalk produce lower error rates than languages like Java. This in turn empowers the managers who want to offshore development - if the results are bad in any case, they may as well be bad for less money.

I'd say that the software industry is where manufacturing was in the 70's - complacent and ready for a kick from foreign competition - but I don't see that happening anytime soon. Why? The big Indian firms are all into huge masses of paper and CMM compliance levels - my cantankerous theory is that you should avoid any firm that claims CMM-5 like the plague (unless you like rigid requirements and huge backwashes of paper). If you really want to outpace the competition, you might want to pick up a dynamic language - Smalltalk, Python, Ruby, Lisp - and run with that.

Comments

offshoring

[bryan] May 12, 2004 7:21:59.319

I will always have problems understanding this smalltalk, lisp etc. will save us from being offshored, in the short run sure. But in the long run if the industry wanted to use those languages then offshore companies would turn to using those languages as well. It is a temporary measure at best, and given that there is not much demand for those languages currently it wouldn't work until such a demand comes about. I don't doubt smart people in India are sitting around learning dynamic languages as well.

Re: Programming as if it mattered

[James Robertson] May 12, 2004 8:34:37.194

Comment on Programming as if it mattered by James Robertson

In the medium to long term, you are correct. However, I think offshoring has other issues. In manufacturing, you can move an entire plant over and be done with it - once the plant is going, there aren't many requirements issues to discuss. In software, requirements issues keep going, and anything that exacerbates communications problems is going to make it harder. Ultimately, Indian firms are going to start building and marketing their own software for the world market - that's when Microsoft (et. al.) will have to start worrying.

indian firms

[bryan] May 12, 2004 19:23:38.698

Microsoft is still pretty overpriced compared to other companies so i don't think they will worry about indian firms. the advantage ms has is the monopoly, and being indian won't fix that.

that said I really an indian firm was trying to sell my ex-boss on some xml content management software, he decided against it because of the communication difficulties. i can't remember the company or product right now, but we had a demo that worked reasonably well. iirc it was .net based.

Indian Companies

[Sanjay Pande] May 13, 2004 0:50:48.716

I am a programmer sitting in India. Given a choice I would work with Common Lisp, Scheme, Objective Caml, Smalltalk, Python or Ruby in that specific order. Even though India is providing a decent service for outsourcing development, there is really nothing innovative in that. They have realized the potential of the "service" market and are milking that cow.

India does produce some very good software if you look at things that come out of organizations like C-DAC which was also responsible for creating the first supercomputer in the country, but these are very very few.

We are not YET product developers. There are a few of us who would do that at the drop of a hat and we do have some very unique ideas for some very unique markets, but the cost of "decent development environments" like commercial common lisps or commercial smalltalks holds us back.

As a developer, if I have to write stuff in Java or VB or .Net, I really cannot compete with anyone and would be better of "servicing" our outsourcing customers.

 Share Tweet This