Revista Art-emis
Căutând calculatoare în celula biologică (1) PDF Imprimare Email
Acad. Gheorghe Păun   
Miercuri, 29 Octombrie 2014 18:25
Academician Gheorghe Păun, art-emis„Vivat Academia, Vivat profesores!”
 
„În ziua de 24 octombrie 2014, în Aula Academiei Române, Domnul Gheorghe Păun și-a rostit discursul de recepție printre nemuritori. Un discurs dens, lămuritor în chestiuni de strictă specialitate matematică și fizică: „Căutând calculatoare în celula biologică”. De ani de zile domnul academician Păun caută răspuns la această întrebare: „Calculează natura?” Căutările sale l-au făcut celebru în toată lumea academică. Domeniul studiat și creat de domnul Gheorghe Păun este unul de avangardă, de care se leagă speranțe fabuloase. Noi, hic et nunc, ne facem datoria de a consemna acest moment de excepție în existența Academiei Române, publicând discursul de răspuns al domnului academician Solomon Marcus, care i-a fost profesor și mentor celui sărbătorit”. (Prof. univ. dr. Ion Coja). Adăugăm celor scrise de domnul prof. univ. dr. Ion Coja mulţumirile noastre adresate distinsului academician Gheorghe Păun pentru amabilitatea de a accepta preluarea discursului şi publicarea sa - în serial - în revista ART-EMIS (Redacţia ART-EMIS).
 
Discurs de recepţie la Academia Română - 24 octombrie 2014
 
Precauţii şi explicaţii preliminare
 
Titlul anterior cere unele precizări pe care mă grăbesc să le aduc încă de la început. Pe de o parte, el promite prea mult, cel puţin în raport cu preocupările mele din ultimele două decenii şi cu discuţia care urmează. Este adevărat că există încercări de a pune celula ca atare (bacterii, de exemplu) sau părţi ale acesteia (molecule de A.D.N., în special) să calculeze, dar o direcţie de cercetare mult mai realistă, cel puţin deocamdată, şi de care m-am ocupat, este cea care caută în celulă idei utile informaticii, modele de calcul, care, trecând de la structuri şi procese biologice la modele matematice, de tip computaţional, nu numai că pot asigura o eficienţă sporită calculatorului tradiţional, electronic, dar se pot şi reîntoarce în punctul de pornire, ca instrumente de lucru pentru biologie. Privind celula prin ochelarii matematicianului–informatician, aceasta este descrierea scurtă şi precisă a demersului şi aici se plasează experienţa personală de cercetare pe care se bazează textul de faţă. Pe de altă parte, titlul anunţă deja intenţia autobiografică. Fiind un moment de sinteză, dacă nu şi de bilanţ, un discurs de recepţie nu poate fi mai puţin autobiografic decât este, se spune, orice roman sau orice volum de versuri. Să nu uităm, viaţa prin lumea de curăţii şi semne (Ion Barbu) a matematicii impune o mare doză de singurătate, ne-a reamintit acest lucru şi acad. Solomon Marcus în discursul său de recepţie, iar singurătatea (se presupune că) înţelepţeşte, dar şi îndepărtează de „lumea-ca-lume”, de nu mai ştii la un moment dat cât dintr-un matematician mai este al „lumii” şi cât al matematicii. De aceea, se poate considera că un matematician este autobiografic şi în teoremele sale, şi în demonstraţiile pe care le găseşte teoremelor sale, şi în modelele pe care le propune. Privind retrospectiv, constat că mă aflu la capătul a două perioade de câte două decenii fiecare, ultima dedicată în întregime „căutării de calculatoare în celulă”, prima consacrată aproape sistematic pregătirii instrumentelor necesare acestei căutări. Mai ales despre experienţa celei de a doua perioade va fi vorba în cele ce urmează.
 
Un alt titlu posibil
 
