Ce este Xterminal?

Xterminal este o interfata utilizator orientata pe obiecte, avand o arhitectura client-server. Mai concret, este o biblioteca cu ajutorul careia se pot realiza aplicatii C++ in mod terminal usor de utilizat, pentru sisteme UNIX.

Cand ai inceput sa lucrezi la acest proiect? De la ce anume ti-a venit ideea?

Am scris primele linii de cod prin toamna 1995. Ideea de a crea o interfata utilizator pentru C++ a pornit de la un program antivirus pentru DOS la care lucram pe atunci, caruia vroiam sa ii adaug o interfata usor de folosit. Puteam utiliza TurboVision, realizat de Borland Intl., dar eram nemultumit atat de complexitatea sa, cat si de marimea sa. Asadar prima versiune functionala a fost sub DOS.
Ideea de a scrie o interfata utilizator pentru UNIX a pornit totusi dintr-o alta directie. Student fiind la facultatea de Calculatoare, fusesem prins de febra descoperirii sistemului UNIX (mai intai AIX, apoi Solaris si Linux). Impreuna cu un coleg, frustrati de lipsa unui mediu grafic, pasionati de programarea orientata pe obiecte in C++, am inceput sa lucram la un client FTP/HTTP pentru mod terminal. Intentionam ca programul sa fie cat se poate de usor de utilizat. Ce interfata utilizator puteam folosi? Am aflat de existenta unei portari TurboVision pe Linux, realizata de doi studenti la Politehnica Bucuresti. Am intrat in posesia arhivei, insa executabilele generate erau atat de mari, incat ne-am lasat pagubasi. Pe de alta parte, portarea nu era perfecta, biblioteca fiind destul de instabila si plina de erori. Ignorand sfatul unor profesori de-ai nostri de a nu "reinventa roata", am inceput sa lucram la aceasta interfata.

Cand l-ai facut public? Ce inseamna a fi sub licenta GNU?

In noiembrie 1995, la ROSE'95, l-am intalnit pe Linus Torvalds (creatorul Linux-ului), care m-a ajutat cu sfaturi privind utilizarea librariei curses sub Linux. Tot el mi-a sugerat sa utilizez o licenta GNU.
Prima versiune publica a fost lansata pe 8 mai 1996.
Biblioteca este software free, insa este protejata de licenta "GNU Library General Public License". Aceasta licenta garanteaza utilizatorilor libertatea atat de a distribui copii ale soft-ului in cauza, cat si sa modifice si sa utilizeze codul sursa, impunand cateva conditii:
- codul modificat poate fi redistribuit, insa utilizand aceeasi licenta GNU
- software-ul in cauza nu poate fi vandut. Poate fi platit totusi serviciul de copiere a acestuia.
Aceasta licenta are valabilitate juridica.

Colaboratori?

Initial am lucrat impreuna cu un coleg, Adrian Teohar. Mai multe persoane au contribuit ulterior la acest proiect: Bernd Kalbfuss, Ovidiu Ene, Udo Kreckel, Uwe Steinmann, Alex Buell, Philippe Martin, Bob Bernstein, Jim Hickle. Multi altii au raportat bug-uri, au testat biblioteca pe alte platforme, au facut diverse sugestii.

Piedici si recompense?

Cand am inceput sa lucrez la versiunea UNIX, am incercat sa apelez la ajutorul altor colegi, trimitand mesaje la toti studentii din facultate. Nu am avut insa colaboratori nici din partea studentilor nici din partea profesorilor.
Recompensele sunt in principal de ordin moral: satisfactia de a lucra cu persoane din intreaga lume, satisfactia ca munca iti este apreciata.

Continui lucrul sau te-ai apucat de altceva?

Evident ca lucrez si la alte programe, insa continui lucrul si la Xterminal. De fapt, perioada de viata a unui sistem software nu se rezuma la o singura versiune, ci dezvoltarea continua, corectand bug-uri, adaugand noi facilitati, lansand noi versiuni.
De altfel, aceasta biblioteca imi este de folos pentru scrierea de alte programe, de exemplu pentru evidenta contabila.

Pentru viitor, care ar fi dezvoltarile?

In viitorul apropiat, finalizarea versiunii 1.0, care sa includa toate obiectele si uneltele necesare pentru dezvoltarea de aplicatii C++ cu interfata utilizator in mod terminal.
Urmatorul pas important va fi posibilitatea de a instantia obiecte pe diferite masini legate in retea (remote objects) si apelul de proceduri la distanta (remote method invocation).

Consideri ca Xterminal este util? Poate fi piatra de temelie pentru ceva mai complicat?

Utilitatea este determinata in general de numarul de utilizatori. Xterminal este utilizat de catre mai multi programatori, pentru a realiza diverse aplicatii C++: pentru gestiunea bazelor de date, pentru culegere de date, etc. Majoritatea celor care au contribuit la acest proiect il utilizeaza, pentru realizarea de programe cu interfata utilizator in mod terminal.
Asa cum spuneam mai devreme, urmatorul pas va fi suportul pentru retea, adica posibilitatea de a realiza sisteme distribuite.

Doresti colaboratori sau echipa ta e OK?

Colaboratorii sunt intotdeanua bineveniti. Nu pot vorbi intotdeanua despre o echipa bine definita, pentru ca multi dintre acesti colaboratori intervin in cadrul dezvoltarii atunci cand descopera ca ceva nu functioneaza cum ar trebui sau cand au nevoie de o anume facilitate pe care o implementeaza, deci colaborarea e ocazionala ca sa zic asa.

Unde este gazduit pe Internet acest proiect?

Pagina de Web se afla la adresa http://xterminal.sourceforge.net.

Care este situatia unui programator care scrie soft gratuit in Romania?

Cred ca e cam aceeasi pe care o are un programator in alte parti. In general, cei ce scriu soft free o fac din necesitati personale, pentru a-si rezolva anumite probleme in munca sau pentru a sprijini dezvoltarea de alte programe.
In Romania, UNIX-ul nu este extrem de raspandit, ca urmare principalii utilizatori si colaboratori sunt din afara tarii. Este evident rolul fundamental pe care il joaca Internet-ul in dezvoltarea soft-ului free.
Din cate stiu, proiecte de software free sunt putine in Romania. Este vorba de GIT (realizat in principal de doi fosti studenti la Politehnica Bucuresti) si de Xterminal. In orice caz, mi-ar face placere sa stiu ca nu sunt singur si ca mai exista si alte soft-uri free realizate de romani.


Interviu realizat de Sabin Buraga © 1999