[HN Gopher] WinterCG: Web-Interoperable Runtimes Community Group
       ___________________________________________________________________
        
       WinterCG: Web-Interoperable Runtimes Community Group
        
       Author : brianzelip
       Score  : 35 points
       Date   : 2022-08-13 19:37 UTC (3 hours ago)
        
 (HTM) web link (wintercg.org)
 (TXT) w3m dump (wintercg.org)
        
       | josephg wrote:
       | This is really important work to get things like WASM off the
       | ground. Recently I've been working on a rust library I want to be
       | able to run in the browser and from nodejs via wasm.
       | 
       | But its way harder than it should be. Wasm-pack has a different
       | target for nodejs and the browser for ridiculous reasons - like
       | 'crypto' and 'WebSocket' being globally available objects in the
       | browser but not in nodejs. And es modules working slightly
       | differently in each environment. Npm is designed assuming
       | packages will be isomorphic. I've ended up with separate -node
       | and -web packages - which makes my code feel non-native.
       | 
       | You shouldn't need to care that a JS package uses wasm
       | internally. But these little points of incompatibility really
       | hurt wasm as a target for libraries to use.
        
         | zdragnar wrote:
         | NPM has always been node-first, and relied on tools such as
         | browserify to make some packages more portable - bower was
         | significantly more popular for front end development until it
         | came around.
         | 
         | CJS was node's solution to "modules" prior to ES modules, which
         | was not interoperable with requirejs / AMD, the front end
         | solution that came out of Dojo. UMD offered a way to have both,
         | but was far too much boilerplate to support by hand, so it was
         | mostly only adopted by libraries.
         | 
         | CJS won out for a very short time, right up until import /
         | export became available via webpack. This short window is
         | pretty much the only time that "isomorphic" really applied to
         | NPM; by the time import / export had gained enough steam
         | (thanks largely to both webpack and typescript for jump
         | starting adoptation), there were enough browser modules that
         | trying to write truly isomorphic code was limited to certain
         | subsets of your application.
         | 
         | I imagine running isomorphic code under deno to be quite a bit
         | less painful, as it was built from the ground up to mirror
         | browser environments as closely as possible, but that's not
         | much consolation if you still want to target node.
        
       | ricklamers wrote:
       | This reminds me of the slogan of ISO: Great things happen when
       | the world agrees
        
       | brianzelip wrote:
       | Listen to context about this (tl;dr, the growing number of
       | deployment targets for modern apps/libs/frameworks) from the
       | recent Syntax podcast.
       | 
       | See the 27:01 mark, https://syntax.fm/show/496/supper-club-
       | headless-ecommerce-wi....
        
       ___________________________________________________________________
       (page generated 2022-08-13 23:00 UTC)