Fourth, Opa's all-encompassing design means developers must rely on the Opa implementation for everything, which could end up being a significant barrier to new features. Seismic shifts in Web development techniques are not unheard of. Consider the rise of AJAX, which is now virtually ubiquitous in modern Web UIs. If a similar shift happens in the future, Opa developers could easily be left behind as they wait for the platform to adapt to the newest techniques.
Opa is published under the GNU Affero General Public License, and its source code is available on GitHub, so technically anyone can join in and contribute new features, bug fixes, and improvements. But here Opa's design presents a problem, also. The Opa engine is written in OCaml, itself a relatively little-known programming language that combines functional, imperative, and object-oriented programming styles. In other words, most independent developers will have to learn yet another obscure language, in addition to Opa, just to contribute to the open source project.
Finding a niche
Opa is not the first language to face such challenges. In fact, in considering Opa's design and goals, I'm reminded of nothing so much as the so-called fourth-generation languages (4GLs) that sprang up beginning in the 1970s. Like Opa, the 4GLs aimed to speed up the software development process, make programming more accessible to more people, and reduce the size of program source code for better maintainability. Those were laudable aims, particularly when the alternative was hammering out business logic in Cobol. As a 4GL for the Web, however, Opa's greatest challenge may be it seeks to address a need that simply isn't very urgent.
Despite all of these criticisms, I do think Opa is worthy of attention. It could easily become a valuable tool for rapid prototyping, experimentation in education and the sciences, and even efficient deployment of in-house business applications. And it's important if for no other reason than that it challenges the orthodoxy of Web development. As with any discipline, there's more than one way to do things, which Web developers should be reminded of more often. Any technology that enables developers to conceptualize and deploy applications in new ways should be a welcome addition to the Web development toolbox -- even if it's not the one you reach for first.
Incidentally, if you're interested in trying out Opa, there's currently a contest under way to see who can come up with the most original and effective Web applications using the language. To win, you'll have to be up and running by Oct. 17. If anything is a test of how quickly you can build and deploy applications in Opa, I reckon that's it!
This article, "Introducing Opa, a Web dev language to rule them all," originally appeared at InfoWorld.com. Read more of Neil McAllister's Fatal Exception blog and follow the latest news in programming at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.