Freeware versus Open Source

Today I was getting caught up on my reading of QST.  I had gotten two issues behind for various reasons, and was browsing the November issue.  In the editorial there was a quote from a popular contest logging program author implying that their software is open source.  I was really puzzled by this as I know for a fact that the software isn’t open source and I re-verified on the web that the source code isn’t freely available and is only given to select people upon request.  This software quite simply isn’t open source, it’s freeware.

There seems to be a lot of confusion within amateur radio over just what is open source,  and I’ve even seen amateurs berate others for wanting open source software because it’s thought someone wants a free lunch or wants to copy a product.  This couldn’t be further from the truth and it really shows an ignorance of the modern software world.  Amateur radio collectively has never really understood or embraced open source, opting for freeware offerings since the days of DOS.   Freeware software authors are often put on a pedestal in the community as selfless contributors doing a great service.  Most have good intentions, but freeware is not necessarily a good thing.

Freeware is not free and is a technological dead end.  Now that I’ve lost half my readers and puzzled the rest, please stick around and I’ll explain.  But first, what is freeware? Freeware is software that you can install without paying any licensing fee.  You can use it all you want and share it with others, but you can’t sell it, reverse engineer it, or modify it.   Freeware is not open source software.  You do not get the source code for freeware.

So how could freeware not be a good thing, or even a great thing?  It’s written by someone, one person or perhaps a team of people, giving their time and energy to a project that they derive no income from and get only satisfaction and accolades for providing a free tool to a group of users.  And, did I mention it’s free?  So, we should really be thanking them and indebted to them, right?  To an extent, yes, but long term they’re doing a disservice to the community.

Freeware “sits” in between commercial and open source software.  It’s my belief that commercial software is more beneficial to amateur radio than freeware.  With commercial software there is a motivation (revenue) to keep the product up to date and functional and not let it whither on the vine like some freeware projects have over the years.  With a commercial product, the desire for revenue drives quality and responsiveness to the user community.  With open source, quality drives usage and community participation.  If the product is popular, but quality later suffers, the community can fork a new initiative to maintain and improve the software based on the original project’s source code.  With open source there is a built-in mechanism to bypass lousy or absent code writers, or unfriendly supporters of software like we’ve sometimes seen in the freeware world.

Development of new features in the freeware world is usually at the whim of one person.  This can also be said of open source software, however because the source is available, anyone with the requisite motivation and skill can modify the code and not involve the original developers at all if needed.  Living within the walled garden of freeware is great until the gardener decides to stop maintaining the flowers. The same could be said of commercial software, but for better or worse money is a great motivator.

Often de facto standards develop around a piece of software.  This isn’t really the case with a logging program, but there’s a least one digital mode and one messaging system that have developed proprietary standards around them.  To interoperate with these standards one has to reverse engineer the standard based on the behavior of the application.  In the case of a messaging system, and one that is centralized, a homogeneous software environment can fall apart when a latent bug rears its ugly head.

So what is the reason for someone to offer freeware and not open source applications?  I’ve often pondered this question and can come to only one conclusion, a desire to someday go commercial with the product.  With open source, the intentions of the author are quite clear and in the open.  When a freeware software author refuses to open source their project for fear of it being copied and a competing product being created, they don’t quite understand that this sometimes happens in the open source world and as mentioned above, is known as a fork.  It usually occurs when someone feels they can do a better job improving the software and meeting the needs of the community.  Forks are often short-lived but in some cases a fork will become more popular than the parent it was spawned from and it becomes the de facto parent project.  This is a risk, but ultimately it’s a better process as it results in a sort of software Darwinism.  Forking is not plagiarism, as long as the original code is attributed to the original authors, and forking is an accepted practice in the open source community.  Nit-picky “armchair programmers” who are often the bane of freeware authors have nothing to complain about with open source as they can improve the software themselves or be put in their place when they discover they’re not really skilled programmers.

