Do We Need New Programming Languages

It’s an interesting thought I had as I was discussing the merits of the programming language called Go with a colleague of mine.  We were waxing poetic about the strengths of this language or that language and found that each had some niceties, which made certain tasks easier.  That seemed to be the goal of each target language.

Google has subscribed to the idea that there must be a better way.  Having the Creator of Python in house seemingly didn’t satisfy Google as they needed to add Yet Another Programming Language to the stable of things to learn for engineers.

Maybe it’s a generational thing as in “I don’t want to use my fathers programming language” because it’s just not cool.

Maybe it’s a desire to get more people into the field of software development and if the coding becomes easy enough then job well done – right?

To illustrate how many language choices are available, let’s have a look at what engineers and corporations wanting to begin new software projects have to decide between:

Chart from Tiobe Software

Chart from Tiobe Software

The tried and true C programming language is still in the top 5.  Amazing to see really, as the creation of new languages has not slowed over the last 40 years.  Mind you this list represents only the top 20 languages  – there are over 100 that are being tracked by Tiobe.

The bigger message for me here though is developer fragmentation.  We hear about this concept of fragmentation with respect to platforms (Android now in particular) but think about it from a developer perspective.  There is only so much time one can devote to becoming competent in a language.  As well, how many languages can one really master and concomitantly be a strong contributing member of a development team. 3? 4?

It seems then if push comes to shove the developer is going to HAVE to choose and master at least three languages from the list above in order to be highly desirable for employers.  That means weekend projects will be relegated for the ‘hobby’ language.

Employers have a similar challenge in that they need to find talent and staff a team.  The chart above highlights Java and C as two languages that they are most likely to find developers for.  Are you seeing the cycle here?

So I say then what can’t you do in C?  Why have universities moved away from C as the language du jour?  Is managing a pointer such a bad thing?

// insert flame war here