#summary What software are we building Melange on - and Why
#labels Importance-Useful,Phase-Design,Contents-Complete

_With Melange having elements of issue-tracker, content-management-software, wiki and social-networking-software, a natural question is: "Why not leverage existing open source software and adapt it to the Melange role?"._

== Restrictions ==

There are several restrictions and requirements that have resulted in things being the way they are, with little opportunity to change them. We hope that by documenting these restrictions the design decisions that were (and will be) made will make more sense.

=== Melange must run on Google Infrastructure ===

GSoC and GHOP are Google programs and need to run on Google infrastructure. Google engineers, particularly security engineers, can then step in to sort out problems if they arise. It is not sensible/practical/part-of-the-google-culture to run on, say, an arbitrary LAMP stack of non standard configuration. In short, running on Google infrastructure is a hard requirement that cannot be removed.

=== Google !AppEngine supported only Python ===

When the development of Melange started (mid-2008) the only language supported on Google !AppEngine was Python. It now does support a number of other languages that run on the JVM, but it would be counter-productive to re-re-implement the GSoC framework.

=== !AppEngine is not quite designed for Melange ===

The kind of applications that !AppEngine is designed to host do not quite include Melange. Most pages in Melange need to present the user with a lot of data, while the philosophy behind !AppEngine is that if you need to show more than 10 results at a time you're doing something wrong (viz. the Google search results). Since we really do need to show users (and in particular the Program Administrators from the Google site) we are regularly pushing !AppEngine's limits, which results in slightly awkward user interfaces, slow page load times, and similar issues.

== Frameworks ==

=== JQuery ===

[http://jquery.com/ jQuery] is a client side javascript library running in the client's browser.  The jQuery library (and several plugins) have been added to Melange to gain its benefits.  jQuery is used for various things in Melange, some of which _require_ it (such as the lists).

=== Django ===

!MediaWiki and Drupal, both of which could otherwise be used as a basis for Melange are written in Php, which ruled them out at the time frameworks were chosen. [http://www.djangoproject.com/ Django] is a server side page formatting library written in Python that runs on GAE.  Version 1.1 is being used in Melange.  Django had 'native' support on !AppEngine from the beginning, with its major aspects having been already ported by the !AppEngine team.