duminică, octombrie 17, 2021

IT: Infernul bibliotecilor

Acum mai bine de zece ani lucrurile păreau destul de clare în programare. Orice programator serios lucra în C sau un derivat al lui, cel mai probabil C++, eventual Java. Restul, mai ales cei care foloseau limbaje interpretate, precum Basic sau php pentru încă proaspătul fenomen web erau priviţi ca “amatori”.

Lucrurile au început să se complice prima dată atunci când cererea de aplicaţii web a devenit predominantă. Era vremea când Microsoft lansa .net pentru a putea ocupa o piaţă unde Java părea singura tehnologie posibilă.  Şi s-au complicat şi mai rău atunci când jucătorii mari, începând cu Google, au hotărât să transforme industria de hosting într-un fel de hypermarket care să ofere tot ce o companie şi-ar dori ( şi să închidă “buticurile” numite datacentere pe care orice firmă medie le întreţine )

Dincolo de discuţia dacă această strategie e câştigătoare sau nu ( şi unde probabil răspunsul nu va fi nici nu şi nici da, ci “depinde” )  noul curent a descoperit iute că avem nevoie de limbaje noi, de tehnologii şi abordări noi.  Pur şi simplu tehnologia momentului nu era potrivită scopului propus.

Mai întâi tehnologia web era incredibil de limitată comparativ cu cea desktop. Modul de lucru client-server era exact ceea ce îi spune numele: browserul întreabă, serverul răspunde. Nu este propriu-zis un canal bidirecţional, în tot cazul nu e sincron.

Pe de altă parte, mutarea serviciilor la provider înseamnă folosirea de altfel de servere. La tehnologia actuală, un singur server low end, destinat în general clienţilor mici, s-ar putea să facă faţă aproape oricărei aplicaţii “enterprise” pentru o companie medie sau chiar mare. Dar în “cloud” lucrurile stau altfel ( IBM a lansat anul ăsta un nou mainframe, după o pauză de câţiva ani) . Ori lucrul pe servere cu multe “core”-uri în condiţiile de folosire judicioasă a resurselor , cere tehnologie specifică. În plus, aplicaţile trebuie să poată fi mutate cu uşurinţă de pe o maşină pe alta, dintr-un datacenter în altul, în mod absolut transparent. Acest lucru cere tool-uri specifice, care trebuie să poată fi dezvoltate, şi mai ales sincronizate mereu, pentru că timpul este un adversar din mai multe puncte de vedere: timpul necesar dezvoltării, timpul necesar sincronizării aplicaţiilor, timpul necesar deployment-ului…. şi dincolo de toate, ceea ce îl interesează pe client, timpul de răspuns.  Ceea ce noi rezolvăm de obicei cu un script s-ar putea să nu fie destul de bun într-un loc unde vorbim de mii de maşini sau de milioane de “containere”.

Aşa tehnologiile web au ajuns un amestec de limbaje şi tehnologii vechi, noi  şi vechi dar modernizate. Bătrânele JavaScript-uri, jucării parte şi ele pe vremuri în “războiul browserelor” ( niciodată interpretorul Internet Explorer nu era compatibil cu cel Netscape/Mozilla ) au trebuit extinse, refăcute, mai mult sau mai puţin standardizate pentru a deveni o componentă esenţială în aplicaţiile actuale.

În zona web, limbajele interpretate par a fi câştigat războiul contra celor compilate. ( deşi lucrurile sunt relative, pentru că “server side” putem avea orice) . Cel puţin pe partea de client ele au cel putin avantajul de a putea fi actualizate transparent, iar problema puterii de calcul nu prea se mai pune.

În cealaltă zonă, a managementului, lucrurile sunt mai delicate. Acolo performanţele chiar contează, e nevoie de aplicaţii simple, robuste şi rapide. Acolo e zona în care Google a dezvoltat go, o extensie a ideilor din C .

O trasatură comună a noilor tehnologii pare a fi capacitatea de actualizare automată. Ele nu numai că sunt pentru web, dar “trăiesc” în web: într-un fel sau altul, mare parte din bibliotecile lor sunt stocate undeva într-un repository disponibil web. Abordarea diferă, dar într-un fel sau altul fiecare accesează acest “repository” cumva: fie o dată, pentru a descărca bibliotecile, fie la fiecare folosire (folosind bineînţeles şi mecanismul de “cache” pentru a îmbunătăţi viteza)

Ori, aceste repository-uri se schimbă şi se updatează mereu. Deocamdată nu ştim ce se va întâmpla, dar probabil că la un moment dat vom ajunge la un nou turn Babel al bibliotecilor, aşa cum programarea clasică, de desktop, a ajuns la cel al bibliotecilor dinamice, la vremea respectivă. Greu de spus cum se va remedia, dar am încă în faţa ochilor un tabel Excel pe care ni-l dăduse un trainer de la Fujitsu, cu lista de aplicaţii de management pentru servere şi versiunea de Java pe care funcţionează. Probabil în versiunea 2.0, tabelul Excel va fi disponibil şi el pe github.

