Microsoft is a big company and has a lot of developers, and it wouldn’t seem they need help from the community. However, the have a lot of code and a lot of different projects that keep the developers plenty busy. At least they are too busy to provide some simple features that exist in almost every other operating system.
There are obvious shortcomings in many of the included Microsoft applications. Open source communities are excellent at rounded out an application.
If Microsoft were to open source some of their software, and allow for at least for read access on whatever source control they use, then allow for not only submitting bugs but submitting patches, that can be reviewed and applied or rejected, then they could see a wave of improvements come from the many different windows users: Enterprise admins, developers, power users, etc..
It is also nice to be able to debug an application for Microsoft. It is not always easy to duplicate bugs in house, so if a developer experiences an issue that is annoying enough, they would fix it themselves and while yes, Microsoft benefits, more importantly, all the other users of that application benefit.
Microsoft started ww.CodePlex.com, and it is very similar to SourceForge.net. They have just under five thousand projects that claim to have stable releases.
Why doesn’t Microsoft make more of their own projects available on CodePlex?
Microsoft could have many open source projects that could become large communities. One open source community that continues to gain popularity is Windows Install XML. It seems to be a large community now and is growing rapidly. Strangely it is actually hosted at Sourceforge.net, though it has some sort of presence on CodePlex.
How many Open Source project could Microsoft have?
More people develop using Windows than any other operating system. (Yes, phone OSes may have or may someday take that over…but that is besides the point). Think of all the software companies in the world. How many of them don’t develop for Windows. Even Apple spends a lot of time making iTunes work on Windows. There are so many developers that might contribute that it is impossible to count them all. Some may end up contributing as part of their job. Many developers might contirubte to a project because it makes their development lives easier. Many enterprise customers might contribute to lower the costs of managing their environment. Many consulting and contract companies might contribute for their own reasons.
So what applications should Microsoft start with?
Here are a list of applications that Microsoft should open source immediately.
#1 – Notepad.exe
Yes, this is the most simple editor that we never use. One of the first thing my colleagues and I do whenever we install windows, is install Notepad++. While we love Notepad++, we don’t love that we have to install all the time.
After more than 15 years since Windows 95 (or is it more, was notepad.exe in Windows 3.11?) notepad.exe should be one of the most functional and efficient editors in the industry. However, notepad lacks features that are critical to a good text editor. The most important being syntax coloring. Others features such as supporting regular expressions in find and replace, supporting plugins (especially the XML plugin), are features we use in Notepad++ often. There is really no excuse for Microsoft not having these features. The community has provided these feature for you, all you have to do is include them in your base system.
There are actually many different Notepad-like projects on CodePlex. Maybe some as as mature as Notepad++ maybe some arent. The question is whether any of them will ever become a standard part of the base windows install?
Maybe Microsoft keeps notepad.exe simple, but adds a second more advanced application like Notepad++ in the base system. Or why not just include Notepad++, it is free, after all.
#2 – Internet Explorer
Ok, so Mozilla Firefox and Google Chrome are open source. Microsoft is losing ground to both browsers and this is not going to change in the near future.
Brand is important, however, is really anything left to gain by winning the browser war. Maybe using IE to kill Netscape in the late 90s was important back then. But would anyone really care if IE went away and windows shipped with your choice of the other browsers available? We don’t think so. This is actually how Europe installs of Windows are today. The homepage and search engine war is what is important and Microsoft could still control that on its operating system by having the homepage be msn.com and the default search engine be Bing.
So what use is it for Microsoft to spend time and money developing IE? None really. It is a waste of time and money they could spend elsewhere. Release this software to the community. Besides, the new IE development community would not be hampered by being part of an organization that is too large to care enough about IE to release in a timely manner anyway.
If IE became open source, it would be rejuvenated in a way Microsoft can’t do in any other way.
For example, This blog’s home page has a boxes with rounded corners. IE is the only browser that doesn’t support the rounded corners feature in CSS. This feature would have been implements years ago were IE Open Source, as many other features would have as well.
#3 – Windows Explorer
If there is anything that needs debugging help from the community, it is Windows Explorer. Like Notepad.exe, Explorer.exe just hasn’t evolved the way an application should. Even on Windows 7 we all have experienced issues including constant unreproducible hangs, crashes, and failure to refresh.Whether these are due to explorer or something that is plugged into explorer, the inability for a user to do anything about it annoying, especially if that use, like me, is a developer and may or may not have the ability to debug and fix the issue.
Also like Notepad.exe, there is a lack of features and plugins. After almost two decades of existence, Explore.exe should be one of the most feature rich file browsers in the industry. But instead, Explorer is difficult to work with if you want to do anything other than just work with the file system. One example of this: TortoiseSVN/TortoiseCVS cannot install and plugin to Explorer without prompting for a reboot. If released as a community project, Explorer.exe would become on of the most feature rich tools in windows.
#4 – Windows Live Messenger
So Windows Live Messenger hasn’t worked for me in months. Microsoft updated it with Windows Update. Guess what. It hasn’t worked since. And this is true for a lot of people. Many in my office have seen this as well as many others who are posting to their support site. See my previous article: Windows Live Messenger update broke again: Error 8100030d. This isn’t my only complaint, though the fact that they are releasing a product that doesn’t work is quite tainting to the Windows name.
I kindly offered to debug this issue for them, but my post to their support bulletin was ignored.
Even more annoying than the fact that Windows Live Messenger isn’t working for many people missing feature is the conceited attitude that users of Windows Live Messenger don’t also use other messaging tools. Most messenger applications now support logging into AIM, MSN, Yahoo Messenger, and many others. But not Windows Live Messenger. If released as an open source project, the Windows Live Messenger community wouldn’t let this missing feature remain absent from the project.
#5 – MSPaint
MSPaint finally had its first bump in features with Windows 7. However, it is still a shell of what it could be. What could it be? It could be Paint.NET and users love Paint.NET. Paint.NET is everything that MSPaint should be but isn’t. Paint.exe should be a well developed, feature rich application by now. However, Microsoft doesn’t spend any time on it.
So why not put the Paint.net project out there for the community. I don’t quite install Paint.NET as often as Notepad++, but I use it and install it quite often. Why do we have to go out and download and install Paint.NET. Why after more than a decade and a half can MSPaint be such a basic featureless application. Because there is no plan for it. Nobody is assigned to create a project plan and drive improvement for it. Even a one person project would be more developed than this after a decade and a half. If there hadn’t been a push to make it more Vista/Windows 7 like, it wouldn’t have gotten the recent update it received.
Look at the successful projects that exist: Paint.NET, Gimp, Pinta, and others. If Microsoft had sponsored such a project years ago or when MSPaint first came to existence, it might be rivaling Adobe Photoshop by now.
#6 – Hyperterminal / Telnet / FTP, etc…
Microsoft doesn’t have an SSH tool of an SFTP tool by default. Are you as frustrated as I am when downloading PuTTY and WinSCP for the hundredth time. Almost every open source operating system has these features as part of their base operating system. Yet Microsoft has somehow found a way to not include them.
An ssh/sftp tool set, both a command line and gui version, should be an open source project on CodePlex. Sure, leave them off of Windows Home Edition and make them have to be installed late. But these features should be included in a standard installation of Windows Ultimate.
#7 – Windows Command Prompt / PowerShell
The PowerShell is a little late to the game. Look at all the shell scripting abilities in open source operating system with sh, csh, ksk, bash, tcsh, etc… Even OS X can use these. Microsoft is so far behind when it comes to shell scripting. Let the shell be managed by the community. Or replace it with a shell, or include a shell.
We can of course install Cygwin but again, why should we have to?
#8 – Hashing tools
On any other platform, we can easily download a file, and check the md5, sha1, or sha256 hash on that file. This is important because when you download software, especially from sites such as SourceForge.net, they always include a list of hashes you can use to make sure that the file was downloaded correctly and that it wasn’t tampered with.
Open a command prompt in windows and type md5, sha1, or sha256 and you will be told that such files are not found.
#9 – .NET Framework
Microsoft is trying to port .NET Framework and one source at Novell SUSE informed me that Microsoft was paying them to deliver open source versions of Silverlight (Moonlight) and .NET Framework (Mono) for open source platforms. If they open sourced .NET Framework, porting it over would be much more simple and the project might have more community developers.
The ability for software vendors who have so many .NET applications already developed to be able to port them to run on MAC and Linux is going to drive this technology into the forefront over the next decade.
The entire .NET Framework library doesn’t have to be released, but if it was, it would be beneficial to more than just developers for Mono. Developers for Windows would also like to know how something is done in code, and Microsoft has thousands of examples, they just aren’t sharing them.
#10 – Windows Media Player
We want one Media app to rule them all. Windows users are tired of having multiple media players installed. Nobody wants to have all the following apps on their box: WMP, QuickTime, RealPlayer, MPlayer, FlashPlayer, and other one off players.
We are all tired of not being able to play a specific file or media type. If the WMP project were open sourced, it could become the one and only player a user would ever need, with the ability to play media types other codexes that it cannot play now.
Someone would surely write code for it to manage the music on iPods and other MP3 players in a quality manner. This is also strategic for the brand and tactical business act in that this would essentially kill iTunes, and lead the music buying industry back to whatever site Windows Media Player delivered, probably something that gives Microsoft a percentage of the purchase price.
#11 – An Application update service for all applications
Every single application thinks it needs to write its own software to update itself. And they all have to run their own icon in my task bar, and check for their own software. There should be a project started called the application update services and applications register with this service. Then one single icon in the task bar can look up the update needs for any application on the system. No more separate updates from Java, Adobe, and others.
#12 – Regedit.exe
Many of you who are like me are in the registry all the time, developing it, testing it, troubleshooting it, checking settings, changing settings, tweaking performance. There are dozens of simple features that Regedit.exe is lacking. Such as the ability to past in a long registry key and have the tool browse to that key, like Explorer.exe allows for directories. No, you have to click on every last key yourself.
Not to mention that there could be dozens of plugins that allow for making all the things we do in the registry easier (remember the earlier list: developing it, testing it, troubleshooting it, checking settings, changing settings, tweaking performance).
Why is each root key on the same screen, maybe they should be separate tabs? If this were open source, someone could create that option.
Why can’t we go to an Ethernet tab and have a some easy options to optimize for 100 M or 1GB or the dozens of other advanced but common settings for Ethernet controllers, such as MTU.
Why can’t we do any of this? Because the Microsoft developers are not being told to develop these in their road maps. But system administrators and desktop administrators and power users who live in the Windows world would love such features and many would add them if they only could have access to the source to do so.
Microsoft is starting to come around to the benefits of open source. They are much more open to it than they have been in the past and they can get the vision of open sources projects that they don’t need to maintain, then everyone will benefit in their own way.