Ce intrebi tu e asa:
Exista diferente mari intre
- o ciorba de legume
si
- doua cepe, 3 cartofi, 3 morcovi
?
Ciorba e ciorba deja facuta. O poti manca direct, dar nu e garantat ca le va place tuturor. Iti taie foamea mai repede, dar ciorba gata facuta e greu de dres ulterior, daca ti se schimba gusturile. Pentru ca ciorba gata facuta (hai sa-i zicem ciorba la plic) a fost facuta pe gustul celui care a gatit-o.
Asa si cu folosirea de frameworks: daca faci o aplicatie simpla, e ok sa folosesti frameworks fara sa te gandesti la vendor lock-in. Dar daca faci ceva complex, care trebuie extins si mentenat zeci de ani, atunci <limbaj-X> pur e mai bine.
Nu e nevoie sa scrii “vanilla js”, limbajul e acelasi, si e unul singur - angular 2 sau orice alt framework nu e un nou limbaj, e fix acelasi limbaj.
E o simptoma comuna in randul novicilor: vad frameworkurile ca the holy grail. Ori nu e asa.
Vendor lock-in nu e de ici de colo, e o problema grava in orice proiect serios. Continuand analogia cu ciorba, vendor lock-in e ca si cand bucatarul ciorbei a pus prea mult bors in ea. O fi ea buna pentru anumiti clienti, dar daca tu o iei si o pui pe masa si o vinzi ca fiind a ta, s-ar putea ca nimanui sa nu-i placa si sa dea vina pe ghici cine? Pe tine.
Deci e vreo diferenta intre ciorba la plic si ciorba facuta de tine? Nu, nu este, abstract vorbind: e tot ciorba.
Angular e un framework scris in javascript, deci daca folosesti doar javascript, ai toata libertatea de miscare. Daca folosesti si angular, pe langa javascript, atunci s-ar putea sa te legi in locuri care nu te dor.
Aplicatiile serioase se fac in layere, layere in care izolezi lucrurile specifice aplicatiei tale de orice fel de frameworkuri, pentru a evita vendor lock-in. Vezi raspunsul meu anterior pentru completari. Pentru informatii aditionale, urmareste de cateva ori: