Opublikowane 15 kwietnia 2017 4 minuty
bookmark_border

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?

Śmieszny obrazek 1

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.

Bartosz Wiśniewski

Full Stack do wszystkiego (serio). Z programowaniem mam do czynienia już od ponad 5 lat. Zajmowałem się tworzeniem aplikacji mobilnych i gier. Lubię Pythona, Go i JavaScript (ale tą dobrą stronę). Czasem buduję zabawki z Arduino.