This is not a post about how Linux is better than Windows for developing websites or vice versa. It is a post about how one of the most commonly used arguments against developing on a Windows based web server with IIS and a language like ASP or .NET is no longer valid. That is, that it’s too expensive because of licensing or having to buy software.
Historically if you want to develop on a Windows server you had to get a dedicated server, buy Windows server software, buy MS SQL Server, and then deal with complicated licensing fees. Or you had to work with someone else willing to deal with all of that. This could easily cost several thousand dollars just to get set up, not to mention any ongoing license fees, which I’ve never been able to figure out myself and therefore can’t speak to regarding the costs.
On the other hand, you could go get a virtual private Linux server account from one of the thousands of hosting companies around for a few bucks per month and develop full fledge web applications using PHP and MySQL and pay nothing but the monthly hosting fee. No worries about extra costs, no worries about licensing, no software to buy, etc.
This ease of use and low cost with Linux fueled explosive growth of Linux as the operating system of choice for small businesses (as well as for plenty of large ones) when it came to web development. However, with Windows Server 2003 it became possible for hosting companies to create low-cost virtual server accounts that include MS SQL and support for developing in .NET.
Why Microsoft didn’t do this year ago I don’t know, but in many ways this has leveled the playing field when it comes to choosing an operating system for web development. There is still a price difference between virtual Windows hosting and virtual Linux hosting but it is minimal (for example, $6/month for Linux vs. $8/month for Windows, big deal). Before you take issue with me bear in mind I didn’t say “all ways” I said “many ways.” For some this change will have no impact whatsoever, but for many it makes a huge difference.
One of those for whom it makes a huge difference is my own web development firm. We’ve found .NET to be a superior web programming language to Java, PHP, or Ruby in a number of ways and it’s our preferred language for building robust web apps. It also happens to involve much more of a learning curve which is its primary disadvantage.
One of the products we’ve developed in .NET is a fairly sophisticated content management system. Up until recently our clients either had to get a dedicated server and buy all the software, or we had to host them on our own server. Seeing as how we’re not a web hosting firm ourselves running our own hosting has been nothing but a pain, and certainly not a money maker for us, even though we’ve charged clients $50-$100 per month for hosting a .NET site.
Now just about every hosting company is offering virtual Windows hosting that will run our content management system. This means we don’t have to do our own hosting anymore (win), clients can have their site hosted in a more reliable setting (win), clients don’t have to pay as much for hosting (win), and if we wanted to make it a quadruple win I suppose we could point out that the hosting companies are now getting business they previously didn’t have. Win, win, win…win.
Do I believe this will cause a huge shift in the number of people developing on Windows vs. Linux? Probably not, there are other reasons why people will continue to use Linux instead of Windows. I think it will cause a slight increase in the number of new projects being developed on Windows, but mostly I think it will make life easier for those who, like us, already develop for our customers on a Windows platform. One thing’s for certain, for those whose apps don’t require a dedicated server for other reasons it removes the argument about not developing on Windows due to the costs involved in paying licensing fees.




