lördag 21 februari 2009

Håller Sverige på att falla efter när det gäller webbutveckling?

Sverige är ett av världens mest välutbildade länder. Enligt viss statistik, ligger vi på femte plats i världen på listan över antal utbildningsår per person.

Så välutbildade är vi. Trots det släpar vi efter vad gäller införandet, eller utvärderingen av nya teknologier. Från ett utvecklar- och arkitektperspektiv hamnar Sverige ganska långt ner på listan jämfört med omvärlden.

Ta en sådan sak som att utveckla intranät-applikationer. I nästan samtliga fall väljer man från projektledningen att använda antingen WebSphere eller Sharepoint (beroende på vilken kappa man har på sig), två lösningar med galet höga kostnader för implementation och underhåll.

De flesta företag och organisationer svars intranät jag har sett, har använt detta mer som en portal mot annat innehåll som redan finns i andra applikationer (förvisso inte alla med webb-gränssnitt), snarare än en platform för nya applikationer.

I samtliga fall skulle behoven kunnat mötas till en radikalt mindre kostnad genom att istället välja att implementera intranätet i en CMS plattform som Joomla, Drupal eller Wordpress. Samltiga är Open Source och kostar alltså hundratusentals kronor mindre än motsvarande lösningar från IBM eller Microsoft.

Men Sverige är helt enkelt inte hängt med i teknikutvecklingen. I stället för att göra rationella avvägningar som skulle kunna spara enorma pengar, väljer organisationerna att inte tänka och istället bestämma sig för en standardplattform, i den religiösa övertygelsen att det helt enkelt måste leda till mindra kostnader över tid.

Men CMS'er i all ära; ibland måste man nyutveckla, och tänker sig då att använda ett modernt gränssnitt som en webb-läsare till exempel. Givetvis väljer man ett server-baserat web-ramverk som det lättfotade JSF, eller nymodiga och hippa Struts (på Java-sidan), alternativt det svårkommenterade ASP.NET (i fallet Microsoft). Har man en riktigt tur så kanske projektet får lov att använda sig av Tapestry eller Spring. Dock har samtliga dessa ramverk brister som det finns lösningar för, och som används alltmer i länder utanför Sverige.

I höstas var jag hos Google i Mountain View och gjorde ett 'tech-talk' på ämnet Thin Server Architecture, där jag redogjorde för tekniker för att radikalt minska utvecklings- och underhållskostnaderna för webb-relaterade projekt. Grundidén är densamma som i RIA (fast RIA mest förknippas med Flash), och SOFEA (Service Oriented Front-End Architecture), det vill säga att erkänna den klient-funktionalitet som finns i browsern, och utforma projektet som ett client-server projekt, där en grupp har hand om klientern och en grupp om server.

Detta innebär att projektets två delar kan arbeta till stor del asynkront av varandra, med bieffekten att den design som gjörs i HTML/CSS och JavaScript kan användas oförändrat i applikationen, utan att behöva konverteras till server-side templates. TSA innebär helt enkelt att klienten skrivs med hjälp av moderna Ajax-ramverk som Dojo, YUI, ExtJS eller jQuery (mfl), och som använder Ajax-anrop för att enbart hämta och leverera data från och till server, genom ett REST-gränssnitt eller kanske genom att konsumera web tjänster rakt in i browsern (som är principen bakem SOFEA).

Den stora vinsten blir på server-sidan, där den gruppen helt kan fokusera på att implementera affärslogik och säkerhet, och där all form av rendering, templates och XML-filer för mappning mellan webb och logik helt kan släppas.

Detta kräver givetvis att det finns kompetenta Ajax/JavaScript experter i gruppen som leder front-end arbetet, men experter kommer man ju aldrig undan :) Det finns även ett antal RAD-verktyg som till skillnad mot Microsoft Visual Studio ger ifrån sig en ren, tvåskiktad client-server applikation, som ändå kan köras i en gängse appliaktionsserver. Eempel på dessa är WaveMaker, SmartClient och Mendix.

I de flesta fall räcker det nog att handjaga klienten. Och om man skall ändra något i utseendet, så påverkar det inte server, och om servern ändrar sin interna struktur, så behöver det inte märkas i klienten, så länge inte protokollet dem emellan rubbas.

Det är utveckling det!

Tyvärr just nu bara tillgänglig i utlandet :) Vilket årtionde som helst kanske Svenska företag och organisationer kommer ikapp. man kan ju bara hoppas..

2 kommentarer:

  1. Tack för en fin artikel (som vanligt)!
    Jag tror att Sverige är väldigt konservativt i val av plattorformar/tekniker. Inte nödvändigtvis att utvecklarna är konservativa (vem vill inte testa ett nytt språk/ramver) - det ligger nog snarare hos beslutsfattarna.

    Istället för att kanske använda en mashup av olika specialiserade språk/ramverk/tekniker kör man på 'gamla vanliga' Java och .NET.

    Jag tror dock detta kommer att ändras med tiden. Men Sverige ligger efter i det här avseendet.

    Återigen tack för en fi artikel - ett nöja att läsa din blogg.

    SvaraRadera