Showing posts with label programare orientată obiect. Show all posts
Showing posts with label programare orientată obiect. Show all posts

Saturday, October 14, 2017

POO, adică programarea orientată obiect

Programarea orientată obiect înseamnă un salt extraordinar făcut în programare, exact cum a zis Neil ARMSTRONG când a ajuns pe Lună: un pas mic pentru om, un salt uriaș pentru omenire, deși unii cârcotași,  consideră că n-ar fi zis chiar așa.
La noi POO a început să se dezvolte abia după ce au fost cumpărate calculatoare personale ceva mai puternice, de la micoprocesoarele 386 cu cel puțin 4Gb mamorie cache dar și cu medii de dezvoltare ceva mai tari decât cele de tip Borland. Atât limbajul C++ cât și limbajul PASCAL dispun de facilități pentru implementarea în programe a tuturor proprietăților obiectelor, cu avantaje mai ales. Deși au apărut nenumărate lucrări despre programarea orientată obiect, inclusiv o carte de analiză, adică OOA, nu voi conchide că cititorul a găsit acele elemente care să-l convingă că trebuie să gândească programele altfel decât cum o făcea înainte. De aceea am văzut nenumărate texte care mimau lucru cu obiecte, căci erau introduse forțat clasele, căci de vedea de departe că cei ce le scriseseră nu simțeau lucrul cu obiecte ca pe un fapt natural.
dacă iau în considerare că mai puternic s-a făcut programare orientată obiect după anul 2000, pentru cei 17 ani care s-au acurs este deja vorba de o istorie recentă și lucrurile nu sunt decantate. Cum aplicațiile online de contact cu mine în calitate de client nu sunt entuziasmante, nu am să mă pronunț câr de grozave sunt, căci mai degrabă era rezonabil să se facă niște șabloane și nu să se lucreze ca în anii '60 când nu știa dreapta ce face stânga în programare și fiecare întreprindere, oficiu de calcul, centru de calcul își scria propriul său program de calcul de salarii încât o harababură și o risipă de resurse nici să avea cum să se realizeze altcumva. 
Cine are curiozitatea să intre pe portalurile a două universități se ia cu mâinile de cap și se lasă păgubaș că numai în 1.000 de click-uri ajunge, dacă ajunge la informația dorită. Să mai treacă 10 ani și după 25 -30 de ani de POO lucrurile vor fi decantate cât de cât pentru a încăpea în paginile unei storii a informaticii românești. Abia atunci se va vorbi de aplicații care au funcționat ca lumea și abia atunci se vor găsi și aplicații dar și rezultate originale în zona software sau hardware, altele decât succesul lui Bitdefender, care domină copios piața de anti-viruși. Despre hackerii mioritici nu vreau să discut de prea multă rușine, chit că unii dintre ei stăpânesc tehnologia POO, deși invidioșii îi consideră idioți care nu-și canalizează corect inteligența.
Se vrobește prea lult despre programarea orientată obiect, POO  sau OOP, dar aș vrea să văd clasele definite de dezvoltatorii de software și să le știu încorporate în bibliotecile uzuale astfel încât dacă aș scrie ceva aplicații să le am la dispoziție și să fie atât de bune și de utile încât să simt că într-adevăr POO mi-a ușurat și viața și munca de programator, că mi-a crescut productivitatea mie și a crescut calitatea textelor pe care le fac, spre bucuria unor utilizatori din ce în ce mai exigenți mai nerăbdători să piardă timpul în a ajunge la informațiile dorite în mai mult de trei click-uri, nu două cum cere lumea spălată.
Despre POO pentru programe scrise în limbaj de asamblare merită o dezvoltare separată, pe care probabil o voi face ceva mai târziu. Și zbaterea limbajului COBOL spre OOP a fost o chestie care la noi nu a prins, deși așa cum erau aduse completările erau în linia a ceea ce se știa despre acel limbaj și nu cred că ar fi fost prea greu să se facă software în OO COBOL. N-a fost să fie. Nici cu limbajul FORTRAN n-a fost mare câștig după eșecul cu programarea structurată în acest limbaj. Programatorii FORTRAN erau prea uzați ca să asimileze OOP și să facă software în OO FORTRAN, iar tinerii programatori Look Back in Anger, ca în filmul englezesc din 1959.
POO în afara unei coerențe a reutilizării claselor rămâne doar o poveste interesantă și atât.


