Lift en Ext Core ondersteuning|Lift and Ext Core support

Vandaag heb ik de laatste hand gelegd aan Ext-Core ondersteuning in Lift. Lift is een web applicatie raamwerk geschreven in de Scala programmeertaal.

Wat is Scala?

Scala is een taal ontwikkeld door Martin Odersky die uitvoerbaar is op bestaande Java platformen. Scala heeft een aantal sterke punten boven PHP, Java en Ruby:

  1. Zij kant gedraaid kan gedraaid en aangeroepen worden vanuit bestaande Java(EE) platformen. Een platform waar menig bedrijf stevig in heeft geïnvesteerd mede dankzij producten waar zij al gebruik van maken (SAP, Oracle, IBM).
  2. Zij kan op haar beurt Java bibliotheken aanspreken. (Dit is nuttig omdat Java een enorme collectie aan bibliotheken kent van hoge kwaliteit.)
  3. Zij gebruikt z.g.n. “static typing“.  Dit betekent dat veel fouten die normaal zouden optreden terwijl een programma draait, nu worden ondervangen terwijl een programma wordt gecompileerd (vertaald/geëvalueerd). Dit is nu juist de achilleshiel van talen als Ruby en zeker PHP.
  4. Zij is sterker object georiënteerd dan Java (alles is een object) maar ondersteunt ook heel veel concepten die voorkomen in functionele programmeertalen zoals Erlang en Haskell.

Wat is Lift?

Lift is een web applicatie raamwerk geschreven in de Scala programmeertaal. Het is initieel ontwikkeld door David Pollack. Hij heeft inspiratie gehaald uit de database opslag van Ruby on Rails (Ruby), de XHTML templates van Wicket (Java) en de multi-threading abstractie van Erlang. Vooral dit laatste heeft Lift tot hét framework gemaakt voor de COMET technologie: Normaal houdt een COMET request altijd een thread bezet op de server, ook als deze niet actief is. Scala maakt het mogelijk een inactieve thread terug te geven aan de tread-pool en deze als er berichten voor binnenkomen weer te instantiëren/activeren. Dit maakt het mogelijk voor applicaties als Twitter en Foursquare om veel meer gebruikers te bedienen per server dan ze normaal zouden kunnen.

En wat kan ik er nu méér mee?

Lift ondersteunt het verzenden van Javascript commando’s. Om dit onafhankelijk van diverse raamwerken to doen (zoals jQuery, YUI) heeft Lift een ingebouwde abstractielaag, genaamd JsArtifacts. Hiermee kan ieder Javascript raamwerk worden ontsloten voor gebruik binnen Lift. Sinds een krap jaar of twee werk ik met veel plezier met ExtJs, een commercieel javascript raamwerk. Om dit raamwerk goed te kunnen gebruiken binnen Lift heb ik een JsArtifacts implementatie geschreven voor gebruik met Ext. Gelukkig was dit mogelijk omdat Ext sinds kort de kern van haar software heeft vrijgegeven onder de MIT licentie.

Geplaatst door Dirk Louwers op 30-03-2010  •   •  Geen Reacties »  •  Labels: , ,