Showing posts with label arta programării. Show all posts
Showing posts with label arta programării. Show all posts

Wednesday, December 20, 2017

Stilul de programare

În vremurile de demult, fiecare programator lucra așa cum credea el, cum învățase la școală sau cum îl învățaseră cărțile de unde citise despre limbajele de programare și unde se găseau numeroase exemple. Eu am avut marele noroc:
- să am profesori speciali care știau programare și scriau programe elegante;
- să studiez cărți de programare ale IBM care erau scrise de meseriași;
- să citesc reviste precum Communication of the ACM unde se publicau programe;
- să consult imprimante cu programe scrise de programatori de înaltă clasă;
- să merg la Biblioteca Americană din București unde erau și cărți și reviste tari.
Prin 1984 o echpă de cercetare într-ale informaticii și statisticii formată din Baron Tudor, Ivan Ion, și Balog Alexandru  au elaborat lucrarea Informaticã Economicã: Calitatea programelor si stilul de programare, de 43 pagini pe care au publicat-o în  litografia Academiei de Studii Economice din Bucuresti. La nivelul acelor ani, când programarea era o artă și programatorii de FORTRAN sau de COBOL niște artițti, prin stil de programare se înțelegea existența unor:
- convenții acceptate de toată lumea legate de cum se scriu textele sursă;
- structuri de secvențe de instrucțiuni considerate a fi eficiente;
- reguli de utilizare a bibliotecilor de programe pentru a reutiliza componente;
- soluții și structuri de programe care trebuiau implementate obligatoriu;
- modalități de a alege definirile numelor de operanzi și de etichete;
- indicatori de măsurare a nivelului de autodocumentare pentru a stimula comentariile;
- mijloace de a comunica între programatori pentru a asigura creșterea calității;
- dogme cum că așa trebuie sau așa este bine să se utilizeze instrucțiuni și nu altfel.
Ideia stilului de programare era de a se asigura omogenitatea subprogramelor, a modulelor și a programelor în totalitatea lor, știut fiind faptul că de la un anumit nivel de complexitate încolo era imposibil să se scrie un produs software de către o singură persoană. În plus, toate achizițiile pozitive ale experienței acumulate în timp, prin includerea de reguli care să le reflecte, ducea la continuarea în munca tuturor programatorilor a respectivelor cuceriri.
Școala de programare IBM atât pentru programe FORTRAN prin SSP, cât și pentru COBOL-iști a fost, este și va fi un etalon în materie de stil de programare, căci orice persoană din exterior avea ocazia să preia texte sirsă elaborate în bibliotecile software IBM direct, fără nicio dificultate, de parcă toate programele de acolo fuseseră scrise de către un singur programator. În realitate, exista un stil de programare, însușit de toată lumea și aplicat la perfecție.
Stilul de programare este singura modalitate de a se asigura omogenitatea și eficiența textelor sursă scrise de către o schipă în care programatorii lucrază independent unii de alții, ceea ce în întreprinderea virtuală și în telelucru este condiție de bază a calității outputurilor.



(20 decembrie 2017)

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)