Following on from musings on PHP as Disruptive Technology and Why MySQL Grew So Fast, it occurs to me that what hasn’t been said yet is both are technologies that aim to be cross platform, the platform being the operating system (and the web server in PHP’s case).
More precisely, they both run well under Windows. It may be an obvious point but getting started with “dynamic duo” is almost easier on Windows than it is on *Nix, at least for a standard installation. By being open to Windows, both are exposed to a huge user base. It may be your run your live site on a LAMP but, as a developer, you can set up an environment on Windows which is close enough to that which your code will end up running under.
When you consider MySQL relative to PostgreSQL, everyone who’s ever looked knows that PostgreSQL is much more mature, in terms of it’s functionality. So why isn’t PostgreSQL the big hit MySQL is? Perhaps the #1 reason is PostgreSQL has never made it easy for Windows users.
Python is another language that runs nicely on many platforms and does a great job of making life easy for Windows users. Although it’s not (yet) as big as Perl or PHP, over the last two years it’s seen a significant growth in popularity (all it needs now is some articles on Sitepoint…). Perl, by contrast, seems to have reached it’s ceiling in terms of uptake. Outside of ActivePerl think it’s fair to say Perl puts *Nix first – perhaps that’s the problem.
Another prime example is Firefox, which you might argue actually runs best on Windows (I’ve run into bugs with some Firefox extensions, when running on Linux, that don’t happen on Windows). The signs seem to suggest the it does such a good job on Windows it’s able to convert IE users. Remains to be seen whether Firefox can make a serious dent in IE but stats seem to suggest Mozilla based browsers are the first to show steady growth in user base since IE wiped the floor with Netscape.
Of the Open Source office suites, OpenOffice is certainly the leading player, getting most air time and serious consideration. It faces stiff competition with MS Office; despite being free to use, users no doubt happily stuck in a rut. Despite that, relative to the Open Source alternatives, thinks it’s fairly safe to assume it has the largest user base.
A controversial comparison is Java’s Swing GUI library vs. SWT (the Standard Widget Toolkit developed by IBM and used to build Eclipse’s User Interface). Swing aims to be platform independent while SWT aims to be cross platform. From a theoretical perspective Swing is a better choice as it isolates you from the platform your application in running on but in practice the cost in performance overhead is high and users tend to be critical of apps that don’t look “native”. Meanwhile SWT leverages the native GUI libraries of the platform it runs on (i.e. MFC on Windows) meaning it’s fast and looks “at home” where ever it runs.
Along the same lines in wxWidgets, a C++ library that uses the same approach as SWT. Some say it’s easier to work with wxWidgets than Microsoft’s own foundation classes, the end result on Windows is the same. It’s common to see Python users saying wxPython (a Python wrapper on wxWidgets) is the best GUI library for Python.
Anyway – it’s common to see a certain elitism amongst Open Source developers, when it comes to platform. Some even say “never” to Windows. May not be the best approach if you want your project to be a success…