[HN Gopher] You don't (may not) need Moment.js ___________________________________________________________________ You don't (may not) need Moment.js Author : thunderbong Score : 43 points Date : 2021-09-18 18:57 UTC (4 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | throw_m239339 wrote: | You don't need all those small libs but apparently React is | mandated in every shop now... the JS community is a joke. | | Where is the "you don't need React" website/repo again? | honie wrote: | I was wondering if you would mind being a bit more specific | about your criticism towards React and the JS community? | | If you know React well, it seems like there are things that | everyone can learn from or think about. Would you use vanilla | JS or other frameworks and why? | imbnwa wrote: | People don't use React because the magnitude of managing the | view update code is so large and/or complicated that diffing a | reified DOM tree in toto is superior (I've seen it used for an | app that consisted of a few screens with some text and a button | each), its become standard so everyone learns one interface and | development is normalized across shops. This has the benefit of | a flourishing component ecosystem. | throw_m239339 wrote: | > its become standard so everyone learns one interface and | development is normalized across shops | | An industry using the exact same framework (for a time, it | never lasts) doesn't make that framework a "standard". jQuery | was also "a standard" by the same logic. | 8note wrote: | A standard choice, rather than run by a standards committee | imbnwa wrote: | Yes, thank you | sam_goody wrote: | JS has been moving forward with a new Date/Time API called | Temporal[1]. | | I haven't had a chance to use it myself, but a friend dropped | Moment.js for it (I think to keep the browser from adjusting the | date to the local time). | | New APIs (and hence, Temporal) are the type of things that if you | don't know about, you can easily miss and go straight to a | library for. | | [1]: https://2ality.com/2021/06/temporal-api.html | wruza wrote: | Oh wow, someone finally took it serious. Everyone: visit the | link if you didn't yet. Abstract dates, durations, easy dmy | math, mostly everyday developer-friendly. Dates are one of | these computer topics that seem familiar (just like numbers in | a floating point form) but are hard to operate on. And if the | language's core date/time library is poor man's one, it's | better to not have it at all. | smichel17 wrote: | How do they compare to Luxon? | merb wrote: | they might get built-in https://caniuse.com/temporal? | (https://tc39.es/proposal-temporal/docs/) | (https://github.com/tc39/proposal-temporal) | | > NOTE: Although this proposal's API is not expected to | change, implementers of this proposal MUST NOT ship unflagged | Temporal implementations until IETF standardizes | timezone/calendar string serialization formats. See #1450 for | updates. | | it's basically already accepted. Stage 3 means it's basically | ready for a preview implementation and stage 4 means passed | for "official" ecmascript inclusion | guptaneil wrote: | Shameless plug: if you're looking for natural language date | parsing, check out Sherlock.js - | https://github.com/neilgupta/Sherlock | | Otherwise, definitely try native APIs first for straightforward | date manipulation. | AdrianB1 wrote: | I love the approach. I would love to see a good quality "You | don't need jQuery" out there; people talk about that, but I never | found something to tell what to use instead and why, just generic | "use JavaScript for DOM manipulation" (fair) and "use one of the | alternatives for AJAX" (which one?). | | Is there anything like this planned for "You don't need"? | steve_adams_86 wrote: | The Ajax alternative is fetch, the native browser API which has | excellent polyfills for the server which enable JavaScript to | be isomorphic and dynamic to users and search engines. | Basically your code will run as expected on the client or | server, so fully rendered pages can be served - even if it | needs to call an API to populate content. | | https://youmightnotneedjquery.com/ Is this the kind of thing | you were mentioning? Maybe it's been a while, but if you Google | "you don't need jquery" you'll find plenty like this and it | seems to explain well enough. | ptx wrote: | The post-jQuery native browser APIs that were added to support | those use-cases are _querySelector_ for querying the DOM and | _fetch_ for AJAX (assuming you don 't need the X part). | buster wrote: | I'd be interested, in what constitutes a performance sensitive | web application... is it a full fledged 3D game renderung | thousands of time strings per second? Or .... ? | mimsee wrote: | These days facebook.com could be considered as one. | dSebastien wrote: | Established projects using Moment.js a lot might have a hard time | migrating to something else. Quite unfortunate because there are | now much nicer / better optimized libraries/APIs out there today | like date-fns, the new Temporal API, Luxon, etc. | | For those still stuck with Moment, it's worth exploring means to | reduce the impact on bundle sizes. I wrote about that a while | ago: https://dsebastien.net/blog/2020-07-12-removing-moment-js- | lo... | Alex3917 wrote: | Day.js is basically a drop in replacement, and is 97% smaller. | You still need to regression test, but imho it's one of the | highest impact ways to spend a few hours if you care at all | about performance. | binarymax wrote: | Considering moment.js says[0] you should actively consider | alternatives instead of it, I can't disagree. But I do like the | breakdown of what to use when instead! | | [0] https://momentjs.com/docs/#/-project-status/ | amarshall wrote: | In fact, Moment's post links to the OP here. | armchairhacker wrote: | What's the state of cached ES module imports? | | The ultimate goal is, your <script>s are modules, and import | their dependencies from a common CDN like unpkg. The browser will | cache the import, so that large common imports are rarely | actually fetched. Dependencies would have their own cached | dependencies as well (although this would sharply decrease | efficiency without extra coordination between client / server for | bulk fetching). | | This would significantly reduce MB-large JavaScript files because | most of that code is shared general libraries. Even if you use a | huge library like core.js with no tree shaking, it's no longer an | issue, as long as many others are also using core.js. | | I do know that module scripts can import from remote sites, and | unpkg with the experimental '?module' resolves imports in unpkg | modules to other unpkg modules. I also know that browsers are | very good at caching modules. I doubt browsers are smart enough | to bulk fetch multiple unpkg dependencies in one request. | | Does anyone have more experience with, in general, trying to | cache large JavaScript imports? | doliveira wrote: | Even before the current rules partitioning cache by domain, has | the promise of those cached scripts ever paid off? Even when | every website would use just jQuery, everyone had a different | version, getting it from a different CDN, etc... | realityking wrote: | > The browser will cache the import, so that large common | imports are rarely actually fetched. | | Cross site caching is dead. Safari hasn't supported it in years | and Chrome recently dropped it as well. It's better to hold all | assets on your domain to avoid TCP and TLS overhead. | | Here's a blog post with more details about Chrome's change: | https://www.stefanjudis.com/notes/say-goodbye-to-resource-ca... | extra88 wrote: | Looks like Firefox also made it the default in January with | version 85. | | https://developer.mozilla.org/en- | US/docs/Web/Privacy/State_P... | qvq wrote: | > I doubt browsers are smart enough to bulk fetch multiple | unpkg dependencies in one request. | | https://github.com/WICG/import-maps/issues/209 | dexwiz wrote: | I implemented a date time library for JS a few years ago and took | heavy inspiration from java.time. My conclusion is that the time | zones are the hardest part of the whole thing. Time zones are | defined by political entities that doesn't give two cents about | implementing them. Also there is a huge variance in their details | so just because you understand time zones in X country, don't | assume that knowledge is universal. Some of my favorites are | timezone changes at midnight, so 1159>1am, meaning some days lack | a midnight. Also some Muslim countries switch back to normal time | for Ramadan, which means up to 4 changes in a single year. | | Also anyone trying to sell "Midnight GMT" as a date only format | is in for a world of trouble down the line. ___________________________________________________________________ (page generated 2021-09-18 23:00 UTC)