Pentru o vreme, am avut în vedere şi un alt titlu, mult mai general, anume, „De la bioinformatică spre infobiologie”. Era în acelaşi timp o propunere şi o previziune, iar paginile care urmează încearcă să dea consistenţă acestei previziuni. De altfel, ea nu-mi aparţine, în mai multe locuri s-a vorbit despre o nouă vârstă a biologiei - la fel s-a prezis şi pentru fizică - bazată pe folosirea paradigmelor informaţional-computaţionale, dacă nu cumva şi pe intervenţia unor noi capitole de matematică, neelaborate încă. Este vorba nu despre aplicarea informaticii, fie ea teoretică sau practică, în biologie, ci de trecerea la un alt nivel, la o abordare sistematică a fenomenelor biologice în termeni de inspiraţie computaţională, preponderenţa informaţiei fiind implicită. Încercări care ilustrează această posibilitate, chiar necesitatea ei, pot fi găsite în multe locuri, mergând înapoi în timp până la E. Schrödinger şi John von Neumann. Într-o carte recentă, Infobiotics. Information in Biotic Systems (Springer-Verlag, 2013), Vincenzo Manca pledează şi el pentru „o nouă biologie”, pe care o numeşte infobiotică, plecând de la observaţia că viaţa este prea importantă pentru a fi investigată numai de biologi. Aş reformula: viaţa este prea importantă şi prea complexă pentru a fi investigată numai de biologia tradiţională - cu sublinierea că, de fapt, tocmai biologii sunt cei chemaţi, nu numai să fie beneficiarii, ci şi să dea contur infobiologiei. Alături de informaticieni şi, cu mult mai plauzibil şi mai eficient, preluând de la aceştia idei, modele, tehnici, apropriindu-şi-le şi dezvoltându-le. Este aici o pledoarie pentru multi-inter-trans-disciplinaritate (începând cu studiile universitare), dar şi un semnal: nu numai că este nevoie, dar, se pare, este şi timpul.
 
Contextul
 
Cu titlul de acum în faţă şi căutându-i un gen proxim „oficial”, prima sintagmă care ni se oferă este „calculul natural” (natural computing) – cu menţiunea, însă, că ea acoperă o foarte largă varietate de cercetări, incluzând bioinformatica şi tinzând şi spre infobiologie. Pentru a avea o descriere autorizată, să mergem la Handbook of Natural Computing, editat de Grzegorz Rozenberg, Thomas Bäck şi Joost N. Kok, în patru volume masive, la Springer-Verlag, în 2012. De la începutul prefeţei, aflăm că „acesta este domeniul de cercetare care investighează modele şi tehnici computaţionale inspirate din natură, dar investighează, în termeni de procesare a informaţiei, şi fenomene care au loc în natură”. Generalitatea este evidentă, adăugând la dorinţa de a identifica în natură (atenţie, nu numai în biologie) idei utile informaticii, un punct de vedere care, spuneam şi mai devreme, chiar dacă nu este complet nou, pus sistematic în funcţiune poate duce la o nouă paradigmă în cercetarea biologică şi nu numai: abordarea în termeni de procesare a informaţiei, depăşind deci abordarea tradiţională, de tip chimico-fizic. Ideea a fost formulată şi în alte contexte: punctul de vedere computational (la procesarea de informaţie se adaugă aspectul esenţial al calculabilităţii) poate conduce la o nouă fizică – este, printre alţii, previziunea lui Jozef Gruska, mare promotor al calculabilităţii cuantice, un pionier al informaticii, răsplătit ca atare cu o diplomă de către Secţiunea de Informatică a IEEE (să amintim că şi Grigore C. Moisil a primit o asemenea diplomă). Pe aceeaşi teză este construit şi volumul colectiv A Computable Universe. Understanding and Exploring Nature as Computation, editat de Hector Zenil şi publicat de World Scientific în 2013, cu multe capitole incitant-entuziaste („Ipoteza universului calculabil”, „Universul ca un calculator cuantic”) şi cu o prefaţă de lungimea unui capitol, semnată de Roger Penrose, nu totdeauna de acord cu ipotezele din carte. De altfel, handbook-ul de calcul natural invocat mai devreme include calculul cuantic printre domeniile pe care le are în vedere. Iată cuprinsul lui (secţiunile mari, fără capitole): Automate celulare, Calcul neural, Calcul evolutiv, Calcul molecular, Calcul cuantic, Algoritmi inspiraţi din natură, Modele alternative de calcul. Există o doză de „anexionism” aici (de pildă, automatele celulare nu prea au de a face cu celulele din biologie), dar să reţinem că secţiunea dedicată calculului molecular acoperă calculul cu A.D.N., calculul membranar şi procesarea genelor la ciliate, primele două fiind exact ceea ce ne preocupă în continuare.
 
Popularitatea unui domeniu
 
