Jump to content
Kurt Lekanger

Endring i Javascript-pakke med én kodelinje fikk konsekvenser for millioner av prosjekter verden over

Recommended Posts

Det er gjort flere endringer i is-promise for omtrent to uker siden, det var angivelig for å få kompatibilitet mot det nye modulsystemet, ES modules.

For de som er spesielt interessert kan man se endringene på Github :

https://github.com/then/is-promise

  • Like 2

Share this post


Link to post
Guest Slettet+987123849734

Alle disse bibliotekene er ofte basert på ganske gamle problemstillinger. Synes man idag skal være kritisk å ta i bruk alt mulig av biblioteker bare fordi det er de man kan. Javascript har endret seg betraktelig og veldig mye av det biblioteker løste er irrelevante problemstillinger idag. Har sett altfor mange ganger folk laster f. Eks jquery for å løse en helt enkel oppgave som du kan løse med like mange linjer javascript som jquery. Det eneste du oppnår er rotete kode og 3.parts avhengighet og noe som er tusen ganger verre å debugge.

Share this post


Link to post
mittvisningsnavn skrev (4 timer siden):

Det eneste du oppnår er rotete kode og 3.parts avhengighet og noe som er tusen ganger verre å debugge.


Samt støtte i eldre nettlesere, som jo er hovedgrunnen til at slike biblioteker eksisterer.

is-promise brukes for eksempel i React og Angular, nettopp fordi nettlesere som Opera Mini, IE11 med flere ikke støtter A+ promises, nettlesere som enkelte enda bruker.

Skal man lage ting for den virkelige verden, så er det ofte et krav at det funker i litt mer enn de aller nyeste versjonene av nettlesere.

  • Like 4

Share this post


Link to post
Guest Slettet+987123849734

Støtte for eldre nettlesere er så og si meningsløst idag om du ikke driver med veldig spesielle caser, enten lager til offentlig sektor og de tror at de fortsatt bruker ie eller at du lager noe som skal kunne brukes på en utdatert piratversjon av Windows xp. Det har vært standardisert i så mange år nå at det er på tide å gå videre.

Man kan gjerne bruke biblioteker, men man bør ha like stor kunskap om javascript og hvordan man selv kan skrive funksjonaliteten sånn at man faktisk kan avgjøre om det er hensiktsmessig å importere biblioteker eller ikke.

Når folk tror at jquery er javascript og at det må brukes for å legge til eller fjerne en css klasse på et element, så har fokuset på bruk av biblioteker tatt helt overhånd.

Share this post


Link to post
8 hours ago, BjartmarO said:

Vann på mølla for de som mener at internett er holdt sammen av tannpirkere og tyggegummi.

Ikke glem gaffateip nå da.

  • Like 1

Share this post


Link to post
1 hour ago, 0laf said:

Skal man lage ting for den virkelige verden, så er det ofte et krav at det funker i litt mer enn de aller nyeste versjonene av nettlesere

La meg gjette: "aller nyeste versjoner" betyr versjoner laget de to siste årene.

Folk bør virkelig orke å oppdatere nettleseren av og til eller finne en annen hvis den ikke blir oppgradert.

Å stryke alle med hårene i alle sammenhenger er ikke en løsning på noe som helst.

 

Share this post


Link to post

Typiskt at folk synser om kva software utvikling burde vera, når det openbart ikkje er konsistent med verda... :) 

Folk flest her kjøpe vel kjøttdeig i butikken, eller egg, eller mel? Dykk går vel ikkje ut og slakter kyr så dykk har middag ut uka, eller drifter høns så dykk har egg, osv. Eg byrja vidare med eit eksempel om bil, men der inngår det så mykje subkomponenter at eg kan skriva bok om det.

3. parts kode er ikkje annleis. Nokon andre har gjort ein del av jobben for deg. Og dei har gjerne betre erfaring med det enn deg. 3. parts kode gjer ikkje ting meir rotete, eller verre å vedlikehalde, eller debugge. Det gjer det vesentlig enklare.