I’ve actually found Rails to be a much better platform to develop web apps on thus far, regardless of your web server.
Ah, but the question is why you think it’s better. Not that I have direct experience, all I know is what I read and what my developers tell me, but from what I’m told .NET is much more robust and you can do a lot more with it, but Ruby is a heck of a lot easier to learn and use.
I would have to agree with Josh. I think .net is more main stream, and with the 2.0 (and 3.0) enhancements, it’s about as robust environment that you could want. Especially when you look at code re-use.
As for hosting, I think it’ll be interesting when Mono is a little more compatible with the *nix environments. It could change the game a little.
As for now, I prefer the windows familiar environment.
PHP vs ASP(Visual Basic Script or JScript)? you’ve got to be joking me. PHP is much faster, is more stable, runs on anything, can connect to more databases, and is free. http://news.netcraft.com/archives/2006/11/index.html shows 2x more developers using apache than IIS. i know you can run apache on windows, but who does that?
long live open source!
http://www.wrensoft.com/zoom/benchmarks.html
http://librenix.com/?inode=8012
http://marty.anstey.ca/programming/php/articles/
“PHP, while loosely based on C and Perl, has never faced the overwhelming complications ASP has. PHP is an object oriented language – though scripts need not necessarily be developed that way (there are still a vast number of developers preferring procedural programming, and PHP caters to both schools). PHP is both cross platform and open source, available for every major operating system and works with most web servers. It is easily extendable by anyone capable of coding in C, and comes pre-bundled with more functionality than ASP could ever offer. Simple capabilities, such as FTP, data compression, file uploads, XML, MD5, encryption and email are not included in ASP and require expensive, third-party packages to be installed. All of this functionality and more are built right into PHP. Complex functions such as dynamic images, IMAP, SNMP, dynamic flash, PDF, native access (non ODBC) to Oracle, Ovrimos, Postgre, Sybase, mSql, MSSQL, Ingres, Interbase and Informix databases, LDAP, and sockets, just to name a few, are available for free to any installation of PHP, but are not (and probably never will be) available with ASP. In addition, one could make the point that PHP is a more mature language than ASP. ASP has only been around since 1996; PHP has been around since 1994, and has a huge base of developers working on it every waking minute of every day; bugs are usually fixed within minutes of being reported and new features are being integrated daily.
ASP is significantly slower than PHP, for obvious reasons. Primarily, PHP runs on notoriously fast Unix and Linux servers which have for years outpaced Windows running on comparable hardware. ASP does not run on any operating system other than Windows, and even then, only in IIS and PWS. I could discuss countless reasons why IIS makes a terrible web server, but that would be a discussion all on it’s own. PHP runs on almost any web server, on almost any platform. I have even built a web server in PHP which was capable of executing PHP scripts.
ASP natively supports only Access and MSSQL, whereas PHP natively supports a huge number of databases. They both support ODBC equally well. MySQL is a database that PHP closely integrates with; it is a very powerful database that rivals Oracle in speed. Like PHP, MySQL is free, and blows most other databases out of the water. Another hidden cost with ASP is the database angle; Microsoft expects you to develop using Access and when your webpage outgrows it, to switch to MSSQL, an extremely expensive option. What most people don’t realize is how quickly you can outgrow Access. Although you’re technically limited to around 30 simultaneous connections, realistically it’s closer to 5. Not many websites can survive such limitations. Most moderately sized websites require over 1000 simultaneous database connections. In addition, Access is SLOW. And you forego a lot of cool database functionality such as stability, transactions, replication, stored procedures, triggers, and so on. There are so many reasons not to use Access, I can’t even begin to elaborate on them here.
While even the best software has glitches, PHP has notoriously few. The PHP development team has an outstanding reputation for fixing bugs, and in order to streamline the process they even have an online system through which new bug reports can be submitted. Most bugs are resolved within 24 hours, and I’m speaking from experience here. There are a huge number of outstanding bugs in ASP which will probably never be fixed. Unless you’re a major corporation, chances are that your bug report to Microsoft will likely go unanswered.
And finally, cost. PHP is free. ASP isn’t free. If you want to use ASP, you have to use IIS, and if you want to use IIS, you have to buy Windows. Traditionally, the cost of Windows has been high. Microsoft has been aggressively trying to reduce this factor but they’re hardly going to give Windows away for free. The cost of running an ASP-based website implies a full Windows server platform; development costs are higher, software licenses are expensive and speed, security and flexability are all sacrificed.
There’s a reason that Unix and Linux are dominant in the server market; money, security and performance all speak volumes. ”
http://www.phpbuddy.com/sub_articles.php?other_articles=9
http://www.ryanbyrd.net/rambleon
Well, let’s take this point by point.
1. “PHP vs ASP(Visual Basic Script or JScript)?”
No, PHP vs. .NET. I agree ASP isn’t or wasn’t that great. I don’t know anybody who continues to develop in VB script or especially Jscript. I only mentioned it because people might have legacy applications running in ASP that they could move to a new hosting service and save some money. So let’s not talk about the advantages of PHP over ASP since nobody is making that argument.
2. “Another hidden cost with ASP is the database angle; Microsoft expects you to develop using Access and when your webpage outgrows it, to switch to MSSQL, an extremely expensive option.”
Did you read the post? The whole point is that you no longer have to pay for MS SQL, so it is no longer an extremely expensive option. It will cost you a dollar or two more than MySQL.
Also, no serious web developers work with Access, they start out with MS SQL, so let’s not argue about how MySQL is better than Access since nobody uses Access.
3. “And finally, cost. PHP is free. ASP isn’t free. If you want to use ASP, you have to use IIS, and if you want to use IIS, you have to buy Windows.”
Again, did you read the post? .NET is basically as free as PHP. The only remaining limitation I’m aware of is the cost of the development tools themselves.
———————
Ryan, most the arguments you put forth would have been completely valid about seven years ago, and partially valid as recently as 1-2 years ago, but unfortunately while you may know plenty about open source you’ve got your mind loaded with data from 1999 and you appear to be completely ignorant of the steps Microsoft has been taking since then.
But again, I’m not a Microsoft proponent. I think open source is great. The whole purpose of this post is not that Microsoft is the most viable option all the time, but simply to point out that Microsoft is a more viable option than it once was.
.NET is not a programming language, just a framework, well at least as I understand it
. And lack of technical culture and competence makes it popular amongst mentally chalanged IT companies, which is quite sad.
Yes, it is a framework rather than a language itself (view the .NET wikipedia reference for more information) but there’s no reason to make the distinction seeing as how whether it is a language or a framework has no bearing on the point being made in this post.
As for the second comment about .NET being popular amongst mentally challenged companies, what evidence do you have for such a statement? I’ve only heard that kind of statement from people who treat the open-source movement as a religion rather than a business model and who have never actually tried developing in .NET. While my evidence is purely anecdotal, every developer I’ve talked to who has developed first using open source technologies and then has tried .NET has said they find .NET to be superior.
If anyone else wants to argue the point I suggest using logic and evidence vs. emotion. If you make statements with no basis in fact I’m probably going to resist publishing your comments, unless they’re really entertaining.
I don’t think John’s point is logical in the way he meant it – but he does bring up another interesting point – do companies purchase (or choose) technologies because of buzzwords? Absolutely.
Do CIO/CTO’s head in directions because of advertisements – instead of actual product capabilities? – yes.
I have worked for a number of companies who purchased ORACLE licenses when an Access (yes, Access) database would have sufficed for their particular need.
On that note though – SQL Server has really dropped in costs (So has ORACLE).. to the point that everyone should be using them. I am not saying anything bad about MySQL however – it does have it’s place and does a great job at certain things.
I have yet to see a real valid argument that .NET 2 (Ok – ASP.NET programmed in either VB.NET or C#) is falling short of the capabilities of PHP. Frankly – becuase I don’t think you can make that arguement.
One could reasonably argue that an ISAPI application could smoke either – I would openly listen to that argument. And Cold Fusion – well- there’s the answer to all our problems
I can’t believe there are actually rumors about a new version coming out.
One more thing – the built in spell checking in FF2 is very cool.