Rămânând numai la nivel editorial şi al conferinţelor (nu mai adaug şi proiectele de cercetare, finanţarea, deci), se poate constata că există o veritabilă modă a calculului natural, mai general, a calculabilităţii neconvenţionale, mai restrictiv, a bioinformaticii. Doar câteva exemplificări: Editura Springer are o serie separată dedicată monografiilor de calcul natural, chiar aşa intitulată, ba chiar şi o revistă - Natural Computing. Există o conferinţă Unconventional Computing, devenită între timp, uşor pleonastic, International Conference on Unconventional Computation and Natural Computation. BIC-TA, adică Bio-Inspired Computing - Theory and Applications, este o altă conferinţă de real succes, judecând după numărul de participanţi, al cărui format l-am stabilit, împreună cu colegi din China, în 2005, şi care se organizează de atunci anual în Extremul Orient, ceea ce explică participarea masivă, cercetătorii chinezi fiind foarte activi în acest domeniu.Am ajuns astfel la genul proxim cel mai restrictiv: calculabilitate inspirată din biologie. Este important de notat că termenul „bioinformatică” are un dublu înţeles, cu determinare, ca să spunem aşa, geografică. În „Vestul pragmatic”, el acoperă mai ales aplicaţiile informaticii în biologie (în scenariul „standard”, se pleacă de la probleme spre instrumente, fără a teoretiza prea mult). În Europa, ambele direcţii de influenţare sunt avute în vedere - dinspre biologie spre informatică şi invers. Deşi este natural ca aceste direcţii să se dezvolte în paralel, în colaborare, lucrurile nu stau totdeauna aşa. În căutare de soluţii pentru probleme curente, unele realmente urgente, din domeniul biomedical, de exemplu, matematica şi informatica vin adesea cu instrumente puse la punct în alte domenii. Exemplul tipic sunt ecuaţiile diferenţiale, cu o glorioasă istorie în fizică, astronomie, mecanică, meteorologie şi care sunt „împrumutate” de biologie, nu totdeauna cu verificarea adecvării lor. Voi reveni asupra acestui subiect, de mare importanţă pentru promovarea unor instrumente noi. „Strategia europeană”, a construirii unei teorii matematice, care abia ulterior îşi găseşte aplicaţii, are atractivitatea şi avantajele ei - dar şi capcanele ei. European fiind, matematician fiind, am fost mult mai atras de această strategie, cu vremea devenind însă tot mai interesat de „realitate”, de aplicaţii.
 
Ce înseamnă a calcula?
 
Revin la titlu, cu întrebarea fundamentală privind definiţia noţiunilor de calcul şi de calculator. O întrebare de acelaşi gen cu „Ce este matematica?”, având multe şi variate răspunsuri, niciunul satisfăcător pe deplin. Dacă procesarea de informaţie este calcul, atunci putem vedea calcule peste tot în jur. Cu un detaliu foarte important ascuns în formularea dinainte: putem vedea, noi, oamenii. Un observator adică, pentru care un proces are semnificaţia unui calcul. Nu vreau să împing discuţia până la speculaţii de genul „căderea unui copac, într-un lac, la mijlocul unei păduri pustii, face sau nu zgomot, ţinând seama că nimeni nu-l aude?” - subliniez însă că întrebarea a făcut obiectul unei lucrări acceptate acum câţiva ani la o conferinţă de calcul neconvenţional – şi nici nu vreau să-L consider pe Dumnezeu, omniprezentul, omniscientul, observator universal (decât, cel mult, pentru zgomotele din pădurile fără alţi martori, nu pentru calcule...).
Un exemplu la limită, dar sugestiv, este cel al unei picături de lichid care cade prin aer. În vremea asta, ea „rezolvă” instantaneu prin forma pe care o ia, o ecuaţie diferenţială. Este acesta un calcul? N-aş merge atât de departe. La fel cu tot ce se întâmplă în celulele unei frunze sau din corpul unui om, la nivel biochimic sau chiar la nivel informaţional. Ideea calculului ca proces considerat ca atare de un observator nu este nouă. Una dintre concluziile cărţii lui John Searle „The Rediscovery of the Mind” [1]este tocmai aceasta, că un calcul nu este o proprietate intrinsecă a unui proces, ci este „observer-relative”. O formulare sugestivă a necesităţii observatorului în definirea unui proces ca fiind un calcul îi aparţine lui Tommaso Toffoli. Citatul care urmează apare într-un articol cu un titlu-afirmaţie: „Nothing makes sense in computing except in the light of evolution[2].
 
