My final words on .NET

The first thing you learn when taking a course in software design is this:

You’re never done developing a computer program

This is a huge contrast with business-models in which we’ll produce hammers: we’ll need a metal bar and a wooden stick; and once you finished designing the production process, on which you will probably want to take a patent because you want to benefit from your great invention, you will have perfect products which do not ask for modification. In this model patents stimulate the quest for better solutions.

The Ones We Don’t Mention (from now on: TOWDM) copy this model to this digital environment, but instead of stimulating improvement they are slowing it down to minimum speed. Patent trolls appear: companies who’s only goal is to register new patents and to sue anyone who’s infringing them.

geekandpoke.typepad.com - CC BY-ND

It becomes a major problem when those companies’ only interest is to sell more copies of their product. They will try to create monopolies through closing down standards, implementing their own closed protocols, closing their source code, patenting their frameworks, … This only leads to bogus software which will require the end-user to pay another sum of money to fix a small problem.

What if the head of our hammer fell off? Right! We’ll glue it on! What if there’s an error in closed proprietary software? You’re not allowed to fix it and should wait for an update which can take for ever, or you’d better buy a newer version.

Verbapuces

My father is a famous (at least, that’s what he claims) linguist which has done, and is still doing, very interesting research on computer assisted language learning (CALL). Our Saturday morning chats mostly consist of discussions on how to make even better software designs and coffee. One of his first projects was a program on which people could study French verbs: verbapuces. This program, released 20 years ago, was a big hit, and it was the best software for studying verbs ever. I’m 20 years old, and when I was 12 I studied my verbs using verbapuces. Verbapuces was written in pascal, and it was written so it could fit on one of those large wobbly floppy discs (sure you remember those, but you probably don’t remember them containing 3000 different verb conjugations). I’m not exaggerating: A quick google query returned this forum in which this topic asks in 2009 how to copy verbapuces diskettes from 1995 onto a usb-stick to use the software on the train. This probably won’t work, since the program is written for MS DOS, not longer supported by MS.

What has become of verbapuces? The source has never been released (even I never had a glance at it) and this timeless piece of software (equally timeless as emacs/linuxkernel) is gone. No-one will ever be able to use the software he was using in his youth. Do you call this technological innovation?

.NET

I’m afraid the same destiny awaits any .NET application you write. The patented .NET framework is constantly changing to be able to bring new products which could sell more copies of the latest version of visual studios. It is not portable to any other upcoming operating systems you would want to develop for.

There have been attempts to port the .NET framework to other operating systems by implementing the .NET specification: eg mono by novell which is ‘protected’ by microsoft’s community promise. Although microsoft seems to do a great deal for the communities driven software world here it is not a big gift at all. Why would we trust a devil’s promise? They have sued tomtom for implementing FAT in the linux kernel in the end. And… If you read the ‘promise’ a little deeper you’ll notice only the basic packages are protected, but the more advanced packages someone might need are left ‘sueable’.

I do not want to sound disrespectful towards my parents. I look up to my father and when he talks about software design I try to be attentive as possible. He’s the best at finding incredible effective solutions for questions that sound incredibly simple. He taught me programming is much more than typing code into a computer. On the contrary, programming in the open source way is only 10% coding, and 90% thinking without implementing it on modern/old technologies.

Although I’m your son and I’m programmed to disagree with you, you’re right: a software design should be made without thinking about technology at first, but please, don’t make your software depend on patented software.  1% of that 10% consists of choosing which technology you’re going to use and which developing model you’re going to apply. This choice cannot be overrated and it makes the difference between a timeless product and a product that will survive for 2 years.

-Pieter — follow me on identi.ca

7 comments

  1. drew Roberts

    Don’t give in to those who would corrupt the definition of Open Source Software.

    http://www.opensource.org/docs/osd

    Properly defined, Open Source Software and Free Software are basically the same thing.

    Still, to me I prefer to think in terms of Free Software and speak in such terms as well.

    There are those who try to mess with the definition of Free Software as well, playing on the confusion generated by the gratis and libre meanings of the English word free.

    • pietercolpaert

      I like to make the distinction between open source as a business model and free software. If they would suddenly be defined the same I would have to find a new word for ‘open source’ as I know it at this moment.

      -Pieter

      • drew Roberts

        Well,

        here is the Free Software Definition:

        http://www.gnu.org/philosophy/free-sw.html

        and here is the Open Source Software definition:

        http://www.opensource.org/docs/osd

        the fsd includes:

        The freedom to run the program, for any purpose (freedom 0).
        The freedom to study how the program works, and change it to make it do what you wish (freedom 1). Access to the source code is a precondition for this.
        The freedom to redistribute copies so you can help your neighbor (freedom 2).
        The freedom to distribute copies of your modified versions to others (freedom 3).

        the osd includes:

        1. Free Redistribution
        2. Source Code
        3. Derived Works
        4. Integrity of The Author’s Source Code
        5. No Discrimination Against Persons or Groups
        6. No Discrimination Against Fields of Endeavor
        7. Distribution of License
        8. License Must Not Be Specific to a Product
        9. License Must Not Restrict Other Software
        10. License Must Be Technology-Neutral

        If Open Source is a business model, it is a business model for making money with Free Software.

        Roughly, if a program is Free Software, it is Open Source Software and if a program is Open Source Software, it is Free Software. The Open Source idea was designed to “sell” Free Software to businessmen and others without having to talk to them about Freedom up front (possibly not at all.)

        Since then, people have some along who want to capture the buzz of Open Source or ride the coattails of Free Software and Open Source Software, by calling their stuff Open Source when it does not fit the definition. And to create confusion about it. But make no mistake, if it is not Free Software, it does not qualify as Open Source Software either.

        In the same way, software that you can legally get for free is not Free Software unless it meets the Free Software definition.

        all the best,

        drew

  2. Pingback: Tweets that mention My final words on .NET « Bon sans nom -- Topsy.com
  3. Pingback: OpenData & Mobilité « QNTNKSR
  4. Michael

    J’uste runned Verbapuces on my Imac Leopard, run perfectly on dosBox.😀 not death my fried…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s