”Credem că creăm sistemul pentru propriile noastre scopuri. Credem că o facem după imaginea noastră… Dar computerul nu este cu real ca noi. Este o proiecție a unei părți foarte mici a noastră: acea parte dedicată logicii, ordinii, regulii și clarității.”
Ellen Ullman,
Calculatoarele sunt la fel de comune ca șurubelnițele în ziua de azi, dar sunt ceva mai complexe și nu este întotdeauna ușor să le faci să facă ceea ce vrei tu.
Dacă sarcina pe care o aveți pentru computer este una obișnuită, bine înțeleasă, cum ar fi să vă arate e-mailul sau să funcționeze ca un calculator, puteți deschide aplicația corespunzătoare și vă puteți pune pe treabă. Dar pentru sarcini unice sau deschise, probabil că nu există nicio aplicație.
Aici poate interveni programarea. Programarea este actul de a construi un program – un set de instrucțiuni precise care îi spun unui computer ce trebuie să facă. Deoarece computerele sunt fiare proaste, pedante, programarea este fundamental plictisitoare și frustrantă.
Din fericire, dacă poți trece peste acest fapt și poate chiar să te bucuri de rigoarea gândirii în termeni cu care se pot descurca mașinile proaste, programarea poate fi plină de satisfacții. Vă permite să faceți lucruri în câteva secunde care ar dura o veșnicie manual. Este o modalitate de a face instrumentul tău computer să facă lucruri pe care nu le putea face înainte. Și oferă un exercițiu minunat de gândire abstractă.
Majoritatea programărilor se fac cu limbaje de programare. Un limbaj de programare este un limbaj construit artificial folosit pentru instruirea calculatoarelor. Este interesant că cel mai eficient mod pe care l-am găsit de a comunica cu un computer împrumută atât de mult din modul în care comunicăm unii cu alții. La fel ca limbajele umane, limbajele computerizate permit combinarea cuvintelor și expresiilor în moduri noi, făcând posibilă exprimarea unor concepte tot mai noi.
La un moment dat, interfețele bazate pe limbaj, cum ar fi prompturile BASIC și DOS din anii 1980 și 1990, au fost metoda principală de interacțiune cu computerele. Ele au fost în mare parte înlocuite cu interfețe vizuale, care sunt mai ușor de învățat, dar oferă mai puțină libertate. Limbajele computerului sunt încă acolo, dacă știi unde să cauți. Un astfel de limbaj, JavaScript, este încorporat în fiecare browser web modern și este astfel disponibil pe aproape orice dispozitiv.
Se pare că programarea este grea. Regulile fundamentale sunt simple și clare, dar programele construite pe baza acestor reguli tind să devină suficient de complexe pentru a introduce propriile reguli și complexitate. Îți construiești propriul labirint, într-un fel, și s-ar putea să te pierzi în el.
Depinde de tine să faci efortul necesar.
”Când acțiunea devine neprofitabilă, adună informații; când informația devine neprofitabilă, culcă-te.”
Ursula K. Le Guin,
Un program înseamnă multe lucruri. Este o bucată de text scrisă de un programator, este forța de direcție care face computerul să facă ceea ce face, sunt date din memoria computerului, dar controlează acțiunile efectuate pe aceeași memorie. Analogiile care încearcă să compare programele cu obiectele cu care suntem familiarizați tind să fie scurte. Unul care se potrivește superficial este cel al unei mașini – o mulțime de părți separate tind să fie implicate și, pentru a face totul să funcționeze, trebuie să luăm în considerare modurile în care aceste părți se interconectează și contribuie la funcționarea întregului.
Un computer este o mașină fizică, care acționează ca o gazdă pentru aceste mașini imateriale. Calculatoarele în sine pot face doar lucruri extrem de simple. Motivul pentru care sunt atât de utile este că fac aceste lucruri la o viteză incredibil de mare. Un program poate combina în mod ingenios un număr enorm de aceste acțiuni simple pentru a face lucruri foarte complicate.
Un program este o construcție a gândirii. Nu există costuri la construire, este lipsit de greutate și crește ușor sub mâinile noastre.
Dar dacă nu suntem atenți, dimensiunea și complexitatea unui program vor crește scăpate de sub control, derutând chiar și persoana care l-a creat. Menținerea programelor sub control este principala problemă a programării. Când un program funcționează, este frumos. Arta de a programa este abilitatea de a controla complexitatea. Marele program este micimea lui – simplificat prin complexitatea sa.
Unii programatori cred că această complexitate este cel mai bine gestionată folosind doar un mic set de tehnici bine înțelese în programele lor. Ei au alcătuit reguli stricte („cele mai bune practici”) care prescriu forma pe care ar trebui să o aibă programele și să rămână cu grijă în zona lor mică de siguranță.
Acest lucru nu este doar plictisitor, ci și ineficient. Problemele noi necesită adesea soluții noi. Domeniul programării este tânăr și încă se dezvoltă rapid și este suficient de variat pentru a avea loc și abordări extrem de diferite. Există multe greșeli groaznice care se pot face în proiectarea programelor și ar trebui să continuați și să le faceți astfel încât să le înțelegeți. O idee despre cum arată un program bun este dezvoltarea sa în practică, nu învățarea dintr-o listă de reguli.
Sursa: Marijn Haverbek, Eloquent JavaScript, licența CC BY-NC 3.0. Traducere și adaptare: Nicolae Sfetcu
Lasă un răspuns