• [ << ]
  • [ 0 ]
  • [ 1 ]
  • [ >> ]
May '06
19

Ruby en Rails 2006


Ruby on Rails 2006 Op 18 mei j.l. werd het eerste Ruby on Rails seminar in Nederland georganiseert. Ruby is een programmeertaal (of eigenlijk scripttaal) die al een slordige 10 jaar bestaat. Rails is een framework waar je ontzettend makkelijk database gedreven webapplicaties mee maakt. Dit in combinatie met de huidige moeizame ontwikkeling van webapplicaties heeft er voor gezorgd dat RubyOnRails in korte tijd ongekend populair is geworden. Reden temeer om dit seminar te bezoeken en te zien wat Ruby en Rails allemaal in huis heeft.

Waarom gaat een Java programmeur naar een RubyOnRails seminair ?

Om dat hij het gehad heeft met Struts ? JSF te tool afhankelijk is en hij voor Spring teveel XML moet kloppen ? Dat zou kunnen :-) In ieder geval was mijn motivatie de vraag of RubyOnRails een bruikbaar alternatief is voor de bestaande webbased userinterface technieken en of de boel eenvoudig kan integreren met bestaande Java systemen.

Om een antwoord op die vraag te krijgen wil je graag live zien hoe snel je met RubyOnRails een webapplicatie in elkaar kunt zetten samen met tekst en uitleg. Dat is precies wat de eerste presentatie liet zien. Aan de hand van de wens om in 1 oog opslag te kunnen zien waar RubyOnRails ontwikkelaars wonen in Nederland werd er in rap tempo een naam/postcode invoer scherm gemaakt (geïmplementeerd volgens het Model-View-Controller pattern)

Opmerkelijk was hoe weinig je hoefde te doen voor een standaard CRUD (create,read,update,delete) scherm. Veld en object validatie regels waren ook bijzonder eenvoudig toe te voegen en het framework voorziet al in het tonen van de bijbehorende foutmeldingen.

Daarna werd een postcode -> latitude,longitude entiteit toegevoegd en ook voorzien van een CRUD scherm en werd een relatie tussen deze twee entiteiten geslagen. Ook dit kon gebeuren door het toevoegen van slechts enkele Ruby statements. Maar goed, het met de hand invullen van alle coördinaten van iedere postcode is natuurlijk onbegonnen werk en daarom werd er snel gerefactored naar een platte file in CSV formaat. Aangezien Rails versies bij houdt van het database schema is het erg eenvoudig om wijzigingen in het schema terug te draaien.

Ruby op de kaart Toen was het tijd voor ze piece de resistance. Het tonen van de ingevoerde Ruby ontwikkelaars op de kaart van Nederland d.m.v. Google maps. Een vriendelijke ziel heeft een plugin gemaakt voor Rails die eenvoudig mogelijk maakt. Wederom was dit zo voor elkaar. Dwz, aangeven wat het middelpunt van de kaart moet zijn en over de ontwikkelaars door itereren en ze 1 voor een toevoegen aan de kaart. En klaar is Klara :-) Kortom een interessante en overtuigende presentatie.

Uiteraard zijn demo's leuk, maar werkt het dan ook in de praktijk ?

Als we Geert Rozeboom moeten geloven wel. Hij heeft RubyOnRails gebruikt voor het toegankelijk maken van bedrijfsgegevens voor leveranciers via het internet. Deze bedrijfsgegevens komen uit een ERP systeem (Microsoft Dynamics). De functionaliteit die geboden wordt is het raadplegen van de gegevens, het (deels) updaten ervan en het versturen van zogenaamde Alerts via SMS. Zijn motivatie om RubyOnRails te gebruiken was eenvoudig : deels uit passie en deels uit pragmatisme aangezien de snel iets nodig hadden. Hij illustreerde het grappig met een enorme stapel boeken over Java en een klein stapeltje van 2 boeken over Ruby.

Wat maakt Ruby dan zo uniek ten opzichte van andere talen ?

Michiel Mare presenteerde op originele wijze een aantal taal eigenschappen van Ruby waardoor Rails zo'n effectief framework wordt. Daar waar mogelijk liet hij ook zien hoe je andere talen (C,C++,Java en zelfs JavaScript) dezelfde eigenschappen kan bewerkstelligen, alleen niet zo code efficiënt. Al met al een leerzaam verhaal waarover ik nog eens wat meer moet lezen in mijn Ruby boek wat ik voor de gelegenheid maar gekocht heb :-) Huis de Voorst

Toen was het tijd voor de lunch, brood en soep geserveerd in de kasteeltuin met een zonnetje erbij en goed gezelschap, wat wil een mens nog meer ? :-)


  • [ << ]
  • [ 0 ]
  • [ 1 ]
  • [ >> ]