Ehud on forces driving commercial programming language creation
Posted by Kelvin on 01 Jan 2007 at 11:19 pm | Tagged as: programming
Just discovered this gem on LtU here:
Ehud Lamm – Re: Growing a Language
5/25/2004; 3:02:35 PM (reads: 118, responses: 0)
(in response to a previous post: I'll now turn the tables back: is it possible that the "commercial" languages (VB, Java, C#) gained popularity because they were created to provide programmers what they wanted rather than what someone thought they needed?)I don't think this is the real cause. I know it is a popular explanation (cf. such terms as "bondage & discipline languages") but I think the dynamics are different.
Take .Net as an example (or C & Unix, PL/I & MVS etc.). People wanting to exploit .Net and future OS services from Microsoft are likely to choose either C# or VB.Net. Why? Because Microsoft decided to invest a lot of effort making these the natural choices. So you might say "someone thought the programmers need C#". The other persepctive, i.e. that users use C# because it gives them what they want is equally valid. It's just that C# does this, beacuse someone wanted it to…
A slightly more subtle question is why Microsoft (and others before it) decided to create their own language in this case rather than continue with the previous strategy of providing libraries for C++ or another mainstream language. I think the answer to this question is more enlightening.
One common explanation is that this is simply a way to crush Java. I don't think this is the full story.
Another reason, specific to this case, would be the move to managed code. This is an important factor in the move to CLR and associated languages. But, again, I don't think this is the full story.
Providing a language gives us a very powerful method to influence software construction, control programmer behaviour, and help produce the kinds of software we are interested in (via APIs, compile time analysis and run time support). Likewise, whenever an OS or even an application provider provides a programming language with added support, this will influence programmer behaviour (think VBA; think Javascript; think Guile). There is, yet again, positive feedback.
So it's not just giving programmers what you think they need, it's really about providing some kind of value. But that does not mean that any language that provides useful functionality, APIs etc. is the best tool for each and every software project. It is thus important to distinguish between general purpose languages, and languages used in more restricted domains.
Obviously the dynamics I desrcibed above aren't the only mechanism involved, but it's one of them.
There's no doubt in my mind that the languages we use (spoken, written or programming) dramatically sculpt both the nature and limits of our thoughts and ideas.
Perhaps even more signficantly, it shapes the consciousness of the speakers and the listeners. In terms of programming, that would be the programmers and the end-users, respectively. Spend a day listening to French and another listening to German, then compare how you feel at the end of each day; spend a day working on Windows, and another on Linux, then compare how you feel at the end of each day. The difference is both striking and apalling. There is a clear trickle-down effect starting from the designer(s) of a language to the end-user, and correspondingly, societies, countries and the world (especially for an operating system).
Another way of looking at this, is that the designers of the programming languages that are, at any point in time, popularly used, are indirectly (and with all probability, unconsciously) influencing the consciousness of the world. That's alot of power to folks who might not really be aware of the implications of their choices.
Something to think about.
Comments Off on Ehud on forces driving commercial programming language creation