Datorer / Utveckling / Miljöer

Vissa verkar ha starka (snudd på politiska eller religiösa) känslor kring operativsystem / hårdvaruleverantörer och hävdar att något alternativ är betydligt bättre / sämre / enklare / besvärligare / mer öppet / inlåst / säkert eller stabilt än andra alternativ. Men när det kommer till kritan kan man göra i princip vad som helst oavsett vilken miljö (operativsystem och fönsterhanterare / desktop) man väljer. Även om vissa kommersiella leverantörer fokuserar på ett eller två av alternativen och en specifik produkt från en viss leverantör inte finns till alla operativsystem så finns ju oftast alternativ, och de vanligaste typerna av verktyg finns till alla miljöer. Webbläsare, officeprogram, mediaspelare, bildbehandling och ett antal spel finns för alla plattformar. Dessutom finns ju många utvecklingsverktyg / programmeringsspråk för de olika alternativen så utbudet kan alltid växa.

För de som vill eller tycker det är mest praktiskt av någon anledning är det ju fritt fram att välja pyttemjuk eller äpplen, och annars finns till exempel BSD och Linux med ett antal möjliga fönsterhanterare och verktyg för de flesta behov. Dessutom blir telefoner och paddor alltmer kompetenta och mångsidiga.

Användargränssnitt vs operativsystem

Folk i gemen gör ofta inte någon distinktion mellan operativsystemet och dess användargränssnitt, men bygger man dessa rätt så ska man ju kunna välja dem oberoende av varandra. Men både Bill och Steve gjorde tidigt sina användare vana att inte ställa den frågan, och dessutom lyckades man av någon outgrundlig anledning göra både grafisk filhanterare och webläsare till integrerad och central del av operativsystemet, och det är inte helt uppenbart för mig hur man tänkte där.

Utvecklingsverktyg

När det gäller utveckling finns det ett antal olika aspekter och begrepp som personer har olika åsikter/känslor kring. Dels pratar man om starkt eller svagt typade språk, statiskt eller dynamiskt typade språk och imperativa / procedurella / objektorienterade / funktionella paradigmer. Sedan finns aspekter som samtidighet / paralliserbarhet / distribuerbarhet. Helt andra sidor är testning, kravfångst, agilitet / itterationer, underhållbarhet och livslängd (som nästan alltid blir längre än man initialt tror). Och även om de flesta tycker det är skojigast att bygga nytt verkar många välja att glömma bort att man 80 procent av kostnaden för ett system ligger i underhåll/förvaltning. Och även om man tycker att vattenfall är det bästa sedan skivat bröd (eller agilt) så kommer man ändå aldrig veta allt för att kunna göra den ultimata designen i början.

I praktiken kan man bygga vilken funktionalitet som helst med vilka verktyg som helst. Men när det kommer till kritan kan man alltid utföra hantverket mer eller mindre bra, så att det blir lättare eller svårare (och dyrare) att underhålla / förändra. Fast det har oftast inte med språkval / verktygsval att göra. Jag skulle påstå att man kan bygga sunkiga system med vilket verktyg / vilken metod som helst.

Även om man på en arbetsplats har en viss kodbas / en samling verktyg att förhålla sig till tror jag att det är bra att ofta förkovra sig i olika tankesätt och verktyg och paradigmer. Dessutom är det bra att fundera över sitt arbetssätt, vilka practices och konventioner man väljer att anamma.

Xkcd 224: lisp (credits: Randall Munroe) xkcd 224: lisp (credits: Randall Munroe)