un blog de Radu Dumitru

►► canalele mele de YouTube: youtube.com/RaduDumitru (personal) și youtube.com/NwraduBlog (tech) ◄◄

Ați studiat vreodată Pascal? Ați început de acolo?

15 Jan 2024  ·

GÂNDURI, TEHNOLOGIE  ·

43 comentarii

program Wirth;
uses crt;
begin

Niklaus Wirth, un elvețian care a creat printre altele și limbajul de programare Pascal, a murit recent la aproape 90 de ani. Pascal a schimbat lumea. A contribuit semnificativ la forma ei de astăzi.

Oameni precum Wirth au dezvoltat IT-ului (sau computer science, cum i se spune mai bine) în acei ani în care doar câțiva experți în puteau întrevedea viitorul și în care trebuia modelat în unelte practice. Mai multe generații de copii și elevi și studenți au pornit cu Pascal și au creat și construit apoi ceva mai mare, mai complex, mai avansat.

Este greu de numărat cu exactitate, dar probabil că sunt milioane, chiar zeci de milioane de oameni pentru care prima interacțiune cu programarea a fost în Pascal. Le-a plăcut programarea, i-a atras, le-a scos la iveală talentul pentru așa ceva și apoi au trecut (sau inventat) la C++ sau alte limbaje sau alte medii de dezvoltare. Au făcut o carieră din asta, poate au creat companii proprii, au contribuit astfel la tot ce înseamnă electronice astăzi și probabil unii dintre ei au ajuns miliardari.

Sunt sigur că mulți dintre voi au pornit similar cu Pascal și astăzi probabil câștigă bine ca dezvoltatori.

Îmi pare mereu rău că lumea în general nu știe de oameni precum Niklaus Wirth sau Tim Berners-Lee, care a inventat World Wide Web-ul și browserul. M-am mai uitat de Revelion pe câteva canale TV și m-am speriat văzând cine sunt eroii societății de astăzi, oamenii urmăriți de suficient de mulți români încât să devină vedetele care atrag audiența și succesul. Și este la fel în orice țară.

Uitați-vă și la Alan Turing. Una dintre cele mai uimitoare minți ale ultimului secol, dar dacă nu era filmul The Imitation Game cu Benedict Cumberbatch, nu cred că ar fi aflat prea mulți despre el. Sau citiți despre John von Neumann și câte a făcut în viață, un pionier în matematică, fizică, economie, computere, un geniu probabil mai mare decât Einstein. Și a obținut multe premii și laude în viață, dar de câte ori l-ați auzit pomenit astăzi?

Nu o zic ca și cum eu auzisem vreodată de Wirth sau m-am întrebat vreodată cine a inventat Pascal, C și alte limbaje. Mă bucur că am avut acum ocazia să cercetez asta și să aflu. Istoria computerelor ar trebui să fie o materie în școală sau facultate, similar cu modul în care am învățat în școală istoria protocoalelor de comunicații și cum au evoluat acestea spre Ethernet-ul pe care-l luăm azi ca fiind ceva uzual sau spre GSM.

Wirth s-a născut în Elveția, a studiat acolo și apoi la Berkeley și Stanford în SUA, apoi s-a întors la Institutul Federal de Tehnologie din Zurich. A creat limbajele Euler și PL360, care era folosit pe cele mai performante computere de atunci, System/360 de la IBM.

A lucrat apoi la dezvoltarea ALGOL, dar la un moment dat a demisionat din grupul de experți care făcea asta și a dezvoltat Pascal, un limbaj mai simplu și mai rapid de compilat, foarte eficient cu resursele necesare. Pascal a prins excelent în lume pentru că tot atunci începeau să apară computerele personale, care aveau resurse hardware foarte limitate (gen, sub 1 MB de memorie RAM), și deci Pascal putea rula bine pe ele.

În 1971, Pascal a fost introdus în programa de studiu la universitate. Wirth a câștigat și premiul Turing în 1984 pentru activitatea sa, cea mai înaltă distincție din domeniu. S-a retras în 1999. A murit pe 1 ianuarie 2024, la 89 de ani.

În 1983, compania Borland lansa programul Turbo Pascal, care integra la un loc mediul de dezvoltare și compilatorul într-o vreme când acestea erau unelte diferite (treabă complicată într-o vreme în care stocarea se făcea pe dischete). De la Turbo Pascal încolo nu cred că trebuie să mai zic ceva.