(14 octombrie 2017) 

Friday, September 29, 2017

Cărți de PASCAL

Limbajul PASCAL, deși este un limbaj frumos și interesant, cu foarte multe facilități, n-a prins în viața de zi cu zi a programatorilor din mai multe cauze și eu aș enumera câteva:
- cei ce veneau in FIRTRAN l-au considerat greoi;
- operatorul de atribuire este în PASCAL :=, adică două caractere, cam mult;
- incrementarea se face în PASCAL a:=a+1; iar în C a++; adică mult mai simplu;
- delimitarea de blocuri se face în PASCAL cu begin și end, iar în C prin {};
- pentru tipul întreg se folosește în PASCAL integer, iar în C doar prescurtarea int;
- constructorii de compilatoare și de biblioteci s-au orientat spre C, C++ și C#.
În școlile noastre limbajul PASCAL s-a predat destul de mulți ani, probabil cam prea mulți datorită unei inerții de neînțeles.
Iată și câteva cărți de PASCAL:
  • Ion Gh. Roşca (coordonator), C. Apostol, B. Ghilic-Micu, V. Roşca - Prelucrarea fişierelor în PASCAL, Editura Tehnică, Bucureşti, 1994, 
  • Ion Gh. Roşca (coordonator), C. Apostol, B. Ghilic-Micu, V. Roşca – Programare sistematică în Pascal, Editura Didactică şi Pedagogică, 1998, 294 pag. 
  • Ion Gh. Roşca (coordonator), C. Apostol, B. Ghilic-Micu, V. Roşca - Introducere în programare. Teorie şi practică Pascal, Casa de Editură şi Presă Viaţa Românească, Bucureşti, 1993, 324 pag., reeditată în 1996.
  • Ion Gh. Roşca (coordonator), B. Ghilic-Micu, C-tin Apostol, Valer Roşca, Cătălina-Lucia Cocianu – Programarea calculatoarelor. Tehnica programării în limbajul Pascal, Editura ASE, 2000, reeditată în 2001, 2002, 2004 (233 pag. şi CD);
  • Ion Gh. Roşca, C. Apostol, B. Ghilic-Micu, V. Roşca, M. Stoica – Ghid de operare Turbo-Pascal, Editura ASE, Bucureşti, 1999, 56 pg;  
  • Sabin GORON, Cornelia PAVLIC - Programare în Borland Pascal, Editura Risoprint, Cluj-Napoca, 2000 
  • Sabin GORON - Turbo Pascal : Teorie, exemple, Editura Risoprint, 1998, Cluj-Napoca, 223 pg. 
  • Sabin GORON, dan RACOVIȚAN, Cornelia PAVLIC - Programare şi exemple în limbajul Turbo Pascal, Editura Risoprint, Cluj-Napoca, 1997. 
  • Valeriu IORGA - Programare in TURBO Pascal, Culegere de probleme, capitolele 1-5,Editura IVT-TOTAL-SERV, Bucuresti, 1992. 
  • Ion IVAN, Romică ADAM - Structuri de date si Programe Pascal, Bucuresti,1992. 
  • Victor-Valeriu PATRICIU - Criptografia şi securitatea reţelelor de calculatoare cu aplicaţii în C şi PASCAL, Editura Tehnică, București, 1994, 320 pg.

Este ușor nedrept că acest limbaj a căzut prea repede în desuetitudine pentru că față de limbajul C sau derivatele acestuia, nivelul de indirectare are niște flexibilități care numai peste ani se vor dovedi a fi fantastice, dar sper să nu fie prea târziu.



(29 septembrie 2017)

Thursday, September 28, 2017

Cărți de C, C++ și C#

