( TCH | 2021. 02. 26., p – 20:53 )

Ma is lehet olyan weboldalt készíteni (szoktam is), ami méretben és egyszerűségben megegyezik a 20 évvel korábbi társaival, de az ugyanannyit is fog tudni: szöveget megjeleníteni egy-egy képpel. Ha azonban több funkcióra van szükség, akkor nagyobb lesz az oldal mérete, ebben nincs semmi meglepő.

Nagyobb lesz, de ennyivel? Ez a pszeudoprogresszívek fals dilemmája, hogy ha több funkció kell, akkor az sokkal több kódot jelent. Hát nem. Komplett webes vállalatirányítási rendszereket fejlesztettem le, amiben töméntelen RT funkció és segédeszköz volt, a JS kód meg még egy C64 memóriáját sem töltötte volna meg. Az előző melóhelyemen én csináltam egy autonóm beléptetőpanel szoftveres részét és volt webes backend, annyi beállítással, funkcióval, szenzoradattal, ami egy karácsonyfának is sok lenne, a JS kód pedig 17.3 kB. Nemrég volt egy próbafeladatom, ahol egy kereshető sorrendezhető táblát kértek, jQuery-vel és táblapluginekkel; a jQuery alaphangon 90k, a táblapluginek meg többszáz kilósak. Én kevesebb, mint 8k-ból megoldottam a JS részt. És még többet is tudott, mint egynémelyik soktízkilós táblaplugin, ami jó esetben egy mezőre tud szűrni, vagy rendezni.

Szóval rohadtul nem indokolt, hogy ennyire baromi sok kódból oldjanak meg dolgokat. Egyszerűen csak a webkettő úgy néz ki, hogy a divatkeretrendszereket használni kell és punktum.

A mai web egy teljes platformmá nőtte ki magát, akár Quake 3 is fut egy átlag böngészőben, ami elég elképesztő, ha megnézzük honnét indult az egész.

Ja, tényleg elképesztő, csak épp almát hasonlítunk a körtével; nem a Q3 JS verziójával van baj, hanem azzal, amikor ötven JS keretrendszert használnak egyszerre.

A web meg elég nagy ahhoz, hogy mindkettő elférjen egymás mellett. Ha egy sima blogot olvasok, elvárom, hogy egyszerű és kis méretű legyen, hiszen csak szöveget jelenít meg végeredményben.

Csakhogy a blog alatt is többszáz kB JS fog futni, mert csak.

Ha azonban valami komolyabb szolgáltatást használok online, akkor nem csodálkozok, hogy szükség lesz hozzá JS-re is, hiszen annyi funkciót tud, amiért korábban egy külön programot kellett volna letöltenem a gépemre és offline futtatnom.

Nem. Ld. a válaszom első szakaszát.

Mutass egy olyan oldalt, ahol több MB-nyi JS kell egy alapvető funkcióhoz (valami nagyon elszúrhattak rajta).

Ott a youtube. Már egy sima oldalt sem kapsz JS nélkül, mert 100% JS render az egész. Pedig valamikor még letiltott JS mellett is ment. Aztán ilyen nyalánkságok vannak benne, hogy egy URL visszaadásához is többtíz kilónyi JS hegyeket kell futtatni.

Mellesleg az összes JS-bundler kiabál, ha pár száz kB-nál nagyobb lesz a végső csomag mérete.

Biztos érdekli a webkettő gányereket.

A Python még azelőtt született, hogy rájöttek volna: egy nyelvhez kell gyári csomagkezelőt is mellékelni, hogy sikeres legyen. Azonban az évek során szépen lassan kiforrott a dolog, sok Python csomagot használok, meg fejlesztek is Pythonban, nem szoktam problémába ütközni.

Jó neked. Én meg szívok vele, amikor kitalálja a buildsystem, hogy a pip-en keresztül rakjak fel Wheelt, meg utána Meson-t, meg Ninja-t, meg mittudomén, az egyik ezzel nem kompatibilis, a másik azzal, a Debian Team meg felrakott egy olyan Meson-t a repoba, amihez Python 3.5 kell, Pythonból meg 3.4-et raktak fel...

A bicska néhány pengéje élesebb, mint bármi más, ezért akarják máshol is használni őket.

Mondom kicsorbult svájci bicskát.

Ott van pl. a CSS flexbox, amivel triviális különféle elemeket tetszőlegesen elrendezni, ami alapvető funkció egy GUI-nál. Minek akarjon valaki megtanulni egy tök más megoldást erre, ha ez már bevált és könnyű használni?

Hogy minek? Hogy ne kelljen a szemetéhez egy komplett webes rendering backend, talán annak.

Az Electron-nal írt programok nagy része nem is csinál mást, kvázi ugyanúgy néz ki, mint egy weboldal.

És annyit is zabál, mint egy JS-sel telibevert oldal. Ezt még te sem tagadtad, hogy az Electron egy bloatgenerátor, sőt te hoztad fel példának.

Sokan pont ezért választják, hogy nagyrészt közös kódbázissal megoldható legyen a multiplatform kiadás.

És én mit mondtam az elején? Ezt: "Megírják a kóderek úgy, hogy minden mainstream izén fusson, de teszik ezt elfuserált nyelvekkel és bloated futási környezetekkel, könyvtárakkal, keretrendszerekkel, amik iszonyat konvulens - túlmérnökölésnek is csak borzalmas jóindulattal hívható - módon oldanak meg mindent, hurcolják magukkal a sokszáz MB-ra, vagy akár GB-okra rúgó függőséghalmaikat, de nem számít, csak fusson windózon, macOS-en, Linuxon, vagy az okostelefonokon, vagy a browserekben."

Örülök, hogy konszenzusra jutottunk.