Brackets is being developed by Adobe, with the strapline “built with the web for the web”. The About section of the Brackets site focuses on the opportunity for web developers to customise and enhance the application (“if you can code in Brackets you can code on Brackets.”), but I was more intrigued by what this meant for the prospects of massively cross-platform development with a single code-base.
Of course this isn’t the first time this has been suggested – in the fact it’s not even the first time I’ve thought of it. A couple of years ago, I was discussing with a client using an embedded browser to upgrade a (Windows only) java application. A primary motivation was to avoid rewriting functionality for the web, while another was potential availability (in the browser) on mobile devices. After some investigation, the idea was reluctantly shelved, since the consensus was that CEF at the time was too experimental, and that a web UI wouldn’t be able to replicate the smoothness and speed of a native application in [Java Swing](http://en.wikipedia.org/wiki/Swing_(Java)).
Steve Jobs (in)famously once tried to convince developers that web apps were the way forward for the iPhone but a native Software Development Kit was announced not long after – thought to be in response to jailbreakers and the developer backlash – and the App store and third-party native apps swiftly became a cornerstone of the iOS ecosystem.
Showing that these issues haven’t yet gone away, Facebook recently switched from HTML5 to native for their iOS application, citing performance and user expectations as their primary reasons.
It’s natural for developers to want to use the same codebase across multiple platforms, and for some applications that’s going to work – perhaps for more applications over time as hardware acceleration in the browser becomes better supported and understood by developers. But even in the web browser we’ve not yet achieved consistent support across browsers for all features, and it’s still often the case that to achieve the very best performance and usability native apps are the way forward.
So perhaps what’s more exciting than the dream of WORA is that technology like Phonegap and CEF can make native application development accessible to a whole new group of programmers coming from – and bringing ideas from – a much wider range of disciplines than tradiitional computer science.