Distribuie acest articol

5 COMENTARII

  1. Practic, calculatoarele noastre personale vor deveni simple statii de vizualizare a datelor si informatiilor stocate in data center-uri imense, in care securitatea si volumul informatiei vor fi cele mai importante aspecte.

  2. Imi pare rau, dar articolul e greu de urmarit si de inteles chiar si de cei care lucreaza in domeniu si cunosc cum stau lucrurile, iar unele afirmatii sunt chiar uluitoare, de exemplu cea cu limbajele interpretate care au castigat razboiul cu cele compilate … in browser (pentru ca server-side chiar spuneti ca poate fi orice).

    Puteti da exemple concrete de librarii despre care vorbiti si care e relevanta lor pentru cei care nu se ocupa de managementul unui data center? Pentru majoritatea oamenilor din IT problema nu exista pentru ca nu se intalnesc cu ea vreodata.

    • Daca articolul e greu de urmarit este probabil vina mea. ( daca nu stii sa explici clar inseamna ca nu cunosti destul de bine subiectul :) )

      In ceea ce priveste librariile, primul exempu este chiar cel dat de mine, cu Java: rare sunt aplicatiile care merg pe orice versiune de Java ( si nici cu .Net nu imi e rusine). De fapt chiar ideea articolului a pornit de la faptul ca ma luptam cu ceva aplicatii de instalat in Ruby on Rails care, evident, necesitau biblioteci cu versiuni mutual exclusive ( dupa cum probabil stiti, sistemul este ca aplicatiile sa isi descarce „gems”-urile de pe net. Dar problemele astea sunt la fel de vechi ca Visual Basic-ul, aproape toate programelele veneau inca de atunci cu „dll-ul” lor (adica versiunea pentru care au fost scrise) . In programarea web, imi cam pastrez parerea, aplicatiile interpretate ( node.js, php, ruby, python etc etc) tind sa castige batalia.

      • Cred ca de fapt va referiti la (ne)seriozitatea unor dezvoltatori de aplicatii si limbaje de programare. PHP e gratuit, dar incompatibil de la o versiune la alta, pentru Ruby ati dat deja exemplul potrivit, problemele de compatibilitate cu Java sunt bine stiute. Cu Visual Basic singurele probleme de care stiu erau versiuni diferite de DLL decat „astepta” aplicatia sa aibe pentru ca fiecare aplicatie venea cu DLL-uri proprii care le suprascriau pe cele existente, astfel in functie de ordinea instalarii se putea ajunge ca versiunea curenta sa fie cea mai veche.

        In schimb nu am auzit de un asemenea iad in limbaje suportate de companii serioase, gen Borland (da, nu mai este relevanta dar a fost), Microsoft (.NET are versiuni care coexista pasnic pe acelasi computer si fiecare aplicatie e compilata pentru versiunea dorita; am mentionat ca este compilata?) sau SAP (ABAP e folosit la greu in companiile mari, mai mult decat Java). Pentru ca iadul e creat in mare parte de jungla de aplicatii facute mai mult sau mai putin responsabil de dezvoltatori care au un interes limitat de a oferi suport complet sau de a mentine actuala aplicatia lor; sunt foarte multi binevoitori care publica gratuit o aplicatie, dezvoltatorii incep sa o foloseasca si intre timp autorul original se apuca de altceva si abandoneaza aplicatia. Se ajunge la un ecosistem compus din franturi de componente mai mult sau mai putin functionale, finisate, suportate si actuale – cred ca in mare parte e vina celor care folosesc acest zoo al IT-ului si nu a autorilor binevoitori care publica acele componente de obicei sub forma „take it as it is, if you don’t like it chose something else”.

        • Multumesc pentru completari, sunt cu adevarat binevenite. Eu nu vreau sa dau vina pe nimeni, cred ca asta este situatia; nici nu mi se pare foarte normal sa am si sa folosesc trei versiuni de .Net simultan ( asa pot folosi si sapte versiuni de ruby sau de Java simultan, dar nu e normal ). E si expresia unui nou stil de lucru, pe care (honni soit qui mal y pense) l-as numi „copy-paste”. Tendinta e de a construi totul din „prefabricate”, fie ca se potrivesc fie ca nu. Din cauza asta „prefabricatele” tind sa devina cat mai stufoase ( ca sa acopere toate cazurile) iar programele le folosesc in exces. Evident ca ulterior se dovedeste ca biblioteca nu e destul de completa, se mai adauga ceva, sa zicem un parametru care intamplator devine obligatoriu, noi nu am scris programul asa, daca il modificam pierdem „backward compatibility”, daca nu il modificam nu mai merge pe versiunile noi, deci mai introducem un case…. si tot asa, pana cand jumatate din softul nostru este despre biblioteci si o mica parte despre ceea ce are el de facut cu adevarat :)

LĂSAȚI UN MESAJ

Please enter your comment!
Please enter your name here

Prin adaugarea unui comentariu sunteti de acord cu Termenii si Conditiile site-ului Contributors.ro

Autor

