At the AJAXWorld Conference & Expo and OpenAjax Alliance back to back meetings in Santa Clara, CA this week, it has been hard not to think about the developer community and how Web 2.0 is impacting it today.
Web development can be roughly divided into two camps:
- Website development;
- Web application development;
"Website development" is more concerned about content: presenting content, linking pages, delivering documents, and simple form-based interactions. The typical websites would fall into this category. "Web application development" is more about “application", the role of which is to provide and present data, interact with users and other systems, all governed by certain business logic. Though there is no clear-cut boundary between the two, there are distinct differences between them.
In the web development community, there are roughly four different categories of people:
- Web Architects: Architects are the gurus. They know object-oriented programming, EJB, database connection pooling, SOAP... and how different pieces/jargon can fit together. Architects go to conferences. In fact, I think most folks at AjaxWorld Conference are architects. Architects speak probably quite a few languages (Java, C#, PHP, for example) and use tools like Eclipse or VI to write code. Architects are hard to find and afford, but you do want to find and retain them. You don't want to offshore the responsibility of architects. In any large projects, there is only a very small percentage of people are architects, but they are the leading influencers and crucial to the success of projects.
- Content Developers: these are the folks that provide content. They typically use word processors etc to produce the content and their technical involvement stops at HTML.
The web development community can be visualized in Figure 1. Web application development and site development typically require a different mix of people. Web application development requires considerable technical skills. Web site development projects require more resources on design and content development and may not even need architects.
Looking from an enterprise perspective, there is an enterprise application development community that has been historically different from the web community.
In the enterprise developer community:
- Architects: same as architects in the web community. In fact, these are typically the same group of people who are architects in the web community. My estimate of the total number of architects worldwide is in the order of a few hundred thousand people.
- Application Developers: these are the folks that deliver your typical desktop applications. They are the Visual Basic developers, J2SE developers, PowerBuilder developers, WinForm developers...The total number of application developers is about 10 million people.
- Business Analysts: different from application developers, business analysts are less technical but have a much higher level understanding of the specific business issues. Their job is to convert business needs into IT requirements and help facilitate the development of IT projects from the business user perspective. They use tools like Excel to do analysis and PowerPoint/Word to communicate. They also use tools like requirement management software to communicate with developers. My estimate of the total number of business analysts is in the order of tens of millions of people.
- UI Designers: UI designers are different from web designers because UI designers focus on desktop UI instead of web UI, though the two groups are converging into one.
The Convergence of Enterprise Development and Web Development
As the web becomes more entrenched in our daily life and business operations, enterprise application development is moving more and more onto the web environment. Historically, the technical limitation of the Web has limited the scope of web adoption for enterprise applications. For example, Forrester Research conducted a survey that shows 50%-60% of new application development projects are still being developed as Client/Server applications in 2003. The rise of Web 2.0 technologies (Ajax, Enterprise Mashup Server, Universal Client Framework, Internet Messaging Bus, Rich Internet Application, etc) finally removing these technical barriers.
With Web 2.0 technologies, the Web is capable of supporting all kinds of applications. As a result, the enterprise development community and the web community are converging into one - let's just call it the "developer community".
The Shifting Landscape: Open Web Technologies Win
Quite a few recent surveys have demonstrated the significant impact of Web 2.0 technologies on the developer community. Beyond the convergence of enterprise application development and web development, these surveys show significant trends in the growing adoption of open standards-based web technologies in lieu of technologies that are proprietary and not web-compatible.
Ajax Adoption and Server Side Platform Trends
Richard Monson-Hafael from the Burton Group conducted a survey (The raw results are here) on client side and server side toolkit/platform for Ajax. On the client side (the charts are generated by Ajaxian.com):
I must say that I was a little surprised that Dojo is not more popular than Script.aculo.us. I talked to Richard Monson-Hafael at AjaxWorld Conference 2006 about this. He said it could be the result of the sample pool not being big enough (865 participants).
Apache XAP (http://incubator.apache.org/xap) is not listed in the survey. XAP has not reached a production quality yet. I think XAP will have some significant impact on the web developer community after XAP reaches the next quality level.
On the server side, I am not surprised that PHP is the most popular one. Most Ajax adoption so far is for web site enhancement, where PHP is the most popular platform. Ajax adoption for web applications and enterprise applications are happening but significant adoption will not come until probably 2007.
I am actually fairly encouraged that Java is the 2nd most popular platform. First of all, it shows that Ajax is being adopted in web applications and enterprise applications, beyond being used in web sites, given that Java is typically used for powering interactive applications rather than the more content oriented web sites. Secondly, Java's popularity is well above .NET. This shows that the developer community is embracing open, standards-based solutions.
Ajax to Overtake Flash in Web Projects
Ektron and SitePoint did a survey of 5,000 web developers and release a report entitled The State of Web Development 2006/2007. It is a great survey that contains lots of useful data. In particular, the following two charts demonstrate some significant trends, showing which web technologies developers and organizations are using now - and plan to use in future.
Interestingly, Ajax is actually fairly widely used today in web projects today. Wait until you see the next chart when asked the question "What technologies do you plan to use in 2007":
Note that the survey is more targeted at web site developers and less on web application developers (of course, much less on enterprise developers). Given that Website developers are the traditional strong base for Flash, it is extremely revealing how developers are moving away from Flash to Ajax. I believe if you were to survey application developers, the gap between Ajax and Flash-based technologies would be significantly bigger.
There is good converage on this worth oaking a look at:
ReadWriteWeb: Ajax set to surpass Flash in '07
I am not too surprised at the result and the trend. Ajax is open, standard-based and web-native. Flash is not open standards-based. Flash content is not native web content and has a lot of interoperability issues with other web technologies. Of course, the community is shifting towards Ajax!