To say the last few weeks have been stressful is an understatement. I have subsisted on 2-3 cups of coffee a day to stay focused. I am a part-time employee but it feels like I’m working full-time hours.
Last week my supervisor told me that I needed to create a site that handled event registrations and accepted ACH transactions. So I began working on this project and it needed to be done by Friday. I spent some time making sure that what I was coding would work with the current code base I had created. I was told repeatedly to not worry so much about making sure it integrated as opposed to just getting it working. That just goes against how I think. I know that Murphy’s Law will kick in at some point and I will end up wasting the “time I saved” by just hacking something together to get it working. As I came across areas of concern I expressed them. The responses I got were less than encouraging. The responses came across as “Keep quiet and do your job.”
Today was the icing on the cake. My supervisor sat down with me and asked me questions about all my decisions in regards to development over the last year and a half. To me, it felt like a personal attack. My boss believes I am anti-Microsoft because I developed our website in PHP & MySQL. I use Microsoft products and I spent the first 3 years of my career developing in VBscript, a Microsoft language. I used PHP because it met the needs we had for the website. I mainly use open-source software because it is free but there are other benefits. With Microsoft you have at best a couple hundred programmers working on one project. With open-source projects you have thousands of developers around the world.
As the conversation continued, it felt as though my boss wanted me to scrap everything I had done over the last year and a half and rewrite it in a Microsoft centric language. What frustrated me more than anything was the perception of open source software. It came across to me, that my boss thought that open-source is backwards, unreliable and/or immature. What is “open-source” anyway. According to the Open Source Initiative, open source is as follows:
“Open source is a development method for software that harnesses the power of distributed peer review and transparency of process. The promise of open source is better quality, higher reliability, more flexibility, lower cost, and an end to predatory vendor lock-in.”
This whole thing got me thinking. Is there validity to the arguments put forth during our discussion?
If something goes wrong, who do you go to for support with open-source projects? I’ll look at three of the main open source technologies I use.
PHP - PHP is the language used on many websites on the web. Zend, was started by Andi Gutmans and Zeev Suraski who created the core PHP scripting engine, the Zend Engine, in 1997. IBM, Lockheed Martin, NASA, and NOAA are among those who are customers of Zend.
MySQL - MySQL is the database software that allows websites to be store their data and allow users to access over the web. Google, Los Alamos National Laboratory, DirecTV, Nokia, and the Associated Press are among those that use MySQL. MySQL has enough market share that Sun Microsystems agreed to pay $1,000,000,000 (1 billion dollars) for MySQL AB, the company that maintains MySQL. If you use Google Maps then you have used Java, another product of Sun. Microsoft moved away from their proprietary Java Virtual Machine in favor of using Sun’s Java.
Perl - Perl is “the duct tape of the internet.” If you need to edit a file on the fly or parse the same text file and add the info to a database, Perl is tool you want. If support is needed, then you have to go no farther than ActiveState. Not only does ActiveState maintain and support Perl but they also have developed an IDE (integrated development environment) to facilitate writing Perl scripts.
We need one system that will run on Windows and with Microsoft products.
- PHP runs on Windows under IIS. Zend and Microsoft created a partnership to get PHP running on IIS.
“With Microsoft’s implementation of the FastCGI open standard, IT Professionals will be able to host PHP applications on Windows Server® 2003 and IIS 6 with increased reliability, scalability, and security. Customers also know that they will be able to count on Microsoft to stand by and service the Microsoft FastCGI Extension. By supporting the open standard, Microsoft has made it possible for PHP and other CGI compliant languages to be hosted efficiently and effectively on Windows Server 2003 and IIS.”
Support for PHP will be native in IIS 7.0. PHP also has support for connecting to Microsoft SQL Server.
MySQL runs on Windows. MySQL has drivers that allows Microsoft languages to access MySQL databases.
ActivePerl will run on Windows.
I’m not saying that Microsoft is evil nor am I saying that open-source will save the world. What I’m saying is that open source has grown up over the last ten years and is helping to drive the market forward.
One final example, will help further illustrate my point. Microsoft released Internet Explorer in August, 2001. Service Pack 1 was released one year later in September. It was another two years before SP2 was released. Internet Explorer 7.0 was released from beta in October 2006. A five year period between major revisions. Over about the same time period, Mozilla released 48 different versions with 3 major revisions. The latest version was released in November of 2007.
Firefox implemented pop-up-blocking in version 0.3 in 2002. Microsoft implemented it in IE 6 SP2 in 2004. RSS support was added to Firefox 1.0 in November 2004. RSS support did not come to IE until version 7.0 in 2006. This does not prove that Firefox is superior to Internet Explorer. It does however prove that competition and the free market system breeds innovation.
I have no problem developing with a Microsoft language. I just don’t want the decision to be based on FUD (fear, uncertainty, and doubt). However, based on the events of the last few weeks, I’m going to need a lot of coffee to keep me going and prayer that the stress doesn’t overtake me.