Saturday, October 14, 2017

Programarea ca artă

Ceea ce D.E. KNUTH publicase în 1958 sub titlul Art of Computer Programming și se anunța o lucrare monumentală, la noi a fost tradusă sub titlul Tratat de programare a calculatoarelor : Algoritmi seminumerici : Numere aleatoare si aritmetica, cu 700 de probleme rezolvate și publicată în anul 1983 la Editura tehnică, având 722 pagini, în traducerea excepțională a colectivului format din Rodica BOCONCIOS, Adrian DAVIDOVICIU, Petre DIMO, Florin MORARU, Adrian PETRESCU, Ion SIPOȘ, ei înșiși specialiști de primă mărime în computer science.
La începuturile informaticii programarea calculatoarelor era o artă pentru că:
- nu existau standarde;
- tehnicile de programare erau incipiente;
- comunicarea dintre programatori lipsea;
- fiecare programator lucra învățând și făcând;
- accentul era preponderent pe limbaj și pe problemă;
- se urmăreau soluții și mai puțin cum se obțin;
- toată lumea se considera măreață.
A învăța programare însemna a învăța:
- un limbaj de programare;
- a face scheme logice;
- cum se scrie un program;
- cum se testează un program;
- introducerea de comentarii în textul sursă;
- cum se scriu cartele de comandă;
- cum se rulează programul.
Fiecare programator căuta să scrie programe:
- cu noutate în ele;
- multe;
- cât mai repede;
- bune;
- complexe;
- simple;
- eficient;
- reutilizabile;
- după reguli proprii;
- autodocumentate.
Calitatea unui text sursă era adtă de:
- numărul de linii sursă;
- numărul de instrucțiuni GO TO folosite;
- simplitatea textului sursă;
- tipurile de variabile utilizate;
- dimensiunea problemelor de rezolvat;
- gradul de folosire subprograme;
- reutilizarea componentelor din biblioteci.
Cred că am avut mare noroc că în ultimul an de facultate dar și în primul an de muncă am avut ocazia să învăț să lucrez programe învățând după documentațiile perfecte de la IBM dar și după cărți de programare de la editura Prentice Hall. Acolo erau programe scrise foarte îngrijit și cine dorea să învețe, avea ce învăța, căci exemplele de acolo erau comentate și se vedea clar de ce se face așa și nu altfel, ceea ce a fost mare lucru pentru mine la început de drum.
Programarea ca artă a corespuns începuturilor programării, când toți pionierii erau cei care lucrau ca niște alchimiști și toți se minunau când vedeau că de la calculator se obțin rezultate care altfel nu s-ar fi obținut niciodată. În acele vremuri nimeni nu se uita în programele vecinilor și totul era un mister total, căci fiecare se considera un mare programator în felul lui. Arareori, când apăreau situații critice, programatorii rugau pe alții, de regulă ingineri de sistem să-i ajute să depaneze. Nu știu dacă aceștia se luau cu mâinile de cap, dar știu că nici ușor nu le era, iar comentariile lor acide de după, arătau exact cum stăteau lucrurile cu textele sursă scrisă artistic, în afara oricăror reguli.
D.E. KNUTH a avut un proiect foarte ambițios, acela de a realiza o lucrare monumentală de programare, incluzând tot ce trebuie pentru un programator ca să fie de top. El a realizat:
Volume 1 – Fundamental Algorithms
Volume 2 – Seminumerical Algorithms
Volume 3 – Sorting and Searching
Volume 4 – Combinatorial Algorithms, Part 1
Și-a planificat dar timpul nu i-a fost favorabil următoarele volume:
Volume 5 – Combinatorial Algorithms
Volume 6 – Syntactic Algorithms
Volume 7 – The Theory of Context-free Languages[7]
Volume 8 – Compiler Techniques.
Proiectul său a fost extrem de ambițios și cred că dacă avea o echipă de tala celei recunoscute sub numele de Nicolas BOURBAKI ar fi dus totul până la capăt. Tot timpul m-am gândit la a face o comparație între KNUTH și CĂLINESCU cu a sa monumentală istorie a literaturii române, dar detaliile cu totul de excepție în care a intrat KNUTH și mai ales dorința de a cuprinde totul și mai ales bine și unitar, cred că l-au făcut să lucreze solitar, chiar dacă a avut totuși colaboratori.




(14 octombrie 2017)


No comments:

Post a Comment