En del biverkningar som vittnar lite om hur saker är uppbyggt har noterats. Förutom att "devices"-panelen (i Caja) inte förefaller använda samma funktion (betydelselöst) )och att statusfältet längst ner (i Caja) _använder_ funktionen (idioti) så har jag nu upptäckt att kopieringsdialogen _också_ använder funktionen (suboptimalt). Det blir ju en del flimmer på "MB/s"-informationen med sex värdesiffror i ställer för tre...
Inte undra på att problem sällan löses i linux av att man prövar ett alternativt program då problemen ligger längre ner. Ok, att inte uppfinna hjulet är väl en god princip, men någon sorts jävla rimlighet får man väl ha? Om jag bygger ett program med ett speciellt syfte så ser väl jag till att formatera storlekar, tider och andra data på ett sätt som är relevant för syftet i stället för att använda någon "bog-standard"-funktion från något jäkla bibliotek vars finlir jag inte känner till, inte kan kontrollera eller är universellt.
Dessutom torde principen "uppfinn gärna småhjul igen" öka portabilitet, minska beroenden och vara mer robust mot godtyckliga systemuppdateringar!
Hela idén med att ha ett uniformt utseende och "upplevelse" mellan program snarare än inom ett program är djupt feltänkt. Det är ett jävla Apple-tänk som gör att även vi som faktiskt vet en hel del om datorer, programmering och operativsystem på ett teoretiskt plan men kanske saknar eller har ofullständiga idéer om specifika plattformar, inte kan skilja eller dra starka linjer mellan olika program vilket minskar förståelsen för hur systemet fungerar.
Inte en chans i helvete att tänket heller underlättar för någon novis eller med datorovana! Kan någon ens styrka själva konceptet i forskning i kognition, psykologi och MMI? Och, även om så vore (övertygad om att så inte är, jag betraktar det som pseudovetenskap tills jag överbevisas), varför ska professionella mjukvaruutvecklare agera utefter sina fördomar om hur en "novis" kan tänkas tänka och uppfatta en skrivbordsmiljö?
Jaja, detta var i huvudsak off-topic, men jag tycker ju saker som människa-maskininteraktion är intressant, relevant och eftersatt. Och jag anser mycket starkt att om jag blir förvirrad av dylika ting så är något per definition fel och förvirrande. Jag är nämligen ingen novis och ej heller någon speciellt dum person utan tämligen så normalbegåvad. Vill jag tro iaf.
Självklart ska program i så stor utsträckning som möjligt vara "self-hosting" och statiskt länkade. Binären behöver inte vara portabel, bara källkoden. Bibliotek har sin stora bevekelsegrund när det gäller interkommunikation mellan olika binärer som applikationsprogram och andra applikationsprogram, program och kärnan, program och drivrutiner/HW, osv.
Vad är det förväntade motargumentet? Jo, givetvis internationalisering. Dvs om funktioner för tid, siffror och datum är centrala så är det enklare att hantera att olika språk har olika preferenser. Vi har decimalkomma, andra har decimalpunkt. Vi har tusendelsseparator, andra har mer komplicerade principer. Vi har mellanslag som sådan separator, andra har komma eller punkt eller annat. Osv, osv, osv. Idén är förvisso sund, men vi vet ju att den alltid, alltid, alltid blir lite lagom inkonsekvent, felapplicerad eller buggig. Många, inklusive jag, har OS på engelska (om inte annat, underlättar felmeddelandegoogling enormt). Då påtvingas vi engelsk nomenklatur i lite allt möjligt. Där det är förnuftigt eller okej/irrelevant och där det är djupt olämpligt.
Normalt, förstår jag, är att internationaliseringsfunktioner tar ett värde som parameter och returnerar en för språket korrekt formaterad sträng. Funktionen gör detta genom att kolla någon sorts global språkinställning. Det är idén. Den idén är fel och dum. Korrekt idé vore att ha önskat språk som inparameter, till att börja dagen med. Detta gör programmet oberoende av systemet. Olika program kan faktiskt ha olika relevans i olika språk. Dessutom borde funktionerna även ta oberoende formateringsparametrar så som exempelvis värdesiffror, vetenskaplig notation eller ej, konstant stränglängd eller inte, vänster-höger- eller höger-vänsterjustering, eller bara rådata, etc. Funktionen kan ha default-parametrar så att den sömlöst kan användas utan att man behöver ange alla parametrar där så inte är relevant.
Det borde gått upp för utvecklarna vid detta laget att en signifikant minoritet av världens datorer nog körs "tvåspråkigt" helt enkelt därför att användarna är tvåspråkiga.
Dessutom har vi Paretos princip eller 80/20-regeln som i korthet säger att 80% av utvecklartid går åt för att parera 20% av atypiska fall och specialförhållanden. Att minimera internationalisering parerar detta till ett lågt pris. Speciellt när det kommer till indoeuropeiska och germanska språk. Ni vet, alla vi som skriver från vänster till höger och har någon form av iteration av grek-romerskt eller liknande alfabet. Och nästan hela världen använder arabiska siffror, inklusive Kina och Japan, Korea, etc, även om de också har mer närproducerade alternativ. Och, dessa siffror skrivs mig veterligen vänster-till-höger och använder alltså det vanliga positionssystemet (jag kan ha fel) och 10-basen världen över. Alla läskunniga på planeten borde åtminstone ha det som andra-"språk" (andranumerik?). Har svårt att tro att det finns datorlitterata på vår planet som skulle ha besvär med att tolka exempelvis "1,000,000.00" som en "miljon med två decimaler" (dvs 1 miljon med åtta värdesiffror).
Just precis den typ av formatering jag talar om (nummerdata som datum, reella tal, valuta, bytestorlekar, etc) har jag alltid implementerat själv eftersom biblioteksfunktionerna helt enkelt saknar relevans, förstånd och förnuft.
Och så, mina vänner, skulle också Caja ha gjort om utvecklarna hade stolthet och sinne för detaljer. Givetvis är det komplett irrelevant att använda samma presentationssätt i en kolumn som i ett statusfält. Statusfältet är till för förtydliganden, exakthet och precision. Kolumnen är till för översikt.