Saturday, November 20, 2010

What is HybridJava

HybridJava is a Java™ -based component-oriented MVC technology for programming dynamic web content. Most of existing frameworks claim that they support "components", but if you look closer it turns out that in each case this term has a different meaning. Most often they speak about one or more types of components from the following list:

  • components to build page Model from
  • components to build page Controller from
  • components to build page View from

  • For instance a popular book on Struts "Programming Jakarta Struts" has three chapters in a row (5-7) titled "Struts Controller Components", "Struts Model Components", "Struts View Components" and those three types of components are notably uncorrelated. In HybridJava technology, on the other hand, - each component follows the MVC paradigm, incapsulating its own Model, its own Controller, and its own View rendering method in one Java class.

    HybridJava technology implementation basically consists of two parts – a Compiler from HybridJava Language and a Framework. The latter also serves as the run-time for the Compiler. The compiler processes files .page and .widget and generates Java sources of pages that fit the MVC framework on construction. HybridJava API is wrapped around standard Servlet API, but operates on pages and components level so you may forget about request and response.

    HybridJava Language is easy to learn for those who already know just Java and HTML, since it is about 46% Java and 46% HTML. Pure Java is also our Expression Language. The overall volume of HybridJava technology documentation is less than 15 pages.

    The HybridJava Framework API is pretty compact - only about two dozens of methods total. Framework supports validation and "Previous Page" button.

    HybridJava technology implementation is Pure Java. Current version is 1.02. With this version the source code of HybridJava Framework is provided as Open Source. You may see that it is less than 1000 Java lines long and suggest why it is working so fast. Of course there are ways to make it work even faster. Having in mind that the rest of your application is also generated in the Java source form the technology as a whole looks quite transparent.

    HybridJava Home