Når det angår nettlesere er det vel rakende likegyldig kva dykk meine. Prosentfordelingen blant nettlesere er offentleg informasjon. Dykk kan meina kva dykk vil, men tar dykk den holdninga med dykk til software utvikling får dykk sparken, for verktøy som babel har jo for lenge siden invalidert ein så bakvendt tankegang.

  • Like 2
  • Innsiktsfullt 1

Share this post


Link to post
mittvisningsnavn skrev (1 time siden):

Støtte for eldre nettlesere er så og si meningsløst idag...


Okey, er helt uenig, desto flere nettlesere man kan støtte, desto bedre, de aller fleste større nettsider kan ikke bare støtte seneste Chrome, men må funke i så å si alt av nyere nettlesere, fra rundt IE9 og opp.
 

mittvisningsnavn skrev (1 time siden):

Når folk tror at jquery er javascript og at det må brukes for å legge til eller fjerne en css klasse på et element, så har fokuset på bruk av biblioteker tatt helt overhånd.


jQuery ble laget i en tid når det var en enorm oppgave å få noe som helst cross-browser, i dag er JavaScript oppdatert til å ligne mer på jQuery enn det var tidligere, QuerySelector er jo nærmest som hentet rett ut av jQuery, XMLHttpRequest funker overalt osv. for å ikke snakke om ting som Fetch og sockets.

Jeg ser ingen problemer med å bruke jQuery dersom man ønsker det, men er enig at utviklere først og fremst bør forstå plain JS.

Biblioteker har jo åpenbart sin plass, ting som React, Angular, Vue og annet brukes jo omtrent "overalt" i dag, selv om de fleste utviklere sikkert kan gjøre den samme jobben uten slike bibliotek, men for de som jobber i den virkelige verden så tar man den hjelpen man kan få, det er ikke noe poeng å sitte å skrive sine egne hjelpfunksjoner for helt trivielle ting, når man kan hente inn den samme funksjonaliteten, ofte bedre skrevet, i biblioteker, unntak er dersom man ikke aner hva man driver med å inkluderer en haug med skrot man absolutt ikke trenger.

Personlig er jeg ikke noen stor fan av slike biblioteker, bruker hverken React eller Angular, å sjelden jQuery, men jeg har ingen problemer med å forstå at webutviklere som er avhengig av å få noe gjort, og å lage ting som funker på mange plattformer, i mange nettlesere, bruker tredjepartskode.

Edited by 0laf
  • Like 2

Share this post


Link to post

Klart biblioteker er nyttige, og det er ikke bare ræva språk som JavaScript som har dem. Rust og Haskell, for å nevne noen, bruker alle masse små biblioteker. 
 

Problemet her er at man i JavaScript-land har en kultur for å pakke de mest trivielle ting inn tredjepartsbibliotek. 

Edited by scav-

Share this post


Link to post

Det handler ikke om å unngå 3.part kode men å vurdere kost/nytte. Om 3.parten er én enkelt linje med kode så blir det rett og slett for dumt å bruke..

Share this post


Link to post

Forstår heller ikke frontend-miljøts insistens på å ikke låse ned versjonene på avhengighetene sine.

Vilkårlige endringer på npm-pakker, ofte enkeltpersoners hobbyprosjekter, dras ukritisk ned compile-time. Vet jo aldri når nye bugs kommer inn, eller bygget ryker i et node-prosjekt.

Share this post


Link to post

Kost/nytte/risiko. Plutselig sitter man plutselig med et rammeverk som ikke har blitt oppdatert på to år, og så er det en linje kode som slutter virke etter siste oppdatering av Chrome, midt inni et større rammeverk som ingen i bedriften har vært med på å utvikle...

Når det er sagt, så likte jeg jQuery. Smidig lite rammeverk som gjorde dynamisk innhold enklere. Men vi har allerede måtte byttet ut en rekke biblioteker som bare stoppa utviklinga opp. Så også jQuery UI. I hvilken grad jeg liker React og Material-UI er en annen diskusjon, som jeg ikke orker ta. 

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...