Rikard Thulin (IBS JavaSolutions) har tagit upp ämnet på Javaforum-mötet i Göteborg (2008-05-21). Mycket roligt och bra sammanfattning av en del problem kring olika ramverk och teknologier där XML filer används. Visst skulle allt blir enklare om man kunde slippa allt onödigt och krångligt. Tyvärr fanns det inte mycket tid för diskussioner kring dessa frågor trots att jag tycker att dessa frågor är väldigt centrala för kommande åren inom mjukvaruutveckling särskild bland java utvecklarna. Samtidigt som Rickard tog upp dessa frågor, hörde vi andra talare hur bra det är att använda andra ramverk och språk (typ Scala, Grails, Groovy). Att det finns just nu så många olika ramverk och språk intygar att vi försöker lösa ett antal problem utan att komma något vart (värd att läsa inlägget från Ola Berg om EJB). Enligt min åsikt, vi försöker att hitta generella lösningar för diverse problem. Iden är bra men att verkställa det verkar vara omöjligt.

Poängen i det hela är att vi måste utgå från krav tillsammans med ”ekonomiska och tekniska/arkitekturella aspekter”. Utifrån system/funktion krav tar vi fram ett ösningsförslag, där arkitekturella aspekter (såsom anträffbarhet, flexibilitet, användarvänlighet, förvaltning och underhåll, skalbarhet, säkerhet med flera) tillsammans med övriga ekonomiska aspekter (budget, time to market med mera) skall listas ner och prioriteras. Dvs. det räcker inte enbart med en lista av aspekter, utan dessa skall prioritera. Det är just denna prioritering som kan förhoppningsvis stödja oss med valet av ramverk/teknologi med mera. Att använda mer eller mindre XML, annotation eller kod-rader (en av motiveringar varför man skall använda dessa TYPADE språk som Scala) är i sig en aspekt men man skall överväga det mot andra aspekter. Jämför EJB3.0 och EJB2.0, där viktiga aspekter i själva ramverket är framför allt ”enkelhet och utvecklarvänlighet”, dvs. mer annotation men mindre XML fast man kan fortfarande använda XML om man vill. Eller Struts2.0 vs. Struts 1.x. I exempelvis Spring, prioriterar man upp aspekten Dependency Injection (för att avlägsna – De-Couple – objekt från varandra), där användning av XML tycks inte vara krångligt för utvecklarna (fast man kan göra en del ”auto” bindningar med mera som kan vara bra för attskriva mindre antal rader i XML filer).
Mjukvaruutveckling är som en konst, där olika konstnärer (utvecklarna) försöker måla så bra som möjligt en och samma motiv (applikation, ramverk), fast på olika sätt (olika verktyg). Som vanligt väljer/beställer åskådare (kunden) den tavla/konst (applikation, ramverk) som uppfyller hans/hennes smak (viktiga aspekter) och plånbok!
Sammanfattningsvis tycker jag att det känns helt ok att finns olika alternativ/ramverk som tillåter utveckling av olika system med olika aspekter/krav. Annars vore hemskt!