C strings

Pregătesc un scurt material despre noua unitate informațională. Pentru că în ziua de azi nu mai vorbim despre bit, byte sau octet. Vorbim despre strings, despre conținut, despre felul cum tot este sau poate fi string.

Reprezentarea informației a trecut de la nevoia de a ascunde totul într-un format cît mai compact și mai economicos posibil. Nu se mai poate vorbi de o necesitate de a ascunde totul în spatele unei semantici minimaliste. Nu mai vrem să folosim un bit pentru o valoare „adevărat/fals” ci vrem să spunem false. De ce?

În primul rînd pentru că nu mai avem nevoie de atît de mare economie la spațiu. Se pot face jocuri geniale în numai 48K; asta nu înseamnă noi chiar vrem să ne restrîngem la atît. Pe sistemele moderne nici măcar nu mai e un avantaj să fii concis: să citești un bit sau un byte este semnificativ MAI LENT decît să citești 64 de biți. Iar prezentul și viitorul este pe (cel puțin) 64 de biți, în ciuda faptului că Adobe crede că platforma Flash ar trebui să fie numai pe 32, nefiind capabili să producă încă un player decent de 64 biți. Despre treaba asta însă putem să discutăm altă dată.

În al doilea rînd, vrem să fim mai expliciți pentru că editarea informației și înțelegerea ei trebuie să fie disponibilă utilizatorilor umani. În ciuda previziunilor cyberpunk, calculatoarele sunt construite să ne slujească, nu să le slujim noi.

Asta nu înseamnă că suntem contra optimizărilor. Vrem algoritmi de compresie mai buni, și putem să îi facem pe mașini mai puternice, mai rapide și cu mai multe procesoare. Nu înseamnă că nu vrem să stocăm un bit acolo unde avem nevoie să salvăm spațiu. Doar că această economie nu mai e necesară tot timpul, ba mai mult, e necesară foarte rar. Chiar dacă JPEG-ul este formatul predilect pentru poze, curînd o să auzim din ce în ce mai despre SVG, care nu e nimic altceva decît un XML de descriere (ceea ce înseamnă că pentru a edita o poză poți folosi un simplu editor de text).

Mai mult, înțelegerea modului în care lucrează un calculator cu memoria se aplică cel mai bine la problemele string-urilor. Realocare? Diferențele între lungimea unui șir și numărul lui de caractere? Cum citești un XML?

Pregătesc acest text de ceva vreme, dar recunosc că nu am nimic pornit. Probabil săptămîna care vine o să pun primele cuvinte pe ‘hîrtie’ (fișier LaTeX, de fapt). Un text despre string-uri, despre erori clasice în programarea și folosirea string-urilor, aplicate în mama tuturor limbajelor, C, și în C++. Despre de ce e nevoie de atîtea clase de string și de ce fiecare bibliotecă de utilities definește o clasă string (incompatibilă cu toate celelalte de pe lumea asta)… În textul ăsta.

Dacă aveți vreo idee despre ce alte subiecte să abordez, aștept sugestii.