Fork me on GitHub Fork me on GitHub

Jaggery Manifesto

Remember we are just at 0.9.0-ALPHA-3, We have provided all the basic useful APIs, so you can build cooler apps using this deliciously new framework. So give it a run and let us know how it goes by mailing us here


Problem


Developing a Web application today is like a polyglot nightmare: the UI is written using HTML, CSS and Javascript with JQuery or a similar library; the interaction with the back-end is via form POST, JSON or XML; server-side logic is written using Java or PHP and often involves one of the myriad frameworks such as JSF or Struts; and finally data is stored using SQL or in a file format of some type.

Every step in that process has significant impedance mismatches: HTML Forms to XML, XML/JSON to Java, Java to XML, and Java to SQL (ORM). Every time such a mismatched conversion takes place there is potential for significant loss of information - which means we end up encoding that information in complex ways. Developers have to switch between different approaches, abstractions, syntaxes and idioms.

If you want to do the right thing and write both a service that offers an API and then an application using that API, then you have to cross further mismatches with JAX-WS, JAX-RS, XML Schema, JAXB, SOAP and the myriad other technologies related to writing services. Worse yet, it is not possible to create both an application and an API at the same time.

Its not a fun world. Productivity suffers.

As the explosion of data keeps going, we have no time to spare when it comes to writing applications that process and work with that data. It is critical to reduce the pain and complexity of writing applications. As the mobile explosion keeps going, it is also critical to create not just Web applications but also Web services that native mobile applications will be able to consume in the form of an API. More and more organizations are realizing that the best architecture is to create APIs and not just expose them to 3rd parties but also become consumers themselves in the applications they write.


Solution


"Jaggery" is an attempted solution to these problems. The objectives we strive to meet are:

    Offer a completely Javascript way to write all parts of Web applications and services as a way to reduce/eliminate impedance mismatches across different layers of the Web application and API development experience.

    &

    Close the gap between Web apps from Web services by allowing one to create both applications and APIs at the same time.

Jaggery is an evolving story - as it reaches 1.0 we are by no means hallucinating that we have got everything right or that we are done. We encourage you to come join the party and help evolve Jaggery to really solve the problems it strives to solve.