Since Node.js came out, a fullstack developer could know just one language - JavaScript and later TypeScript - to write the entire code base. There are many professional software developers today who don't even know any other language. WebAssembly is going to completely disrupt this and it's time to learn low level systems languages, out of which Zig is an interesting choice for many reasons.
JavaScript's native date API is rather weak. Actually, the Date() object has been a long-standing pain point in ECMAScript. It comes from ideas taken from the java.util.Date (sic!) package, which became obsolete back in 1997! It has many limitations - just to name a few: - it only supports UTC and the user’s PC time, - it doesn’t support non-Gregorian calendars, - string to date parsing is error-prone, - Date objects are mutable It is possible to use external libraries, but it's an additional payload which is not always desirable, and is non-standard. But there's good news! New Temporal static global date object, that acts as a top-level namespace (like Math), is at Stage 3 Candidate Proposal in the TC39 standards approval process (the final stage before implementation). The Temporal fixes these above-mentioned Date() problems by: - Providing easy-to-use APIs for date and time computations - First-class support for all time zones, including DST-safe arithmetic - Dealing only with objects representing fixed dates and times - Parsing a strictly specified string format - Supporting non-Gregorian calendars - etc... This makes code more readable and prevents bugs caused by incorrectly assuming 0, UTC, or the local time zone for values that are actually unknown.