Am și eu o propunere: în clasa întâi, programa la matematică să înceapă cu ecuații de gradul 2, ce ziceți? Eu zic că le sunt foarte utile elevilor, iar pe parcurs pot învăța și adunarea, înmulțirea sau ridicatul la putere.
Sună stupid? La fel de stupid sună și cei care recomandă începătorilor Bootstrap sau orice alt framework înainte ca aceștia să stăpânească limbajul / limbajele folosit(e) de framework-ul respectiv.
Am impresia că mulți dintre voi sunteți prea tineri pentru a vă da cu părerea, așa că am să vă spun o poveste:
Se făcea că acum 10 ani, noi, cei ce făceam front-end, știam foarte bine HTML & CSS (pentru că trebuia, nu de alta, având în vedere că pe-atunci aveam plăcerea de a face site-uri pentru IE 6, 7, FF2 iar Chrome nu exista nici măcar în stare embrionară), dar asta ne mânca tot timpul și puțini am apucat să învățăm JavaScript / DHTML - pur și simplu JS nu făcea parte din cerințele obligatorii pentru un client-side developer[1]. Efectiv, pe vremea aia trebuia să luăm în calcul faptul că vizitatorul s-ar putea să fi dezactivat în mod conștient / intenționat JS-ul în browser-ul său, atât de opțional era JS-ul.
Apoi, prin 2006, s-a întâmplat una din următorele (gen ou VS. găină):
- A început să li se ceară oamenilor de pe front să facă JS și atunci a apărut jQuery pentru a le ușura munca
- A apărut jQuery și atunci le-a fost mai ușor oamenilor de pe front să scrie JavaScript
Cert este că mulți care abia aveau habar de JS au început să implementeze cod jQuery, în foarte mare parte sub formă de copy & paste sau plugin-uri. În felul acesta au apărut nenumărate capodopere de genul (printre multe altele, care mai de care mai stupide)
var someValue = $(this).val(); // <- într-un 'event handler'
în loc de mult mai naturalul și eficientul
var someValue = this.value;
pentru că oamenii nu prea înțelegeau de fapt ce voodoo face jQuery acolo. Adică, în loc să citești valoarea unei proprietăți de pe o instanță, trimiteai instanța unei funcții care determina ce tip de parametru a primit, apoi construia un obiect jQuery populat cu un singur nod într-un array
privat, după care apelai o altă funcție de pe obiectul nou creat care extrăgea primul element din acel array
, îi citea valoarea unei proprietăți pe care o returna în cele din urmă codului care a invocat-o… Mi se pare normal să alegi calea mai lungă, nu? E mai inginerește așa! Asta în niște browsere cu engine-uri JavaScript cât se poate de primitive…
Oamenii ăia se împart acum în 2 categorii:
- Cei care au învățat efectiv JavaScript, care înțeleg că nu-i ok ce s-a întâmplat și care în ziua de azi NU recomandă Bootstrap începătorilor
- Cei care s-au complăcut, nu i-a interesat, și trăiesc și-n ziua de azi cu impresia că ei sunt profesioniști în domeniu. Acei oameni zic DA, Bootstrap e soluția pentru un începător, la fel cum jQuery a fost pentru ei.
Există cel puțin o persoană din prima categorie care activează pe forum și care cred că-i sătul deja de câte ori l-am dat ca exemplu cu faza de mai sus (wink, wink, tizule), dar este un exemplul concret și cred că mulți ar avea destule de învățat din experiența lui.
Zicea careva mai sus că el e de părere că e inutil să re-inventeze roata… Eu zic că-i mai bine să înveți întâi fizica ce stă la baza funcționării unei roți, să poți inventa o nouă roată dacă e cazul, decât să n-ai habar ce se întâmplă. Nu zic să nu folosești o roată existentă, zic doar să înveți destule despre ea încât să n-ajungi s-o folosești pe post de elice!
[1] client-side developer
Pe vremuri, încă mai foloseam denumirile corecte:
-
client-side
- rulează pe client
-
server-side
- rulează pe server
-
front-end
- interfața publică
-
back-end
- panoul de administrare, CRM sau orice altă unealtă internă