Limbajul C și derivatele lui ulterioare C++ și C# au prins în lumea programatorilor pentru:
- simplitate;
- mbogăție;
- ușurință.
De aceea au apărut și compilatoare extrem de puternice, dar și cărți care să-i facă pe programatori să utilizeze cât mai bine resursele în marea lor diversitate, pentru a obține cele mai eficiente soluții. Cărți trecute aici dar și folosite sunt:
  • Ion SMEUREANU, Ion IVAN, Marian DARDALA - Structuri de date si obiecte in C++, Editura CISON, Bucuresti, 1998
  • Ion SMEUREANU, Ion IVAN, Marian DARDALA - Limbajul C++ prin exemple, Editura CISON, Bucuresti, 1995, pg. 256, ISBN 973-96370-0-0.
  • Ion SMEUREANU, Ion IVAN, Marian DARDALA - Structuri de date si obiecte in C++, Editura CISON, Bucuresti, 1998
  • Ion IVAN, Ion SMEUREANU - PROGRAMAREA IN LIMBAJUL C, Culegere de probleme, Editua ALFAR, Rm. Valcea, 1992 261 pg, ISBN 973-95080-6-5
  • Sorin TUDOR - Bazele programarii in C++, Editura L&S, Bucuresti, 1998,300pg., ISBN 973-96382-7-9
  • Liviu NEGRESCU - Limbajele C si C++ pentru incepatori : vol 1 : partea I : Limbajul C, Editura Albastra, Cluj-Napoca, 2000, 309 pg.
  • Liviu NEGRESCU - Limbajele C si C++ pentru incepatori : vol. 2 : Limbajul C++, Editura Albastra, Cluj-Napoca, 2000, 519 pg.
  • Liviu NEGRESCU - Limbajele C si C++ pentru incepatori : vol. 2 : Limbajul C++, Editura Albastra, Cluj-Napoca, 1996, 1030 pg.
  • Liviu NEGRESCU - Limbajele C şi C++ pentru începători : Programe de optimizare şi grafică. Vol. 4, Editura Albastra, Cluj-Napoca, 2000, 407 pg.
  • Ion SMEUREANU, Marian DÂRDALĂ - Programarea orientata obiect in limbajul C++, Editura CISON, București, 2002, 333 pg.
  • Ion SMEUREANU, Marian DÂRDALĂ, Adriana REVEIU - Visual C#.Net, Editura CISON, București, 2004, 311 pg.
  • Ion SMEUREANU, Marian DÂRDALĂ, Ion IVAN - Structuri si obiecte in C++ : note de curs si teste grila, , Editura CISON, București, 1998, 189 pg.
  • Mirel COȘULSCHI, Octavian MUSTAFA. -Programare în C++ : Concepte moderne şi aplicaţii, Editura Prouniversitaria, Craiova, 2015
  • Dragoș ACOSTĂCHIOAE - Programare C şi C++ pentru Linux, Editura Polirom, Iași, 2002, 216 pg. 
  • Laurenţiu PĂDEANU - Programarea orientată pe obiecte în limbajul C++ : Suport de curs, Editura Eurobit, Timișoara, 1993, 110 pg.
  • Ioan JURCĂ - Programarea orientată pe obiecte în limbajul C++,, Editura Eurobit, Timișoara, 1992, 134 pg.
  • Liviu NEGRESCU, Lavinia NEGRESCU - Limbajul C# pentru începători : depanarea programelor şi tratarea erorilor; proprietăţi, tablouri şi clasa Array. vol.6: Mediul de programare Visual Studio C#, Editura Albastră, Cluj-Napoca, 2005, 200 pg.
  • Dorin IRIMESCU, Cristian MORĂRESCU - Programmieren mit C und C++, Editura Printech, București, 1997.
Cărți de C, C++ și C# au o largă răspândire în rândurile programatorilor pentru că cele trei limbaje ilustrează cel mai bine evoluția de la programarea structurată către programarea orientată obiect, cu creșterea accelerată a reutilizabilității construcțiilor prin tehnici de generare evoluate care pornesc de la stabilirea moștenirii de proprietăți în raport cu componente de bibliotecă transformate ușor în operanzi prin transmitere de proprietăți de la parte către întreg.
Mai sunt și alte cărți valoroase despre acest limbaj pe care le știu, dar de care mă voi ocupa în perioadele viitoare pentru că nu doresc să nu fie consemnate aici, căci din ele am reținut elemente interesante pe care le-am și folosit în activitatea mea de la catedră și încă îmi mai sunt necesare.

(28 septembrie 2017)