A fost primul limbaj de programare pe care l-am folosit și eu pe cont propriu acasă. Mi l-a dat un prieten care era de atunci pasionat de programare, avusese HC90 cu Basic, acum chiar este programator pe undeva.

Eu nu am avut vreun talent pentru asta, nu m-a atras ca să-mi dea o direcție în viață, dar din simplele mele experimente cu Pascal și ce algoritmi încercam să fac sau ce mai găseam prin cărți de programare am învățat cum arată un cod, o funcție, ce este o variabilă, importanța sintaxei și a punctuației, gândirea logică necesară unui algoritm funcțional etc.

Oficial am studiat un semestru sau două de C++ în facultate, dar practic s-a făcut la același nivel cu ce știam deja despre Turbo Pascal, dar și cu pointeri în ecuație. O să opresc aici trip-ul down the memory lane.

end.

    43 comentarii

  1. Dap, fix cu pascal am inceput in liceu sa descopar programarea.

      (Citează)

  2. Da, am făcut în facultate programul “Helo, world!” pe computere cu CP/M, care încărcau sistemul de operare de pe dischete de 5 inch. De-lea cu litere verzi pe ecran negru. Era în anul 1993, copii, nu în preistorie.
    În 1995 se aduseseră deja computere cu DOS și Windows. Tot pe atunci, “a adus Petre Roman” și internetul în Politehnică.

    N-am avut mare talent. Prin 2001, lucrând la o întreprindere din București, am făcut un program în Pascal (sau Delphi, nepotul lui) care s-a folosit pe linia de producție.
    Citea niște coduri de bare de pe plăcile cu circuite, asambla un sir de caractere și scotea la capătul liniei o etichetă cu mai multe informații, un cod de bare și o serie.
    Ăsta a fost maximul carierei mele în programare.

      (Citează)

  3. cred ca am folosit o singura data pascal in cariera. A trebuit sa fac un mic installer (undeva acu aproape 20 de ani) si programul care genera installerul avea un fel de scripting in delphi (care e ff aproape de pascal).
    Pun anual insa intrebarea studentilor din anul 1 cati mai fac pascal la liceu si cred ca anul asta (2023) a fost prima oara cand n-a mai ridicat nimeni mana.

      (Citează)

  4. Turbo Pascal in clasa a 4-a, anul 2000, asta cand nu dadeam alt tab sa ma joc jazz the jackrabbit 2 ca era mai interesant, sau sa dau sms-uri gratis de pe connex (nu mai stiu site-ul). Ah, ce amintiri.

      (Citează)

  5. Si eu am inceput tot cu Pascal la liceu, dar n-am amintiri asa placute despre el ca voi. Nu-mi placeau limbajele ce trebuiau compilate si cele unde toata interactiunea e in linia de comanda. Programarea web invatata pe cont propriu a fost cea care mi-a placut cu adevarat si mi-a adus o paine pe masa in ultimii 20 de ani.

    Visual Basic insa era un pic mai ok pe vremea cand invatam eu Pascal si pe care am facut cateva programele.

      (Citează)

  6. Da, în liceu clasa a IX-a și a X-a. Apoi C și Fox Pro.
    În Fox am făcut și atestatul :).
    Pascal era foarte ușor de învățat. Ca să fac o comparație, cam cum e Python acum.

      (Citează)

  7. Pascalul era mult mai sigur din punct de vedere al programarii. Avea directive de compilare care preveneau problemele de tip buffer overflow din C. Sintaxa era mult mai stricta si asta permitea un compilator single-pass – era pe 286 urile pe care lucram eu in 91 de aproape 3 ori mai rapid. Sistemul de obiecte era rudimentar dar functiona – TurboVision mi-a pus painea pe masa – interfete grafice in mod text care se puteau vinde ca EXE-uri – clientii nu trebuiau sa pirateze FoxPro.

      (Citează)

  8. Am inceput cu (Turbo) Pascal prin anii 1991-92, pe un 286 (eu fiind in liceu atunci). La scoala nu faceam informatica, asa ca a fost doar un hobby. Posibil sa mai am cartea “Turbo Pascal 6” pe undeva. La facultate nici atat (drept) dar mai incolo la master in calculatoare (stiu, ciudat) am reluat Turbo Pascal in primul an.
    Firma la care lucrez acum a inceput cu progame scrise in Delphi (tot un Pascal si ala) in 1998, si mai e inca folosit pe ici-colo. Vad ca inca exista si e dezvoltat activ Delphi, ajuns la versiunea 12.

      (Citează)

  9. Am început cu pseudocod care era asemănător, apoi am trecut la C.

      (Citează)

  10. Pascal era standardul cand am inceput eu sa invat, sfarsit de ani 90. Succesorul lui – Delphi – inca mai are release-uri noi, desi foarta putina lume il foloseste.

      (Citează)

  11. “Uitați-vă și la Alan Turing. Una dintre cele mai uimitoare minți ale ultimului secol”
    esti sigur ca secolul cu turing a fost ultimul (absolut)?
    sau ultimul dintr-un anume sir (altul decat cel subinteles)?
    sau a fost eroare de gpt si era de fapt “last century” in sensul de secolul trecut?

    on topic:
    daca limbajul basic din hc-uri se pune.. atunci pascal n-a fost primul.

      (Citează)

    • Dacă zicea “ultima sută de ani” erai fericit?

        (Citează)

    • alunelu: “ultima sută de ani”

      crezi ca e ultima?
      se termina timpul?
      istoria nu mai “prinde” INCA o suta de ani?

      “nefericirea” mea (a se citi obiectia) are doua componente: pozitionarea eronata in timp si (mai ales) termenul nepotrivit (“ultimul”, cand corect era “trecut” sau eventual “cea mai recenta” suta de ani).

      ps. oricum vine radu si raspunde la cate comentarii pozitive ca sa isi bifeze “rezolutia” si ignora asta.
      dar nu pentru el e scrisa :)

        (Citează)

    • john2381: crezi ca e ultima?
      se termina timpul?
      istoria nu mai “prinde” INCA o suta de ani?

      Astazi e ziua culturii nationale, asa ca imi fac pomana sa iti deslusec subtilitati ale limbii romane:

      ultim, ~ă (…) 13 a Care este cel mai apropiat de prezent.

        (Citează)

    • alunelu: 13

      ai dreptate, am uitat eu e un blog de impresie unde e banal si nepotrivit sa folosesti sensul principal al cuvantului.
      traiasca soferul de formula 1!

        (Citează)

    • john2381: ai dreptate (..) e banal si nepotrivit sa folosesti sensul principal al cuvantului.

      22

      dreptate sf (…) 22 (Îae) A recunoaște că ceea ce spune sau face cineva este just, întemeiat.

      5

      nepotrivit, ~ă a (…) 5 (Fig) Care nu este recomandat, indicat într-o anumită împrejurare Si: deplasat, inoportun, neadecvat.

        (Citează)

    • Ciudat comentariu, john2381, foarte ciudat.

      Pun pariu că ești și din ăla care întreabă pe unul care zice că a servit prânzul dacă a fost ospătar la restaurant și toți cei din jur își dau ochii peste cap (nu la propriu, desigur, nu cred că ochii se pot da peste cap).

      Trecând peste asta, consider că exprimarea mea a fost bună. Zic asta pentru că da, cred că se vor termina timpul și istoria. Și dacă vrei să scoți musai dicționarul ca să ne pierdem vremea suplimentar, “ultimul secol” înseamnă “cea mai recentă sută de ani”.

        (Citează)

    • nwradu: Ciudat comentariu

      inca sunt sub influenta socului articolului cu “soferul” de f1, asa ca exprimarea asta n-a putut ramane neobservata :)

      nwradu: “ultimul secol” înseamnă “cea mai recentă sută de ani”.

      daca asta vrei sa insemne.. atunci inteleg si eu ca asta inseamna.

      totusi, intelesul unui mesaj e dat de mai multe lucruri, nu exclusiv de dictionar.
      contextul e important, emitarorul si receptorul sunt imporatnti, etc.

      daca eu scriu “secolul trecut”.. tu ce intelegi?
      dar daca scriu “un secol de evenimentul x”?
      oare in primul caz se asuma intelesul calendaristic, iar in al doilea caz cel de perioada de 100 de ani?
      de ce crezi ca se intampla asta?

      oricum, ca sa n-o mai lungim.. poti scrie cum vrei (evident, doh :) ).
      eu nu le stiu pe toate (din nou, evident) si nici nu cred ca un mesaj se impiedica prea tare de forma (dovada ca scriu fara majuscule si fara diacritice si in mare parte ma inteleg cu lumea).
      acum.. ca eu o fac in rubrica de comentarii si tu in corpul articolului.. banuiesc ca nu e mare diferenta.

      pe viitor incerc sa ma abtin de la comentarii din astea daca tot nu iti influenteaza parerea.
      succes!

        (Citează)

    • dar daca scriu “un secol de evenimentul x”?

      Absolut nimic, să mă bată mama.

        (Citează)

    • alunelu: “un secol de evenimentul x”

      dar daca spun “un secol de LA evenimentul x”?
      noua exprimare si bataia de mai sus dau un inteles mesajului? :)

      ps. butoanele astea zburatoare nu ajuta.

        (Citează)

    • @john2381
      Cu “la” acolo (si fara bataie) inteleg.
      Mie tot nu-mi vine sa cred ca am purtat discutia asta cu un adult, caruia a trebuit sa ii explic ca cuvintele au mai mult de un sens (ca doar nu vorbim despre limbaje de programare, a, stai, chiar asta e tema articolului), care are impresia ca “secolul trecut” e o exprimare mai exacta decat “ultimul secol” (toate secolele de pana acum, vreo 130.000.000, sunt “trecute”, spre deosebire de secolele viitoare).
      Despre “last century”, ia zi-ne cum e cu “Last Christmas I gave you my heart”, de ce nu zice autorul “Past Christmas”, ca doar nu e cel din urma Craciun?
      Ca sa inchei totusi constructiv, pare ca exista o nevoie pentru un cuvant care sa insemne pentru secolul actual ceea ce “ieri” exprima pentru “azi”. Daca va prinde la public va ajunge in dictionare si john va ramane in istorie pentru secolele viitoare. De exemplu “antesecol”. Ups, trebuie sa te gandesti la altul.

        (Citează)

    • alunelu: sa ii explic ca cuvintele au mai mult de un sens

      pai tocmai asta incercam sa spun si eu (aparent nu prea clar / eficient).
      diferenta e ca acele sensuri sunt legate si de context, nu il alegi pur si simplu din dictionar pe cel care iti place.

      despre “last century” exact asta am zis: l-am suspectat de traducere nepotrivita (in engleza are sens exprimarea, in romana mai putin – discutam si despre “make sense” vs “face sens”?).

      cat despre constructiv si confuz..
      incercam sa numim astazi (marti) ziua de vineri din saptamana asta? dar vinerea din sapt urmatoare? dar vinerea / lunea din sapt precedenta?
      sau sa traducem in date exacte de calendar expresiile: “vinerea asta”, “vinerea viitoare”, “lunea trecuta”?

      @nwradu, ce zici de un sondaj pe tema asta sa vedem cum se raporteaza lumea la expresiile astea folosite des, dar intelese diferit?

        (Citează)

    • alunelu: De exemplu “antesecol”

      pentru asta poate ajuta si articolul hotarat.
      un secol trecut vs. secolul trecut?
      avem si asta: secolul trecut / secolul prezent / secolul viitor
      care implica tot secol calendaristic.

      chiar nu spun ca exista o singura varianta corecta sau totul trebuie sa fie foarte strict pentru a fi inteles..
      dar tocmai pentru ca avem atatea variante.. mi s-a parut nefericita cea aleasa de radu.

        (Citează)

    • john2381: despre “last century” exact asta am zis: l-am suspectat de traducere nepotrivita (in engleza are sens exprimarea, in romana mai putin

      Ba e fix acelasi lucru, “last”=”ultimul”.

      discutam si despre “make sense” vs “face sens”?).
      cat despre constructiv si confuz..

      Devii confuz, ce legatura are cu discutia?

      incercam sa numim astazi (marti) ziua de vineri din saptamana asta

      RĂSPOIMÂINE adv. În ziua care urmează după poimâine; a treia zi începând din ziua prezentă.

      dar vinerea din sapt urmatoare?

      De vineri intr-o saptamana.

      pai tocmai asta incercam sa spun si eu (aparent nu prea clar / eficient).

      Deloc eficient. Tu te-ai legat ca e sensul nr. 13, nu nr. 1, maxim 2 si eu ti-am demonstrat ca si tu ai folosit sensul 22. De parca ordinea aia e normativa sau ceva si trebuie cunoscuta cand o folosesti.

      diferenta e ca acele sensuri sunt legate si de context, nu il alegi pur si simplu din dictionar pe cel care iti place.

      Pare ca esti singurul care n-a inteles ce vrea sa spuna autorul, deci cred ca depinde mai mult de cititor. Contextul e ideal pentru sensul dorit de Radu, parerea mea.

        (Citează)

    • alunelu: Ba e fix acelasi lucru, “last”=”ultimul”.

      din nou, scos din context e egal acolo.
      eu stiu ca sensurile difera intre cele doua limbi.

      alunelu: Devii confuz, ce legatura are cu discutia?

      legatura e ca in engleza expresia are o forma si in romana are alta forma.
      in engleza e “make sense” (face sens), iar in romana forma e “are sens”.
      similar cu mai sus.

      despre restul.. eu raman la parerea mea si nu incerc sa te conving sa ti-o schimbi pe a ta

        (Citează)

    • john2381: din nou, scos din context e egal acolo.
      eu stiu ca sensurile difera intre cele doua limbi.

      Dacă te referi la sensul de “anterior”, ăla e exprimat mai bine cu “previous” decât cu “last”.

      legatura e ca in engleza expresia are o forma si in romana are alta forma.
      in engleza e “make sense” (face sens), iar in romana forma e “are sens”.
      similar cu mai sus.

      “Legătura” fiind cu presupunerea ta bazată pe nimic că articolul e o traducere din engleză făcută de Radu (dacă aș fi el m-aș simți jignit), pe care îți construiești ipoteze fanteziste și ridicole. A, mai scapă oricui câte un automatism de gen “driver”=”șofer” (de formula 1 – ghici ce, în DEX nu apare pilot cu sensul de persoană care conduce mașini de curse), “Moon/Mars landing” = “aterizare” (în loc de aselenizare/amartizare). “Face sens” în loc de “are sens”, ia mai dă-o-n fasole, ghici ce, unii mai folosesc forma tradusă mot-a-mot la mișto, așa cum auzi o grămadă de “decât” folosit ironic, la fel și asta.

        (Citează)

    • alunelu: unii mai folosesc forma tradusă mot-a-mot la mișto, așa cum auzi o grămadă de “decât” folosit ironic, la fel și asta.

      da, doar ca diferenta dintre ironie si greseala e data de context, ton, participanti la discutie, etc.
      una e sa zici “face sens” dupa ce ai discutat pe tema asta cu prietenul tau si alta e sa o spui intr-un comunicat oficial al unei autoritati catre populatie.

      in fine, ramanem la pareri diferite

        (Citează)

  12. BASIC pe ZX Spectrum (bine, clone rusești). Taste de cauciuc, save/load pe casete/bandă de magnetofon. PEEK and POKE. Bătaie pe TV. Frumos.

    Funny story (pentru cei care au trăit așa ceva). Stăteam la 9, apartamentul era în bătaia directă a unui radar de aeroport care avea un ciclu de până într-un minut. De fiecare dată când semnalul radar ajungea la mine se auzea în difuzorul casetofonului un ”BZZZZ” și orice joc/program încercam să încărcăm era corupt în 9 cazuri din 10. LOAD ERROR! Așa că ori ne sincronizam startul la 1 secundă după ce trecea (dacă dura puțin încărcarea) sau încercam să punem obiecte metalice peste casetofon, cabluri, etc.

    Pascal vs C a fost o perioadă un fel de Tabs vs Space de acum.

      (Citează)

    • adyzah: PEEK and POKE

      ah, poke la o adresa prea mica si gata cu sistemul, ramaneai cu o “caramida” :)
      noroc ca la momentul ala avem deja pc.

        (Citează)

    • adyzah: Stăteam la 9, apartamentul era în bătaia directă a unui radar de aeroport care avea un ciclu de până într-un minut. De fiecare dată când semnalul radar ajungea la mine se auzea în difuzorul casetofonului un ”BZZZZ” și orice joc/program încercam să încărcăm era corupt în 9 cazuri din 10. LOAD ERROR!

      Ehm, dar tu ești ok așa? Sau îți stau monede lipite de piele, la o adică?

        (Citează)

  13. Tot Basic. Liceu. Pe HC91 + unitate floppy. Jmecherie.

      (Citează)

  14. Am facut in liceu si nu s a prins. Dar a contact si ca profesoarele aveau pedagogie in ele cat o creta. Unele nici nu stiau.

      (Citează)

  15. Nu uitati de Cobol…Compilatorul iti spunea pe …unde este eroarea de sintaxa. Aproximativ cateva pagini :)). Auzisem ca, nu sunt sigur, softul de baza de pe Space Shuttle era scris in Cobol caci era cel mai stabil.

      (Citează)

  16. Am facut in liceu Pascal, dar inceputul a fost prin 92 in Basic.

      (Citează)

  17. Mediul Turbo Pascal (plus extensia Turbo Vision pentru generarea interfetelor utilizator), a fost primul mediu adevarat de programare, cu toate componentele (editor, compilator, depanator) integrate in mediu. Dupa o experienta scurta, dar destul de terifianta in Fortran77, Turbo Pascal mi s-a parut raiul pe pamant.

    Aparitia Windows si crearea mediilor pentru Windows in care interfata era generata vizual (Visual Basic, in primul rand) l-au facut sa isi termine rolul in istorie pe la jumatatea anilor 90. Dar de acolo a pornit de fapt programarea in mod real. Toti cei care au creat IDE-uri in anii 90 s-au inspirat masiv din Turbo Pascal. Urmasul, adica Delphi Borland, nu a avut acelasi succes. Era si greu, data fiind concurenta (Microsoft cu Visual Studio).

      (Citează)

  18. In ’90 intr-a 5-a, am inceput cu BASIC pe HC85 si TIM-S, la clubul elevilor. (fosta Casa pionierilor). Apoi a urmat Turbo Pascal pe 286-urile din laboratorul de informatica, apoi Visual Basic si Visual Fox PRO in facultate. Nu mi-a placut in mod deosebit programarea si n-am urmat calea asta, dar schemele logice si sintaxele invatate atunci m-au ajutat mai tarziu.

      (Citează)

  19. Mulți programatori pe aici…

      (Citează)

  20. deleted

    eroare post

      (Citează)

  21. Țin minte că in 2001 erau încă examene intrare facultate in el (Pascal)…

      (Citează)

  22. Basic în școala generală secundară (1992-1995) pe XT-uri până la 386 parcă. Iar apoi Turbo Pascal, C și FoxPro în liceu (95-99) pe sisteme serioase, nu glume proaste, adică 486 și Pentium-uri 🙂

      (Citează)

  23. Nu, nu cu Pascal, cu JavaScript, insa am învățat Pascal în liceu, niciodată nu mi-a placut, simplul fapt ca nu ai un IDE ma făcea sa ma simt nonproductiv. Mare experiența nu am în programare dar și cea xare o am(5 ani) m-a făcut sa-l detest.

      (Citează)

    Alătură-te discuției, lasă un mesaj

    E-mail-ul nu va fi publicat. Fără înjurături și cuvinte grele, că vorbim prietenește aici. Gândiți-vă de două ori înainte de a publica. Nu o luați pe arătură doar pentru că aveți un monitor în față și nu o persoană reală.

    Apăsați pe Citează pentru a cita întreg comentariul cuiva sau selectați întâi anumite cuvinte și apăsați apoi pe Citează pentru a le prelua doar pe acelea. Link-urile către alte site-uri, dar care au legătură cu subiectul discuției, sunt ok.


    Prin trimiterea comentariului acceptați politica de confidențialitate a site-ului.



    Vreți un avatar în comentarii? Mergeți pe gravatar.com (un serviciu Wordpress) și asociați o imagine cu adresa de email cu care comentați.

    Dacă ați bifat să fiți anunțați prin email de noi comentarii sau posturi, veți primi inițial un email de confirmare. Dacă nu validați acolo alegerea, nu se va activa sistemul și după un timp nu veți mai primi nici alte emailuri

    Comentariile nu se pot edita ulterior, așa că verificați ce ați scris. Dacă vreți să mai adăugați ceva, lăsați un nou comentariu.

sus