- Document-Centric Apps: This category of software includes spreadsheets, word processors, Photoshop, CAD/CAM, and a host of other applications.
- Communication: Email, chat, conferencing, even phones.
- Web-based: This has become a category in itself, and is not quite "software" in the traditional sense, but replaces some kinds of traditional software. Its distinguishing characteristic is that there is a server in the sky that is where things live, and you upload things to it (blog text, for example, or photo files, or form data) or, more frequently, download things from it (news, information, weather reports, dictionary entries, dance steps, and just about everything else that has existed throughout history).
Occasionally software in one category attempts to take on some of the functionality of the others. Email has evolved "attachments" to carry a payload, Word attempts to do web publishing, Fractal Design's Painter had a mostly useless "NetPainter" feature added onto the side of it. Web sites, originally all "download", have been adding "upload" capabilities bit by bit. Even document creation, to a small degree. Blogging software is, at the end of the day, just an HTML authoring tool that makes it easy to create/edit/upload a bit of text. It's not all that different from HTML editors that have gone before, other than being web-based. As I type this, I'm manually typing <li><b> tags and hitting the Preview button in blogger.com's posting window to see what it's going to look like. What happened to WYSIWYG editing?
These are, for the most part, evolutionary cul-de-sacs. They suggest the missing functionality in the application category, but don't really move the software into a different category.
The next revolution is to truly integrate these disparate kinds of technology. I like to think of it as putting the file cabinet next to the water cooler. So you're communicating--emailing, chatting, maybe authoring documents as well, but all in different places, with different kinds of software. What you really want is to have your communication built around your documents, and keep them in a global place where you can refer to them, revise them, share them, and there is just one definitive version of the document, not 13 revisions with names like "Budget 02 final-1.xls" and "Budget 02 final-3-Glenn.xls".
This requires a new breed of software altogether. A new network. A new protocol. A mini-revolution. HTML and web servers created a revolution by simply adding a little structure to file transfer. I think there is another revolution brewing by adding two-way communication and real-time aspects to the model, throwing in peer-to-peer capabilities, and seasoning to taste.