Oh web development
Od zawsze uważałem, że aktualny stan web developmentu jest zły. Połączenie HTML, CSS i JavaScriptu jest złe. To orkiestra złożona z Skrillexa, Metallicy i Jana Sebastiana Bacha.
Ostatnio spróbowałem użyć Single File Components w Vue.js. Niestety wiąże się to z dodaniem etapu budowania aplikacji i narzędziami, które według mnie są okrutne. Oczywiście wszystko na końcu się popsuło i nawet wtyczka Vue nie potrafiła ogarnąć się w swoim własnych bałaganie. Zatem w tym poście postaram się przedstawić błędy JavaScriptu i reszty technologii wokół stron internetowych. My Polacy umiemy narzekać.
O najnowszym JS
Sam najnowszy JavaScript jako język jest śliczny. Weźmy sobie na przykład metody tablic. Metoda some() jest naprawdę prosta w swoim działaniu, ale jest przez to super. Taka komenda Linuxa, tylko że bez jakiś niewiadomych parametrów.
Miałem tutaj napisać listę fajnych rzeczy w JS, ale jest ich po prostu za dużo.
Kompatybilność
A raczej jej brak.
Czasem nawet kiedy mówią, że jest to jej nie ma. Dla przykładu Google z swoim Polymerem.
When released, Polymer 2.0 should support the same set of browsers as Polymer 1.x—IE 11, Edge, Safari (9+), Chrome, Opera and Firefox.
Dziwne, że apka, którą napisałem sobie (oczywiście na Chromie) okazała się zupełnie nieużywalny dla Edge i wyglądała nie tak powinna na Firefoxie.
Narzędzia
Większość projektów Javy korzysta z Mavena albo z Gradle, który korzysta z repozytoriów Mavena, więc w sumie nie ma różnicy.
Projekty JavaScriptu nie znają granic. Tak tylko rzucę: Babel, Gulp, Grunt, Browserify, webpack, npm, bower, requirejs no i nie zapominajmy, że każdy szanujący się framework powinnien mieć swoje CLI: Polymer, Ember, Vue, Angular... ale nie zapominajmy o lintach, uglify, SASS i wielu innych.
Ilość i jakość tych narzędzi to problem, szczególnie, że nie są one zazwyczaj proste w konfiguracji. Spring Boot jest łatwiejszy, co chcesz używać to dodajesz jako zależność w Gradle i już możesz tego używać. Jakim cudem Java robi to lepiej?
Próg wejścia
Każda technologia ma próg wejścia, czyli punkt w którym umiemy już z niej korzystać. Ten nowoczesny web development ma ten próg zawieszony bardzo wysoko. Ilość narzędzi, standardów, problemów z kompatybilnością i koncepcji --- jest źle.
Ciążąca przeszłość
Nawet głupi HTML jest dziwny. Raz używamy href
raz src
. CSS mimo swojego wieku dalej nie ma jakiejś hierarchii, powiadomień o błędach a jego działanie jest często nie do przewidzenia.
Chyba każdy się złapał na animacjach przy zmianie pola display
z none
. Dlaczego?
Jeśli wszyscy korzystamy z SASSa to czemu go nie dodamy do przeglądarek?
Monopol
JavaScript ma monopol jeśli chodzi o frontend i chyba nie muszę nikogo przekonywać, że nie jest to korzystne dla kogokolwiek.
Jestem odkrywczy?
No nie. Już 7 lat temu wszyscy wiedzieli, że frontend jest zły ze względu na swoją koncepcje.
Nie jestem sam! Oto moi współplemienncy: to tylko wyniki wyszukania.
EOF
Jesteśmy skazani na to cierpienie. Pomoc szybko nie nadejdzie, choć nadzieja nie jest jeszcze martwa. Ciągle powstają projekty, które mają zastąpić JavaScript kompilując się do niego: Dart, TypeScript, Go przez GopherJS, Spider.
Niektórzy lubią ten świat, ale ja bym powiedział, że jest to po prostu syndrom sztokholmski. Ludzie tak się do tego przyzwyczaili, że już nie zauważają błędów.