I have been keenly following the closed-source versus open-source debate and have participated, objected, agreed with many views in the past six months or so.
Some arguments have sounded extremely good on both sides. But when you make a list, open-source wins hands-down.
No two ways about it.
It is not just me who thinks that way. IBM, SUN, Oracle, Intel, Sybase, Novell, Borland all have evaluated open source as a programming model, as a business model, and so on. And accepted it as being superior, for good.
Why? Mainly, the code works, the method works, support works, there is no lock-in, there is no arm-twisting. Almost like assembly blocks.
And lots of people make a living out of it.
Many would say that I am either too dim or too late in realising this.
I admit, I am dim. I am an idiot. I am a stupid fool.
Yet some people still focus energies on closed-source development for redistributable commodity products. They may have their reasons.
But I wish them luck.
Binaries-only programs may be good for certain special applications. But I dont know much about those, so I better not reveal my ignorance.
Opensource works. That is my simple learning over the years.
I have at times been very excited in my support or objection of particular ideas or approaches. If I have hurt or insulted anyone in the process, I hereby apologize for the same, that was never my intent.
Seeing that now even Microsoft has decided to adopt open-source as a business model, I first heartily congratulate them on this change in business strategy and apologize again for any of the things I said that were hard.
The following things prompt me to write this, each being very new decisions by Microsoft:
Microsoft opened Port 25
Microsoft opened codeplex.com
Microsoft applied for an open source license to OSI
Microsoft has now announced an interoperability program with Novell
Microsoft has not legally threatened Mono, a free ECMA platform like their .Net platform.
These are great changes which must be acknowledged and appreciated. Really, you cannot ignore this.
But, it must be clearly stated here that at those times, the “opposing party” also had respectively, the exactly-opposite stand or opinion.
So, this must not be wrongly construed as admission of a mistake or crime. It is not, since no crime has been committed. It is just a traditionally accepted way (here, at least ) of throwing the past aside and starting anew.
Both parties simply say sorry and start working together, towards the all-important task that every programmer true to his profession, must respect – giving more benefits to his end-user. Giving the end-user more freedom. Giving the end-user a top-quality product.
Like the shopkeeper who says to a new customer: “Sir, not one of my customers has come back for repairs or replacement. Ask any of my customers! Not a problem for years! Once bought, always happy, they come to buy other goods after that. And even my neighbouring shopkeeper is not complaining. In fact, because of the quality of my shop, a full-fledged market has come up here and continues to grow. Today this place is known as a market for this item and not many know that it is so because we made this place famous and assicated it with this item. Not only have sales not decreased, but sales have increased dramatically, because we are getting orders from people who previously did not want to buy this item at all. The variety that this market now provides drives the sales for everyone. We have even formed an association to prevent any mischief from criminals.”
And what are the basic needs of a common computer user? Not too many really. I do not know of Grandmas wanting to decode the human genome themselves. Most parents would not have the time to play computer games. Music and video, yes. VOIP yes. Video chat, yes. Real changes.
But other things, not much.
Let us take the analogy of mechanical tools. I bought this screwdriver years ago. It still works for what it was purchased. Just the same. Or the chair I sit on. Strong and reliable.
Imagine if I had to fix a leg or fix the backrest or fix the handrest every week or every other day!
Would you buy such a chair?
Would you buy anything from such a carpenter?
Would he be in business for more than a few months?
No. Not at all.
The analogy may not be perfect but it comes close enough to keep in mind.
Overpricing kept computers away from the global masses for years. That is the fast one that everyone was pulling so far.
If you see the simple mathematical graph now, either sell cheap to more, or sell super expensive to nobody!
The shopkeeper and his market.
On the other hand, so many people still have no food, clothing or shelter. That is a problem so huge and so complex that one will surely be called wise, even noble, if one employs all that computing power to handle the details of distribution and allocation of food and clothing to all. And if we use all the mighty database engines we have made to store details of allocation, logisitics, checks and so on, that would probably be the best use of today’s high-end computing.
And every engineer (and anyone else who has felt the truth of Murphy’s Law) knows through daily experience that you always get just enough resources to do things well. Quality degrades if chances are wasted.
But instead, what are we doing today? The few billion top-quality pieces of well-designed semiconductor are used to play music and listen to audio anf even about whether a particular pop singer looks in shape or not. And so many people have so many strong and informed opinions about the shocking lack of form and all that.
Come on, give the child a break.
Mark my words, only that company which genuinely wants technology to assist everyone will be the one to remain successful enough as to remain famous through history. (I am not counting notoriety.)
The next billion will go to those technopreneurs who think of them as people. For only then do those technopreneurs realize the complex variety of needs of the next billion. Products and services follow soon.
The lazy will figure out that they can hire the straightest and brightest and identify the needs, make the products and again go back to the mindset of seeing people as statistics. You think such a hopeless approximation of your studied model will enable you to make lasting fruitful investments?
Quick, answer this:
How many bones do you have in your hands, right now?
Don’t know? Don’t remember? If you don’t know even that much about your own body, how are you going to know anything about needs of the next billion? From books? Your model of analysis is immediately useless. The only way for you, great market strategist, to know the needs of your market fully is to be the market for at least a week or a month, depending upon the product. Then your model has some value.
So you see, those who treat these humans as statistics in charts are almost surely destined to become the same – statistics in other charts. And these latter charts will perish just as easily as the former charts are thrown away upon realiziing errors in calculations, thus not even making it into history books.
Coming back to Microsoft, given the welcome steps from Microsoft, I am seriously considering the option of working on Linux, particularly Ubuntu, the human Linux and openSuse, the no fights Linux. For the first time in six months I actually thought of trying openSuse. Suse proper is still out, till I am convinced, I need to be certain.
But that is just me.
And of course, the heart holds Tux and the levitating Gnu, but the pocket demands other things.
So, until further details reveal deviation of intent from the stated or generally acceptable goals, peaceful technical pursuit !
One last thing, an humble request to Microsoft:
It cannot be denied by anyone that you have been shepherding a community of developers with your myriad methods, whether they be called good, bad or ugly by this camp or that.
The same shepherding can be continued via open source.
More developers can benefit when everyone moves to open source.
The first step would be to open up an existing API or a significant part of it, of the Windows system. Like everything to do with networking for instance. Or everything to do with core system management. Or maybe a particular version of the .Net infrastructure.
Do you not remember how many times the developer community asked you to adopt open source and you refused. Now, here you are with an application to OSI for a decent looking open source license.
What did we all get from the delay?
Endless wars of words. Stunned developers. Confused project managers. Worried business bosses. Lots of commits and rollbacks after commits. I, and almost surely everyone else, would really want to avoid a repeat of this closed-source versus open-source debate.
And talk some code, after all.
Another way is to pick up any existing Linux distribution, preferably the good-looking ones for desktop and the tested stable ones for servers.
And add code to it and sell support.
You could also say this to a specially big customer:
“Hey BigGuy, I’ll write the code and release it under GPL, but only if you pay me, Microsoft, X billion dollars. Otherwise I will not code at all. You stand to lose”.
Naturally, one BigGuy is not going to afford the code.
So, many big guys in that field join and form a consortium and buy code and support collectively from you.
I can hear some saying: “But hey, who do we hate if we unite like this? Come on, I am used to screwing the competition. I cannot collaborate and and do sissy things like that.”
That is not always true. Companies have common interests and they do actually form consortiums and lobby groups. They also form cartels. So, it is not out-of-this-world.
Open source is good. For a “live” example, I am charging you no fee whatsoever for spending time and effort while thinking this, even at the risk of being ridiculed by many. Given certain conditions, it could actually work.
This free helpful nature of men manifests itself as open-source.
Once again, please be considerate, do not delay the inevitable open-sourcing.
Adopt a Linux directly and save headaches and heartaches for the entire IT business.
Thanks for your precious time.
Waiting for MicroLinux v1.0!