hannibalcodegenerator


Hannibal Code Generation

NOTE WELL: Hannibal is still supported however all further development is moved to the Airlift cloud aware platform.

"We will either find a way, or make one." - Hannibal Barca

Hannibal Barca, the great Carthaginian general, is widely regarded as the greatest strategist and tactician of all time. His ability to engage the enemy, using innovative yet simple tactics in such a way as to ensure victory is second to none. Hannibal the code generator, strives to emulate Hannibal Barca's embodiment of minimalism, simplicity, and efficiency to advance pragmatic solutions to solve the problems associated with rapid web application development.

Hannibal is much more than a code generator. It is a code generator that produces code that is tied to small but effective Hannibal packages that allow developers to efficiently tackle a finite but commonly encountered set of problems. Hannibal is written in Java, but generates code in Java, JavaScript, php, and SQL. We plan to have Hannibal generate code in other languages as well.

We wanted to solve common problems encountered in web application development, without burdening the developer with the need to understand yet another tool set. Hannibal's supporting packages for Java and php merely support. When using Hannibal, it is our goal that the developer can quickly start creating code that works, and use and extend that generated code to build more interesting web applications. Here is a list of the common problems we are attempting to solve with Hannibal.

  • Persistence.
  • URI templating and processing.
  • Search
  • Validation
  • Presentation
  • Authorization
  • Audit
  • Internationalization

If we can make these things easier, we can claim success.

To meet this goal, here are some of the guidelines we developed over time to help of maintain focus:

  • Ruthlessly minimize Hannibal's technology set dependencies.
  • Rely on the target programming language built-in capabilities as much as possible.
  • Only when necessary use open source third party software libraries.
  • Keep the amount of Hannibal specific code to a minimum.
  • Cater to popular open source tools for creating web based applications, such as Tomcat, and MySQL.
  • Encourage integration with modern programming platforms like Amazon Web Services.
  • Whenever possible choose the target programming language to be used as a configuration language over other more popular choices like property files or XML.

We will try very hard to keep these promises to ourselves.

Project Information

Labels:
rest java java6 php javascript sql XHTML RDFa webservices E4X ATOM RSS generation code