Microsoft au inventat intelisense. Se pare că din cînd în cînd au mai făcut și cîte ceva bun și original. A fost o revoluție în modul de lucru al programatorilor pe care au introdus-o prima dată în Visual Basic și au extins-o treptat. Visual C++ nici acum se pare că nu stăpînește foarte bine intelisense dar asta e și din vina limbajului (ce să mai vorbim de eforturile supraomenești de a ghici intelisense pentru Java Script).
Pentru neprogramatori, ce e intelisense? E o treabă care te ajută să scrii programe mai rapid, mai simplu și poate ceva mai corect. E ca un fel de Word special pentru scris poezii, care atunci cînd ai ajuns la finalul liniei dintr-o strofă, se uită la rimele de mai sus și îți propune instantaneu o listă de cuvinte care rimează în locul respectiv și se mai și potrivesc ca ritm. E Word-ul care scrie poezia aproape singur și care ajută pe oricine să scrie poezii cu formă dar nu neapărat și cu sens. Asta face cu atît mai poluat peisajul poeziei: oricine poate scrie ceva ce arată bine tehnic dar unele creații sînt nule. Calitatea tehnică aparentă face mai greu de distins grîul de neghină. Pentru cine are cu ce, poate fi un instrument excelent, pentru cine nu are cu ce, poate fi o cîrjă suplimentară. Ceva sigur nu e: nu e instrumentul cu care să înveți literatură sau stil.
Unii s-au născut ca programatori cu intelisense, așa au învățat limbajul X sau Y (cum spuneam asta nu e metoda ideala pentru a învăța). Cînd te-ai născut cu apă caldă, mașină și telefon mobil e greu să te gîndești cum erau vremurile în care străbunii aveau internet pe modem de 28.8kbit/s sau mîncau fără E-uri pentru că nu se prea găseau.
Există și curente de gîndire care spun că pentru desăvîrșire e nevoie de suferință și aleg pe cît posibil editoare fără toolbaruri, meniuri, cu combinații de taste aflate din gură în gură de la autorul decedat în 1973. Toată stima, sigur în viața de apoi vor sta în față, la o consolă adevărată cu hîrtie și cap de imprimare cu 24 de ace, un Centronics original, fără delete (cum se face delete pe hîrtie? \?\h\î\r\t\i\e – știu cum e că am făcut).
Cum ziceam, Microsoft ne-au dat intelisens în viață și de atunci nu au stat pe loc. De atîția ani de cînd îl rafinează au ajuns la un nivel nebănuit. Și-au dat seama că acest instrument poate fi mai util chiar în procesul de învățare (despre care ziceam că NU), așa că în ultima vreme șandramaua a primit o personalitate specială, un fel de skin comportamental care te forțează să fii atent (pentru că datele statistice de instrumentație adunate din atîtea crash-reporturi au arătat că mulți programatori dorm pe ei de la atîta ușurință în muncă). Chiar el însuși învață și se adaptează în funcție de ce folosește programatorul și face în așa fel încît rutina să nu intervină.
Iată de exemplu banalul FOR din VB.Net 10. Pînă acum te așteptai ca în tradiția prea vorbăreață BASICă, după FOR să vină NEXT. E bine, e corect, e o cale cunoscută, prea cunoscută. Omoară inventivitatea.
Intelisense învață mai nou din ceea ce faci și cică pe măsură ce învață cu ce lucrezi, e tot mai bun în ceea ce îți propune.
Pentru neprogramatori e ca și cînd Wordul de poezii învață din toate poeziile scrise anterior că ești o fire tristă și va evita să-ți propună rime vesele. Sau din contră?…
A văzut el că de o vreme am cam scris o mulțime de FOR-uri, toate urmate inevitabil de NEXT (de fapt chiar verișorul lui bun, compilatorul, mă împiedică să am mai multă personalitate necompilînd codul mai îndrăzneț cu FOR fără NEXT).
Intelisense din VS.Net 2010 m-a psihanalizat, m-a citit, a acumulat, a reținut și acum mă ajută:
- să nu adorm
- să nu am prejudecăți
- să nu iau nimic de gata
- să fiu pregătit pentru situații neprevăzute
- să nu mă plafonez
- să învăț lucruri noi
- să fiu îndemînatic
- să îmi educ răbdarea.
Cum arată lucrurile în realitate:
Scriu FOR urmat de NEXT. Termin de tastat cuvîntul cu T și apăs pe spațiu: în arhaica tradiție BASICă vreau ca la NEXT să văd variabila după care se iterează, doar așa pentru cazul cînd FOR-ul e prea sus sau îmi joacă ochii pe indentări și vreau să știu pentru care dintre FOR-urile de mai sus o fi un anumit NEXT. Intelisense invocat de spațiul respectiv, cu toate statisticile și psihanalizele la zi, face un calcul simplu: “dacă îl las să facă NEXT se plafonează, ațipește, e mai probabil să introducă erori” așa că alege să mă trezească:
A reușit să-și atingă scopul: a căpătat întreaga mea atenție.
Nu înțeleg deloc ce înseamnă și de unde vine NextPrevFormat dar contrar intențiilor geniilor care au perfecționat intelisense din VS.Net 2010, nici nu mă simt tentat să învăț despre el. Nu l-am folosit în viața mea, nici nu îmi doresc și cu toate astea e trecut la secțiunea Common unde NEXT simplu nu apare. L-am văzut deja pe NextPrevFormat-ul ăsta de mult prea multe ori și aș prefera să nu existe (deși dacă nu ar exista el, ar exista NextPreviousPageField).
Încerc să șterg PrevFormat și binevoitor, mă lasă. Tastez din nou spațiu pentru că TREBUIE să pun acolo un i, nu rezist fără. Intelisense vede că sînt recalcitrant și își reafirmă personalitatea: NextPrevFormat.
Șterg din nou și repetăm. Cred că nu fac decît să-l întărît și mai tare și să-i confirm pentru viitor că îmi place mult NextPrevFormat-ul.
Cum pot pune acolo i-ul fără spațiu?? Am nevoie de un spațiu! Nu mă lasă nici din mouse să pun cursorul la dreapta unei linii (și deși există opțiune, nu mi-o doresc). Dau un Enter după T cu gîndul să revin sus și să pun i-ul. Degeaba, și cazul cu Enter e bine tratat și se pare că asta merit: NextPrevFormat.
Bine dar cum să fac totuși, doar nu o să caut undeva o linie cu NEXT i și să o copiez…
Nici nu mai știu cum am reușit să-l mint dar nu a fost deloc ușor.
Intelisensul “mai inteligent” e una din îmbunătățirile importante din VS.Net 2010, citată destul de des ca motiv de trecere la noua versiune. În viața reală el funcționează cam așa cum am povestit deși e drept că fără el viața reală ar fi totuși mai tristă.
Cu toate astea, există și motive de upgrade la VS.Net 2010. Una dintre alternative ar putea fi dezactivarea completă a intelisensului (nici nu știu dacă există opțiune pentru asta). Ne-ar ajuta pe toți ăștia învățați în huzur ca la final să trecem prin urechea acului mai ușor decît cămila din biblie. La viața noastră de apoi, la suferință și la puritatea ce-i urmează s-au gîndit cei de la Microsoft cînd au făcut specificațiile și trebuie să recunosc că și implementarea i-a ajutat.