„Tocmai am văzut că nu este util să numim calcul orice cuplare netrivială între variabile de stare. Dorim în plus ca această cuplare să fie intenţionat stabilită pentru a prezice sau manipula – cu alte cuvinte, pentru a cunoaşte sau a face ceva. [...] Dar acum apar alte întrebări, cum ar fi: Stabilită de către cine sau ce? Cu ce scop? Cum putem recunoaşte intenţionalitatea? Departe de mine gândul de a strecura consideraţii animiste, spiritualiste sau măcar antropice în definiţia calculului! Conceptul de calcul trebuie să apară ca o construcţie naturală, bine caracterizată, obiectivă, care să fie recunoscută ca atare şi utilă oamenilor, marţienilor şi roboţilor deopotrivă.” (subl. n., Gh.P.) Întrebările lui Toffoli sunt de ţinut minte şi de discutat, dar ne îndepărtează de subiect. Să revenim la John Searle şi la o lectură tehnică a ideii de calcul care implică un observator, întreprinsă de Matteo Cavaliere şi Peter Leupold, amândoi fiindu-mi studenţi la şcoala de doctorat de la Tarragona, Spania, cel dintâi unul dintre primii mei doctoranzi de acolo. Ei au o serie de lucrări cu acest subiect, citez doar una recentă a lui Peter Leupold, „Is computation observer-relative?”, prezentată la Sixth Workshop on Non-Classical Models of Automata and Applications, Kassel, Germania, iulie 2014. De fapt, în abordarea celor doi apar, implicit, doi observatori, unul - să-l numim observator de ordinul întâi - care urmăreşte un proces simplu, „traducând” într-un limbaj exterior paşii efectuaţi de proces, iar al doilea, mai aproape de observatorul lui Toffoli, interpretând drept calcul rezultatul activităţii primului observator. Cavaliere şi Leupold consideră o serie de perechi proces-observator de ordinul întâi care, separat, au o putere (de calcul) redusă, dar care împreună conduc, din punctul de vedere al observatorului de ordinul al doilea, cel exterior, la puterea de calcul a maşinii Turing.
 
Maşina Turing
 
Să pornim însă din altă direcţie, de la accepţiunea dată de matematică termenului de calcul. Deja de prin anii ’30 ai secolului trecut avem o definiţie a ceea ce este calculabil, răspunsul pe care Alan Turing l-a dat întrebării „ce se poate calcula mecanic?”, formulate în 1900 de David Hilbert. „Mecanic”, deci „algoritmic”, reformulăm noi astăzi. Au existat mai multe propuneri (amintesc doar funcţiile recursive şi lambda-calculul), din partea unor nume mari ale matematicii-informaticii (îi amintesc doar pe Alonzo Church, Stephen Kleene, Emil Post), dar soluţia pe care Turing a dat-o aşa-numitei Entscheidungsproblem a lui Hilbert, ceea ce el a numit a-maşină iar astăzi este cunoscut ca maşină Turing, a fost acceptată ca fiind cea mai convingătoare (fapt atestat până şi de exigentul Gödel). Acesta este în informatică modelul standard de algoritm (nu am spus definiţie, pentru că nu avem decât un înţeles intuitiv al ideii de algoritm, dar putem spune că pe această cale dispunem de o definiţie a ceea ce este calculabil).
 
Fără a intra în amănunte, menţionez că problema lui Hilbert, a zecea în lista sa, era mai generală. Ea pleca de la rezolvarea algoritmică a ecuaţiilor diofantice (cele cu coeficienţi numere întregi), dar în formulare Hilbert spunea: „Entscheidungsproblem [problema deciziei în logica de ordinul întâi] va fi rezolvată atunci când vom avea o procedură care să ne permită ca pentru orice expresie logică să decidem printr-un număr finit de operaţii dacă ea este validă sau satisfiabilă... Entscheidungsproblem trebuie considerată ca principala problemă a logicii matematice.” La acest nivel general, teoremele lui Gödel răspund negativ programului lui Hilbert, iar problema a zecea a fost rezolvată complet - tot negativ - în 1970, de Yurii Matijasevich (după eforturi îndelungate ale mai multor matematicieni: Julia Robinson, Hilary Putnam, Martin Davis). Şi Turing aduce un rezultat de tip negativ, el nu numai că a definit „frontierele calculabilului”, dar a şi produs un prim exemplu de problemă plasată dincolo de aceste frontiere, nerezolvabilă algoritmic, problema opririi (nu există un algoritm - deci, o maşină Turing - care, dându-i-se o maşină Turing arbitrară, cu date iniţiale arbitrare, să spună dacă maşina se opreşte vreodată sau calculează neîncetat). La problema opririi, de altfel, se reduc, direct sau indirect, toate demonstraţiile ulterioare de nedecidabilitate. Importanţa maşinii Turing pentru informatică, inclusiv pentru calculul natural, este atât de mare, că merită să zăbovim puţin asupra ei.
 
