Tuesday, March 22, 2005

programming languages

According to Philip Armour's laws of ignorance sometimes the problem is lack of awareness: I do not know that I do not know something

Hence, I did not know the right question to ask until I stumbled across the answer to it. The question that I discovered through finding the answer was:

Why are there so many programming languages to choose from these days?

Ten years ago to be a real programmer you had to be good at C / C++ but things have changed. Here are some figures based on O'Reilly book sales, June 2003-June 2004, which gives the rough picture:

Java 25% dropping
Visual Basic 18% dropping
C / C++ 17%
PHP 13% rising
C# 12% rising
Perl 7%
.NET languages 4%
Python 2-3%

The answer to the question was provided by Paul Graham and here it is:

You Can Use Whatever Language You Want.

Writing application programs used to mean writing desktop software. And in desktop software there is a big bias toward writing the application in the same language as the operating system. And so ten years ago, writing software pretty much meant writing software in C. Eventually a tradition evolved: application programs must not be written in unusual languages. And this tradition had so long to develop that nontechnical people like managers and venture capitalists also learned it.

Server-based software blows away this whole model. With server-based software you can use any language you want. Almost nobody understands this yet (especially not managers and venture capitalists). A few hackers understand it, and that's why we even hear about new, indy languages like Perl and Python. We're not hearing about Perl and Python because people are using them to write Windows apps.

What this means for us, as people interested in designing programming languages, is that there is now potentially an actual audience for our work.

That means I can go off and learn python without the need to be worried about the dominant operating system or traditions that have become outdated.


Post a Comment

Links to this post:

Create a Link

<< Home