Hacker News new | ask | show | jobs
by semiquaver 1025 days ago
Crossing my fingers that the proposal for allowing (browser-ignored) type annotations in javascript progresses: https://tc39.es/proposal-type-annotations/

Between that, HTTP2/3 and ES modules many of the downsides for building apps with no compile step are almost completely mitigated.

2 comments

Does http2 solve waterfall imports? Also wouldn't tree shaking still be unsolved? What about minification?

IMO build step woes are really overstated, my build step has linting, type checking, optimization, bundle analysis size diff checks, enables JSX, and is basically necessary for development anyway as you get hot reloading, compiler-added features for better debugging, etc.

>Does http2 solve waterfall imports?

It used to, but browsers ruined it because they didn't want to help improve caching support

HTTP2 allows the server to push files to the browser.

If you don't have tons of code, tree shaking and minification is not that important. If you depend on a couple libraries (Jquery, for example) those can be minified and just refered to directly in the source.

Chrome removed support for HTTP/2 Server Push last year.

As I remember, it never saw broad adoption because it was technically challenging to integrate with, and it tended to push a lot of resources clients already had, so it wasn't a big win for efficiency anyway.

HTTP early hints still exists and can achieve similar things as server push without wasting bandwidth.
Care to share your build set up? I'd very much appreciate it

I haven't done js since jquery days, but keen to get into modern js development

I maintain Tamagui, so the tamagui starter kit basically is it, try `npm create tamagui`
Waterfall imports are solved by rel=modulepreload.
Wouldn't that conflict with possible future optional static typing? It's only Stage 1. I'm hoping it doesn't make it in its current form. Some good discussion in the issues, though: https://github.com/tc39/proposal-type-annotations/issues
Can you explain why the two proposals would "conflict?" Seems like they're proposing the same thing to me.
It would be hard to separate ignored ones from ones that would use a possible future optional static typing system. They would possibly have to use a different, uglier syntax.
I'm not sure I follow. Both proposals are suggesting that browser's engines ignore the syntax completely to allow some other, external, process to check them.

They use slightly different wording but are describing the same basic idea: This syntax will be ignored entirely and then optional/other process can use this area for whatever.

There are other languages that have optional static typing that don't treat types as comments. JavaScript could evolve to add support for this.