Câteva detalii mai tehnice
 
Este interesant să notăm că atunci când şi-a definit „maşina”, Turing a plecat explicit, o spune încă de la începutul articolului, de la încercarea de a abstractiza modul în care calculează un om, reducând la minimum resursele şi operaţiile efectuate de acesta. S-a ajuns astfel la un „calculator” care constă dintr-o bandă potenţial infinită, mărginită la stânga, împărţită în celule, în care se pot scrie simboluri dintr-un alfabet finit, dat; aceste simboluri sunt citite şi rescrise de un cap de citire-scriere, care citeşte o singură celulă, o poate modifica, apoi poate rămâne pe loc sau se poate muta la celula din stânga sau la cea din dreapta; activitatea capului de citire-scriere este controlată de o memorie, care se poate afla, la rândul ei, într-un număr finit de stări. Avem astfel de a face cu instrucţiuni de forma s1s2b D, cu semnificaţia: în starea s1, citim simbolul a, trecem în starea s2, modificăm a în b (a şi b pot fi egali) şi deplasăm capul de citire-scriere aşa cum ne indică D. Se porneşte cu banda goală, cu maşina aflată într-o stare s0fixată, numită stare iniţială; se scriu pe bandă datele iniţiale (de exemplu, două numere care trebuie înmulţite), se poziţionează capul de citire-scriere pe prima celulă din stânga şi se urmează instrucţiunile „programului” (de înmulţire) până se ajunge într-o stare finală, iar maşina se opreşte, nu mai există nicio instrucţiune care să poată fi urmată. Conţinutul benzii la acel moment este rezultatul calculului.
 
Extrem de reducţionist, dar acesta este cel mai general model de calcul algoritmic - în lipsa unei definiţii anterioare a ceea ce este calculabil, afirmaţia este doar o ipoteză şi ea poartă numele de teză Turing-Church. Dar, ceea ce a făcut maşina Turing atrăgătoare au fost nu numai simplitatea şi puterea sa (s-a demonstrat că poate simula orice alt model de calcul), ci şi robusteţea (puterea de calcul nu i se schimbă dacă se fac adăugiri în alcătuire sau funcţionare, cum ar fi adăugarea de benzi, prelungirea infinită a benzii şi în partea stângă, funcţionarea nedeterministă) şi, mai ales, existenţa maşinilor universale: există o maşină Turing, TMU, care poate simula orice maşină Turing particulară, TM, în sensul următor. Dacă pe banda maşinii TMU scriem un cod al maşinii TM, cod(TM), şi date de intrare x ale maşinii TM, atunci maşina TMU ne va furniza acelaşi rezultat pe care ni-l furnizează TM plecând de la datele x. Ceva mai formal (dar omiţând totuşi unele detalii), avem TMU(cod(TM),x) = TM(x). Iar Turing a demonstrat că există maşini Turing universale. Se întâmpla în 1936, în lucrarea „On computable numbers, with an application to the Entscheidungsproblem”[3].
 