Open source enables collaboration.   I had to put considerable time into developing a specific feature on my open source Arduino keyer project.  If I would have had the source for a logging program that implemented this particular protocol, it would have saved me much time in developing this feature, or I could have even written and contributed a module for a logging program to implement the feature rather than having to write what I did for the Arduino in a roundabout way.  Arguably the Internet wouldn’t be what it is today, or perhaps not even exist, without open source software and the collaboration it creates.  Undoubtedly amateur radio has missed out on some collaborative opportunities over the years due to a lack of open source software.

I think it’s time for amateur radio freeware authors to take their commitment to the community a step further, embrace what became popular in the mainstream software development world two decades ago and open source their code for a long term benefit to amateur radio.

About these ads

10 responses to “Freeware versus Open Source

  1. I agree with many of your points. Personally, I feel open source has it’s place, but so does freeware,
    and so does commercial. I don’t want to start a debate, just raise a few points. If you have
    already considered these things I applogize for repeating them.

    >>> Freeware is not free and is a technological dead end.
    so why would you want to fork all that old and decrepit code. Your main complaint
    seems to be that because those freeware authors won’t make their code open source, then
    you have to spend a lot of time creating your own version. Don’t you think that you could
    write a new up-to-date version without all those old problems in the time you wasted (er, oops, spent)
    bringing those dinosaurs up to date?

    It also works in reverse. Someone can look at open source to understand a program and then write their
    own freeware or commercial version, as long as they don’t copy the open source code. In case you don’t
    believe me go read about copyrights. Copyright would only protect the code, not the idea in the code
    so 1000 people could write a program that did 2 + 2 = 4 (maybe some bad programmers would write 2 + 2 = 3)
    and it would all be perfectly legal. ( I don’t want to debate this. Please turn off your flamethrower.)

    >>> but long term they’re doing a disservice to the community.
    why? because you had to write a module to do something that someone else had made as freeware?
    every piece of software has bugs or errors and sometimes compatibility problems. You might spend more
    time adding that freeware module into your program than if you just wrote a new module from scratch.

    Logging programs (as well as many other amateur related programs) are hardly new, so there is no patent or
    other intellectual property protection which prevents you from writing your own as long as you don’t copy
    others code. You state that the reason people fork a project is because they can do it better. If you can do
    it better then you don’t need the original code. If you understand what the program does you can write your own
    improved version without infringing the original authors copyright.

    >>> the community can fork a new initiative to maintain and improve the software based on the original
    >>> project’s source code. With open source there is a built-in mechanism to bypass lousy or absent code
    >>> writers, or unfriendly supporters of software like we’ve sometimes seen in the freeware world.
    so there are no lousy or absent code writers in the open source world? I’m not buying it.

    >>>> Living within the walled garden of freeware is great until the gardener decides to stop maintaining the
    >>>> flowers. The same could be said of commercial software ………….
    there are also open source projects which have been abandoned

    >>> So what is the reason for someone to offer freeware and not open source applications? I’ve often pondered
    >>>> this question and can come to only one conclusion, a desire to someday go commercial with the product. With
    >>>> open source, the intentions of the author are quite clear and in the open.
    if you are a proponent of open source you should already understand why. One of the reasons that you have to
    differentiate your fork is because if you fork someones software and make a mess of it, then everyone will blame the
    first guy and not you. You will give the first guy a bad rep as a coder. Hey, he might even want to sue you for
    damaging his professional reputation. (Just kidding)

    In the end, if an author wants to write software and not release the source that is his right, just the same as
    the open source guys have the right to release their source if they want to. The world is big enough for everyone
    to co-exist.

    • >Don’t you think that you could write a new up-to-date version without all those old problems in the time you wasted (er, oops, spent) bringing those dinosaurs up to date?

      Perhaps, but there are some software algorithms that don’t change over time, and code to perform these tasks could undoubtedly be reused, especially if in a language like C which will probably continue to be used long after we’re gone.

      >You state that the reason people fork a project is because they can do it better. If you can do it better then you don’t need the original code.

      If you want to write the application from scratch. If you have a piece of software that was really great five years ago but has gotten behind in functionality and supporting the needs of the community, it would make sense to build on the prior work rather than reinventing the wheel, assume the core code is sound.

      >so there are no lousy or absent code writers in the open source world? I’m not buying it.

      Sure, there are definitely lousy or absent code writers in the open source world. My point is there is a built in mechanism in open source to bypass such authors. There is no mechanism in freeware. In open source, if there is enough demand and interest, the community runs with development and bypasses the original author.

      >there are also open source projects which have been abandoned

      Absolutely, but again, the mechanism exists to remedy this in the open source world. You’re correct that doesn’t exist with commercial software.

      >One of the reasons that you have to differentiate your fork is because if you fork someones software and make a mess of it, then everyone will blame the first guy and not you

      Perhaps, but to anyone who can read a web page, it should be evident what is an original work or a derivative. I know battles have occurred in the past in the open source world between parent projects and forks (it’s somewhat the nature of forks as it can be the result of mutiny on a development team), but I don’t think that’s a valid reason to dismiss the forking process as it can have beneficial results.

      >In the end, if an author wants to write software and not release the source that is his right, just the same as the open source guys have the right to release their source if they want to. The world is big enough for everyone to co-exist.

      Absolutely, however one of my main points is that we’re needlessly missing out on some opportunities with freeware- opportunities for collaboration, education, and higher quality software. Open source is really more compatible with the spirit of amateur radio. 73

  2. Well written! You should try to push your article to the QST. So I promoted it on Google+: https://plus.google.com/u/0/114279948781058412123/posts/LfVukFGtBbE

    I have tried to promote this idea since I started working with Linux many years ago, but I must confess, that especially in the ham community the idea never really was a success. Like you have written most hams thought that perhaps in the future they might follow the path of Bill Gates. So they wait and wait and … meanwhile we have lost the chances to really build up a software environment for our needs.

    But there is one point which confused me in the last years: The 99 sub versions of GPLs. Some time ago I gave up to understand the differences between the legalistic interpretations. Perhaps it would be a good idea if someone would point to a version that would fit to the ham community.

    72 de Hajo

  3. I agree having ther open source software would allow for a conunity of ideas. I am learning how to program the arduino an if it was not for the open source caode I would be a lot more difficult for me.
    Being able to see what the code others have written and being able to make changes and see what happens is a great learning experiance.

  4. Since you can’t force people to release source code if they don’t want to, maybe I could offer a couple of suggestions. There might be others but I immediately thought of two, as follows:

    1) if no one will give you the source, and no one will make what you want and donate it to the open source community then you have to learn to program and write it yourself. Then you can donate it to the open source community. Now everyone can use what you donated and you don’t have to worry anymore about those unfair freeware authors who won’t share their code.

    2) if you don’t have time to write it yourself then go to whatever website where the local programmers hang out when they are looking for work. Announce that you are looking for any programmers who would be willing to write some software for you that you are going to donate to the open source community. Announce how many coins of the realm
    you are willing to dispense for the software. You might be surprised how many are interested if there are a few pieces of silver involved. Give them the spec for the software if you have it. When they are finished you can donate it to the open source community.

    Now you can sleep peacefully knowing you have made the world a better place and improved the lot of humanity. All those open sourcers out there will say what a great guy you are for making this available to everyone for free.

    Just my $0.02.

  5. >if no one will give you the source, and no one will make what you want and donate it to the open source community then you have to learn to program and write it yourself. Then you can donate it to the open source community.

    So another words, one should start an open source project.

    >Give them the spec for the software if you have it. When they are finished you can donate it to the open source community.

    ….or one should pay programmers to create an OSS product.

    If no freeware author wants to open source their product, creating an open source project is certainly a viable option. It doesn’t cause any harm to encourage these authors to open source their products. It would make sense for many to open source their software for the reasons I outline in the article. Few will, for reasons I outline in the article. So we’re back to square one. The world won’t come to a grinding halt, but as I mention we sacrifice some innovation and opportunities because of this. It certainly isn’t the first time amateur radio has missed out on an opportunity.

    >All those open sourcers out there will say what a great guy you are for making this available to everyone for free.

    Please turn off your flamethrower.

  6. that was not a flamethrower. If you can’t get people to give you the source and you find another way to donate what you want to the open source community, then someone out there will say something good about you because you made it available.

    Don’t feel bad if those authors won’t open their source to you. I’m still waiting for a million dollars to fall out of the sky and land in my hands, so it happens to all of us. (this is not a flamethrower either, just weak humor)

  7. >>>Perhaps, but there are some software algorithms that don’t change >>>over time, and code to perform these tasks could undoubtedly be >>>reused, especially if in a language like C which will probably >>>continue to be used long after we’re gone.

    I don’t believe that those freeware authors are using any secret algorithms. If you give some examples then myself or others can help you search for publicly available documents that have the information you want.

    Maybe a better solution would be a website which points people to all the protocol specs and algorithms used in existing ham radio related software. I can’t think of anything off the top of my head that you wouldn’t be able to find. The reason I say this is because sometimes it is not easy to port old software to a new environment. For example, the Raspberry Pi just came out. It might be a real pain to port old DOS, Win3, Win XP, or maybe even some Linux distributions programs to the Raspberry Pi. I have never used the Raspberry Pi so I cannot say for sure. But if you have the publicly available spec then you can write the software. You still have to write it but that might be faster than trying to force older software into a new environment.

    I hope you are able to solve this problem since it seems to be important enough for you to have written about it. Best wishes.

  8. After a recent experience I had to come back to this post, even if it’s a bit old but still relevant. I just recently asked an author of a certain piece of freeware software (he advertised it to me with his QSL card) if he ever considered open sourcing or even better, make it free software. The response I got was rather .. uhm … let’s say full of ego and off putting. He didn’t want to discuss and when I asked for the reason he responded with more “attitude”. And this of course is not the only occurrence. I’ve been involved with open source software for the past 20 years and recently returned to ham radio. I was amazed at the state of affairs with regards to software or even open document formats. People sending out .doc files assuming everybody uses the same software and when questioned they respond that either the software has been successfully been run on Linux using Wine or that Open Office can open the document. Well that’s not the point of this all but people don’t care to understand. Opening the source to them seems to be the equivalent of leaving the door open and everybody can come raid their home. Those darn freeloaders. They want it all for free (of course missing the whole thing with freedom vs. free beer).
    So my conclusion after this is the following: screw them!
    The amateur radio community at large does not understand software. They don’t care about freedom of information. They don’t care about the advancement to society open and free software can bring. And yes I know I’m generalizing. So let ‘em keep their code. Maybe the reason they don’t share it is that they are scared to be called out as hacks. That their coding styles aren’t the best and then they would have to deal with that instead of being celebrated by the clueless masses. Let them have it. And lets just write better software that is open and helps others and share it with the world. Those who get it will, those who don’t are not interested to begin with and every logical argument will not work with them.
    It’s not about going commercial IMHO. It’s about ego and the lack of understanding of commons and community.

    On my list of things to do is to learn Python. And I’d like to have a sprint logger. So what better way to learn than to write one? Then when it’s open and others tell me what crude code I produced and improve upon it, I will learn even more.

    I created a slide deck to be given to interested people to make a few points of why open source matters. It can be found here:

    http://www.creative-chaos.com/opensourcematters.odp (or .pdf).

    73 Mike K5TRI

    • Hi Mike. Thanks for your comment. A lot of what you said resonates with me. As technologically minded as amateur radio is, we somehow are adrift on an island, isolated from the rest of the software world. After multiple attempts over the years, I finally migrated to Linux on the shack desktop a month ago and I’m enjoying it.

      The attitude you experienced, I’ve experienced as well. I know a bug fix drone for one of the popular contest loggers. I mentioned to him about open sourcing code, and he said they didn’t want people stealing their code and releasing their own product. And this software is freeware. Face meet palm.

      I think it’s a matter of time before we have equivalent capabilities in Linux with logging and contesting. I’m enjoying using CQRLog. It’s funny you mentioned Python for sprint logging. I’ve dreamed of writing a Perl contest logger. I think a very utilitarian command line interface contest logger would be good. It wouldn’t be for everyone, but contest logging requires a very specific set of functions and they need to work quickly and efficiently. GUI fluff doesn’t help a contest program, it hurts it. I think a scripting language like Python or Perl could be used to make a really good contest logger.

      Anyway, thanks again for your comments and 73!

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