The library IS the programming language

By Sean McGrath, ITworld.com |  Development Add a new comment

I am wondering if we are reaching some sort of inflection point in the history of computer programming? An inflection point brought on primarily by the rise of so-called 'virtual machines'. In particular, the important twist on the virtual machine concept inherent in Microsoft's .NET implementation known as the CLR (Common Language Runtime). The CLR is most often compared and contrasted with the JVM (Java Virtual Machine) but to my way of thinking, it is more similar to the UCSD P-code System[1] of my pre-bearded youth.

Let me explain. Think of the JVM and what immediately springs to mind? Well, the Java programming language of course. Think of the CLR and what springs to mind? Well, there is C# of course but also VB.NET, JScript, IronPython etc. With the CLR, you use any of these you like and indeed (with some limitations) mix and match them. Out of the box as it were, the CLR gives you a great big library of stuff that you can use from any programming language you like - as long as that programming language targets the CLR.

Now this is also true of the JVM thanks to Jython, SISC etc. but to date this 'language family' concept is not part and parcel of how programmers conceptualize the JVM. It is however, part and parcel of how people conceptualize the CLR.

In my opinion, the attitudes of CLR and JVM folk to the concept of multiple-languages targeting their virtual machines will prove to be a decisive factor in how the two fare into the Twenty First century. However, that is not the inflection point I mentioned earlier. I think the 'aha' moment we are heading for is this: programming language doesn't matter half as much as it used to and frankly, we should stop talking so much about them.

In my opinion, any competent programmer should be able to pick up a new imperative programming language in a couple of days. They are all the same really. Actually, deep down they are in fact totally the same[2]. However, it is not reasonable to expect a competent programmer to be productive in application development after those couple of days. The reason being that real world applications are not developed primarily IN a programming language. They are developed primarily ON a platform - a library of pre-developed code doing everything from opening databases to drawing GUI screens. These libraries are, these days, behemoths. So big that competent programmers can and do spend literally years wrapping their heads around them.

The common interview question "what programming languages do you know?" is becoming less and less useful. The common line of reasoning that goes like this 'She knows C++ therefore she will be able to pick up programming on platform X in no time', is becoming increasingly fallacious.

There is a risk that focusing too much on programming language choices can mask the real issues surrounding portability, ease of maintenance, lock-in and so on.

If these issues are on your agenda, make sure you look past the programming language. Get under the hood into the library/platform where the really important analysis needs to be performed.


[1]
http://en.wikipedia.org/wiki/UCSD_p-System


[2]
http://en.wikipedia.org/wiki/Turing_complete

    Add a comment

    Post a comment using one of these accounts
    Or join now
    At least 6 characters

    Note: Comment will appear soon after you have activated your account.
    Obscene/spam comments will be removed and accounts suspended.
    The information you submit is subject to our Privacy Policy and Terms of Service.

    ITworld LIVE

    DevelopmentWhite Papers & Webcasts

    White Paper

    HP NonStop SQL Fundamentals whitepaper

    This whitepaper offers a detailed look into the fundamentals of HP NonStop SQL solutions. See how this system delivers unprecedented levels of application availability with fail-safe data integrity and meets the needs of enterprises with large-scale business critical applications.

    White Paper

    Nebraska Medical Center case study

    See how the Nebraska Medical Center implemented a SQL solution to make information more readily available to streamline operations, improve patient care and facilitate medical research with an enterprise solution running on HP NonStop servers.

    White Paper

    Concepts of NonStop SQL/MX

    For DBAs and developers who are familiar with Oracle solutions and want to learn about NonStop SQL/MX, this whitepaper provides an overview of the similarities and differences between the two products-with a specific focus on implementation.

    White Paper

    6 Things Your CIO Needs to Know About Requirements

    If your organization is not predictably successful on technology projects, there is likely an issue in requirements. CIOs must take action and own requirements maturity improvement. There are 6 main things a CIO must know about requirements.

    Webcast On Demand

    User Experience Monitoring

    In this webinar, you will learn hints & tips for improving end-user response times from Forrester Research analyst, Jean-Pierre Garbani.

    Sponsor: Nimsoft

    See more White Papers | Webcasts

    Ask a question

    Ask a Question