Avem aici „certificatul de naştere” al calculatoarelor de azi, numite de aceea şi de tip Turing-von Neumann (atunci când a realizat primele calculatoare electronice programabile, la mijlocul anilor 1940, John von Neumann a fost în mod esenţial influenţat de ideile lui Turing).Câteva lucruri merită a fi subliniate: codul maşinii TM este programul de simulat/executat pe TMU, plecând de la datele x; instrucţiunile maşinii TMU constituie „sistemul de operare” al calculatorului; datele şi programul sunt plasate în acelaşi loc (pe banda TMU, în memoria calculatorului) - de aici posibilitatea de a le procesa în acelaşi fel, deci vulnerabilitatea la viruşi. Important pentru calculul natural: activitatea maşinii Turing este secvenţială, la fiecare pas se execută o singură instrucţiune. În multe locuri din natură, dacă nu în majoritatea, în particular, din biologie, procesele sunt paralele, ceea ce constituie o mare atractivitate pentru informatică, dar nu sunt neapărat sincronizate, ceea ce ridică probleme pentru informatică. Mai sunt şi alte diferenţe între maşina Turing, „calculatoarele biologice” şi calculatoarele electronice, pe care le voi aminti la momentul potrivit. Reţinem deocamdată că, în cele ce urmează, a calcula are înţelesul sugerat de maşina Turing: există o intrare şi o ieşire, iar între ele există un algoritm care face trecerea de la intrare la ieşire, rezultatul unui calcul fiind obţinut în momentul în care maşina se opreşte. Restrictiv, dar precis. Având un asemenea cadru la îndemână, putem căuta calcule în jur, mai mult, le putem studia într-un context foarte bine dezvoltat, teoria calculabilităţii - un ansamblu, de fapt, de mai multe teorii, precum teoria automatelor, teoria limbajelor formale (gramaticilor), teoria complexităţii calculului şi altele.
 
Informatică şi matematică
 
Poate că acesta este locul în care să amintim încă o discuţie cu variate luări de poziţie, legată de relaţia dintre informatică şi matematică. Ea a apărut şi în Academie, apare în învăţământul superior (prin anii ’60-’70, la vremea sputnicilor şi hidrocentralelor, multe facultăţi erau „de matematică-mecanică”, acum mecanica a fost înlocuită cu informatica), chestiunea este dezbătută uneori şi în presă. De fapt, contextul este mai larg, punându-se uneori sub semnul întrebării relaţia matematicii cu celelalte ştiinţe, cu şcoala, cu societatea. Există persoane care se mândresc cu faptul că „nu au fost buni la matematică”, există opinia că matematica este un lux, un „fetiş naţional” (sintagma a apărut de curând în titlul unui articol de ziar dedicat subiectului), pe scurt, că se face prea mult caz de matematică şi, deci, se face prea multă matematică. Iar acest curent de opinie capătă extindere, ajutat şi de informatică („nu trebuie să mai ştim tabla înmulţirii, o ştie calculatorul pentru noi”). Sigur, există o problemă cu educaţia matematică. Cât, ce şi, mai ales, cum? - şi mai sunt şi alte întrebări; le putem găsi, adesea şi cu soluţii, în scrierile din ultimii ani ale profesorului Solomon Marcus dedicate educaţiei. Problema nu se poate însă soluţiona de jos în sus, matematicienii din cercetare şi din învăţământul superior sunt cei care trebuie să şi-o asume - o spune, de pildă, Juraj Hromkovic, de la ETH Zürich, într-un articol din revista Curtea de la Argeş [4],bazându-se pe activitatea practică în această direcţie a centrului unde lucrează (activitate materializată, printre altele, în manuale de matematică de un tip nou). Matematicienii trebuie să fie şi cei care să iasă în public şi să pledeze pentru matematică, prima vină este a lor dacă domeniul îşi pierde din popularitate.
 
Pentru matematician, matematica este un mare joc, care, ca orice joc, are recompensa intrinsecă, în însăşi buna sa desfăşurare, prin urmare, este explicabil ca interesul pentru „popularizare” să fie scăzut, dar cei care-şi laudă infirmitatea matematică, fie ea reală sau pretinsă, sunt de obicei mai vizibili, mai vocali, iar pericolul este evident. Rămânând la relaţia dintre matematică şi informatică, să consemnăm că informatica teoretică, aflată la intersecţia celor două ştiinţe, este adesea considerată parte a matematicii de către informaticieni şi parte a informaticii de către matematicieni, având uneori probleme şi în cadrul informaticii - de altfel, ca orice ramură teoretică a unei ştiinţe cu mare pondere practică. Evident, false probleme în sine, dar care pot avea urmări administrative neplăcute. Apelez, fiind de aceeaşi părere, la o voce autorizată, Edsger W. Dijkstra, un clasic al informaticii, ba chiar al celei practice: ajunge să menţionez că prin anii ’60 a lucrat la implementarea limbajului Algol la Centrul de Matematică din Amsterdam şi tot el este promotorul programării structurate, care a făcut epocă printre creatorii de software. (Poate ar trebui să adaug aici că primii patru ani după absolvirea facultăţii am programat din plin, în Cobol şi Fortran, ba chiar am realizat programele pentru plata salariilor la o mare uzină bucureşteană – îmi amintesc, aşadar, ce înseamnă informatica practică...).
 
