Ask for a definition of Web 2.0, and the answers will include user-created content, social media, rich interaction, AJAX, Web services, mobile applications and even Web-powered refrigerators and microwaves. But what distinguishes Web 2.0 from traditional web applications is user interaction and reliance on Web services. Here are some of the major tool categories that power Web 2.0 development.
Traditional Programming Languages
Programs written in traditional languages like PHP and Java still form the foundation of most Web 2.0 sites. Combined with mySQL or other enterprise databases, these programs dynamically create server-side content and power the Web services that feed data to mobile apps and AJAX-powered browser interaction.
Frameworks like Rubies on Rails speed server-side development by allowing the developer to describe in declarative form what the website should do instead of procedurally coding each step in a traditional language. With a few lines of code, the framework builds a fully functioning website. Then, the developer molds the look and feel of the site with a few modifications. A site that could take weeks to create using a traditional language can be up and running in a few days.
Mobile Development Tools
Mobile apps, especially those running on the iPhone and Android platforms, have transformed the way the world uses the Internet. These apps run independently inside the phone’s operating system but rely on Web services to access data, content and media. Development tools for each platform are readily available from the Web at little or no cost.
Social Media Add-Ins
Another recent development trend revolves around desktop, browser and mobile development for social media sites like Facebook and Twitter. Both have released Web service-based API’s that open their content to desktop and mobile apps. Facebook has published specifications for widgets, add-ons and even games like Farmville, hosted directly within the Facebook environment.
In addition to languages and API’s (Application Programming Interfaces), there are other tools and techniques contributing to Web 2.0 development. Agile development methods address the time pressures and quick response needed to create software in Internet time, shortening development cycles and focusing on small incremental results. Test-driven development ensures that code is reliable and robust and tools like jUnit and nUnit support these techniques.
Developing for Web 2.0 requires a different mindset, joining resources on multiple servers, browsers and mobile devices. Users expect a much richer experience, and development is changing to meet these needs.