What if all of that went away?
In recent weeks, I've been fascinated with Opa, a new language that aims to eliminate all of the convoluted code-wrangling from Web application development. With Opa, you don't use one language to script your UI, another to code your business logic, and so on. Everything, from the client-facing code to the database access, is written in Opa.
Other parts of your code run on the server, as appropriate. Here, Opa is unusual in that it's a truly all-in-one solution. Unlike most platforms, you don't need to install and maintain a stand-alone Web server, database server, application server, and middleware layer to get going. The Opa platform provides everything, from the Web server to the database server to the client- and server-side frameworks.
As a result, Web applications built with Opa can be incredibly compact. There's very little of the "glue code," boilerplate, and drudge work that characterizes most Web platforms. The sample application is a distributed Web-based chat client that comprises just 27 lines of Opa code. A full description of how to develop and deploy Web applications in Opa would be too long to include here, but I encourage you to browse the copious documentation available online.
Does Opa have legs?
As clever as it is, however, I can see several challenges Opa faces if it hopes to gain wide acceptance. First, because it is a brand-new technology, the available talent pool for developing projects in Opa is very shallow. It'll have to gain a lot more momentum before most development shops categorize it as anything other than experimental.
Second, Opa presents significant barriers to entry for developers. The Opa language is easy enough to learn, but the problem is that developers must learn it. Because it is an all-in-one solution, very little of a Web developer's existing skill set is applicable to programming in Opa. There is an Opa way to access databases, an Opa way to handle network communication, an Opa way to display and format data, and so on. Developers must master all of these techniques to become effective in Opa -- even if they're thoroughly familiar with them on other platforms.