„Sfârşitul informaticii?”, se întreabă Dijkstra retoric-ironic în titlul unei note apărute în Communications of the ACM [5], începe cu următoarea frază: „În universităţi, industrie şi lumea comercială, există o părere răspândită cum că informatica în sine s-a încheiat şi, deci, ea s-a maturizat, trecând de la un subiect teoretic, pentru cercetători, la o chestiune practică, pentru ingineri, manageri şi antreprenori.” Apoi: „Această părere este corectă numai dacă identificăm obiectivele informaticii cu ceea ce s-a obţinut deja şi uităm acele obiective pe care nu am reuşit să le atingem, chiar dacă ele sunt prea importante pentru a fi ignorate.” Mult mai explicit este Dijkstra în discursul pe care l-a susţinut în mai 2000, la un simpozion (In Pursuit of Simplicity) organizat la Universitatea din Austin-Texas cu prilejul retragerii sale. Titlul discursului[6]este semnificativ: „Under the spell of Leibniz’s dream”. Reiau câteva fraze-aforism:„Ceea ce este frumos teoretic tinde să fie profund util. [...] În proiectarea de sisteme digitale sofisticate, eleganţa nu este un lux de care ne putem dispensa, ci o chestiune de viaţă şi de moarte, un factor major care decide între succes şi eşec. [...] În zilele noastre, există o asemenea obsesie a aplicaţiilor că, dacă universităţile nu sunt atente, forţele externe, cele care fac distincţia [dintre teorie şi practică], vor trage o linie între cele două şi pot încerca să-i surghiunească pe teoreticieni în ghetoul unor departamente separate şi în clădiri separate. O simplă extrapolare ne spune că, după o vreme, practicienii vor avea puţine de aplicat; lucrul acesta este bine cunoscut, dar nu a împiedicat niciodată minţile contabile să omoare gâsca cu ouă de aur. Cel mai rău lucru cu institutele explicit dedicate aplicării ştiinţei este că ele tind să devină institute dedicate teoriei de mâna a doua.”
 
Pledoaria pentru a ne aşeza sub îndemnul/vraja lui Leibniz este evidentă, pentru că „simbolurile direcţionează raţiunea”, iar, după ce vom avea un limbaj în care „toate adevărurile raţiunii se vor reduce la un fel de calcul”, „erorile vor fi doar greşeli de calcul”. (E adevărat, programul lui Leibniz, preluat şi formulat în termeni mai precişi de David Hilbert, nu poate fi realizat; pe de o parte, matematica este prea exact-riguroasă iar realitatea prea complexă şi nuanţată pentru a putea transforma totul în calcule, pe de altă parte, teoremele lui Gödel au arătat că nici programul lui Hilbert nu este realizabil.) Bineînţeles, relaţia matematicii cu informatica este mult mai complexă, dar nu este aici locul pentru a o explora în mai multe amănunte. Închei întorcându-mă în punctul din care am plecat: calculatoarele de azi, programabile, de tip Turing-von Neumann, s-au născut din teorema de universalitate a lui Turing, din 1936. Interesant (şi reconfortant pentru poziţia lui Dijkstra) este că, în urma unui vot pe internet, din 2013, menit a identifica cea mai importantă descoperire ştiinţifică sau tehnologică britanică, locul întâi a fost ocupat, surprinzător pentru vremurile noastre pragmatice, de maşina Turing şi teorema de universalitate a lui Turing, care au câştigat competiţia cu linoleumul, motorul cu abur, telefonul, cimentul, fibra de carbon şi altele asemeni.
- Va urma -
------------------------------------------------------------------------
[1] MIT Press,1992.
[2] Journal of Unconventional Computing, vol. 1, 2005, pp. 3-29
[3] Proceedings of the London Mathematical Society, Ser. 2, vol. 42, 1936, pp. 230-265, cu o erată în vol. 43, 1936, pp. 544-546.
[5] vol. 44, martie 2001, p. 92.
[6] Information Processing Letters, vol. 77, febr. 2011, pp. 53-61.
footer