From the Affinity Groups: Recommendations of php/mySQL, .NET, asp/SQL
The NTEN Affinity Groups are great sounding boards for folks who are looking for technology recommendations. Last week, a vibrant discussion occurred among one of our most active Affinity Groups, the 501 Tech Club DC. A group member wanted to better understand how php/mySQL, .NET, and asp/SQL compare. Key issues included similarities, differences, and preferences in choosing amongst the tools. A summary of responses from the 501 Tech Club DC participants is below. Want to be involved? Sign-up today free of charge and view all posts and links in their full glory at http://groups.nten.org.
General Recommendations:
- Separate your database software from your server-side-scripting language of choice - meaning, you don't need to pick PHP/MySQL or ASP.NET/MSSQL. You can just as easily have PHP/MSSQL or PHP/Oracle and ASP.NET/MySQL
- Consider what else you might want to run on your server and what sort of server you're going to run – if you're a Linux-only shop, obviously .NET is not a good choice. If you have a .NET development environment which allows easy deployment of web services and the like (and you're going to need those...), you probably want to use ASP.NET.
- You should also consider security, and how well your admin (if you're incharge of hosting) knows both technologies. It is much easier to misconfigure PHP than ASP.NET, especially if you have an inexperienced sysadmin. <http://groups.nten.org/message.htm?hid=31752&mode=view&start=125&igid=6624>
- PHP vs. ASP. Both have their merits and drawbacks but 99% of what gets argued over has nothing to do with them. The two most significant differences are market penetration and platform cost. The computation about platform cost isn't easy either. That one-time license fee might be a pittance compared to labor costs if you already have an experienced windows administrator, for example.
- They are both tools and should be chosen based on which - if either - is the right one for the job. And really, there's more than just those two choices - you can also use Perl, Ruby and goodness knows what else. <http://groups.nten.org/message.htm?hid=31760&mode=view&start=125&igid=6624>
- Time and time again, developers of all stripes complain that a boss/client has gotten the programming language of the day fever and forced them to learn a new language when they were perfectly happy with the language they were already familiar with.
- First evaluate the applications that already exist that a new developer must support. Then evaluate what resources you have on hand to support a developer's needs or acquire to meet their needs. Then, based on that information, if you are flexible, find a developer who is familiar in the areas that you need, but be open to someone with expertise in a different language if they fit your staff culture better than anyone else. <http://groups.nten.org/message.htm?hid=31761&mode=view&start=125&igid=6624>
- Previous Comment Follow up:
- Developer preference is the key here. However, you should also take into account *future* developer preference in case you lose the one you've got. With PHP and ASP.NET this isn't really a concern, but if you've got a guy sitting in the basement churning out CGI scripts in FORTRAN, you might have a problem. <http://groups.nten.org/message.htm?hid=31765&mode=view&start=125&igid=6624>
- .NET might be the fastest to build something in, but limited (mostly) to Microsoft Servers, and almost completely locked into Microsoft. Mono is nice, but not good enough yet. C# is good, and Visual Studio beats Eclipse for an IDE. ASP was replaced by ASP.NET, which is basically both C#.NET and VB.NET.
- PHP might be hard to find skilled developers who have experience with larger applications. Its niche has traditionally not been sites that require more than one server, although it's probably the easiest to learn if you already know HTML and just want to tinker something together. (Smallest amount of new knowledge if you already know how to make a webpage.) Not many good IDE’s, save maybe PHPclipse.
- Ruby might be the easiest to learn, if the tutorial is anything to judge by. One should not trust a large application to it.
- JSP is the same as PHP to learn quickly, but *can* have the full power of Java behind it. Full Enterprise Java development tends to be easiest to mess up, so qualified help can be pricey. Heavyweight EJB applications are awful, and have not seen Tomcat scale smoothly. Eclipse is a blessing and a curse, but there are quite a few good/free IDE's.
- MySQL is getting there, in my opinion. For single-box installs, it's blazingly fast and rock solid. Best choice for anything expected to never scale past a single box.
- PostgreSQL was slower than MySQL but traditionally much, much more stable. MySQL became more stable to catch up.
- Microsoft SQL Server is finally there, and has much, much better graphical tools for administration than any other server encountered. Scales multiplatform reasonably well. Best choice for scaling stuff, or if you want a better user interface.
- Oracle is the 900 pound gorilla, and is many times the cost of anything else. Unless cost is no object, and never will be, avoid it like the plague. It scales better than anyone else, if you have the cash to pay experts to tune it just so, or the gumption to give a try to new guys, which defeats the point of it being ultra reliable.
- So, all in all, developer preference with some major (or slight) advantages depending on the task and help at hand. MySQL, Ruby, Python, Oracle, Microsoft .NET/SQL Server, PHP, Java, JSP, all good. <http://groups.nten.org/message.htm?hid=31781&mode=view&start=125&igid=6624>
- Both PHP and ASP.NET have advantages and disadvantages. It comes down to two factors: developer preference and platform.
- It doesn’t matter how perfectly a language addresses a task, if nobody knows it well enough to take advantage of its strengths. As has already been said, most developers have a preference of environments, and that should be a strong consideration, if everything else is equal. As an added impact, the developer needs to assess the ability to pick up information they might not already have. PHP is fairly straightforward to pickup/refresh concepts or syntax; ASP not so much. But, there are others who will swear the other way around.
- The other major question is platform. If your developers are working in a Windows environment, coding Windows apps and just feels comfortable in the MS environment, ASP just makes more sense. It has the ability to scale, and is a relatively dependable environment. Give your coders the ASP… and sympathies. If you partake of the open-source philosophy (or your coders do), and you aspire to an open source environment, go with PHP, or one of the many other open source languages available. Granted, PHP will run on Windows, and there is some way to get ASP to work on a Linux box. But, don’t add the extra layer of complexity, if it isn’t warranted.
- Other issues that can potentially come into play are ActiveX requirements, IDE requirements, size of project, etc. <http://groups.nten.org/message.htm?hid=31802&mode=view&start=125&igid=6624>
.NET Plug Recommendations:
- Mono Project: http://www.mono-project.com/Main_Page
- Discussing PHP vs. .NET, so far there hasn’t been noted one of the advantages of .NET: compiled code. Unless PHP is now compiled, .NET can (not will!) run faster because it is compiled. (Yes, the HTML is still interpreted.) <http://groups.nten.org/message.htm?hid=31795&mode=view&start=125&igid=6624>
- The assumption is that there is no tool to step through code in a debugger, the way you can with .NET (which you could not do in classic ASP). Perhaps there is now a tool for that.
- Error reporting catches some errors but you need to step through code and watch variables to catch logic errors (e.g., should be "0 to n - 1", not "1 to n").
- In classic ASP, the only way to do so was to write response statements directly to the output wherever one might need it. It is time consuming. In .NET one must access to the value of every variable every step of the way while in debug mode. This is the power of an excellent programming environment (as opposed to the merits of the language), and one would hope the PHP community has developed one. Of course, simpler projects generally do not need as sophisticated a tool. But when on your desktop, they make you look busy.
- In SQL, the MS environment didn't develop a particularly good debugger until the current version, 2005. Who knows where MySQL stands on this matter. In SQL 2000, one must copy and paste the SQL that pass through the .NET debugger and SQL profiler and see where errors were, similar to how to resolve classic ASP problems.
- Of course, experience makes doing all this easier, regardless of the underlying software (http://groups.nten.org/message.htm?hid=31799&mode=view&start=125&igid=6624>
PHP Plug Recommendations:
- Debugging is great if you have error reporting turned on. Some hosts turn this off so as not to give away too much information about the hosting environment, in the case of errors on a live site. Error messages like "Unexpected } on line 42" are usually enough to find typos.
- Props to the documentation for PHP. The function reference at PHP.net is great. The community is huge and very willing to help new developers solve their problems/answer their questions. <http://groups.nten.org/message.htm?hid=31796&mode=view&start=125&igid=6624>








