Introducing Opa, a Web dev language to rule them all

One-stop language for Web application development spares you the drudgery of coding in HTML, CSS, JavaScript, SQL, and more

A perennial problem with Web development is its complexity and the number of languages and technologies a developer must juggle to deploy even the simplest Web application. You need HTML and CSS for the UI, JavaScript for the client-side code, a server-side platform such as Java or PHP for the back-end logic, SQL to access the database, and potentially more.

What if all of that went away?

[ Get software development news and insights from InfoWorld's Developer World newsletter. | And sharpen your Java skills with the JavaWorld Enterprise Java newsletter. ]

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.

Unlike with some rich Internet application (RIA) platforms, users don't need a browser plug-in to use Opa applications. The parts of your Opa code that need to run in the client browser are automatically compiled into JavaScript.

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.

Third, doing things the Opa way means giving up some of what you can do today with existing Web technologies. For example, Opa's generated client-side code isn't as versatile as hand-coded JavaScript, and its hierarchical database lacks the full power and flexibility of a SQL-based database. Most significantly, you lose the ability to optimize your data access using stored procedures, triggers, and similar capabilities, which tend to be the key selling points of commercial relational database systems.

1 2 Page 1
Page 1 of 2