In a previous post, I grappled with the need to move my organization away from a web technology that we were expert and comfortable with (classic ASP) to something that’s more flexible, relevant and that will be strongly supported well into the future. Here are some new thoughts on that issue…and a conclusion.
Attempted Solutions
IT organizations position themselves to be successful in a rapidly changing field by ensuring the professional viability of its staff. This involves continuous training, both self-directed and externally administered. My staff attempted self-directed training in ASP.NET in the same way that they learned classic ASP. Due to the differences in the scale and complexity of the two technologies, this met with frustration. In 2008, five days of ASP.NET training was obtained from [vendor], but to little benefit. In the end, this training confirmed for some what they had previously suspected: ASP.NET is a poor fit for the job that they are responsible for.
Web Designers vs. Developers
When considering the selection of a new technology or IT solution, it’s important to recognize the differences in missions between the different groups of professionals that will use them. For purposes of this paper, it’s important to highlight a distinct break between what can be referred to “web designers” and “application developers”. Their skill sets overlap, but are not identical.
In general, web designers focus on projects which emphasize clear communication and pleasurable user experience. Their products aspire to be visually attractive and intuitive and their primary purpose is to explain, guide or collect basic information. Their skills include graphic design, CSS, HTML, javascript, SQL, database integration, information architecture and one or more web scripting languages. Their projects are often relatively small and self-contained. Many web designers are often self-taught and do not have a formal education in programming.
Application developers can be said to work on enterprise-level applications, usually, those of a high-traffic business nature where handling large amounts of data in a secure and extremely stable way is a necessity. Data collection and display of tabular data is the typical output. Visual presentation and user experience are often secondary considerations. An application developer might work on corporate payroll and accounting programs that are used through a web interface. Developers usually have a formal computer science background and experience with sophisticated languages like C++. They’re usually well versed in formal, structured methodologies like Object Oriented Programming.
PHP vs. ASP.NET
The ASP.NET framework uses an adaptation of Visual Basic, a Windows desktop application programming language and has little to do with classic ASP. It attempts to apply a software design paradigm to web development. The framework makes some routine, complex tasks simple, but often makes simple things frustratingly complex. While very powerful, ASP.NET’s level of complexity requires that the programmer be fully immersed in its use; it’s not something that can be “picked up” simply as an adjunct to a suite of existing web design skills. This technology is a good fit for full-time application developers, much less so for web designers.
PHP is very similar to classic ASP in its structure, is easy to learn, is well supported because it’s open source and is quite powerful. It powers a number of common CMS’s such as Drupal and WordPress. It is often cited as the easiest option for classic ASP users looking to move on to a different language. It talks to MS SQL Server and will run on IIS. Modern versions of PHP are sufficiently secure that their use is acceptable to most institutional cyber security groups. This technology would seem to be a good fit for ASP developers; it’s learnable, has a certain future as an evolving open source language, would provide staff with current and relevant skills and would allow the group to meet its obligations and satisfy its customers.