Recently watched this video of Yahoo Engineer Nate Koechley talking about the discipline of Professional Frontend Engineering.
The presentation is long but quite good in that it covers a broad spectrum of the issues faced by Frontend developers. About 15 minutes into it he presents a quote from Douglas Crockford:
"Browsers are the most hostile software development environment imaginable."
This is an intuition that I have felt for many years. But having never been an actual desktop application developer could only accept as intuition. Between trying to satisfy often competing design agendas, style, and aesthetics while still maintaining a sensible baseline of functionality make frontend engineering extraordinarily challenging. And the moving target of the browsers makes a difficult task seemly insurmountable. And to compound it, many people practicing in the field come from a variety of backgrounds. Many people who became web developers are likely to have come from a non-technical computing background. I would be willing to bet a significant majority of people practicing the art of web design came from non-computer science based education. Many are art, business, or liberal arts majors. Many, like me, got their start when the web was really young and found themselves consumed in some form of internet based employment. Others are just casual users trying to get their content onto the internet and have taken up an interest of the plumbing of the semantic web. And given that the web is built out by these hybrid creators it is amazing that the web works as well as it does. It has been an evolving process of trying to learn, experiment, keep up with technology, and suss out the intricacies of browser quirks. As the web has become fundamental to our lives it has become clear that the basis of this frontend work needs a rigorous level of professionalization. This need to enhance the discipline and state of the art is what makes Nate's presentation so important and relevant.
Nate's presentation is a real inspiration for anybody who has been frustrated by the trials and tribulations of browser support. It is difficult but it is not hopeless. There is a way out. The state of the art is improving and knowledge and best practices are getting more formalized and refined. It is an exciting time to be producing web content and applications, because the tools and frameworks are coming into real maturity. However, one thing continues to give me pause with the trajectory of web 2.0 drive to make the browser the fundamental platform for application development. If Douglas Crockford is right about the browser being the most hostile environment for software development, and I think he is, then why is there so much effort to make the browser the basis of application development? The short answer is that there is nothing else that is universal enough to take the place of the web and the browser. So despite all the flaws and inconsistencies of the browsers it is the best hope we have for a widely accessible and open information and communications infrastructure. And in light of this the entire web can certainly benefit from the professionalization and elevation of the efforts of frontend developers. And Nate Koechley's presentation lays the groundwork of how this professionalization is achieved. Well worth watching if you have any direct role in trying build websites.