Javascriptowe frameworki do UI, koniec 2019

Ten post został napisany ponad 2 lata temu, do wszystkich porad technologicznych w nim zawartych lepiej będzie podejść z dużą rezerwą, bo bardzo możliwe że tego rodzaju informacje są już nieaktualne.

Opublikowano: 10.01.2020

Ostatnia modyfikacja: 07.02.2024

javascript

rant

Z racji konieczności zawodowych musiałem pod koniec 2019 roku zapoznać się z kilkoma wiodącymi Javascriptowymi frameworkami UI. Doznałem przy tym niemałego zawrotu głowy. Oraz deja vu, do czego dotrzemy za chwię.

Don't do this at home

One wszystkie są niemal identyczne. React to jest zdaje się low hanging fruit i większość robi po prostu React ale lepiej. Tylko że jak się dowiedziałem u źródeł bliskich origin w React wcale nie chodzi o to żeby było lepiej, tylko o to, żeby było łatwo wdrożyć nowego developera, czyli to jest taki React ale gorzej. Albo inaczej weźmiemy z React to co w nim fajne i zrobimy z tego framework dla nikogo.

Ale spoko, ani mnie to ziębi ani grzeje, ja robię w pytągu i na Javascript staram się patrzeć przez pryzmat jego dobrych stron. Widziałem książkę (dość cienką) na ten temat, tak że jak sądzę nie jestem sam.

No ale jednak czasem muszę coś dziabnąć w tej jawie z krypty i tu się dopiero zaczyna. React - spoko, dam radę, tylko później się użerać z code splitting, żeby to nie było jakieś wielkie? Ja to robię sam, nikt mi tego nie obskoczy… To samo z Vue (Vue nie jest jak React i ja to doceniam). Sam się z tym będę użerał? Svelte… No nie wiem. Naprawdę nie wiem. Wygląda fajnie, ale jak zacząłem szukać jak zrobić proxy do backendu podczas developmentu to mi się odechciało. Jeszcze bardziej niż z Django i Pyramid. Znaczy, z Reactem i Vue.

Ale jak już porównałem React do Django, to mam również porównanie do Flask - to Preact. Jak dla mnie pisze się kod dokładnie tak samo jak pod React, ale paru rzeczy nie ma i w efekcie bundle to ułamek tego, co wychodzi z Reacta. Pod Flask tak samo się  pisze kod jak pod Django, tylko nic nie działa.

A że nie jest tak szybkie jak Inferno? Lel. Zapewne nawet nie zauważę. I końcowy użytkownik również nie. Tak samo jak zamienię backend na async czy w ogóle na Sanic.

Deja Vu

A teraz na chwilę powrócę do wspomnianego wcześniej deja vu, czyli po naszemu powidoku.

Ja to już widziałem. 10 lat temu było to samo z microframeworkami w Pythonie. A wcześniej w ogóle z web devem. Widzę to od 2005 roku, czyli od kiedy świat ocipiał na punkcie Django i Ruby on Rails. Potem były microframeworki, kolejny ocip na fali którego dostaliśmy Sinatrę i Flask, aż wreszcie gówniarze przejęli władzę nad pilotem w momencie gdy pojawiło się Node.js i wtedy już poszło z górki. Czy w dobrą stronę to zrób ls -l node_modules i po przeczytaniu listy pakietów wnioskując o ich funkcjonalności z nazwy sam sobie odpowiedz na pytanie czy to ma sens.

Czy to coś złego? Broń Boże. Tylko naprawdę nie ma się czym podniecać. Za rok czy dwa pojawi się nowy hajp i frameworki UI przestaną rozpalać wyobraźnię. Za rok lub dwa będzie wiadomo co jest sustainable w tej dziedzinie, natomiast pojawi się jakaś zupełnie nowa, o której nic nie wiadomo i tu się szarlataneria zapewne odnajdzie.

Na szczęście dopóki klient pali pieniędzmi w naszym piecu to nikt nie ma prawa nazwać tego marnotrawstwem.