2012-01-12

HTML5, apputveckling och programmering


Jag började skriva ett inlägg på Swedroid om HTML5 och apputveckling, men det svävade iväg och blev mer allmänna funderingar och åsikter kring programmering och systemutveckling, så det passade bättre här.

HTML5 ska man absolut satsa på och är ett naturligt steg när det gäller webbutveckling och kanske enklare apputveckling. När väl stödet från webbläsarna blir tillräckligt stort så kommer det bli riktigt användbart för att slippa skapa så många klienter. Det ständiga sorgebarnet Internet Explorer håller tillbaks takten. Inte ens IE9 har tillräckligt stort stöd för HTML5. Vad kommer i version 10? Förhoppningsvis gör de en stor satsning på HTML5 och kommer ikapp sina konkurrenter på det området i alla fall.
Jämförelse mellan olika webbläsares stöd av HTML5.


Det kommer dock aldrig ta bort behovet av att man kan programmera på "riktigt" också. Sen om koden hamnar i appen eller på servern är en annan fråga. En app består sällan bara av klienten på telefonen. Det tillkommer oftast webbklient i HTML, Javascript + js-ramverk (jQuery, Dojo...) och CSS tillsammans med alla tänkbara tekniker och ramverk både på klient och server (JSP, PHP, Velocity...). Sen kommer själva servern (ofta Java på JBoss, Tomcat... eller varför inte Python på App Engine) och databasen (oftast någon typ av relationsdatabas, men populärt är även olika typer av NoSQL-databaser).

Det är sällan företag bara vill ha en app och inget mer. Försök att kunna leverera hela kedjan så att man förstår alla delar av applikationen och inte begränsar sig till bara appen på klienten. Det betyder inte att man alltid ska leverera hela kedjan, men förståelsen skapar bättre produkter.

Grundläggande tekniker för mig när jag arbetar, som jag använder så gott som varje dag och som jag tycker är bra att behärska något så när i alla fall eftersom man stöter på dem hela tiden:
-HTML4 och 5, Javascript + jQuery, CSS, JSON
-Java (SE + EE), webservices (soap och rest), servlets
-SQL och design av relationsdatabaser

Kul och användbara tekniker jag tycker man bör kolla upp så man har vet på vad det handlar om:
-Git och SVN (subversion) - det finns säkert många företag som kör Clearcase, Mercurial och annat men med Git och SVN så får man koll på hur de flesta versionshanteringssystem fungerar
-Enhetstestning och mockramverk - jUnit + Mockito underlättar massor när man gör enhetstester
-Continuous build and integration - Jenkins
-NoSQL
-App Engine