Web applications may one day surpass desktop applications in function and usability -- if developers have more programming languages to choose from, according to a Google engineer.
"You should have more choices of viable languages," said Gilad Bracha, software engineer at Google, speaking to an audience of programmers Wednesday at the QCon developer conference in New York.
[ Work smarter, not harder -- download the Developers' Survival Guide from InfoWorld for all the tips and trends programmers need to know. | Keep up with the latest developer news with InfoWorld's Developer World newsletter. ]
"I think the Web platform could make Web applications as good or better than native applications," Bracha said. "Ultimately it has to do that. Otherwise, the proprietary app stores will come and eat us all."
The benefits of Web applications are well-understood by developers. They don't need to be installed and they can work on any platform that supports the Web.
Unfortunately, one of the chief drawbacks is that they don't operate when not connected to a network.
So the ability to run Web apps offline will be critical given that, at least for the foreseeable future, many users will not have constant access to network connections.
"The Web is always available, except when it is not," Bracha said. "It isn't always available in a way that you can always rely on it. You may have a network that is slow or flaky, or someone may want to charge you."
Therefore any Web programming language, and its associated ecosystem, must have some way of storing a program for offline use, Bracha said. The Web programming language in the future must also make it easier for the programmer to build and test applications.
There are other programming languages being built for the Web but very few are viable -- meaning they aren't well-engineered, lack key features and don't operate efficiently, Bracha said.
One of the reasons that Google started work on the Dart programming language, which Bracha helped author, is to provide the Web with an industrial-strength programming language.
Bracha pointed to some other lesser-known and still experimental languages that show promise as well.
One was Elm, a functional programming language for building GUIs (graphical user interfaces). He demonstrated how only a few lines of Elm could allow the end user to draw a circle in a browser window using only a mouse.
Elm is designed in such a way that once the code is placed into its Web editor, the results show up immediately in a preview screen, eliminating the need to save the code and run the program in a separate window.
"Try this in Swing," Bracha said, referring to the Java GUI widget toolkit that can be cumbersome to use. Bracha also co-authored the Java Language Specification, so he has some experience in that language as well.
Bracha also demonstrated Lively.
Lively is even more responsive than Elm. The developer, when viewing a draft of their program in the browser, can simply click on any part of the application on the screen and Lively will bring up to the screen the specific object code that rendered the object.
Even the Lively code editor is an object that can be manipulated, allowing the developer to move and manipulate any of the controls.
This approach is far easier to work with than, say, using a standard IDE (integrated developer environment) such as Eclipse, which would require the user to scan through thousands of lines of code to find the section that needed to be modified.
"Hopefully, this will give you an idea of the wonderful variety of stuff that is out there," Bracha told the audience. "Competition is good for everyone."