I started thinking about this a little because as MS has embraced more liberal policies (so it seems to me) regarding development (some MS developers are able to release software as OSS) on sourceforge.net and gotdotnet workspaces
What is it that actually drives a developer to create something that they want to release for free? I am more focused on the recent phenomena of releasing software for .NET that is free as in beer and rights. For what is worth, these are my thoughts:
1. The software is something minor (easily attainable) that should have obviously been provided but has not been
2. The developer has attempted a large task for the sake of learning, and would enjoy help to increase his/her learning
3. The software alone does little, but is a building block which the developer sees as a contribution to the entire community (my personal favorite)
How about the rest of you? I for one am ecstatic that we have a C# community that rivals the Java community. That is not a slight against Java as a technology, but I am very happy that we MS developers are sharing ideas and code (I hope not to offend anyone).
I am working on a farily substantial application that will facilitate the creation and management of SRS/SWRS documents, as well as the attachment of artifacts to contained requirements and the production of an RTM. I am going to release it for free within
my current employer, but I am on the fence as to whether to release it to the community for free, as a donation, shareware, or as a commercial product.
So this message is two part.. in part Im curious as to any new reasons that developers release software for free, and also Im curious, would something like I mentioned best be offered as a commercial product (with support and continuing development) or as a
free product (for publicity and possible opportunities)
One point. Free is not Open Source, Open Source is not free.
Microsoft has been releasing software for free since before Win3.1. But has only just started to get into the Open Source thing..
Why would you create free software or give away software, it mostly (not all the time) comes down to $$$.
First of all, take a look at *nix. You can D/L all sorts of flavours of *nix. It's mostly free.. However, most of the distros offer support, which is not free. There is money to be made, just by using a different business model..
Sun, they have java, it's great, it's cross platform, etc etc.. It also runs really well on their server platform.. Get people to write software using java, then get them to run it on their servers.. It's all about $$$..
MS, create .net, it has the potential to be cross platform, it's free to develop with if you just use the SDK and notepad. They make money off the developer tools, AND more importantly they make money from the sales of OS to run the .net apps on.. .NET also
integerates really well with their servers (Sql Server, biztalk, Sharepoint etc etc).. It's still about $$$s
What it all comes down to is one thing, most free software (not all of it, it's a generalisation) is pushed to by businesses so they can cash in on supporting costs.
This is just my 2c worth...
Perhaps I'm being naiive, but there really do seem to be some people out there who create quite complicated and worthwhile programs as a labour of love and then give them away for free. A lot of them seem to live on SourceForge. - John
What it outlines is that you have the freedom to either pay or not for the software. You may have some costs involved in using it, so it is better to get a company to support it, or hire someone to support it for you. However, you can choose not to pay, and
have no warranties if it goes wrong (which is very unlikely for mature products).
Windows will never offer that freedom. You can get someone to support it other than Microsoft, but you still pay for licenses and rely on Microsoft for patches and extra features.
Free Software does not have this limitation - if RedHat or Novell goes out of business, you can go with someone else and improve the product yourself. If Microsoft goes out of business (extremely unlikely), you would have to go with someone else if you wanted
extra features - also, existing bugs will never get fixed (as no one has access to the code - unless it was sold to another company)
you can go with someone else and improve the product yourself.
I think this is key.
The freedom to change it to suit my needs.
I think there are as many reasons for building open source as there are people. Or atleast as there are emotions. Some do it for fame. Some do it for fun. Some to contribute to society. Some because they hate the company that sells the same product for profit.
Some can't afford not to use Open Source. And so on.
One thing that's come to my mind lately with the outsourcing and cutbacks, is that it may not all be good. If I spend 4 hours working for free at night - does that affect my ability to earn a living doing basicly the same thing 8 other hours of my day?
Or am I slowly cutting the branch I sit on? I'm not sure.
1) Educational / Philanthropic reasons - very noble, very worthwhile, produces the best open source.
2) Standards promotion - noble as well, to promote a new standard you feel solves a problem you write free software that uses it.
Note that #3 above is not really free, since there are number of restrictions on use. Look for a GPL license as the tell tale sign that #3 is the primary motivation. Look for a BSD style license for #1/#2.
What people don't get with Free Software is that they think of free as in how much money something costs.
For instance, RedHat Linux is free in the terms of Freedom, but not necessarily price.
At the moment, in some circumstances, RedHat and other Linux distributions may cost more to implement (monetarily) and IT staff for Linux are more expensive (if you go with a 'Certified' technician - you could probably hire an uncertified one for less - this
is done with staff supporting Microsoft products) than Windows. However, as competition increases and more people start to use it (and more become proficient enough to support it), the costs will go down.
The restrictions on the GPL mainly impact those that want to make loads of money on their products. For non-profits and Universities, the GPL is very appealing - free development done by students/staff, no license costs, lower hardware requirements.
I do think however, at the current moment, the best bet for many may be Windows and Microsoft - simply due to the fact they have over 90% market share, and many use it and can support it and the enterprise tools and support are available (plus you can also
sue Microsoft - there is no one to compensate you if something goes wrong with some FOSS you have downloaded and use - not that anything is likely to happen)
i read this post on ZDNN at lunch - and imediately thought of this thread...
Developers that contribute to Free software, at least in my view and the way I feel, are of the mindset that they are contributing to a community to make things better. What would have happened back in the stone-age when the first caveman made
a wheele or discovered fire if he would have horded that secret away and charged people 50 shells every time they needed their fire lit or some cargo secretly hauled somewhere by an unknown device? There would have been no innovation...
By people contributing open sourced products to the market they are allowing others to learn by example and/or modify for betterment. It's really a win-win situation. Sure you may not make tons of money, but there IS money to be made there. Open sourced projects
also let the buyers take a look under the hood to make sure things are working to their exact specifications. It certainly discourages shady devs from plopping in backdoors.
I think that about covers it for now...
i read this post on ZDNN at lunch - and imediately thought of this thread...
Quite a good thread. It outlines that FOSS might have perhaps become popular because of Microsoft - as there has been no real competition on the OS side of things, FOSS is the only type of software that Microsoft can't use its resources to combat as effectively
as it can with other products.
Microsoft can't simply 'buy out' the competition because the license prohibits it from doing so. GPL'd code is the biggest threat to Microsoft, unlike BSD'd code (which is another Open Source license), which it can use in its software.
This is why software patents are important to Microsoft - if a FOSS project somehow violates one, then workarounds have to be figured out, or the project will no longer go on (since there will not be the money for a court case)
From the zdnet article:
"Bill Gates has often been quoted as saying he doesn't fear what another for-profit company can do, (he can buy them out if nothing else) he fears the one or two guys working in a basement or a garage coming out with something so different it changes everything."
So maybe we don't all have the $ backing like MS or even the ability to market our code to make a buck. But just maybe, just maybe we do something so different it changes everything.
I'm not one to go jumping into the pool of "we can make a difference" speeches but I would say this is the best answer to why people make software and then give it away. Change, and the ability to say "I started that".
Besides do this well enough and you'll write dozens of books and do hundreds of keynotes and make millions for it.
That was a good choice - it doesn't really take anything away from Microsoft as it is not for managed code, but is for writing native unmanaged code. Even though it is alpha, I am sure people use it in stable products.
I also have noticed a few projects have been setup for creating WiX projects - even a project called LiX has started (WiX for Linux). It would be good if one day you could have a universal installer creator, that worked cross platform.
The release of the Visual C++ Toolkit has probably helped developers to compile C++ for .NET without Visual Studio.
Perhaps more old programs should be open sourced - solitaire, minesweeper, paint.
thats a great idea..
open source IE too!... that's old
Wasn't WTL pretty much "open source" already? (Open in the meaning that you can read and compile it)
Isn't WTL more or less like Powertoys - in that they are developed by Microsoft developers, but not regarded as Microsoft products?
ATL/WTL have been open for years. ATL is used heavily in component development. (I can't remember the last time I didn't use it) WTL is like a light weight templated version of the MFC. Very pwerful - I always use it to do my C++ UI work where COM is involved.
Both libs have been open for years. MSDN has expansive docs on both. If your working in C++ and doing COM/UI work, I highly recommend both.
Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.