Nu demult, un articol numit "The Javascript Trap" şi semnat de Richard Stallman a stârnit ceva agitaţie şi m-a pus în situaţia de a-mi analiza mai atent poziţia faţă softul liber sau open source. Îmi place open source, fie că vorbim de fenomen, fie că vorbim de multe dintre produsele rezultate, dar cu siguranţă nu sunt un ortodox în această privinţă. Spre deosebire de RMS, mie nici nu mi-a trecut prin cap întrebarea dacă scripturile JS care-mi vin cu tot felul de pagini web sunt sau nu libere. Sau să refuz să folosesc soft proprietar din principiu. Cred că este o pură întâmplare că aproape tot softul pe care-l folosesc ca simplu utilizator sau ca proiectant de aplicaţii este open source. Pur şi simplu, s-a nimerit ca acestea să-mi convină cel mai mult. Dar această întâmplare m-a adus într-un punct în care am constatat că pâinea familiei mele depinde de o întreagă platformă open source şi am început să mă întreb dacă stau pe un teren suficient de stabil.
Folosesc la birou două computere echipate cu Ubuntu. Unul este o simplă staţie de lucru, pe care îmi permit orice, pentru că lucrurile importante rulează pe celălalt, care merge pe post de server. Acolo sunt ceva mai conservator, pentru că acolo sunt aplicaţiile în dezvoltare şi este totodată poarta spre internet prin care clienţii au posibilitatea să încerce "live" funcţionalităţile acestora. Aşa se explică faptul că pe staţie aveam ultima versiune de Ubuntu (9.04 - Jaunty Jackalope) iar pe server versiunea 8.04 - Hardy Heron -- deci cu două versiuni în urmă. Marele avantaj al lui Ubuntu (pentru mine, care nu sunt un linuxist) este că pachetele furnizate sunt atent verificate de cei de la Canonical şi sunt consistente cu versiunea cărora le sunt destinate, aşa că instalările sunt uşoare şi fără riscuri. Când totul merge minunat ajungi să te obişnuieşti cu binele şi să devii foarte încrezător.
Dar viaţa are grijă să te aducă din când în când la realitate. În cazul meu totul a pornit de la o facilitate pe care o aşteptam demult de la Zope şi care a apărut într-o variantă de curând lansată. Cum această variantă apărea în repository-ul lui Jaunty, dar nu şi la Hardy, am hotărât să aduc serverul la zi. Am salvat (aproape) totul şi am purces la două upgrade-uri succesive. Totul a mers şnur, inclusiv restaurarea aplicaţiilor aşa că am plecat liniştit acasă, cu gândul că dimineaţa voi putea lucra pe noua configuraţie. Dar nu s-a întâmplat aşa, pentru că Zope nu se mai conecta la Postgres. De vină era un conector numit Psycopg, care a fost upgradat şi el pentru Python 2.5 şi 2.6, în vreme ce Zope vrea doar 2.4. Disperat, m-am plâns unui prieten linuxist hardcore, care a instalat versiunea mai veche şi a reuşit să-l convingă pe Python 2.4 să ia în seamă vechiul Psycopg. Dar, fatalitate, acesta la rândul lui depindea de nişte module pentru care Python 2.4 era doar o amintire duioasă. Desigur, aceasta este varianta scurtă a unei zile de coşmar, după care a urmat o noapte de disperare şi o dimineaţă de mesaje nervoasă pe o temă comună: where is my application?
Downgrade. Vechile CD-uri de Hardy Heron, salvări, instalări şi din nou jale: Zope nu accepta adaptorul de Postgres bazat pe acelaşi Psycopg. Oricum, măcar eram pe teren propriu, aşa că am intrat cu neruşinare în codul sursă şi l-am făcut pe Zope să creadă că versiunea respectivă de ZpsycopgDA este cea mai potrivită pentru nevoile sale. Am reuşit să refac legătura la Postgres, dar la fiecare bug simt o strângere de inima: dacă o fi de la mânăreala mea? Dacă un nişte pachete, pe care le accept cu prea mult uşurinţă în update-urile zilnice, mă vor bloca cu câteva zile înainte de deadline?
Totul pare să meargă cum trebuie şi mi-a trecut supărarea. Totuşi, întrebarea rămâne: sunt oare soluţiile open source suficient de mature pentru aplicaţii mission-critical? Mi-ar fi fost mai uşor pe o platformă proprietară, cu hotline 7x24? Documentaţia nu tratează a astfel de situaţii şi Google mi-a adus doar nişte fire de discuţii care convergeau spre un bug report anost. Pe de altă parte, un "deocamdată nu" ar fi prea drastic după atâţia ani în care mi-am câştigat existenţă folosind open source. Uneori însă e riscant pe cont propriu. Poate că professional open source e soluţia câştigătoare.