Trendspaning: Client/Server
- June 7th, 2010
- Av Björn
- Kommentera
Historisk tillbakablick
I tidernas begynnelse, eller iallafall flera veckor sedan när datorer var få och dyra så kom man på att ansluta terminaler till en dator så att flera kunde använda den samtidigt. Terminalerna hade ingen logik i sig utan visade bara vad den gemensamma datorn skickade ut. Med tiden blev elektroniken billigare och många kunde skaffa sig en egen dator. Trenden fortsatte och snart hade alla råd med en egen dator. Så kommer internet och med det world wide web som går ut på att en användare på ett enkelt sätt kan ladda ner och läsa ett dokument som ligger på en annan dator. Dokumenten innehåller dessutom addresser till andra dokument. Begreppet hemsida eller website bildas och betecknar en samling dokument samlade under samma huvudaddress. Man kommer på att man kan generera dessa dokument dynamiskt och begreppet CGI (Computer Generated Interface) myntas och man betecknar de tidigare statiska dokumenten för applikationer. I samma veva kommer formulär som gör att användaren kan skicka data tillbaks till servern och man var nu tillbaks ungefär där man startade med terminalerna, men nu i färg. Cirkeln är som man säger sluten. CGI har visserligen vidareutvecklats och sofistikerats in i JSF, PHP, .NET, RoR, men grunden är ungefär densamma – att visa upp en ögonblicksbild av applikationen på servern. Man skulle i princip kunnat skicka en gif-bild till användaren.
Framtiden
Vad som nu är på väg att hända – och detta är alltså min trendspaning – är att precis som under förra varvet så flyttar mer och mer logik ut till terminalerna och serverns uppgift reduceras till att lagra och tillhandahålla information som t ex “Vad blir det för väder i Malå?” (kallt), eller spara min blivande roman “En bandmasks äventyr” tills jag får inspiration nästa gång. Om detta stämmer så kommer behovet av resurser att skifta från server till klient och då kräva en del omställning för främst utvecklare i att lära sig ett nytt språk (Javascript), ny utvecklingsmiljö, nya ramverk (JQuery, Prototype etc).
En jämförelse mellan theserverside.com och ajaxian.com visar detta tydligt i att serversidan är inne på trött förfining medan klientsidan är i vild och entusiastisk utveckling.
Outsourcing
Outsourcing är väldigt aktuellt just nu och man kan dagligen läsa om hur konsultbolag från låglöneländer erbjuder utvecklingsresurser till ett pris som är en bråkdel av priset för svenska konsulter. Borde jag vara orolig? Jag tror som Darwin, att dom som anpassar sig överlever. Låt mig förklara genom att fortsätta mitt resonemang: gränssnittet ökar i betydelse när logik flyttar till klienten. Gränssnittet på en applikation ligger kunden närmast och representerar hela applikationen. Interaktion med kunden kring gränssnitt och därmed applikationen ökar. Detta ger att outsourcing av klientutveckling till Indien och liknande blir svårare, medan outsorcing av serverutveckling blir lättare. Jag menar det är ganska enkelt att ge någon på andra sidan jorden en specifikation över en webservice, det är tekniskt verifierbart och mätbart och allt det där. En specifikation på ett användargränssnitt är nästan omöjligt, det innefattar kultur, preferenser, symboler och en massa andra lokalt knutna egenskaper. Med andra ord borde utvecklingslandskapet polariseras mellan låglöneländer och dom som sitter nära kunden.
När exakt inträffar denna framtid?
Historiskt sett så tar paradigmskiften av den här typen ganska lång tid, jag menar det är fem år sedan Jesse James Garret myntade termen “Ajax” och över tio år sedan Microsoft introducerade ActiveX-komponenten XMLHTTP som gjorde klientbaserade applikationer möjligt. Med HTML5 runt hörnet och med webbläsare som inte är i fas vad gäller tolkning av Javascript och HTML känns det lite vågat att ta steget fullt ut från server till klient. Som av en händelse så har många webramverk som JSF och Spring nyligen kommit i nya versioner med utökat stöd för klientlogik. Jag har mest erfarenhet av JSF som i version 1.2 var väldigt föråldrat, men som man nu i version 2.0 samlat ihop alla smarta tillägg, däribland ajax- biblioteket Icefaces. Trots att JSF 2.0 är nästan helt nytt har Icefaces börjat bygga vidare med bl a en push server, så min slutsats är att JSF är en utmärkt språngbräda mot framtiden, där man i takt med att ramverket utvecklas kan flytta mer och mer logik till klienten. Till det kan läggas att JSF 2.0 är mycket enklare att använda än tidigare version och att det finns starkt industristöd, bra utvecklingsmiljöer och god arbetsmarknad.
Jag kan iochförsig ha fel (det vore inte första gången) så ta det med en nypa salt, en skiva citron och en fyra tequila.
