koodi­joulu­kalenteri 2023

Hou, hou, ja vielä kerran hou, tervetuloa koodijoulukalenteriin. Huomaathan, että avattuasi luukun pääset klikkaamalla syvemmälle luukun syövereihin.

Varoitus: tontut huomaavat, jos kurkit luukkuihin etukäteen. Joulun taika päivittää kalenterin joka aamu kello 05:00:05, mutta voit varmuudeksi toki rynkytellä reloadia!

Kiltteystaso: viaton

Aikamoisia aikakirjastoja

Antropomorfiset kellot keskustelemassa ajasta Greenwichin meridiaanilla.

JavaScriptin aikojen ja päivämäärien hallinta Date-pökäleellä on aina ollut täysin holtitonta. Se johtuu siitä, että JavaScriptin toteutus perustuu Javan ensimmäisen betaversion bugiseen läjään, josta Java luopui joskus 1990-luvun puolella.

Ei siis ihme, että niin kauan kuin muistan, on ollut pakko käyttää kolmansien osapuolten kirjastoja. Ja koska aika on aika vaikea asia mallintaa - aikavyöhykkeet esimerkiksi eivät ole kiinteitä vyöhykkeitä vaan historiallinen tietokanta ajasta eri aikakausilla - kaikissa kirjastoissa on omat kommervenkkinsä.

Uusi sisäänrakennettu Temporal-toteutus on tulossa, mutta se on ollut tulossa viimeiset kymmenen vuotta, joten saapa nähdä. Siihen saakka käytetään jotakin muuta.

  • Moment oli pitkään "se" kirjasto huolimatta mutaabeliudestaan ja muista ongelmistaan. Onneksi ei enää vuosiin.
  • Luxon on Momentin tekijöiden uusi näkemys aiheesta. Mielestäni siinä on kiva rajapinta ja se on toiminut OK. Koodikalenteri käyttää Luxonia.
  • DayJS on kamala, koodinlaadullisesti jopa vaarallinen. Vältä kuin julkisia käymälöitä punatautiepidemian aikana.
  • Date-fns on funktionaalisen ihmisen valinta. Se pyrkii hyödyntämään natiivia datea, mikä rajoittaa kirjastoa.
  • js-Joda on hyvän Java-aikakirjaston käännös jäsälle. Olen kuullut tästä hyvää, mutta en ole itse perehtynyt.
  • React Spectrum Internationalized lupaa olevansa lähellä tulevaa Temporalia. Hieno lupaus, jos pitää paikkansa.