The Travelling Programmer |
||
|
Location: Perth, Australia
Next: ?
Jobs: Programmer Teacher
|
28 Jan 09 Birds of a Feather are Tested Together
As an example of two groups of software that are in common usage there are two common stacks used to develop web based software... First up is the Microsoft way. WIndows as your OS, IIS as your web server, Sql Server as your database and .net as your development environment. All of these pieces of software were developed to work hand in hand by a single company. Presumably their interactions are thoroughly tested. If you're lucky you'll even get a few freebies in the form of free functionality or performance and faster development if you run Microsoft software end to end. Secondly, theres the Lamp stack. Lamp consists of a Linux operating systems, Apache web server, MySql database and php or python as your development environment. These are all pieces of open source software in common use within the programming community. Although these tools are developed by different people but there is an expectation that they will be used together. If you were to look at the population of users of any one item from the lamp stack I'd say you'd find the majority are using the lamp stack in its entirety. If you're using Php its a pretty safe bet you're also using Linux, Apache and MySql. In either case the interactions between the various pieces of software are well tested through real world use. If you are writing a Python app on Apache and Linux you're on safe ground as chances are the people who wrote Python itself and the majority of Python apps running on the web were written and tested on Apache and Linux. The majority of the bugs have been found and fixed long before you ever wrote your first line of Python. The same is true of the Microsoft stack. The chances of you encountering a bug in the way that .net and IIS interact is very slim. Where things get risky is if you mix tools from various groups. I still regularly encounter people running Windows, IIS, Sql Server and Php. Sure, you can get it to work but you're off in the wilderness. Very few of the core Php contributors are Windows or Sql Server users and Php is unlikely to be a high priority for the Windows and IIS teams at Microsoft. You are operating in a relatively untested space between two camps where you can expect the assistance of neither if you run into problems. As a testament to this to replicate a client's setup I had to get Php on a Windows machine to connect to Sql Server. To do this I had to track down an old version of ntwdblib.dll on the net and put it on the server. Think about that for a moment. I had to manually replace a DLL to get mssql_connect ($host, $username, $password) to work. Why? Because evidently not a single person involved in the development of Php ever tried running the latest version on a Windows machine and connecting to an Sql Server database. Why would they? They're not running Windows or Sql Server. Typically programmers will talk about selecting a programming language. They are programmers after all and what programmers care about is programming languages and not databases or web servers. Having made that choice they just go with whatever OS, web server and database they happen to already have installed or have ready access to. The operating system, database and web server typically receive little more than fleeting consideration. This is an extremely foolish way to make a decision that you're going to have to live with for a very long time. Rather than picking a programming language then going with your personal default when selecting an OS, database and web server pick an entire family of related pieces of software. Don't pick Php. Pick the lamp stack. Don't pick .net. Pick the whole Microsoft stack. And if you don't then don't come crying to me when you run into some Python + Apache + Windows + Sql Server edge condition that no one wants to help you fix.
Visitor Comments oRkYyG <a href="http://xaghubnasixo.com/">xaghubnasixo</a>, [url=http://egilfgoqtzpo.com/]egilfgoqtzpo[/url], [link=http://wyzazvpmeovj.com/]wyzazvpmeovj[/link], http://agpvgjtngkmf.com/ khqzvnhseu Make a comment |
|
|
©2008 Andrew Add to Technorati Favorites
|
||