Wednesday, April 30, 2008

the danger of technology fundamentalism

Imagine the year is 2018 and you are about to start up your computing device at work.

What would you like to see booting up?

If you are a software professional what development tool would you like to be using?

I don't know what it is but I honestly hope that it's not any of the following.

  • An M$ based operating system.

  • a Unix/Linux based operating system.

  • Java as my development tool.

  • .Net as my development tool.

  • It seems however that by the trends in the industry this is going to be the status quo for a long time still to come.

    I have a friend who loves working in Smalltalk. I normally give him grief about the topic, telling him he is flogging a dead horse. However no one can deny the brilliance of Smalltalk that makes it a stand above many development tools even in 2008.

    I also have some fond memories of my encounters with BeOS. Considering that BeOS did what Vista promised to do ten years ago is pretty impressive.

    Both of these technologies have either been marginalised in the case of Smalltalk or are dead in the case BeOS (although the Haiku project seems to be gaining traction).

    Both these fantastic products are victims of the success of Java, Linux, Windows and .Net, yet both are better products in many respects.

    What I find sad is that we as technology professionals allow ourselves to be dragged into platform wars, and yet we fail to promote products which actually advance the state of the art.

    Furthermore we seem to fail to realize that the only winners of any platform war are the vendors who sell these products. I don't get a cut from a Websphere sale nor does the M$ guy get a cut from a Server 2008 sale.

    Perhaps this is why Open Source seems so attractive to developers since it seems to place control of technology back into our hands and out customers and not leave us at the whim of a vendor.

    Even so to force Open Source just because it's Open Source is as much a cause of the problem as M$ or IBM or $un or whoever.

    When we engage in technology fundamentalism all we do is isolate ourselves from advancing the state of Computing Technology at a loss to ourselves and our clients.


    Dennis Sellinger said...

    Unfortunately, for professional software development, the actual program code is only a one part (albeit an important one) of a project. We also must consider things like software builds, deployment, user platforms and code protection, for example.

    Typically, when people are using IBM or M$ it is not out of fundamentalism but rather to address a real needs for a real group of users. Optimizing the programming language is rarely a prime consideration.

    I have an example where I am currently looking at using F# rather that C#, since there are a lot of people who claim it will bring real productivity changes. Unfortunately, even with the strength of M$ behind the product, the tools just aren't yet there to delver a product (IMHO).

    The real question is how do existing software systems evolve. If java and .net (today's dominant platforms) are to be displaced they will either be replaced by something with industry weight behind it - perhaps from google or adobe - with a full set of development tools or there will be a natural evolution of java and/or .net (like a Scala or an F#).

    I think this is the real problem with open source efforts. while they do produce great products, we really have to go the whole nine yards before that can really be useful for professional software development. That is, modeling tools, development tools, build tools, deployment tools and training. This generally requires the involvement of some industry heavy weights, because it cost time and money to develop these tools.

    So like it or not, we need the industry heavy weights to act as champions for the tools we use (even if it is just to make oodles of money).

    julian_za said...

    I attended to a Juval Lowy WCF master class.

    Now Juval Lowy is an M$ software legend.

    Besides the actual course content which was good, he decided to take an opportunity to trash Java/JEE

    Now quite honestly a Java Champion probably would have done the same but does rhetoric like that help our clients especially when it comes from someone like Juval.

    I have had seniors who think that C++ is the ultimate language and then go on to create atrocious code because Java or .Net is "slow".

    I'm not saying we are all technology fundamentalists, but it DOES happen and it costs our clients dearly.