Risposta diretta / TL; DR
...
Il futuro è la compilazione per sempre, la compilazione in più luoghi (ad es. nodo) e la compilazione di sempre più sviluppatori / progetti.
Are we going to end up with different builds of our applications for different versions of browsers?
Ho intenzione di andare con qualunque cosa le grandi aziende a determinare sia la migliore. Hanno un profilo di esperienza maggiore, il tempo di impegnarsi e la più grande partecipazione ad avere siti e app veloci.
È probabile che l'utilizzo di più bundle avviti con qualche strumento o ottimizzazione che non esiste ancora. Puoi farlo oggi con lo user agent sniffing o il metodo che hai suggerito.
Shouldn't we think about how to overlap this gap in a development most easily?
Non vedo la proposta di valore. Alla fine le funzionalità verranno eliminate dai compilatori (generalmente con < 1% di utilizzo). "più facilmente" è ciò che abbiamo ora.
Disattiva selettivamente qualsiasi funzionalità
Quali caratteristiche? Se semplifichiamo queste sono le variabili che dobbiamo considerare.
- funzioni che usi
- caratteristiche del motore X supporta
- compatibilità del motore di destinazione
Questo è già piuttosto complicato.
Ecco un diagramma di come (penso) la maggior parte delle persone pensa che funzioni:
Tuttavia,eccounamigliorerappresentazionediesso.Modoinfondovedraiunasezionebianca,cheha33stranezzeeccezionali.Ridimensionatoda1.440per15.0001:
Immagina un'altra colonna per ciò che il tuo codice utilizza e un'altra per le opzioni di destinazione che utilizzerai. E poi devi dividerlo in polifibri e trasformazioni di sintassi e abilitare / disabilitare ciascuno per soddisfare i tuoi requisiti.
I miei presupposti eterni
- desideri utilizzare le funzioni non supportate nei browser di destinazione
-
la dimensione dei polyfill è trascurabile nel grande schema delle cose
- inizialmente la versione nativa ha una probabilità del 3% di essere più veloce di polyfill / transform
- dopo un anno la versione nativa ha una probabilità del 70% di essere più veloce di polyfill / transform
- la nuova versione del motore ha reso l'output di polyfill / compilatore più veloce rispetto alla versione precedente
-
i tuoi strumenti possono produrre codice più veloce di quanto non fosse 6 mesi fa, e i plugin specifici per framework rendono ancora più veloce!
- questa versione della specifica consente analisi statiche migliori / più facili
-
molti usano superset di ecmascript senza alcuna intenzione di cambiarlo
-
le persone ottimizzeranno la micro-ottimizzazione
- le tue micro-ottimizzazioni sono errate
Le micro-ottimizzazioni di - tuoi strumenti sono infine corrette e più probabilmente mantenute
- siamo in grado di eseguire più codice che ignora il parallelismo in parallelo
- scrivere codice ovvio leggibile è alla fine più veloce di