Am surprins o discuție la cafea între mai mulți băieți de-ai mei. Unul susținea că AI-ul va spăla pe jos cu programatorii, aruncându-i la gunoi, în timp ce altul dădea exemple de aberații de cod generate de AI-urile orientate spre programare. A apărut și „realistul”, probabil cel mai detașat și hazliu om cu care reacționez zilnic, pentru a pune bomboana pe colivă. „Știți ce m-a rugat Mirela să-i fac?” - i-a întrebat el, referindu-se la o bombă sexy care lucrează în proximitatea noastră, cu care mai interacționăm la cafea și după care li se scurg ochii băieților. „Nu, spune-ne!” - au întins ei gâturile curioși nevoie mare, lăsând în urmă discuția existențială. Omul nostru, luându-și tacticos cafeaua și dozându-și perfect momentul exploziei a rostit sacadat, ca o mitralieră: „M-a rugat să-i adun două coloane în excel într-o coloană, iar într-o altă coloană să împart rezultatul la doi ca să aibă media. Când i-am spus că se poate face totul într-o singură coloană a rămas atât de surprinsă încât cred că acum se gândește la mine ca la cel mai deștept om de pe lumea asta. Dacă n-ați înțeles că Mirela va fi programatorul viitorului, n-ați înțeles nimic!”.
A izbucnit toată lumea în râs însă discuția e mult mai lungă și merită să zăbovim puțin asupra ei. Promit că voi folosi un limbaj cât se poate de facil, astfel încât să poată fi înțeles chiar și de cei care n-au habar de domeniu.
Povestea începe în anii 70, atunci când sir Arthur Sinclair l-a dus pe matematicianul Nigel Searle în SUA cu un scop precis: acela de a reuși imposibilul, adică să construiască un calculator științific cu un chip care nu știa să facă decât patru operații: adunare, scădere, înmulțire, împărțire. Chip-ul TMS0805 avea loc în ROM doar pentru 320 de instrucțiuni, iar inginerii de la Texas Instruments considerau că numărul este mult prea redus pentru a se mai putea dezvolta ceva avansat cu el. Ei bine, Nigel Searle a reușit imposibilul, înghesuind în 40 de instrucțiuni funcțiile trigonometrice(sin, cos, tan) și în 30 de instrucțiuni funcțiile trigonometrice inverse. Ca să înțelegeți, economia de spațiu din memoria calculatorului i-a făcut pe cei care s-au înhămat la această afacere să tipărească pe carcasa produsului final valorile constantelor pe care nu le-au putut stoca în memorie, precum π (3.14159), ln(10) (2.30259), e (2.71828), 180/π (57.2958, folosit pentru conversia gradelor în radiani). Însă produsul final, calculatorul Sinclair Scientific, a fost un succes absolut, fiind mult mai ieftin decât competitorii(HP35) și având astfel o piață mult mai mare. La fel cum a fost și Sinclair Spectrum, pe care cei mai maturi și-l amintesc ca HC-85 la noi.
Nu întâmplător v-am descris povestea. Nigel Searle este unul dintre primii programatori, iar ceea ce trebuie să înțelegeți e că meseria unui astfel de individ era una de la bază, omul având nu doar cunoștințe științifice aprofundate, ci și capacitatea de a învinge limitările tehnicii de calcul de început. Prin 1985 avem citatul care-i este pus în gura lui Bill Gates, cum că „640K (de memorie) ar trebui să fie de ajuns pentru oricine”. Vă imaginați că azi și ceasul smart sau echipamentele electronice cele mai chioare au infinit mai multă memorie?
Nigel Searle este cumva reprezentantul programatorilor de primă generație. Aceștia programau în ceea ce se numește cod mașină, manipulând totul la nivel de bit. Puțini mai au azi habar că o deplasare a biților la stânga echivalează cu înmulțirea cu o putere a lui doi, iar deplasarea spre stânga cu o împărțire la o putere a lui 2. Ca să nu mai vorbesc de faptul că, printre programatorii de azi, doar o minoritate insignifiantă mai are habar că există o programare low level, în cod mașină. Și totuși, programatorii aceia de început erau niște genii. Altfel n-aveai cum. Cine mai știe azi ce-s ălea registre, mod de adresare a memoriei și cine mai are habar acum că un singur octet scris greșit îți bloca întreg sistemul?
Programatorii în limbaj de asamblare ai anilor 70 erau la nivelul 9, înțelegând perfect nivelele 10(setul de instrucțiuni al mașinii) și 11(microarhitectura). Acestora le-au urmat programatorii care lucrau cu compilatoare(fortran, C, pascal etc.). Munca era extrem de complexă, dar față de limbajul de asamblare era pistol cu apă. Apoi vine era programării obiectuale, de complexitate ridicată, dar mai ușoară decât cea anterioară. În această perioadă(1980-1990) explodează interfețele grafice, iar calculatorul intră ușor, ușor în viața de zi cu zi. Web-ul aduce după sine o nouă generație de programatori. Limbajele dinamice, ale Web-ului, fac ravagii: Perl, PHP, Ruby, JavaScript. Apoi vine revoluția framework-urilor cu NET de la Microsoft, Java de la Sun s.a.m.d. Cam aici suntem noi, mai precis la finalizarea acestui pas.
Trebuie să înțelegem că un programator actual(care e practic la nivel 1), spre deosebire de unul din trecut, are de rezolvat o problemă de complexitate orizontală: el integrează diverse componente pre-programate într-un sistem funcțional, fiind mai degrabă un integrator. Programatorul din zilele noastre lucrează la vârful unei tehnologii vaste, pe care nu o înțelege. Între el și hardware sunt o grămadă de straturi de a căruor existență nu are habar. Codul său Python sau JavaScript este interpretat, transformat în bytecode, după care e rulat de o mașină intermediară care transformă instrucțiunile în apeluri de proceduri la nivelul sistemului de operare. Care sistem de operare rulează într-un container, astfel apelurile de funcții ale sistemului de operare se transferă în apeluri către mașina aparent fizică, care însă, fiind un container, este abstractizată de acesta. Containerul, de obicei, stă pe un alt sistem de operare care, de cele mai multe ori, rulează pe o mașină virtuală, care mașină virtuală rulează pe un hypervisor, adică un strat software specializat care gestionează harware-ul fizic al furnizorului. Înțelegeți nivelul de complexitate? Dacă ați citit până aici s-ar putea să știți ceva mai mult despre arhitectura sistemelor decât știu 60%-80% dintre programatorii de azi!
Și uite-așa ajungem rapid la ceea ce urmează, anume generarea automată a codului. Teoretic, generarea automată a codului o transformă pe Mirela în programator. Trebuie doar să-i spună sistemului ce vrea, în limbaj natural, și gata, codul e generat. Este însă suficient? Aici e o problemă clasică de înțelegere, control și optimizare. Să vă dau uin exemplu.
Prin anii 2000, programarea sistemelor distribuite era teribilă. Se introduceau standarde, se făceau tot felul de proiecte ambițioase. Fiecare jucător avea standardul său, care căuta să funcționeze peste tot. Doar că nu prea era putere de calcul și toate mergeau teribil de greu. Atunci i-am implementat unui client o soluție low level care l-a costat cam o zecime din cât îi cerea un jucător mondial. Nu doar că soluția noastră mergea bine, dar nici nu trebuia să-și înlocuiască aproape întreaga infrastructură informatică.Am rămas plăcut surprins să constat că sistemul îi funcționează inclusiv acum, la o performanță extremă. Culmea, am constata-o când a venit la noi și ne-a cerut ceva funcții suplimentare, punându-ne grav la încercare întrucât sculele de acum 20 de ani pe care le-am folosit pentru construirea soluției, pur și simplu nu mai există. Am reușit să refacem din backup-uri infrastructura noastră de atunci pentru a ne reaminti ceea ce făcusem și pentru a-i construi o soluție adoptată nevoilor de-acum. Gândiți-vă totuși că sistemul construit acum 20 de ani funcționează încă și a fost suficient de extensibil pentru a-i suporta toate nebuniile de până acum. Aici e frumusețea programării cât mai spre low level!
Să revenim la povestea cu Mirela: da, ea va fi capabilă să „programeze” cu un asemenea instrument AI. Nu vreau să aduc în discuție complexitatea procesului de la generarea codului și până la „instalarea” sa, sau eventualele bug-uri care sunt inevitabile. Voi presupune că diverse sisteme automate vor face cu succes ceea ce numim deployment. Dar ce se întâmplă când un fragment, de la momentul X, nu va mai funcționa? Sau când va funcționa aberant? În primul rând, va fi cineva capabil să descrie problema, o va descoperi cineva? Apoi, atunci când se vor solicita facilități noi, va avea cineva garanția că algoritmii evoluați vor mai avea habar de specificațiile inițiale, de ideea din spatele unui anumit sistem? Vor putea fi integrate noile facilități în ceea ce deja merge?
E de fapt o provocare teribilă. Dacă te lași pradă scrierii automate de cod te prostești iremediabil deoarece e mai greu să înțelegi codul scris de altcineva decât cel pe care l-ai gândit tu. Și când un generator de cod ți-a produs câteva mii de linii de cod în câteva minute, cu siguranță n-ai chef să stai să înțelegi ceea ce a gândit robotul. Mai ales dacă ești strâns cu ușa. Și așa, treptat, se instalează incompetența. Culmea, aici e o mare provocare.
Probabil într-o fază imediat ulterioară momentului actual va fi jale pentru programatori. Accesibilitatea noilor unelte îi va transforma în victime. Va rezulta însă un teribil haos la nivelul celor care vor adopta în masă noile unelte. Asta pentru că, în procesul de elaborare a unei soluții, o mare parte este dedicată analizei și optimizării. În acest proces, managerul de proiect și programatorii efectuează ajustări, astfel încât totul să se integreze logic. Acum? Într-o primă fază „va merge și-așa”, după care se va instaura haosul, iar clienții vor fi obligați ori să-și rescrie tot ce a scris AI-ul, apelând la un consultant foarte scump, ori să migreze către platformele care le oferă o înaltă standardizare. Însă ce haos va fi și în spatele acelor platforme, ca efect al „fenomenului Mirela”, e greu de imaginat!
Dar întrebarea persistă: va mai fi un viitor al meseriei de programator? Momentan suntem în plin uragan. Îl vedem formându-se și vom vedea ce va ieși după. Din ceea ce am văzut până acum, tendința e clară, dar asta cred eu că înseamnă oportunități extraordinare pentru cei care au habar cu ce se mănâncă domeniul. Povestea scrierii software-ului nu este una legată de scrisul efectiv al codului, ci de partea creativă, de concepție, de structurare a datelor și de gândirea sistemului pentru extensii viitoare. Poate gândi mașina așa ceva? Poate că da, poate că nu, dar părerea mea e că vom avea o explozie a bubelor rezultate din diferențele de „gândire” dintre om și mașină. Nu uitați un lucru: Mirela avea nevoie de două coloane pentru o banală medie aritmetică și nu prea se descurca să definească o formulă, astfel încât a avut nevoie de omul nostru. Iar Mirela, în viitorul apropiat va scrie cod! Ce-ar mai fi de spus? Că Mirela e deosebit de frumoasă. La fel cred că va fi și codul generat de ea!
Dupa aparitia masinilor nr cailor a tot scazut. Acum mai sunt cateva marriage in afara Sistemului si cativa cai de rasa.
RăspundețiȘtergereCam asa va fi si cu programatorii doar ca procesul se va derula mult mai rapid.
Da ,asa este cu siguranta o sa fie asa ,aici e exact ca la Noe când el construia corabia și ceilalți petreceau și il credea nebun .Asa si acum sunt atatea profeții pt zilele din urmă și oamenii cred că o sa mai fie programatori ! O sa fie doar dictatura digitală sau al 3 lea razboi mondial.!
ȘtergereYeah,right ! Vezi să nu !
ȘtergereSir Clive Sinclair.
ȘtergereFost preşedinte Mensa UK.
Organizaţie sub egida căreia au fost organizate activităţi (anii '90) pregătitoare pentru misiunile actuale de diminuare a populaţiei globale.
Asta cu MENSA e maximă. Ce e MENSA? O organizație a oamenilor care au un IQ-ul mai mare decât 98% din oameni. Hai să nu aberăm!
ȘtergereOff topic:
RăspundețiȘtergereGenial
I-au tăiat microfon când a spus că nu sunteți Statele Unite ale Europei sa ne puneți guvernator 🤣🤣🤣🤣💪💪💪💪💪💪💪
https://x.com/LuisVicentiu/status/1976171306535223547
În casa noastră, lucrăm cu două specializări complementare: un tester pe Automatizare și unul pe Testare Manuală & Exploratorie. Observ cum domeniul ăsta se transformă dintr-un colț lăturalnic al IT-ului într-un punct strategic în era AI.
RăspundețiȘtergereSă fie clar, a fi tester nu înseamnă neapărat a fi programator. E diferența dintre fundașul care asigură apărarea și atacantul care înscrie. Fundașul trebuie să înțeleagă profund jocul, să anticipeze mișcările și să fie ultima barieră de siguranță. La fel și testerul.
În trecut,un programator căuta fragmente de cod pe Stack Overflow și le îmbină. Astăzi, instrumentele de AI asistent de cod (Copilot, CodeWhisperer) generează blocuri întregi de cod. Rolul developerului s-a mutat de la scriitor la reviewer și arhitect pentru că ajustează, corectează și integrează output-ul AI.
Și noi folosim AI masiv, pentru a scrie scripturi de testare, a genera date de test, sau a simula scenarii complexe. Dar esența jobului nu este doar să execuți testele, ci să înțelegi logica din spate.
Trebuie să înțelegem gândirea AI-ului pentru a identifica tipare de erori noi, inconsecvențe logice sau presupuneri false pe care un model le-ar putea face.
Un AI poate scrie cod care funcționează, dar face el exact ceea ce și dorește utilizatorul?
Noi testăm intenția, nu doar funcționalitatea.
Rolul se îndreaptă spre a verifica și valida sistemele inteligente în sine. Este o muncă de investigație de nivel înalt.
Părerea mea este că,pe măsură ce interacțiunea umană cu calculatoarele se va centra în jurul unor asistenți AI operaționali (ce vor înlocui progresiv sistemele de operare tradiționale), nevoia de a programa în sens clasic va scădea.
Însă nevoia de a verifica, valida și asigura încrederea în sistemele acelea va deveni absolut critică.
Cine va testa ASISTENTUL AI care conduce întreg ecosistemul digital?
Alți specialiști umani, cu gândirea critică, creativitatea și perspectiva noastră.
Așadar, nu vom dispărea. Ne vom redefini. Munca de bază de execuție va fi automatizată, dar rolul strategic de a pune la îndoială, de a explora și de a fi gardianul calității și al siguranței în sistemele autonome va rămâne una dintre ultimele fortărețe ale inteligenței umane în tehnologie. Și deși e doar o părere pe care nu mi-o împărtășesc toți eu mi-o mențin, adică momentan așa cred, că toți programatori vor deveni Testeri.
Odată cu apariția demonului AI (alien intelligence), cea mai importantă abilitate a devenit aceea de expert în comunicare. Specificațiile și calitatea lor reprezintă intrări pentru AI așa că, cel ce va comunica excelent cu AI-ul va fi angajabil și dezirabil. Din păcate programatorii sunt foarte slabi în comunicare, sau mai degrabă sunt faimoși pentru incapacitatea de a comunica, așa că viitorul lor este unul sumbru.
RăspundețiȘtergereUn alt aspect este că în curând i se va cere unui programator să facă ce făceau în trecut 10 programatori și culmea, pe un salariu mai mic - raportat la costul vieții - ca cel anterior. Ca atare, în domeniu vor rămâne dor pasionații. De altfel, deja programatorii veniți din alte domenii au început să plece.
Situația este dezastruoasă pentru proaspeții absolvenți din 2 motive:
- sarcinile lor, unele de o dificultate mai mică pot fi cu ușurință automatizate
- le lipsește experiența care ar putea fi utilizată pentru dirijarea AI-ului în scrierea unui cod mai performant
Pe scurt, în IT viitorul este foarte sumbru: neavând programatori juniori, nu vom mai avea nici programatori seniori și pe de altă parte cei ce vor mai rămâne în domeniu, dacă se vor baza doar pe AI pentru scrierea codului, în curând vor ajunge la fel de inteligenți ca și frumoasa voastră ce poartă numele a 3 note muzicale.
AI-ul nu scrie cod ci copiază bucăți de cod deja scris și le combină cu oarecare succes pentru a genera un produs software.
RăspundețiȘtergereCum 99% din cod reinventează roata, AI-ul funcționează în 99% din cazuri.
Pentru restul va fi în continuare nevoie de programatori umani.
Multumim din suflet! ExpoZeul Dvs este profund edificator, chiar si pentru Initiati ... inca incomplet "formatati"!
RăspundețiȘtergereE mai complicat ... Primii șoferi erau niște vizitii mai slăbuți. Totuși, puțini erau la început cei care își conduceau singuri mașina, la fel cum nici trăsura nu și-o mâna singur. După o vreme nimeni nu mai are nevoie să-și angajeze șofer pentru că mașina se conduce tot mai autonom.
RăspundețiȘtergereCam la fel cu programatorii. Un bun programator trebuie să poată concepe algoritmi eficienți. Apoi el (sau alții) vor transpune algoritmul în cod. Așa cum spunea cineva deja, 99% din algoritmi au fost deja concepuți și programați, așa că IA poate îndeplini 99% din sarcini (ok, e puțin simplificat).
Totuși, deocamdată IA nu prea pricepe cu adevărat, ci deduce cel mai probabil răspuns; de acolo provin și halucinațiile.
Atunci când IA va face pasul următor (peste trei zile, sau peste 30 de ani) și va înțelege „ce se dă și ce se cere” va fi capabilă să genereze algoritmi inediți, pe care îi va optimiza singură. Atunci, „Mirela” nici nu va mai primi vreun răspuns din partea IA cum că ajunge o singură coloană în Excel pentru a calcula media, ci va fi întrebată pentru ce îi trebuie, după care va constata că dacă ai o IA la dispoziție, nu mai ai nevoie de Excel și de coloanele lui.
Nu va face niciodată niciun AI ceva inedit. Îi lipsește noțiunea de sens în mod intrinsec. Nu-și pune problema, pur și simplu :) El are un corpus din care învață maximum posibil. Nu-și poate adăuga în corpus ceva inedit din care să învețe.
Ștergere20:51 ai foarte mare dreptate
Ștergeream avut ceva conversații cu deepseek pe care îl prefer și chiar a scris că modele de până astăzi nu prea știu ce fac, și până să apară AGI mai e cale lungă
Discutam zilele trecute si eu cu un coleg fiind ambii in domeniu IT. Concluzia noastra este ca AI-ul e foarte bun sa iti construiasca "caramizi". Dar e complet incapabil sa iti faca desing-ul si arhitectura unei "case"! ( si aici nu ma refer la aspectul ca AI-ul nu e capabil sa deseneze pe ecran o casa ci ma refer la constructia de aplicatii, prin "casa " intelegand o aplicatie de sine statatoare care serveste unui anumit scop.) Ce e si mai interesant este faptul ca o aplicatie o data construita ea nu se comporta ca si o "casa"! Ea evolueaza in timp, i se adauga noi functionalitati, i se modifica functionalitati existente etc...etc.. - e cumva ca si cum ai avea o gradina - poti sa o sadesti si sa o rearanjezi/restilizezi in 1.000 de feluri... doar ca odata ce ai definit o structura a aplicatiei e destul de greu sa o modifici. (genul ti-ai montat un trotuar cu pavaj si ti-ai tras niste tevi de apa prin gradina - e greu sa le mai scimbi). Mai mult daca utilizezi in anumit framework pt a integra noi compomente in acel framework trebuie sa respecti "regulile framwork-ului" daca nu o faci ori rezultatul este disfunctional ori pur si simplu sistemul se blocheaza. Sunt tare tare curios cum un AI ar putea sa se descurce intr-un astfel de sistem. Si la final cireasa de pe tort. AI-ul azi genereaza rezultate corecte sau aproximativ corecte in maxim 80% din incercari. Cum procedezi in situatiile in care ai nevoie de precizie 100% sau 99,99%? Ce te faci cu o aplicatie scrisa de AI pentru un sistem de Plati si care in 1% din cazuri da rateu si nu deconteaza banii in contul destinatarului? Poate fi o astfel de aplicatie utilizata? Ce faci in domeniile in care precizia e esentiala - iar repetabilitatea trebuie sa fie 100% conform cu o anumita schema ? Este azi sau o sa fie AI-ul cabil sa indeplineasca o astfel de sarcina ? Cum va putea AI -ul sa selecteze dintre 2 solutii tehnice care genereaza acelasi rezultat pe 2 cai diferite si sa o aleaga pe ce optima pt client? Nu stiu! Ramane de vazut !! Multi programatori din ziua de azi ( in special daca sunt nevoiti sa modifice aplicatii mai vechi) consuma foarte foarte mult timp nu pt a intelege ce au facut programatorii ateriori ci pentru a intelege DE CE au facut ASA ? Circula o gluma printre programatori prin care 2 programatori se contarziceau intre ei argumentant fiecare prin faptul ca solutia proprie este "logica". Vine un al treilea "sa arbitreze meciul". Asculta cu atentie exposeurile celor 2 programatori si concluzioneaza. "Baieti ambele solutii sunt logice - doar ca Logica pimului programator nu se potriveste cu logica celui de al doilea".
RăspundețiȘtergereTot asa cand am intrat eu in breasla pe la inceputul anilor 2000 Microsoft avea sculele alea vizuale WYSIWYG, hai intrebati AI ul daca sunteti curiosi ce inseamna, trageai acolo pe un canvas niste lucruri si gata iesea aplicatia, am vazut ieri pe yT un filmulet cu ceva Agentic Kit.. de la OPEN Ai, am avut un flash instant ca am mai vazut abordarea asta. De WYSIWYG s-a ales prafu ca asta e rgulile se schimba mereu, omul e sucit are preferinte sunt sanse mari sa fie la fel si acum.
RăspundețiȘtergereSi este o parte dureroasa tare, daca citeai codul generat puteai sa intelegi cum s-a gandit, uneori mai aveai access la generator acum e totul cutie neagra bun venit in lumea aplicatiilor write only:) cine s-a lovit de Perl stie poanta.
uipath
Ștergere"De WYSIWYG s-a ales prafu"
ȘtergerePentru ca generau o mizerie de cod inclusiv pentru cele mai banale taskuri, cum ar fi niste banale pagini HTML. Mai mult timp pierdeai sa le descâlcești, dacat daca le faceai de la inceput de la zero. Si nu este numai cazul Microsoft.
"am vazut ieri pe yT un filmulet cu ceva Agentic Kit.. de la OPEN Ai"
Astia toti vor sa ajungem sa cumparam token-uri AI, adica sa le platim pentru toate mizeriile lor "inteligente" abonamente lunare pentru folosirea de "resurse hardware" ca la hostingul si serviciile cloud. Cei mai prosti vor pune botul si portofelul la bataie, asa cum au facut tot timpul.
"acum e totul cutie neagra bun venit in lumea aplicatiilor write only:) cine s-a lovit de Perl stie poanta."
Tocmai de aia Perl a devenit extinct si mai este folosit doar de cativa bosorogi ciudati, fiind inlocuit in totalitate de Ruby, Python, Go, etc de aproape doua decenii.
Fact: AI nu poate alinia capacele de canal cu strada, am verificat :))
RăspundețiȘtergereNimeni nu poate in Ro
Ștergere1. In primul rand, indiferent cat de mult se bucura idiotii si incompetentii care din diverse motive ii urasc cu pasiunepe ITsti si cred ca acestia vor ramane someri si se vor apuca de agricultura de subzistenta sau de mai stiu eu ce, regret sa-i dezamagasc, dar la nivel global cererea de ITsti este tot mai mare si salariile sunt pe masura. In afara de acest lucru, tinand cont de faptul ca insusi scopul vietii este supravietuirea si reproductia, sa suspectezi una dintre cele mai inteligente categorii profesionale ca si-ar pregati singuri extinctia profesionala, denota un individ care are efectiv capul sec, ca daca ar avea macar capul plin cu rahat, prin tot maldarul ala de rahat, tot s-ar gasi macar un limbric care sa gandeasca pentru el.
RăspundețiȘtergereIn al doilea rand, orice ITst sau programator cu experienta si cu capul pe umeri cunoaste faptul ca AI-ul nu va inlocui nimic, nici macar pe incompetentii aia care inca freaca la infinit React-ul sau Wordpress-ul si au pretentia ca sunt ITsti. Companiile de imbecili care vor adopta si implementa "solutiile AI" la greu, in cativa ani se vor duce financiar si economic la fund, iar ITstii buni care vor fi disponibilizati acum pentru a fi inlocuiti de AI, nu numai ca nu vor muri de foame ramanand someri, dar in cativa ani ii vor astepta la cotitura ca sa-i arda la gaoz si cand ii vor prinde, le-o vor trage "de lumanari". Garantat!
De bagat la cap:
https://www.derapaje.ro/p/nu-moare-it-ul-hai-sa-ne-calmam
Mult succes sa inlocuiesti un ITst cu asa ceva:
https://youtu.be/EtaSCG_GY-U
"Nigel Searle este unul dintre primii programatori"
Eu cred ca tu inca nu ai auzit de "Note G" si Ada Lovelace b1815 - d1852.
Pana la Nigel Searle, calcualtoarele Sinclair si anii '70...
https://en.wikipedia.org/wiki/Note_G
https://historic-times.com/ada-lovelace-first-computer-programmer/
https://en.wikipedia.org/wiki/Ada_Lovelace
2. "Nigel Searle este unul dintre primii programatori, iar ceea ce trebuie să înțelegeți e că meseria unui astfel de individ era una de la bază, omul având nu doar cunoștințe științifice aprofundate, ci și capacitatea de a învinge limitările tehnicii de calcul de început. Prin 1985 avem citatul care-i este pus în gura lui Bill Gates, cum că „640K (de memorie) ar trebui să fie de ajuns pentru oricine”."
RăspundețiȘtergere1. Este o DIFERENTA MAJORA intre un "computer scientist" si un "computer programator".
Nigel Searle & Bill Gates = Computer Scientist NU Computer Programmer!
La modul general vorbind:
"If you are most interested in the applied, hands-on work found under the computer programming umbrella the following roles are a close fit:
- Software developer
- Web developer
- Quality assurance (QA) analyst
- Mobile application developer
For those more interest in the larger scale theoretical planning and design of computer science, these roles are a close fit:
- Software engineer
- Hardware engineer
- Systems analyst
- Software architect"
https://www.rasmussen.edu/degrees/technology/blog/computer-programming-vs-computer-science/
2. Pentru asemenea job-uri si cu asemenea resurse limitate este nevoie ca un "computer scientist" sa foloseasca frecvent limbaje First generation (1GL) & Second generation (2GL) si mai nou foarte rar doar anumite limbaje Third Generation (3GL) asa cum este C.
https://informatecdigital.com/en/classification-of-programming-languages/
https://compscicentral.com/programming-language-levels/
Bill Gates + Assembly Language = Altair BASIC pentru Altair 8800
https://youtu.be/la_wnT2AOu8
https://en.wikipedia.org/wiki/Assembly_language
https://en.wikipedia.org/wiki/Altair_BASIC
https://en.wikipedia.org/wiki/Altair_8800
https://www.gatesnotes.com/microsoft-original-source-code
3. "Ca să nu mai vorbesc de faptul că, printre programatorii de azi, doar o minoritate insignifiantă mai are habar că există o programare low level, în cod mașină. Și totuși, programatorii aceia de început erau niște genii. Altfel n-aveai cum. Cine mai știe azi ce-s ălea registre, mod de adresare a memoriei și cine mai are habar acum că un singur octet scris greșit îți bloca întreg sistemul?"
RăspundețiȘtergereNu mai este nevoie de asa ceva, ce instant presupune o munca titanica inclusiv pentru cele mai banale lucruri. Asta este motivul pantru care din anii '70 s-a inceput trecerea masiva de la scrierea de Cod Binar si Assembly la coduri compilate scrise in C & C++, Objective C, Delphi, etc. iar un ultimii 15-20 de ani se trece masiv ce la coduri C&C++ la "limbaje interpretate" ce nu necesita compilare pentru a fi rulate ca Java, C#, Ruby, Python, JavaScript, Perl, PHP, Scala, Kotlin, Erlang, etc si la limbaje complilate moderne cum sunt Google Go, Apple Swift, Julia, Rust, etc. Si unele si altele, spre diferenta de C/C++, pe langa faptul ca este mult mai rapid de finalizat diverse proiecte in ele, sunt considerate "limbaje safe" ca nu au pointeri, au garbage collectorul integrat, nu necesita alocari manuale si explicite de memorie, etc. si se pot produce programe la fel de performante si de optimizate ca in C/C++, dar cu un cost mai redus.
https://www.analyticsinsight.net/programming/the-decline-of-c-programming-whats-replacing-it
https://avatao.com/go-vs-c-why-consider-go-instead-of-c/
https://www.developers.dev/tech-talk/rust-vs-c-which-language-will-dominate-by-2030.html
https://dev.to/dev_tips/2025-will-be-the-year-of-rust-why-big-tech-is-ditching-c-178p
https://www.itpro.com/software/development/fast-modern-safe-and-a-joy-to-write-why-apple-is-banging-the-drum-on-swift-as-the-successor-to-c
https://hackernoon.com/julia-a-transformative-language-for-modern-computing-ml-data-and-more
"Trebuie să înțelegem că un programator actual(care e practic la nivel 1), spre deosebire de unul din trecut, are de rezolvat o problemă de complexitate orizontală: el integrează diverse componente pre-programate într-un sistem funcțional, fiind mai degrabă un integrator. Programatorul din zilele noastre lucrează la vârful unei tehnologii vaste, pe care nu o înțelege. Între el și hardware sunt o grămadă de straturi de a căruor existență nu are habar."
NU este treaba programatorului sa proiecteze si sa construiasca hardware-ul!
Treaba lui este sa scrie diverse instructiuni si programe pentru diverse platforme deja construite de altii si nimic mai mult. Dar si aici, intre programatori, se face o diferentiere majora din care tu reusesti sa faci o mare varza amestecand C si Fortran cu Python si JavaScript si tragand concluzia profund eronata ca un programator de Python este mai prost si mai incompetent decat un programator de C, care la randul lui este mai prost si mai incompetent decat un programator de Assembly, care la randul lui este prost si mai incompetent decat un programator ce scrie cod binar, desi absolut TOTI PROGRAMEAZA!
Este o opinie la fel de inepta si lipsita de sens ca si cum ai apune ca un medic dermatolog este mai prost si mai incompetent decat un medic oflalmolog, care la randul lui este mai prost si mai incompetent dact un medic ginecolog, care la randul lui este mai prost si mai incompetent decat un medic chirurg, desi absolut toti trateaza si TOTI OPEREAZA (chiar daca nu tot timpul)!
N-ai înțeles nimic, dar ai impresia că știi tot! Daca te apuci să îmbini două-3 componente in React si sa apelezi un api mizerabil nu înseamnă ca ești programator. Ideea e simplă: un programator de nivel 9,8,7 poate trece fără probleme la nivelul 1(cu toate că s-ar putea să aibă un blocaj văzând cât de banală e programarea la nivelul ăla), dar un programator de nivel 1, 2, 3 nu poate depăși bariera asta.
ȘtergereCred ca ce vrea dl Diaconu sa sublinieze este faptul ca pt limbajele sau frameworkurile de tip WEB nivelul de abstractizare si complexitate e mult mult mai redus decat nivelul de abstractizare si complexitate necesar in libajele de nivel jos ( gen C/C++ sau Asambler) Intradevar e mai greu sa scrii aplicatii in Asambler dar in multe situatii nici nu e chiar nevoie. E mult mai multa nevoie de alte aplicatii unde capacitatea creativa e orientata doar spre design-ul grafic spre exemplu nu spre desing-ul tehnic-ingineresc (sau optimizare). De aici si clasificarea... Da un proramator obisnuit cu OOP ( din C++) i se va parea banal codul de HTML si JavaScript specific paginilor WEB. ( desi si aici sa introdus o anumita complexitate dar de o alta natura.... generata de faptul ca JavaScript a devenit dintr-o jucarie mica pt pagini Web un fel de "Silver Bulet" al programarii WEB!
ȘtergereDan are dreptate si tu nu ai - cum sa zic ? - "curajul" sa admiti realitatea !! Programatorii de azi sunt mai slabi decat cei din trecut si te invit sa te uiti la calitatea aplicatiilor de azi (instabile, consumatoare uriase de resurse (tocmai din cauza programarii proaste !), cu multe functii absolut inutile, cu o complexitate fara rost, putin fiabile (functioneaza numai cu nu's ce upgrade-uri, sau daca se face un upgrade automat ele nu mai functioneaza, etc) si la aplicatiile (calitatea lor !) din trecut !!! Compara stabilitatea unui Windows 98SE sau unui Windows XPsp3 cu porcariile windows de azi ! Din pacate inclusiv Linux-ul (prin diversele lui versiuni) a luat-o pe calea Windows... Compara stabilitatea aplicatiilor de acum 25 de ani din domeniul bazelor de date cu ceea ce se intampla azi ... infinitele erori soft de azi, nedocumentate de nimeni, pentru ca nimeni nu mai stie (cum zice Dan !) ce este "inauntru" ! Un driver de imprimanta avea acum 25 de ani (nu ma refer mai inainte, dar as putea !!) maxim cativa zeci de mega, cat are azi un driver de imprimanta, stii ?!!? Au giga de date ! Si atunci si azi o imprimanta face acelasi lucru... cu diferenta ca azi cand vrei sa dai un print ti se deschid un ecran "de speriat" ! Cu zeci si zeci de optiuni absolut inutile de la documente cu agrafa nu stiu unde pana la tot felul de forme de tiparire predefinite care sunt perfect inutile pentru 99,99 % din utilizatori ! De upgradeurile zilnice, ce parere ai ?!?! Te trezesti dimineata ca o aplicatie in cloud, ieri mergea si azi nu mai merge ca si-a facut Chrome-ul un upgrade... si te trezesti asa pentru aplicatia in cloud e facut prost, iar programatorii de azi "stau" numai in aplicatiile "la zi", de parca cele de acum cateva luni nu mai sunt bune ! O aplicatie scrisa bine merge ani de zile indiferent de sistemul de operare, o aplicatie de azi merge numai de la un anumit Windows, numai o anumita Java sau Oracle, un server Windows merge numai cu un anumit Outlook, sau o aplicatie care merge numai de la o versiune browser si tot asa... si tot asa... si totul pentru ca zi sunt scrise prost ! Dan are dreptate, sunt aplicatii scrise foarte bine acum 25 de ani care merg si azi extrem de bine, stabil si la viteze de ametesti cand le rulezi ... Ufff, as putea sa-ti scriu zeci de pagini cu erorile aplicatiilor de azi aparute in mod clar din cauza calitatii mizerabile a soft-urilor. La sfarsit o intrebare: avand in vedere scaderea calitatii produselor in toate domeniile, avand in vedere deprofesionalizarea vizibila, la fel, in toate domeniile de ce crezi tu ca in domeniul programarii nu e aceeasi situatie ca peste tot ?!?!
ȘtergereIn urma cu 20 de ani programatorul avea control atat asupra aplicatiei in sine cat si asupra sistemului de operare ( in mare masura). Azi cu sisteme cloud cu o suita intreaga de straturi suprapuse de abstractizare nu mai ai control. Prin urmare tu ca programator scrii o functie bazandu-te ca layer-ul cu care lucrezi e ok. Daca problema porneste de la layer-ul 2 sau 3 din spate azi ca programator nu poti sa faci nimic. Mai mult azi folosesti cateva zeci sau sute de librarii scrise de alti programatori - care si alea pot avea bug-uri si creea probleme. Complexitatea a crescut exponential la fel si dependentele. In plus modul in care se lucreaza sa modificat fundamental. In urma cu 20 de ani programatorul facea analiza, gandea produsul stia toate datalile de functionare atat din perspectiva produsului (ce trebui sa faca, cum sa faca si care sunt limitele) + incerca sa structureze f.f. bine aplicatia a.i. sa fie simpla si eficienta si scria cam tot codul (uneori nici nu folosea nici o librarie externa sau folosea f.f. putine). Azi produsul e gandit de "agenti de marketing" si nu de programatori prin urmare acestia vin cu o suita de "chestii" (functii) pe care ei le considera geniale - dar care in 99% din cazuri sunt simple "fass-uri" iar programatorii sunt nevoiti sa le implementeze ne avand nici o putere de decizie. Prin urmare sa ajuns unde suntem azi !! Programatorul azi a devenit un simplu muncitor la banda. Exact cum un croitor in urma cu 50 de ani stia sa faca orice model de haina - dupa care prin industrializare un angajat la banda de croitorie coase doar o singura cusatura la un pantalon. El nu stie sa croiasca haina. El primeste o matrita si face o cusatura. Cam asa sa ajuns si azi. Nu inseamna ca omul in sine a mai prost - Inseamna ca sistemul de lucru sa modificat. O sa dispara programatorii - nu o sa dispara - Nu stiu ! Nici nu e important. Cine o sa vrea sa munceasca ceva sigur o sa isi gaseasca ceva de facut.... care sa i se potriveasca.... asa ca relaxativa....
ȘtergereNu e o grija asta cu programatorii, uneltele construiesc deja unelte, din ce in ce mai complexe. Idea descrisa e buna si interesanta evident dar putin cam in extremis.
RăspundețiȘtergere