PROOF PDF
datanews CLOJURE
SPECIAL EXTRA KATERN VAN DATA NEWS VAN 30 OKTOBER 2009
JRUBY
JAVA FX COBOL
SCALA
JYTHON
MET A L OVERLES DEVO XX 20 09
GROOVY
JAVA
JVM SPREEKT ALSMAAR MEER TALEN
PROOF PDF
DEVOXX
DEVOXX
JAVA SPECIAL
JAVA SPECIAL
De naamsverandering van JavaPolis in Devoxx betekende niet dat Java aan de deur werd gezet, maar precies dat de deur werd geopend voor een breed spectrum aan ontwikkelingen in de ontwikkelaarswereld.#Guy Kindermans
Ondanks de naamsverandering, blijft het event in het Antwerpse Metropolis cinemacomplex, zijn bezoekers een ware ‘who’s who’ van de Java-wereld presenteren.#Guy Kindermans
atuurlijk zullen de nostalgici onder de lezers allicht nog terugverlangen naar JavaPolis, dat zich als een waardige tegenhanger van het grote JavaOne op het oude continent aanbood (*). Maar BeJUG’s Stephan Janssen ziet dat toch wat anders. “We moeten Sun eigenlijk dankbaar zijn dat ze ons de naam lieten aanpassen en er nu geen Java meer instaat. Devoxx richt zich vandaag immers op ontwikkelaars met een veelheid aan talen.”
s het het Belgische bier, de verleidingstrucs van de organisatoren, het leergierige panEuropese publiek? Of een combinatie van dat alles en meer? Wat het ook moge wezen, het zorgt ervoor dat het sprekerskoor op Devoxx 2009 schier alle grote tenoren van de Java-wereld bijeenbrengt. Niet alleen maakt eens te meer James Gosling zijn opwachting, ook Alex Buckley (verantwoordelijk voor de Java-taal en VM specs), Brian Goetz (concurrency & Java), Dick Wall (JavaPosse.com lid), Joseph Darcy (OpenJDK 6, en JDK7), Mark Reinhold (Sun principal engineer) en Roberto Chinnici (spec lead JavaEE6) doen dat. Alleen op JavaOne zelf kon je een rijker aanbod van Java-spre-
N
JVM boven alles Klaarblijkelijk, want vandaag draaien op Java Virtual Machine al meer dan 200 talen, waaronder Scala. Een taal die ondertussen haar sporen verdiend heeft, onder meer voor de ontwikkeling van websites met stevige doorgroeimogelijkheden. Zo werd de Twitter-server ontwikkeld in Ruby on Rails, maar vervolgens herschreven in Scala. Ook Fan, een taal voor functioneel programmeren, met kenmerken ontleend aan C#, Java, Scala, Ruby en Erlang draait op JVM. De rode draad doorheen Devoxx is dus Java Virtual Machine en minder Java zelf. Dat laat een mengeling en kruisbestuiving tussen een hele reeks talen en elementen toe, onderstreept Janssen, evenals een grote vrijheid om per-
sonen uit te nodigen. “Zoals een Christophe Herreman, die een ActionScript library heeft voor het Spring framework, zodat je Flex-toepassingen op een ‘Spring’-achtige wijze kan ontwikkelen.” Op Devoxx zal er dan ook ruimte zijn voor zowel Suns JavaFX, Adobe’s Flash en Flex als voor Microsoft Silverlight.... Overigens kan zo’n breed spectrum aan geavanceerde info ook een gevaar inhouden. Zo hoorde Janssen van een Fransman de opmerking dat hij zich na Devoxx voelde als een kind na een weekendje EuroDisney. Je hebt zoveel gezien en zoveel geleerd, dat je hyperactief bent en alles tegelijk wil proberen. Wat bovendien nog het gevaar versterkt dat bedrijven steeds vaker met een jungle aan frameworks, talen en dies meer blijven zitten. Zelfs in de kleine ontwikkelingsgroep van Parleys wordt er al gebruik gemaakt van twee verschillende versies van Flash frameworks (zij het wel om testredenen), geeft Janssen toe. Toch maakt het brede aanbod zo’n conferentie wel leuk, “je voelt je als een kind in een snoepwinkel.” Het nogal ‘psychedelisch’ exuberante logo van de editie 2009 moet die grote verscheidenheid aan keuzes en onderwerpen nog extra in de kijker plaatsen. Overigens kan Devoxx
ook helpen bij het afzwakken van dat jungle-gevaar. Vandaag staan hele reeksen sessies van het event (tot en met 2006) online. Dit materiaal kan worden gebruikt om mensen (bij) te scholen over frameworks of talen.
Sun/Oracle De editie 2009 van Devoxx ontsnapt natuurlijk niet aan de gevolgen van de overname van Sun door Oracle. Normalerwijze had de overname al moeten beklonken zijn, maar daar stak Europa een stokje voor. In combinatie met krappere (reis)budgetten gaf dat problemen wat de beschikbaarheid van sprekers betreft. Het heeft er in ieder geval toe geleid dat de ‘keynote’ op de eerste dag van de conferentie in feite een drietal presentaties werd van respectievelijk Oracle, Sun en Adobe. Wel heeft ‘de vader van Java’ James Gosling toegezegd aanwezig te zijn om deel te nemen aan de ‘Java gebruikersgroep’-BOF (alias Bird Of a Feather sessie, waar de aanwezigen vrijelijk van mening kunnen wisselen). Op de tweede dag zal de keynote worden gedeeld door Robert Martin, met een verhaal over ‘clean code’, en Ivar Jacobson, de vader van de componentenarchitectuur en uitermate onderhoudende verteller. Twee absolute
‘musts’! Naast talen en frameworks ruimt Devoxx ook ruimte in voor cloud computing, bij velen ongetwijfeld een ‘stijger met stip’ op de lijst van te volgen ict-ontwikkelingen. Er komen verschillende aspecten van het cloudgebeuren aan bod en er is daarbij ruimte voor vragen van bezoekers. Als een GoogleApps urenlang kan uitvallen, stelt Janssen zich bijvoorbeeld vragen bij een fenomeen als cloud computing. Wat als zelfs de Googles van deze aarde geen rotsvaste garanties inzake beschikbaarheid kunnen hard maken? Voorts prijken dit jaar ook weer ontwikkelingsmethodologieën op het programma, maar het aanbod van security-gerelateerde sessies is zo goed als nihil. Ondertussen blijft Devoxx ondanks de crisis een stevige aantrekkingskracht uitoefenen over de landsgrenzen heen, met vertegenwoordigers uit schier alle Europese landen en verder. Een succes dat Janssen toeschrijft aan de democratische deelnemersprijzen, gekoppeld aan het soliede aanbod van sprekers!#
I
Een ‘who’s who’ van Java-land
Prof. Eric Steegmans, KULeuven; Tom Baeyens, JBoss. Een bijzondere figuur is Ivar Jacobson, een begeesterende spreker en een van de vaders van het componentengebeuren. Ook met zijn werk op het vlak van de Unified Modeling Language (UML) oogst hij lof. Met twee dagen ‘university’ en drie dagen conferentie biedt Devoxx een brede kijk op Java, het Java-platform en de omkaderende frameworks. Dat laastste weerspiegelt zich dan ook in vertegenwoordigers van onder meer SpringSource en Apache. Dat het aanbod aantrekkelijk is, moge blijken uit voorinschrijvingen voor Devoxx uit schier alle Europese landen en daarbuiten.
se, Flex SDK), IBM (Doug Tidwell, standaarden rond Web 2.0; Holly Cummins, monitoring & diagnostic tools) en zelfs van Oracle
Voor een volledig overzicht van het event verwijzen we u naar de site van Devoxx www.devoxx.com, waar u alle nodige info vindt.#
kers aantreffen. De taal en het platform komen in ieder geval in al hun vormen (ME, SE, EE en JavaFX) ruimschoots aan bod. Op het gastenlijstje staan voorts experten van Adobe (o.a. Chet Haa-
(Cameron Purdy, president of development). Die laatste dreigt gezien de op handen zijnde overname een spervuur van vragen over zich heen te krijgen. En dan zijn er natuurlijk de Bel-
gen die trouwens niet voor hun buitenlandse collega’s moeten onderdoen zoals Christophe Herreman, Flex consultant bij Cronos;
(*) Binnenkort misschien zelfs zonder tegenhanger in de VS, want op het ogenblik van dit schrijven doet het (niet bevestigde) gerucht de ronde dat JavaOne als zelfstandig event wordt afgevoerd. Wel zou een en ander nog aan bod komen tijdens Oracle’s OpenWorld event in het najaar.
®
JVM leidt de dans
Als je kiest voor jouw succes, kies dan voor ons team. T O G E T H E R. F R E E Y O U R E N E R G I E S Op zoek naar een topteam? Klim dan aan boord. Capgemini Belgium helpt bedrijven efficiënter te werken. We bedenken oplossingen voor de meest uitdagende problemen en ontwikkelen de juiste technologie om ze uit te voeren. Capgemini Belgium zoekt daarom professionele teamplayers op het vlak van consulting, technologie en outsourcing. Ervaren enthousiastelingen die al flink wat watertjes doorzwommen hebben en hun kwaliteiten bewijzen met stevige kwalificaties. Capgemini Belgium biedt je een innoverende werkomgeving van wereldformaat, waar ruimte is voor boeiende relaties met topklanten uit interessante sectoren. Interesse? Stuur je cv meteen naar
[email protected] Of nog sneller: vul je gegevens in op www.be.capgemini.com Rollen en functies waar we naar zoeken, vind je op www.be.capgemini.com
30/10/2009 • DATA NEWS SPECIAL
3
PROOF PDF
DEVOXX
JAVA SPECIAL Onderhand is het een traditie dat op Devoxx een nieuwe versie van Parleys wordt voorgesteld. Dit jaar is het de beurt aan versie 3 van deze ‘RIA e-learning’-oplossing.#Guy Kindermans oor het geesteskind van Stephan Janssen lijkt 2010 een scharnierjaar te worden. Parleys is uitgegroeid tot een omgeving waar presentaties in al hun aspecten – beeld, klank, tekst – op een flexibele manier kunnen worden aangeboden aan een breed publiek. Versie 3 – die al 6 maanden in bèta is en waar “we nu dag en nacht mee bezig zijn” met het oog op Devoxx – gaat door op dat elan, met onder meer de mogelijkheid om ‘spaces’ te creëren, waarin ‘huurders’ zelf vorm kunnen geven aan de inhoud en het gebruik ervan. In die spaces zal men ’kanalen’ hebben, waarvan de inhoud als ‘pay per view’, per abonnenment, op uitnodiging of geheel gratis kan worden geconsumeerd. Parleys steunt voorts ook op Adobe’s Flex/Air-technologieën, wat toelaat de presentaties te downloaden en offline te bekijken, ook op een niet-sequentiële wijze (dus niet alleen als een stroom van begin tot einde). Dat geldt zowel voor systemen onder Windows en Macos als onder Linux. Voorts maakt Janssen zich sterk dat de ‘Publisher’ module het alle aanbieders
V
van informatie mogelijk maakt om bijzonder snel en makkelijk de presentaties aan te passen. “De module is ‘state of the art’. Zo kan je presentaties van een uur op vijf minuten tijd automatisch ‘postprocessen’.” Ook kan geëncodeerd videomateriaal (in verschillende resoluties) rechtstreeks worden geëditeerd. Vanaf Flash 10.1 zal het ook mogelijk zijn gebruik te maken van ingebouwde microfoons om op een eindgebruikerssysteem de tekst in te spreken (momenteel wordt gewerkt op basis van een opname van de presentatie). Dat laatste zal het onder meer mogelijk maken om makkelijk (en haast in reële tijd) materiaal aan te maken. Gedacht wordt aan demonstratiesessies, informatie over vastgoed etc.
Scharnierjaar Voor Parleys lijkt het ook een scharnierjaar te worden vanuit zakelijk standpunt. Na een paar jaar ontwikkeling door een viertal personen (waaronder een Rus uit St. Petersburg), biedt versie 3 nu ook een aantal mogelijkheden voor inkomsten. Zo kunnen organisaties en bedrijven in hun spaces al dan
niet betaalkanalen aanbieden. Parleys kan hiervoor respectievelijk een huursom vragen of een deel van de inkomsten bekomen. Belangrijk is dat Devoxx de werkbaarheid van Parleys ruimschoots heeft aangetoond. Zo was Devoxx 2008 goed voor een 3000-tal bezoekers, maar scoorde deze editie op Parleys al meer dan 500.000 ‘unieke’ bezoekers. De presentatie van Bill Venners over ‘the feel of scala’ werd niet minder dan 44.813 keer bekeken. Daarnaast doen ook een groot aantal Javagebruikersgroepen al een beroep op Parleys (of overwegen het), naast andere events als Jazoon (het Java-event in Zurich). Daarenboven ziet Janssen een groeiende interesse vanwege bedrijven, er lopen bijvoorbeeld gesprekken met ondernemingen in Duitsland. Daarenboven is Parleys het type dienst dat ook door een isp of telecomoperator kan worden aangeboden. Voor Stephan Janssen en zijn ontwikkelaars dreigt 2010 dan ook nog heel wat drukker worden. Maar had hij niet zo lang geleden niet het voornemen het wat kalmer aan te doen? “Klopt,” lacht Janssen, “maar ik moet ook niet meer in de file staan! Aanschuiven achter mijn vrouw aan het koffieapparaat wel. Maar mijn zoontje herkent me nu tenminste!”#
STEPHAN JANSSEN: Parleys is het type dienst dat ook door een isp of telco kan worden aangeboden
BEJUG MET NIEUW ANIMO De Belgian Java User Group, alias BeJUG, mag dan scoren met Devoxx (en voorganger JavaPolis), toch was het ook een event dat woog op de gewone werking van de gebruikersgroep. Op Devoxx 2008 werd een hernieuwde werking met meer vergaderingen op meer locaties aangekondigd en het voorbije jaar werd die belofte ook hard gemaakt. Vandaag kan je om de veertien dagen terecht op een vergadering van BeJUG, in een van de vijf steden waar dergelijke vergaderingen doorgaan (in casu Gent, Antwerpen, Leuven, Louvain-laNeuve en Namur), telkens van 19 tot 21 uur. De vergaderingen trekken geregeld 30 à 70 belangstellenden, met telkens een Java- of daaraan gelieerd onderwerp. En met een interactief publiek op de koop toe. “We tellen dan ook wekelijks nieuwe leden,” aldus Stephan Janssen. Tegelijkertijd wordt ook gesleuteld aan een nieuwsbrief met ACA als sponsor. Janssen merkt ook op dat de meerderheid van de sprekers Belgen zijn. Momenteel zijn ca. 25 bedrijven en om en bij de 200 personen lid van BeJUG. De link met BeJUG is overigens niet de enige relatie van Devoxx met de gebruikersgroepen. Voor deze editie van het ontwikkelaarsevent hebben immers al meer dan 50 Java-gebruikersgroepen zich met Devoxx geassocieerd. Het hernieuwde enthousiasme lijkt zelfs over de landsgrenzen heen toe te slaan, want na een bezoek aan Devoxx vorig jaar, werd niet alleen een Java-gebruikersgroep in Parijs opgericht, maar nog een tiental in de rest van Frankrijk.
Scharnierjaar voor Parleys 4
DATA NEWS SPECIAL • 30/10/2009
PROOF PDF
ERIC STEEGMANS
JAVA SPECIAL
Geen enkele programmeertaal is het ‘nec plus ultra’ en ook Java blijft voor verbetering vatbaar. Of zelfs vervanging. Want de zoektocht naar makkelijker en meer efficiënte methodes van softwareontwikkeling gaat gestaag door.#Guy Kindermans e wereld van programmeertalen is geen starre, dooie bedoening. Integendeel, ook vandaag is het onderzoek naar nieuwe concepten en aanpakken erg levendig.
D
op nieuwe programmeertalen.” Zo kan iets allicht niet in Java opduiken, maar wel in bijvoorbeeld ‘nieuwkomers’ als Ruby of Scala. Die talen worden eerste gebruikt door personen in de onderzoeks-
schap zijn in Steegmans’ presentatie over ‘generics’ op de komende editie van Devoxx. “Ook de implementatie van generics in Java heeft zo zijn problemen omwille van de terugwaartse compatibili-
teit en de vraagtekens die door een aantal beslissingen worden opgeroepen. Programmeurs hebben er dan ook problemen mee, omdat generics er niet van bij de aanvang in zat.”
Alles kan beter, ook Java Dat onderzoek kan het werk zijn van bevlogen individuën, maar ook van voortgezet onderzoek aan universiteiten. Zo leidt professor Eric Steegmans aan de KU Leuven in het departement computerwetenschappen een onderzoeksgroep (SOM – Software Development Methodology) met als doel “nieuwe concepten te ontwikkelen om programmeertalen te verbeteren.” In de voorbije jaren hebben doctoraatsstudenten onder zijn leiding hun resultaten op prominente congressen kunnen voorstellen. Dat gebeurde bijvoorbeeld op het bekende OOPSLA (Object-Oriented Programming, Systems, Languages and Applications – sinds 1986 de vooraanstaande OO-conferentie).
Inspirerend Het blijft dan wel de vraag of die nieuwe concepten ook hun plaats vinden in bestaande talen? “Niet meteen,” merkt Eric Steegmans op. ”Het gaat om concepten voor bestaande talen, maar er is natuurlijk ook de invloed en impact
wereld, om vervolgens in de industrie hun opwachting te maken. Kortom, “het zal dus niet meteen Java of C# zijn die de nieuwe concepten zullen omarmen, omdat zij stevig vastzitten in een aantal basisconcepten voor terugwaartse compatibiliteit.” Ook de weg van een JSR – een Java Specification Request, zoals aanvragen voor nieuwe elementen in Java worden geformuleerd – ligt niet voor de hand voor nieuwe concepten. Zelfs een concept als ‘closures’ – ooit het onderwerp van een JSR die mee werd ingediend door de Belgische Java user Group BeJUG – veroorzaakte teveel tweespalt, om aanvaard te worden in Java. En dan is ‘closures’ een concept dat al dateert uit de jaren zeventig en tachtig, uit talen als Lisp en SmallTalk, merkt Steegmans droogjes op. “Als het al moeilijk is voor gevestigde concepten, wat moet het dan niet zijn voor nieuwe? Closures zitten wel van bij de aanvang in Scala en daar vormt dat dus geen probleem.” Dat zal trouwens een deel van de bood-
ERIC STEEGMANS (KU Leuven): “Virtuele machines zullen steeds dominanter worden, met projecten die naast Java ook andere talen aanwenden.”
6
DATA NEWS SPECIAL • 30/10/2009
Dan met z’n allen maar overstappen op een taal als Scala? “Scala is één van de talen waar naar wordt gekeken, maar ik ben niet echt onder de indruk,” verklaart Eric Steegmans, die er wat meer zou willen mee experimenteren.
Java ‘end of life’? Als Java het moeilijker krijgt om zich aan te passen aan de specifieken noden en verwachtingen in dynamische en gedistribueerde omgevingen, is de taal dan ‘end of life’? Java heeft toch al meer dan 15 kaarsjes uitgeblazen.... “De hype rond Java is [inderdaad] voorbij,” antwoordt Steegmans gevat. “De focus richt zich dan ook meer op de ‘virtuele machines’ van Java en C#, en de programmeertalen rond die virtuele machines. Zo draait Scala op het VM van Java. Over vijf jaar kan dat meer marktaandeel hebben ten opzichte van Java en C#. De VM’s zijn goed en dan vormt het geen groot probleem om van de ene taal naar de andere over te stappen.” Kortom, bedrijven moeten meer aandacht besteden aan de VM’s, want die vormen de ware ruggengraat? “Ja! En dat gaat ook meer en meer gebeuren. VM’s zullen steeds dominanter worden, met projecten die naast Java ook andere talen aanwenden, terwijl de uitvoeringssnelheid nog zal stijgen.” Een stelling die overigens ook keurig in de evolutie naar meer virtualiseing van omgevingen en een groeiende aandacht voor het cloudgebeuren past, respectievelijk een beter benutten van hardwareontwikkelingen als ‘multicore’-processoren.
Efficiënter ontwikkelen Ook Eric Steegmans en zijn medewerkers buigen zich over het vraagstuk om de productiviteit van de ontwikkelaars op te krikken, met onder meer onderzoek naar methoden voor meer modelgerichte aanpakken. Waarbij hij overigens wel een nuchtere kijk op de zaak houdt. Er dienen zich altijd ideeën aan die na een eerste fase van enthousiasme toch weer bekoelen. Zo was er ‘aspect programming’, een aanpak die een grotere modulariteit van oplossingen nastreefde door program-
ma’s op te breken in ‘concerns’ (samenhangende gebieden van functionaliteit). Er waren prototypetalen als AspectJ, maar toch is “ook die hype al weer wat voorbij,” oordeelt Steegmans. “Er zullen altijd nieuwe ideeën zijn en als die doorbreken kan dat een enorme vooruitgang zijn, maar achter de schermen wordt het dan toch weer duidelijk dat het niet werkt. Zoiets schudt wel iedereen wakker en het helpt om vooruit te gaan, in kleine stappen.” Immers, een meethode of programmeertaal die “de productiviteit met meer dan 50 procent laat stijgen, bestaat niet. Een taal als Java mag het dan mogelijk maken wat sneller te programmeren of een hogere productiviteit te hebben, tegelijk groeien ook de eisen die aan de projecten worden gesteld. Enkele percenten per jaar productiviteitsverhoging zou dan ook al veel zijn,” klinkt het nuchter. Niet dat het ooit anders was, want zelfs met de overgang van bijvoorbeeld Assembler naar een hogere taal als Fortran werd ook niet zo’n gigantische vooruitgang geboekt. Doorheen de geschiedenis van de ict zijn er wel een aantal mijlpalen geweest, die diepgaan-
SERVICE-GERICHT PROGRAMMEREN MET JAVA Het uitbreiden van talen met nieuwe concepten wordt mooi geïllustreerd door ServiceJ, bestemd om met Java makkelijker servicegerichte toepassingen te creëren. In een ‘service oriented architecture’ (soa) botsen de gedistribueerde aard van de omgeving en het inherent vluchtig aspect van de diensten op beperking in Java (zoals Java Enterprise Edition). Daarbij wordt gewezen op onder meer ‘static service binding’, moeilijkheden bij het dynamisch selecteren van de best mogelijke services en rerouting bij problemen, evenals het beheer van websessies. Als antwoord op deze problemen formuleerde de toenmalige doctoraatsstudent Sven De Labey toevoegingen aan Java, in casu ‘service pools’ (voor ‘late service binding’ en transparante ‘failover’) en ‘declarative operations’ (met behulp waarvan de quality of service en de keuze van diensten kan worden geoptimaliseerd). Concreet kreeg dat vorm in ServiceJ, bestemd voor een dynamische selectie van diensten en transparante failover. Een ander voorbeeld is het werk van de onderzoeksgroep SOM rond beperkingen van OSGi (Open Services Gateway initiative) en de ‘central service registry’. Ook hier wordt een beroep gedaan op de uitbreidingen die ServiceJ biedt. De publicaties van de groep rond Steegmans (onder meer over ServiceJ) zijn beschikbaar op de cv-pagina www.kuleuven.be/cv/u0013942e.htm van professor Eric Steegmans.
nodig is,” aldus Steegmans. “Raamwerken en dies meer zijn moeilijke technologieën om zich eigen te maken en steken ook niet altijd goed in elkaar,” naast lock-inrisico’s en mogelijke legaatpro-
Scala lijkt vandaag de favoriete koploper te zijn, ook al omdat de taal de twee werelden van iteratief/OO en fundamenteel programmeren verenigt. de veranderingen brachten zoals “gestructureerd programmeren, modules, abstracte datatypes, objectorientatie, maar dat is vooral een evolutie.” De vraag of het dan een eeuwige zoektocht naar een heilige graal blijft, onthaalt Steegmans op gelach en de opmerking dat dit het “leuk maakt!” Aan de KU Leuven wordt overigens ook nog door andere groepen gesleuteld aan aspecten van softwareontwikkeling, onder meer met het oog op meer security, inherent correcte logica, transacties in gedistribueerde systemen en dies meer. Aspecten waarvoor “ondersteuning in de taal
blemen. Hij verwijst daarbij naar de grote verschillen tussen de eerste versie van EJB’s (Enterprise Java Beans) en de huidige versie, EJB3.
Post-Java Java als taal is niet dood, maar Steegmans verwacht ook geen grote veranderingen meer. “Generics was de laatste grote toevoeging, met hier en daar nog wat bijschaven.” Het is veeleer de beurt aan nieuwe technologieën en talen en “dat zal niet meer lang duren,” meent Steegmans. Maar welke taal het wordt, gedefinieerd door wie? “Dat is een
zaak van een goed concept en een goede marketing. Je moet de mensen immers overtuigen om in die taal te schrijven! Java slaagde daarin omdat Sun hiervoor tools en ondersteuning bood. Dat is bijvoorbeeld misgelopen met Eiffel, hoewel dat academisch gezien een betere taal was. Maar daar is het misgelopen met de ‘marketing’.” Concreet betekent dit de noodzaak om snel een grote ‘community’, zeg maar een grote gebruikers- en ontwikkelaarsgroep, te vormen, en ondersteuning in omgevingen (als bijvoorbeeld Eclipse) te bieden. Voorts moet de taal ook platformonafhankelijk zijn, benadrukt Steegmans. Scala lijkt vandaag de favoriete koploper te zijn, ook al omdat de taal de twee werelden van iteratief/OO en fundamenteel programmeren verenigt. “Niet optimaal, maar toch,” oordeelt Steegmans. Een taal als Haskell is dan weer puur functioneel en zal allicht niet zo’n hoge vlucht nemen als Scala. Toch denkt Steegmans niet dat Scala het zal halen als de opvolger, want dan “had dat al gebeurd moeten zijn.” Het ziet er meer naar uit dat alle opgedane ervaring en de nieuwe inzichten worden gebundeld in een nieuwe taal!#
30/10/2009 • DATA NEWS SPECIAL
7
TOM BAEYENS
JAVA SPECIAL en kleine 20 jaar geleden vierde een nieuwe hype hoogtij in de bedrijfswereld, en bij uitbreiding ook in de ict-wereld. Business Process Re-engineering, ofte BPR, werd door Michael Hammer en co. aan de wereld kond gedaan in artikels, boeken en adviezen van consultants. BPR zou de werking van bedrijven efficiënter te maken door taken die geen waarde toevoegen te elimineren of te automatiseren. Daardoor droeg het overduidelijk bij tot het groeiend
E
ces getekend, om die diagrammen vervolgens uit te voeren,” stelt Tom Baeyens, ‘lead’ van jBPM bij JBoss. Daar gingen ontwikkelaars dan mee aan de slag, maar daarbij werden vaak al te beperkende beslissingen genomen. Gewoonlijk werden workflow engines gebouwd die wel succesvol waren in hun niche, zoals het creëren en beheren van de document-werkstromen. Voor Tom Baeyens leek het logischer een gemeenschappelijk onderliggend mechanisme te heb-
werelden ontkoppeld worden.
jBPM en PVM De essentie van het jBPM is dan ook de mogelijkheid om op basis van een onderliggend mechanisme de meest aangewezen taal ‘native’ te draaien. Dat mechanisme is de ‘process virtual machine’ (PVM), in principe vergelijkbaar met de Java Virtual machine (JVM). Het is met de PVM dat de beperkingen van de klassieke monolitische en ‘single language’ workflow engines worden aange-
Java-kick voor bedrijfsprocessen De vertaling van bedrijfsnoden in bedrijfsprocesen en vervolgens in een vorm van ict-ondersteuning, blijft een moeilijke zaak. Bij JBoss biedt het jBPM van Tom Baeyens een uitkomst met een slag om de arm.#Guy Kindermans succes van erp-pakketten, die precies zo’n automatisering en efficiëntieverhoging beloofden. Bedrijfsprocessen bleven helaas een moeilijke noot om te kraken en een aantal van de erp-beloften werden dus nog steeds niet ingevuld. Zeker is wel dat ‘bedrijfsprocessen’ sindsdien nooit meer aan belangstelling hebben ingeboet.
De moeilijke vertaalslag Bedrijfsprocessen in kaart brengen is één zaak, die processen – inclusief wijzigingen –vertalen naar ict-oplossingen is van een heel andere orde. Zo spreken bedrijfsanalisten en informatici niet alleen verschillende talen, de notitiesystemen waarin ze hun bevindingen neerpennen verschillen vaak ook grondig van elkaar. Bovendien zijn de tools om die twee werelden makkelijker te laten dialogeren niet dik gezaaid. “Vroeger werd er gewoonlijk een grafisch plaatje van het pro-
8
DATA NEWS SPECIAL • 30/10/2009
ben, waarop de diagrammen met de verschillende activiteiten, naargelang het domein, konden worden geënt. “We onderzochten wat die werkstroom-engines gemeenschappelijk hadden.” Het resultaat daarvan werd jBPM. Voor het beschrijven van de activiteiten creëerde hij evenwel eerst jPDL, een process definition language, die ‘task management’ gericht is en sterk geïntegreerd met Java. Zo kan je Java-klassen in de activiteiten configureren, of een beroep doen op Java-objecten voor informatieuitwisseling in plaats van bijvoorbeeld XML. “jPDL lijkt een deel van de Javataal zelf te zijn,” klinkt het. Maar het is niet de enige taal die in jBPM kan worden aangewend, benadrukt Baeyens. Verschillende talen kunnen verschillende doelen hebben, zoals meer technologisch of businessgericht zijn. Maar jPDL heeft wel een plaats in beide werelden, waarbij de beide
pakt. Tom Baeyens omschrijft het als een ‘conceptueel model dat in het repertorium van elke ontwikkelaar zou moeten zitten’. Op dat mechanisme worden dan de verschillende blokjes van activiteiten geplugd, zodat deze beschrijvingen uitdrukkelijk gescheiden zijn van het onderliggende werk-
©MIEKE STYMANS
PROOF PDF
Tom Baeyens: “jPDL lijkt een deel van de Java-taal zelf te zijn, maar het is niet de enige taal die in jBPM kan worden aangewend.”
stroom/bpm/orchestratie systeem. “We zijn open naar boven,” herhaalt Tom Beayens nog es, onder meer omdat “er geen enkele procestaal is die op haar eentje alle omgevingen en nodige capaciteiten inzake BPM aankan.” Naast het process engine omvat jBPM ook een process monitor, een procestaal en interactieservices (om bestaande toepassingen als functies of data aan te wenden bij het uitvoeren van processen). Vandaag is jBPM toe aan versie 4.1, met jPDL als eerste taal. Als volgende stap komt ook een ‘native’ uitvoering van BPMN 2.0 – Business Process Modeling Notation, terwijl vroeger ook aan BPEL werd gewerkt. De PVM heeft in ieder geval bewezen dat ze die talen, inclusief XPDL (XML Process Definition Language) aankan. Nog een taal is ‘pageflow’, voor het beschrijven van de navigatie tussen pagina’s door gebruikers. Hierbij wordt ook een beroep gedaan op JBoss SEAM – een applicatie framework dat EJB 3 en JavaServer Faces combineert, eertijds begonnen door Gavin Boss (die ook aan de bais van Hibernate lag). In jBPM tref je nog andere elementen aan, zoals een identity component. “Producten waarmee je meteen aan de slag kan gaan, hebben nu eenmaal het meeste succes,” merkt Baeyens op, en dus biedt de identity component een beheerfaciliteit van gebruikers, groepen en dies meer. Maar be-
JPDL VERSUS UML? De Unified Modeling Language (UML) heeft zijn sporen verdiend als een officiële modelleertaal voor software-engineering, maar heeft toch zo zijn beperkingen. Zo bevatten de activiteitendiagrammen geen info over de uitvoering ervan. Dat is dan weer verbeterd in de Business Process Modeling Notation (BPMN), met onder meer een link naar uitvoeringstalen als BPEL. jPDL is wel geïnspireerd door UML, stelt Baeyens, en resulteert in uitvoerbare processen. Hergebruik is zeker een mogelijkheid, inclusief het gebruik van bibliotheken en het hergebruik van processen. Zo is er RosettaNet met PIPS (Partner Interface Processes) als een repository van bedrijfsprocessen die generiek zijn. Hergebruik is evenwel beperkt, stelt Baeyens, terwijl een bedrijf wel een voldoende kritische massa moet hebben vooraleer het interessant wordt. Ook worden wel tools verkocht aan managers op basis van een ‘hello world’ demo, waarna non-technici dan toch softwarespecificaties moeten produceren.
drijven kunnen natuurlijk zonder meer een beroep doen op hun huidige identity componenten. Sinds versie 3 was er ook al een Eclipsegesteunde designer tool in jBPM voorzien, maar vanaf versie 4.1 is er nu een webgesteunde designer opgenomen. Dat is het resultaat van een samenwerking met het Duitse Signavio, dat zijn Oryx webgesteund modelleringstool integreerde met jBPM.
Toekomst De fundamentele openheid van jBPM laat nog heel wat ruimte voor toekomstige ontwikkelingen, “zoals tooling om alles nog nauwer
het proces gedocumenteerd is, maar de implementatie ervan gebeurt door een ontwikkelaar en alles dus afhangt van diens implementatie, wordt de uitvoering gestuurd.” Zo is er verzekerde mapping van de werkelijkheid op het oorspronkelijke model. Je zou dit haast een “what you want is what you get” (WYWIWYG) toestand voor de bedrijfsanalisten kunnen noemen, althans als alles naar behoren werkt. Die analisten kunnen in ieder geval de reële gang van zaken monitoren en daarover duidelijk rappporteren aan de andere betrokkenen binnen het bedrijf, wat dan weer perfect past in ont-
De essentie van het jBPM is dan ook de mogelijkheid om op basis van een onderliggend mechanisme de meest aangewezen taal ‘native’ te draaien
met elkaar te koppelen. Er zijn vandaag heel wat ISO-documenten die werden aangemaakt maar nu een beschimmeld bestaan lijden, omdat ze niet worden gebruikt.” Een verwijzing naar onder meer de ISO900x certificaten die werden toegekend in de voorbije jaren, en goed gedocumenteerde processen moesten beschrijven, die evenwel niet altijd overeenstemmen met de werkelijkheid (ook al omdat er vaak geen mogelijkheid is om de realiteit te toetsen aan die documenten of die realiteit met stevige hand vanuit die documenten aan te sturen). In de toekomst ware het mooi als bedrijfsmensen de modellen van de processen kunnen bouwen, waarna die modellen uitvoerbaar worden gemaakt, zonder dat de software artefacten zelf worden blootgegeven. De ontwikkelaar bouwt die artefacten, waarna de businessanalist op basis van die artefacten ziet dat alles ook echt gebeurt zoals gepland. “In tegenstelling tot het ISO-gebeuren waar
wikkelingen als ITIL (Information Technology Infrastructure Library, bestemd voor een gestructureerd en gegarandeerd aanbod van diensten). Of om aan te tonen dat een ‘secure’ werkwijze ook echt wordt nageleefd. Of zoals Baeyens het stelt: “Er wordt gerapporteerd op basis van wat er echt gebeurt en je krijgt meer dan alleen maar de kaft van een dossierklapper te zien.” Niet alleen kan dat alles worden aangewend voor het optimaliseren van de processen, maar op basis van jBPM kan ook aan ‘business intelligence’ en ‘business activity monitoring’ worden gedaan. Een product als jBPM is overigens niet beperkt tot een Java-omgeving, benadrukt Baeyens nog, want “een zelfde aanpak kan ook op .Net.” Het huidige product is wel in Java-code geschreven, maar een vertaalslag met behulp van Mono – een opensource-implementatie van .Net – zou mogelijk zijn. Je kan het ook altijd herschrijven in C#, klinkt het nog.#
30/10/2009 • DATA NEWS SPECIAL
9
PROOF PDF
MARTIN ODERSKY
JAVA SPECIAL
Nieuwlichter Scala Zoals Devoxx een steeds breder deel van het ontwikkelaarsspectrum belicht, zo stelt ook Java Virtual Machine zijn deuren verder open voor meer en andere talen. Van die nieuwkomers lijkt Scala wel erg veel aandacht te krijgen.#Guy Kindermans cala staat voor ‘SCAlable LAnguage’ en combineert objectoriëntatie met functioneel programmeren en statische typering. ‘Functioneel programmeren’ wordt daarbij omschreven als ‘een programmeerparadigma dat berekeningen aanpakt als een evaluatie van wiskundige functies, zonder ‘state’ en ‘wijzigbare data’. Door de wijze waarop functies in functioneel programmeren worden aangewend (in tegenstelling tot proceduraal programmeren) moet dit leiden tot code die makkelijker begrijpbaar is, met een beter voorspelbare werking. De ‘object’ aard van Scala wordt nog benadrukt omdat alles (inclusief cijfers en functies) objecten is. Scala mikt precies op een combinatie van de
S
10
DATA NEWS SPECIAL • 30/10/2009
voordelen van functioneel programmeren met de opgebouwde ervaring in procedurale talen en een compatibiliteit met Java.
Vanuit Java De band met Java heeft alles te maken met de geestelijke vader van Scala, Martin Odersky, professor aan de Ecole Polytechnique Fédérale de Lausanne (EPFL) en hoofd van de programmeeronderzoeksgroep (Programming Methods Laboratory 1). In de Javawereld verwierf hij immers faam als co-ontwerper van Java Generics en als de oorspronkelijke auteur van de huidige javac referentiecompiler. Zijn doel met Scala was een taal voor programma’s met uitdrukkelijke doorgroeimogelijkheden (scalability), of zoals
Odersky het stelt, “dezelfde constructies moeten zowel in kleine als grote programma’s werken.” Hij benadrukt verder dat “Scala ‘diep’ is, waar andere talen ‘breed’ gaan.” Concreet betekent dit het vermijden van veel repetitieve sleurcode (boilerplate code) en een nadruk op “sterke abstractiemethoden, voor het schrijven van krachtige bibliotheken.” De oorspong van Scala gaat terug op vroeg onderzoek van Odersky en anderen om Java te paren aan elementen uit functioneel programmeren. Dat leidde tot een eerste taal, Pizza (1996), die onder meer voorzag in generics, hogere orde functies en pattern matching. Op vraag van personen uit het ontwikkelingsteam van Sun, werd vervolgens het idee van generics ver-
der uitgewerkt tot GJ (Generic Java, 1997-98), wat dan later de basis was voor generics in Java 5. In 2001 resulteerden de ideeën in Pizza en GJ uiteindelijk in Scala, dat in 2003 voor het eerst in cursussen aan het EPFL werd aangewend en vervolgens in 2004 publiek werd gemaakt. In 2006 volgde een versie 2.x, waarna de aandacht voor Scala op evenementen als JavaOne (en JavaPolis/Devoxx) groeide. Vandaag draait Scala op systemen onder Linux, Unix, Macos en Windows, en dat zowel op het Javaplatform als het .Net-platform (Scala versie 1.4). Begin oktober was Scala 2.7.6 de downloadable versie, versie 2.8 is voorzien voor eind dit jaar. Die versie zal onder meer nieuwe collecties brengen, packa-
PROOF PDF
MARTIN ODERSKY
JAVA SPECIAL ge objects, named en default parameters en voorzieningen voor snellere generics.
Voorbij Java De claim van Scala als opvolger van Java onderbouwt Odersky met de opmerking dat Scala alles heeft wat Java heeft, zij het “wellicht soms in een andere vorm.” Er werd in ieder geval veel zorg besteed aan een vlotte integratie in de Javawereld. Zo draait Scala op de Java Virtual Machine (de scalac compiler genereert Java class-bestanden), is het bytecode compatibel met Java, zodat er gebruik kan worden gemaakt van Java bibliotheken en kunnen Scala en Java elkaar oproepen. Scala kan daarbij dienen als een scripttaal of als een taal voor het bouwen van grote systemen. Scala overstijgt volgens Odersky Java omdat de taal ook closures biedt (een heikele discussie in de Javawereld), pattern matching en traits (vergelijkbaar met Java’s ‘interface’). Voorts voorziet het in een actor model met het oog op concurrency (gelijktijdige verwerking). Ook biedt Scala de mogelijkheid om domein-specifieke taaluitbrei-
robuuste toepassingen met erg sterke doorgroeimogelijkheden, moet natuurlijk nog hard worden gemaakt. Op de Scala-site staan al een reeks gebruikers van Scala, waaronder Twitter. Met het oog op recordaantallen ‘tweets’ zoals bij de aanstelling van Barack Obama (goed voor 5000 tweets per minuut) werd een belangrijk onderdeel van de site – hun main message queue – van Ruby on Rails overgezet naar Scala. Daarbij werd onder meer de mogelijkheden inzake concurrent processing geprezen. Bij de ‘trading’-dochtermaatschappij van Electricité de France (EDF) werd in de voorbije jaren een belangrijk deel van de Javacode in hun toepassing voor de handel en prijsvorming inzake energiederivaten herschreven in Scala. Een belangrijke rol werd gespeeld door de Scala IDE voor Eclipse, terwijl ook een significatnte verhoging van de ontwikkelingsproductiviteit werd genoteerd. De combinatie van Scala en het Lift framework vormt dan weer de basis van het ‘Enterprise Social Messaging Experiment’ (ESME), een opensourceproject dat door
Scala overstijgt volgens Odersky Java omdat de taal ook closures biedt, pattern matching en traits.
dingen te formuleren. Dat alles zorgt ervoor dat de taal “scales with the programmer” (gelijke tred houdt met de groei van de ontwikkelaar). Ontwikkelaars kunnen overigens beschikken over Scala plug-ins voor Eclipse, IntelliJ en Netbeans. Elke serieuze programmeertaal heeft vandaag een eigen framework en voor Scala is dat Lift. De bouwers van dit framework verklaren te hebben geleerd van de fouten en de beste ideeën in andere frameworks. Met Lift wordt onder meer een strikte scheiding tussen de presentatielaag en de toepassingscode nagestreefd. Lift biedt tevens ondersteuning voor Ajax en Comet. De claim van Scala als taal voor
12
DATA NEWS SPECIAL • 30/10/2009
Siemens werd aangewend voor de verhoging van de productiviteit met behulp van sociale netwerken. ESME moet helpen om ‘communities’ te bouwen en de bedrijfsbrede communicatie tussen werknemers te bevorderen, heet het.
In de toekomst Voor de toekomst ziet Odersky nog verbeteringen met het oog op meer concurrency en ondersteuning voor parallelle verwerking. In versie 2.8 wordt hiervoor gerekend op ‘continuations’ als een compiler plug-in. Met continuations kan een function state worden opgeslagen en later hernomen, eventueel op een andere computer. Een proof of concept hiervan werd al aangetoond met Swarm.
Hoe en of Scala uiteindelijk dé opvolger van Scala wordt, zal evenwel de toekomst moeten uitwijzen. Java kende een snelle groei en verspreiding door de steun van Sun met tools en een grote groep enthousiaste gebruikers. De omvang en het enthousiasme ven de groep Scala-gebruikers zal dan ook ongetwijfeld een cruciale rol spelen, zeker als ze Java-aficionado’s kunnen overhalen zich in te werken in eigenheden van Scala. Belangstellenden kunnen terecht op de site, www.scala-lang.org, waar zich ook een presentatie van Martin Odersky over de komende 5 jaar van Scala bevindt, www.scalalang.org/sites/default/files/odersky/scalaliftoff2009.pdf. Je kan ook het boek ‘Programming in Scala’ door Odersky, Spoon en Venners proberen te ontcijferen. En op Parleys.com kan je klikken op ‘Popular tags’ en vervolgens ‘scala’, waar
onder meer presentaties van Odersky (‘The Scala Experience’, Javapolis 2007) en Venners (‘The feel of Scala’, Devoxx 2008) staan. Op Devoxx 2009 heeft Bill Venners een sessie over het testen van Scala programma’s. Meer info over Lift staat op liftweb.net, inclusief een ‘Starting with Lift’ op liftweb.net/docs/getting— started/mod—master.html.#
EEN STAMBOOM VAN TALEN Het overwicht van talen als C++, Java, C#, PHP en Python, laat staan (Visual) Basic en zelfs nog Cobol, zou haast doen vergeten dat er een verbluffend groot aantal programmeertalen bestaat. Lees: honderden talen.... Vaak blijken ‘nieuwe’ talen dan ook terug te gaan op voorgangers die al van tien, twintig jaar eerder dateren. Voor Scala is dat niet anders. In het lijstje van talen die Scala hebben beïnvloed, tref je onder meer Smalltalk en Java aan, maar ook Haskell en Erlang. Haskell wordt gedefinieerd als een gestandaardiseerde, puur functionele programmeertaal, met sterke statische typering. De eerste versie dateert uit 1990, met een standaardisering in 1998. Enkele jaren geleden begon het werk aan een opvolger, Haskell’ (of Haskell Prime). Als taal werd Haskell beïnvloed door onder meer Lisp, ISWIM, APL, Miranda, ML en Standard ML. Invloed had Haskell op talen als onder meer Clojure, C#, Java Generics, LINQ, Perl 6, Python, Visual Basic 9.0 en dus ook Scala. Belangstellenden kunnen terecht op http://haskell.org Erlang is een taal met ondersteuning voor concurrent programming (multiprogrammeren, parallel programmeren), gedistribueerde en foutbestendige toepassingen. Ontwikkeld in 1986 werd de taal in 1998 als ‘open source’ beschikbaar gesteld door Ericsson. De taal wordt vandaag gewoonlijk aangewend in combinatie met het ‘open telecom platform’ (OTP), een verzameling van bibliotheken voor Erlang. Een sequentiële subset van Erlang is een functionele taal met strikte evaluatie en dynamic typing. Erlang laat onder meer toe om delen van de software te vervangen zonder het systeem uit te schakelen (hot code upgrade). Naar verluidt zou de Ericsson AXD301 switch uit 1998 (met meer dan een miljoen lijnen Erlang code) een betrouwbaarheid van negen ‘9’s’ hebben geclaimd. Erlang zelf werd beïnvloed door Prolog (de eerste versie was in Prolog geschreven) en beïnvloedde Clojure en Scala. De officiële Erlang-site bevindt zich op www.erlang.org. Toepassingen geschreven in een functionele taal vertegenwoordigen een breed spectrum. Zo werd het Natural Expert-systeem van Software AG destijds in een eigen functionele taal geschreven, terwijl Amoco ooit een uiterst kritieke toepassing in Miranda herschreef. Voorts is Pugs – een implementatie van Perl 6 – in Haskell geschreven.