Mihai Badici
Absolvent al Facultății de Electronică si Telecomunicații București ( 1991) Administrator de sistem cu peste zece ani de experiență cu specializari in sisteme de stocare si securitatea datelor. De asemenea a absolvit in 1996 Facultatea de Litere la Universitatea Bucuresti. In prezent, consultant IT independent, colaboreaza pe mai multe proiecte legate de infrastructura de date.

Carte recomandată

 

Sorin Ioniță: Anul 2021 a început sub spectrul acestor incertitudini: va rezista democraţia liberală în Est, cu tot cu incipientul său stat de drept, dacă ea îşi pierde busola în Vest sub asalturi populiste? Cât de atractive sunt exemplele de proastă guvernare din jurul României, în state mici şi mari, membre UE sau doar cu aspiraţii de aderare? O vor apuca partidele româneşti pe căi alternative la proiectul european clasic al „Europei tot mai integrate“? Ce rol joacă în regiune ţările nou-membre, ca România: călăuzim noi pe vecinii noştri nemembri înspre modelul universalist european, ori ne schimbă ei pe noi, trăgându-ne la loc în zona gri a practicilor obscure de care ne-am desprins cu greu în tranziţie, sub tutelajul strict al UE şi NATO? Dar există şi o versiune optimistă a poveştii: nu cumva odată cu anul 2020 s-a încheiat de fapt „Deceniul furiei şi indignării“?

 

 

Carte recomandată

“Să nu apună soarele peste mînia noastră. Un psiholog clinician despre suferința psihică” – Andrada Ilisan

”Berdiaev spune că la Dostoievski singura afacere, cea mai serioasă, cea mai adîncă e omul. Singura afacere de care sînt preocupați toți în Adolescentul e să dezlege taina lui Versilov, misterul personalității sale, a destinului său straniu. Dar la fel e și cu prințul din Idiotul, la fel e și cu Frații Karamazov, la fel e și cu Stavroghin în Demonii. Nu există afaceri de altă natură. Omul este deasupra oricărei afaceri, el este singura afacere. Tot omul e și-n centrul acestei cărți. Și lipsa lui de speranță.” Continuare…

 

 

 

Carte recomandată

”Incursiunile în culisele puterii lui Vladimir Putin îi oferă cititorului panorama plină de nuanţe, paradoxuri şi simulacre a unui regim autocratic unic în felul său. Analizele lui Armand Goşu sînt articulate elegant şi se inspiră din monitorizarea directă a evenimentelor, ceea ce ne permite să traversăm nevătămaţi labirintul slav întins între Sankt-Petersburg şi Vladivostok.” (Teodor Baconschi)

Cumpara cartea, 39.95 RON

Daca doriti un exemplar cu autograf accesati linkul acesta

 

Esential HotNews

Top articole

Va ieși sau nu Polonia din Uniunea Europeană? Ultima decizie a Tribunalul Constituțional din Polonia reanimă această dezbatere

,,Nu există o tiranie mai crudă decât cea care se exercită la umbra legilor și cu culorile dreptății” Montesquieu

Cum tac universitățile din România despre vaccinare

Vaccinarea anti-COVID reduce de ~5 ori riscul de a transmite boala și de ~10 ori riscul de simptome grave sau de deces....

Suntem un stat laic?

Scriu textul de față îndemnat de trei împrejurări. În ordine cronologică inversă, a treia e apariția reportajului Recorder Clanul marelui alb. Sunt...

România, octombrie 2021 : eşec statal şi paralizie politică

Eşecul statal şi paralizia politică sunt semnele sub care stă România zilelor acestea.   Statul român se înfăţişează cetăţenilor acestei ţări  astfel cum...

Ce înseamnă AUKUS?

Pentru a înţelege contextul semnării pactului AUKUS, este necesar a înţelege contextul relaţiilor dintre Australia şi China. În 2020 relaţiile dintre cele...

contributors.ro

Contributors.ro este intr-o permanenta cautare de autori care pot da valoare adaugata dezbaterii publice. Semnaturile noi sunt binevenite cata vreme respecta regulile de baza ale site-ului. Incurajam dezbaterea relaxata, bazata pe forta argumentelor.
Contact: editor[at]contributors.ro

MIHAI MACI – Cel de-al doilea volum din Colectia Contributors.ro

„Atunci când abdică de la menirea ei, școala nu e o simplă instituție inerțială, ci una deformatoare. Și nu deformează doar spatele copiilor, ci, în primul rând, sufletele lor. Elevul care învață că poate obține note mari cu referate de pe internet e adultul de mâine care va plagia fără remușcări, cel care-și copiază temele în pauză va alege întotdeauna scurtătura, iar cel care promovează cu intervenții va ști că la baza reușitei stă nu cunoașterea, ci cunoștințele. Luate indi­vidual, lucrurile acestea pot părea mărunte, însă cumulate, ele dau măsura deformării lumii în care trăim și aruncă o umbră grea asupra viitorului pe care ni-l dorim altfel.” – Mihai Maci Comanda cartea cu autograful autorului. Editie limitata.