Därför måste vi diskutera hur vi bygger CSS
Jag tror det är nödvändigt att omvärdera hur vi skriver CSS. Vi har kommit till en punkt då det är dags att fråga oss vad som kännetecknar välbyggd CSS.
Historien såhär långt har utmärkts av att det är ett nytt område och att det har varit tumultartat med buggiga webbläsare och standarder som utvecklats parallellt med att de använts. De diskussioner som förts fram tills nu om hur man bör bygga HTML och CSS har varit nödvändiga, men det är dags för en ny diskussion.
Om vi tittar på programmering – alltså utveckling av mjukvara – så befann man sig vid slutet av 80- och början av 90-talet där CSS befinner sig nu. Då var tiden mogen att bena ut hur man bör bygga mjukvara; hur man bör organisera sin kod, hur man bör dela upp den i tydliga delar och hur dessa bör samspela, hur man namnger moduler, objekt, funktioner och variabler.
Nu skiljer sig CSS från mjukvaruutveckling i många avseenden men bland orsakerna till att diskussionen var nödvändig då finns mycket gemensamt. Tydlighet, möjlighet att orientera sig i koden, kvalité, underhållbarhet, prestanda – alla är mål som var viktiga för programmering då och som är viktiga för CSS-utveckling nu.
Tydlighet betyder att koden är lätt att förstå i enskilda stycken – i direktiven för en enskild selektor i CSS fall, att man förstår utvecklarens intentioner och vad enskilda direktiv betyder.
Orienterbarhet betyder att koden är förståelig som helhet. Att man förstår hur den är organiserad, var man hittar vilka saker och var man ska lägga till ny kod.
Kvalité handlar om att hålla nere antalet buggar och om att kunna göra förändringar utan överraskningar.
Underhållbarhet handlar om att hålla koden i schack över tid och att det inte tar längre tid och därmed kostar mer att arbeta med koden ju längre projektet lever. Det handlar om att frisera bort kod som inte längre behövs, om att organisera om så att mängden kod hålls nere i takt med att sajten vidareutvecklas.
Till sist prestanda, som både har att göra med att hålla nere storleken på koden och se till att den är organiserad på ett sätt som möjliggör effektiv laddning av webbläsaren.
Det var dessa tankar jag var inne på när jag frågade om det inte är dags att omvärdera semantisk HTML. Och jag hoppas kunna få mer klarhet i mina tankar framöver. Jag skulle gärna höra era tips om bra läsning om detta och tankar om ämnet i allmänhet.
Jag avslutar med två citat som jag tycker passar in här. Inte från programmerare utan från designers.
Först Ellen Lupton ur boken Thinking with type om Karl Gerstner som i sin bok Designing programmes från 1964 presenterade ett manifest för systemorienterad design: ”Gerstner defined a design ’programme’ as a set of rules for constructing a range of visual solutions. Connecting his methodology with the new field of computer programming, Gerstner presented examples of computer-generated patterns that were made by mathematically describing visual elements and combining them according to simple rules.”
Och Massimo och Lella Vignelli ur boken Design is one: ”We believe that design should be: [1] Semantically correct. In other words, search for the real meaning and the correct signs that connote the object you are working with. [2] Syntactically consistent. Every detail must be consistent to itself and the whole. No borrowed elements. The language is one and every detail should speak the same language. [3] Pragmatically understandable. Otherwise, design is a failure, no matter how beautiful it is. Design is not art, design should express its meaning and that should be universally understandable.”