Obiceiuri stupide în cărţile de IT

Pentru că acum citesc o carte de IT (ştiţi voi, carte de 800 de pagini care se citeşte în exact o zi), vreau să îmi exprim nemulţumirea în legătură cu nişte obiceiuri foarte proaste care apar în cărţile de IT (notă: conţinut cu puternic iz calculatoricesc) :

  • O interfaţă nu este pusă între două clase. Dacă afirmi asta, tot ce reuşeşti să dovedeşti este că nu înţelegi ideea, iar dacă mai departe scrii lucrurile corect nu te absolvă de la greşeala primordială. Pentru curioşi, interfaţa este reducerea la minimul funcţional cu care poate să lucreze cineva care foloseşte o anumită clasă. Interfaţa NU SE SCHIMBĂ de la utilizator la utilizator – doar, eventual, modul în care o foloseşti.
  • Introducerile ‘pe înţelesul tuturor’ în care (vezi mai sus) explici prost noţiunile. Pentru că cei mai mulţi dintre cei care citesc cărţile de IT sunt bătuţi în cap, nu o să priceapă decît exemplele tale care sunt evident greşite (chiar mai greşite decît învăţătoarea care îmi explica că nu se poate scădea 3 din 1 şi nici nu se poate împărţi 5 la 2).
  • Cărţile de IT dau deseori impresia pătrunderii unor adevăruri senzaţionale, mister unic descoperit de cititorul bătut în cap. Aşa că nu e de mirare că foarte mulţi propagă misticismul cărţilor de IT, făcîndu-le neclare, confuze şi evident inutile. De exemplu cartea lui Alexandrescu, prietenii ştiu de ce. (cartea aia e genială, dar nu are sens).

Citate exemplificatoare:

  • “In many ways a C++ class is like a firefighter”. Las imaginaţiei voastre explicaţia completă. În principiu, singurul motiv pentru care cineva ar zice chestia asta e pentru că poţi să te joci cu focul, dar nu văd cum o clasă C++ va răspunde la apelul disperat: “ARDEEEEEEEEEEEE”.
  • “Here is a subtle detail that I should mention. From the client’s viewpoint, reference counting takes place on the interface level rather than the component level. Remember the firefighter?”, da îmi amintesc de el, da’ nu pricep de ce se face reference counting pe un pompier. Dar îmi explică el: “Remember the firefighter? The client can’t see the whole component. The client can see only individual interfaces. Therefore, the client thinks of interfaces as each aving an individual reference count”. Acum e clar. Cînd sun pompierii le cer interfeţele, şi le fac AddRef pe fiecare din pompierii care-mi vin.Remember the firefighter?
  • “Rich people are edible” – În contextul în care C++ şi mai ales COM nu sunt comestibile. Ole!
  • “CFooPointer is pretty stupid for a smart pointer” – din nou, trecem de la prost la mai prost, dar mai complicat 🙂

În principiu, cărţile de IT se citesc în 4-5 ore, mă refer la cărţile serioase precum cele de COM sau cine ştie ce tehnologie misterioasă. De aceea cartea de IT este nepractic să o deţii – în principiu şade mai mult decît o foloseşti. Mai ales că lucrurile se schimbă… Şi repede…

Hai că vedem noi ce şi cum se întîmplă.

Comments

Obiceiuri stupide în cărţile de IT — 6 Comments

  1. Mie îmi displac în mod deosebit cărţile despre subiecte avansate care au un ton destinat celor de la şcoala specială sau celor care iau în mână o carte de programare pentru prima oară.

  2. Nici pe mine nu mă încîntă prea tare – mai ales pentru că dau o imagine prea simplistă şi iluzia stăpînirii unor domenii uneori prea vaste. Echilibrul trebuie păstrat întotdeauna. Întîmplător, cartea pe care o ironizam (Inside COM) nu este chiar atît rea pentru subiectul pe care îl abordează, dar sindromul e vizibil acolo. Şi deranjează.

  3. Reference count pe interfata??? Smart pointer??? Dude… lucrezi cu chestii foarte inapoiate… zau…. auzi sa imi numar singur cate referinte am… la o interfata… zau! Am auzit-o si p-asta, pai si aia care au scris chestia aia ce folosesti tu o interfata la.. ce fac? Taie frunze la caini? Nici macar sa numere referinte nu-s in stare? Doamne cati idioti.

    Noi va oferim un framework care va va face viata plina… si va va da de munca garla, pentru ca beneficiile frameworkului nostru sunt clar depasite de dezavantajele usurimii de folosire. Tana! That was smart.

  4. Hai mă, era vorba de ceva COM internals… cum e făcut COM-ul şi ce probleme rezolvă (de fapt niciuna prea importantă, dar în fine…) dar am reţinut faptul că clasele sunt ca pompierii… doua suflete pribegi.

  5. Din pacate nici un “scriitor IT” nu intelege ca dezvoltatorii de software sa zicem nu au timp de citit 10 carti de 800 de pagini pe luna. A scrie concis si eficient o carte de IT este un lucru “prea greu” de atins in ziua de azi, din pacate. Majoritatea incep prin generalitati, introduceri, un soi de documentatie, ca apoi sa scrie efectiv 1-2 capitole interesante sau la obiect, urmat de lungi anexe. Formatul “caramida” este inca la mare valoare, brosura disparand complet din peisaj.
    De-asta urasc cartile IT. Prefer articolele de pe net. Mai sint si gratis 🙂

  6. E clar că articolele sunt mult mai potrivite, numai că nu vin din aceeaşi nevoie de generalitate, şi adeseori sunt deconectate de cititorul lor – am avut nevoie de o carte de 800 de pagini (citite în 4 ore) pentru a pricepe astfel de articole.
    Formatul cărămidă o să mai supravieţuiască o vreme… să vedem cît.