Thanks to the mobile explosion, for the first time in 15 years, as an industry, we’re writing rich, complex, stateful client applications. But I don’t believe we’re yet looking at this as part of a broader trend. When I sample the general vibe of the tech world, I see grudging acceptance that we need better tools to write the complex front-end apps we now write, and genuine excitement about new technologies and approaches to back-end systems.
In the last 15 years I’ve written my fair share of .NET WinForm apps, MacOS X desktop apps, command line apps and even some Win32 apps. As, I’m sure, have most of you reading. When I say ‘as an industry’, I mean where the world of software engineering is devoting its group-thinking, -writing and -problem-solving. We’ve got a pretty great shared pattern language for web and back-end systems, but we’re having to re-discover knowledge from sometime ago to build apps.
Which is, interestingly, what the Plan9 fans said about REST when it became big news.
A possibility is that this is just a temporary glitch as a result of most people currently having high-powered client devices in their pockets. Maybe as the pendulum swings back, we’ll revert to writing the sort of systems typified by most web apps.
But I don’t think it’s going to smoothly swing back to the world we were familiar with. Or it doesn’t have to. Apps can be more than just clients.
This might just be a long-winded way of saying ‘The Internet of Things could be closer than we think.’
What will these systems look like? Central RESTful systems-of-record storing data with applications consuming these services and sharing events and changes directly across peer-to-peer and event sourced ad-hoc networks, using protocols such as XMPP.
Personally, I’m quite excited about what’s possible with these new architectures.