Evan You - Vue, Vite, VoidZero and the Future of JavaScript Tooling

Durée: 51m3s

Date de sortie: 11/11/2024

This week Evan You joins us again to talk about his new company, VoidZero, and the future of JavaScript tooling. Evan build Vite and ushered in a new era of JavaScript tooling, but thinks he can do better now by building up new rust based tooling. Rolldown is the first step in this as they aim to make build times a thing of the past.

Episode sponsored By MUX (https://mux.com)

Become a paid subscriber our patreon, spotify, or apple podcasts for the full episode.

Le premier stage de VEATS était vraiment,
« Allons juste faire les choses, faire mieux,
que le status quo. »
Mais au-delà de ce qu'il y a, il y a peut-être beaucoup de haques
et des choses qu'on veut improving dans le futur,
et maintenant c'est le temps proper de faire ça.
Bonjour, bienvenue à DevTools FM.
C'est un podcast sur les outils de développeurs
et les gens qui font les choses.
Je suis Andrew et je suis ma co-host Justin.
Salut tout le monde,
nous sommes vraiment excitées de vous présenter, Evan,
Evan, vous êtes avec nous sur l'épisode 12,
en bas de quelques années,
en parlant de VEATS et VEATS.
Nous sommes maintenant,
comme 119, en recordant,
donc plus de 100 épisodes.
Wow,
c'est beaucoup d'épisodes.
Nous avons fait ça depuis longtemps,
mais c'est tellement fantastique de vous avoir revenus.
Nous sommes continuellement des fans de votre travail
et de la façon dont ça s'éco-sisté,
donc nous sommes excitées de vous parler de nouveau.
Nous allons parler de ce que vous êtes en train de faire,
mais avant de nous dévier,
vous voulez nous dire à nos listeners un peu plus sur vous-même ?
Bien sûr, je suis Evan,
je suis un développeur indépendant et en source de développeurs
de estem à Ak systems
ré myös en달iorer
etего plus tard
Ici,
c'est les stage Momo
où on va construire RotDen, on va supporter VIT dans le futur.
VIT est maintenant soutenu beaucoup d'autres frameworks.
On essaie d'établir ce vertical unifié de tournevis
qui peut soutenir tous les frameworks qui dépendent de VIT aujourd'hui
et qui ont peut-être fait que tout le développement de l'expérience est meilleur.
Donc, en bas à l'épisode de l'an dernier,
vous avez réellement élevé VIT.
Et depuis, c'est vraiment devenu un pilon de l'industrie.
Il y a beaucoup de frameworks de métal qui sont basés sur ça.
Et c'est comme la paix de la première pour tout.
Qu'est-ce qui était le tournevis de aller de VIT à O ?
On doit rébuilder les plus bas sur le niveau surface
et former une compagnie autour de ça.
Oui, je pense que l'idée a commencé à un point
parce que quand je n'ai pas commencé à la première fois,
je faisais juste un prototype.
Donc, j'ai pris tout ce qu'il y avait à l'établir
et j'ai essayé de remplir les goûts.
Et il y a beaucoup de traitements et je considère maintenant
des haques parce que je n'ai pas le temps
de faire tout ce que je fais.
Donc, j'ai besoin de utiliser ce que les autres personnes ont fait.
Et je pense que c'est typiquement ce que nous avons fait
dans le système de travail.
Parce que nous pensons que, ok,
on ne veut pas nécessairement réunir les roues,
pourquoi pas juste utiliser les choses que les gens ont déjà fait.
Donc, à l'infin,
j'ai utilisé RoLup parce que j'ai toujours voulu RoLup's API.
Et nous avons réunit les issues de performance.
Parce que...
Donc, le premier point de VIT
était d'avoir un serveur de service native ESM.
C'est simple.
Et ensuite, on utilise RoLup pour essayer de contrôler les dépendances
parce que certains dépendances sont en CJS.
Nous voulons convertir ces dépendances à ESM
pour qu'elles puissent mettre dans le browser.
Mais RoLup est en fait assez lent
si vous avez des dépendances grandes.
Et donc, on a commencé à utiliser ESM
pour ce qui s'est passé.
Et puis, on a essayé de utiliser ESM
pour la bombe de production
et c'était pas satisfait
parce que ça n'a pas de contrôle
au niveau des couches ou des couches.
Et le point d'ESM
est que l'application de la base de la base de la base
est juste un peu...
C'est un peu intuïtif
si vous faites des applications.
Donc, on a dit
maintenant, on doit penser
à utiliser l'ES Build pour développer et prébondler
mais on utilise RoLup pour contrôler la production.
Et on a fait un peu de smooth sur la surface
pour les faire travailler de même manière.
Et ensuite,
quand les gens ont commencé à construire des applications
avec VIT
par exemple, quand les gens utilisent VIT
avec React
et précédemment,
tout le monde utilisait Babel
parce que Babel
était supporté...
Intéressant,
si vous utilisez VIT par défaut
et vous utilisez ASX
dans les typescripts,
ils se transforment en utilisant ES Build
ce qui est assez stressant.
Mais le moment où vous voulez
un réplacement de hot module pour React
maintenant, vous devez utiliser Babel
parce que l'ES Build ne supporte
pas les réplacements de hot module.
Donc,
Babel, encore, a fait tout le monde en s'arrêtant.
Donc, les gens ont aussi
appris une version de l'ES Build
de la réplacement de React.
Donc, vous voyez le problème ici,
il y a des outils très bons,
mais certains ont fait ça,
certains ont fait ça,
et certains des choses
qu'ils ont tous fait,
ils ont décidé de les faire différemment.
Et c'est la réalité
que nous sommes en train de se dédié
dans le système de travail de s'adapter à la structure.
Je suis assez sûr
que si vous travaillez avec
les stacks de build custom,
vous comprenez ce que je dis,
statewide,
d' nogle Yes l'exjointe



immigrant, Discovering Deaf Sloca,

Encore plus sportive foundation on

la fréquence de la prochaine génération,
qui est en train de servir comme l'infrastructure.
Est-ce que ce sera possible
de vivre à cette expectation ?
Et je ne pense pas que ça va,
si nous nous faisons juste
utiliser ce genre de fragments internals
et tentons de se couper les choses ensemble
et de se couper les inconsistences.
Donc, en fait, la chaine de tourneveil
qu'on est en train de construire
à Voix Zero est un tent de
attaquer ce problème
plus fondamentale.
On dirait que si nous voulons
résoudre d'autres problèmes,
nous voulons fixer la voie.
Qu'est-ce qu'on doit ?
On a besoin d'un bundler
qui est en train de se faire
et on a besoin
de ce bundler pour être aussi
construit sur le tourneveil
qui peut
prendre des différents problèmes,
comme de commencer
par la ST,
tout le monde
pour la minification
et la production,
bundler,
dans un système consistant.

en même temps,
on veut aussi
faire une partie
de ce tourneveil
individuellement utilisable.
Donc, on dirait que vous voulez
prendre le passard
et faire quelque chose de fou.
Vous pourrez
faire ça.
Ce tourneveil,
aunque c'est unifié
et un système coherente,
ne devra pas être un boxe noir.
Vous ne devriez pas dire
qu'on peut l'enlever
ou que vous ne pouvez pas l'utiliser.
Donc,
je pense que ce sont les deux
principaux
des prémesses
que nous sommes sortis
de s'entraîner le tourneveil.
C'est une unification,
mais sans s'accompagner
l'objet de
la composabilité.
Nous aimerons arrêter
et remercier
le sponsor pour la semaine,
Mux.
Si vous n'avez pas entendu de Mux,
Mux est une plateforme

qui fait que l'adresse
de vidéo à votre produit
est facile à ajouter
quelques libraries.
Si vous n'avez jamais
eu d'adresse de vidéo
à un produit,
vous ne savez
combien de pizzeries
il y a de défauts.
Si c'est un format file,
de déliverie,
de uploads
ou même de playback,
il y a beaucoup de questions
et beaucoup de choses
qui vont bâtir votre équipe
en essayant de poursuivre
un produit stellaire.
C'est là où Mux
vient.
Ils ont un set
de components et des API
qui font ajouter
vidéo à votre app
ou plateforme
super facile.
Et alors qu'il y a un bunch
d'experts
qui ne sont pas vidéo
à l'intérieur et à l'extérieur,
ils ont beaucoup de différents
features
que votre équipe
n'aurait jamais
eu le temps de les avoir.
Une des choses
étant les métriques,
ils ont tous les sorts
de différentes
métriques
des dashboards
pour comprendre
comment les gens
sont en train de consommer
la vidéo
dans les app
que vous portez.
Récemment,
ils ont ajouté
encore plus
de capacités
à leur plateforme.
Maintenant, vous pouvez voir
quand les spectateurs
ont appris de vos vidéos
pour donner un meilleur insight
sur comment les gens
sont consommer
ces vidéos.
Donc, si vous voulez
ajouter une vidéo
à votre plateforme
et vous n'avez pas envie
de prendre un mois
de temps en faisant ça,
vous pouvez aller au Mux.com.
Avec ça,
on va aller au début de l'épisode.
Donc, vous êtes un
développeur indépendant
pour un temps.
C'est probablement l'un
de les plus successeurs
de pouvoir travailler
sur un nombre de projets
d'open source
et de produire
beaucoup de projets
d'open source
pendant que vous travaillez
à l'heure de votre propre.
Et maintenant, vous allez
dans cette route
donc vous avez évoqué
un BC,
vous êtes formé Void Zero,
vous avez quelques gens
qui viennent vous joindre
pour travailler sur
ces systèmes d'écosystème.
Donc, pourquoi vous avez décidé
de faire cette transition
d'un développeur indépendant
pour commencer une compagnie
et comme
qu'est-ce que le temps
ou ces circonstances
ont fait
une chose différente.
Donc, je pense
que, en général,
je considère
que je suis une personne
très risquable.
Certaines de les meilleures
décisions que j'ai faites
dans ma vie,
je me sens
comme
que je l'ai fait
mais
en faisant
d'un travail indépendant
sur le vu,
je n'ai pas vraiment
compris ce que ça pourrait dire.
L'un de les choses
je pense
que j'ai
construit un
entreprenuage lifestyle
un business lifestyle
qui est en vue
pour que
c'est suffisant
d'y supporter
et
faire mon vie sustainable.
Donc, sur ce point,
je ne commence pas
une compagnie
parce que
on doit faire plus de
money
pour cette situation.
C'est plus
que
la compagnie
est la plus
réaliste
pour
faire
la vision
que je vais
atteindre.
Donc,
c'est aussi
partie
basé sur l'expérience
de travailler
comme un développeur indépendant.
Je sais
que le limiter
de mon
modèle de current
peut aller.
Je pense que beaucoup de gens
utilisent le vu
et misent moi
comme un exemple de
histoire de succès
pour
la possibilité
de faire des projets.
Mais en même temps,
si vous considérez
la scale,
la visie de la visie,
nous avons
plus de 2 millions d'useurs
supportés par
je pense que
à max,
nous avons 3 personnes
travaillant en plein temps
sur le vu ou le fait de la visie.
Maintenant,
c'est probablement
encore 3 personnes.
C'est en plein temps
de vue.
Et puis,
des contributors partageants
que nous sponsorons.
Donc,
c'est sustainable,
mais en même temps,
nous ne voulons pas
voir
les groupes

en train de
travailler

dans la scale
où nous pouvons
avoir
un équipe de 10 personnes
travaillant en plein temps.
Parce que
j'ai tenté de
construire
les business
autour de vous
pour être
aussi passifs
et carefreus
comme possible.
C'est une choisière lifestyle.
Mais aussi,
cela signifie
le niveau de conversion
parce que ce n'est pas
un business pour le profit.
On ne fait pas
un marketing agressive
ou on ne fait pas
des features
pour
faire
profit ou de revenus.
Donc,
beaucoup de choses
sont comparées
à la visie de la visie
extrêmement
très bas.

Et je ne suis pas
disant que c'est un bon truc.
Pour moi,
il n'y a pas de
ce ou ce
en termes d'obus
sur la stabilité
ou la mentalisation.
Je pense que
tout vient
au
point de
ce que vous avez essayé de réussir.
Pour moi,
le point de vue
est
une chose de business lifestyle.
Et je pense que
cela fonctionne
très très bien pour moi.
Je suis heureux de ça.
Mais en le haut de la main,
quand je pense
sur
où VIT est allé,
et en pensant sur
le potentiel
que VIT a
et en pensant sur
comment on peut
actually
maximiser
ce potentiel
et faire
ce que
on espère être.
Et je ne vois pas
cela se passer
avec ce sort
de
plus passif modèle
de
juste
espérer que les gens
donnent
et que les gens
font des sponsors
ou que quelqu'un
s'amuse
et s'amuse
et décide
de donner
envers VIT.
C'est
ce qui
a beaucoup à faire
avec
ce qui est
partie avec
le luck.
Il s'en prend
et aussi
il a beaucoup à faire
avec
ce que l'on
apprend
le projet.
Par exemple,
parce que
VIEU est
une fréquence

usurale.
Donc
la plupart
de l'incompté
qui est générée
par VIEU
est
par la
exposition
par la
exposition
et la documentation.
Et parce que
quand les gens
utilisent les fréquences
ils ont probablement
interattuent
avec la documentation
très, très,
très, très
constamment.
Ce sont des
outils qui sont
très différents.
Il s'est
généralement
un peu
sous le framework.
Et aussi
quand vous
vous setez
les outils
quand
vous vous êtes
en train de
travailler, vous êtes
heureux
avec ça.
Vous avez vraiment
à
vraiment
regarder les
outils
tous les jours.
Donc
quand nous
y passons
même plus
comme nous
construisons
des passages
et des outils
comme ça,
j'ai
vu
comment
les projets
comme
BABL
se défendent
en tant que
d'adoption
universel
across
l'écosystème.
Donc
je ne pense que
ce modèle
va travailler
pour les choses

on veut
construire.
Et
mais
à la même
temps,
c'est un

rêve.
Donc
je ne peux pas
imaginer
que ce soit
fait
avec
des efforts
par
juste
des contributaires
qui sont
comme
oh,
on veut
travailler
sur ce
ensemble.
Je ne pense pas
que ce soit
qui va arriver
ou
au moins
ce n'est pas
qui va arriver
bientôt.
Donc
je pense
que la

pour nous
de
faire
ça
est
d'avoir
suffisamment
d'avoir
une
capital
pour
pour
pour
les gens
de travailler
sur le temps
et
comme
une
team.
Donc
nous avons
une mission
une
goal
et
c'est
plus
sérieux
que
les
contributaires
qui

travaillé
sur les
week-ends.
C'est
différent.
Donc
ça
aussi
envers
une question
de
préoccupation
des
investissements
et
des
rétours.
Je pense
que
les autres
pour les
entreprises
sont
comme
c'est un peu
mal
que le
ecosystem
est
envers
beaucoup
d'infrastructures
qui
sont
maintenues
par les gens
qui
sont
soit
sous-payés
ou
juste
comme
la
force de
l'amour.

En ce
cas
la situation
est
que nous espérons
que les
entreprises
utilisent
ces
projets
qui
font
beaucoup de
monnaie.
Ils
doivent
donner
ce
qu'ils doivent
sponsoriser.
Et
je pense
que c'est difficile
parce
qu'il y a
beaucoup
de logistiques
que vous
avez
à
faire
pour
répliquer
la
organisation
comme la
foundation
et
aligner
les
incentives
et
il y a
beaucoup
de
lobby
et
beaucoup
de
juste
parler
à
les
gens
et
en


sur le même
page
et
pour
faire
ce qui
s'est

Et
les
projets
de
l'opinion

vraiment
pas
les
l'énergie
ou
l'énergie
pour
faire
ce qui
s'est
passé.
Et
c'est
une
bête
avant
vous
être
des
infrastructures
de l'écosystème

sont
sa

re
d'

sur
les
enca CAD
compte
et en même temps, les outils devraient aussi être bien sustainement et maintenus.
Donc, est-ce que votre plan pour la monetisation
est de charger les plus grandes entreprises pour utiliser les outils
et de leur permettre d'être la source libre pour tout le monde?
Non, exactement.
Donc, on veut étudier une ligne où, si la code s'étend sur votre machine,
ça devrait être la source libre et libre.
On ne veut pas faire des choses comme...
Donc, une chose qu'on ne fait pas, c'est de poursuivre quelque chose
de la source libre et de changer de licence,
et d'essayer de payer pour les gens.
Ce n'est pas le plan.
Le plan est probable de construire...
Nous avons des plans sur les services associés à l'on,
qui sont liés à chaque étape de la façon.
Parce que quand vous avez un tourisme,
vous avez de l'intention naturelle
pour un peu de metadata à chaque étape de la façon.
Et comment vous avez des insights plus profondes sur ces metadata?
Et comment vous pouvez avoir de l'intention naturelle
pour chaque étape de votre code base?
En général, je pense qu'il y a une bonne opportunité
pour improving ce que nous faisons maintenant.
Par exemple, comment plus de insights
nous pouvons avoir de nos bundles?
Est-ce que votre tricot est accidentement faible?
Est-ce que votre cash et validation sont en train de travailler?
Est-ce que vous êtes bundlés des choses
qui ne devaient pas être en production?
Et est-ce que votre code,
après votre code est transformé par tous ces tools,
est-ce que vous êtes encore plus secure
que la source code?
Il y a beaucoup de questions
qui sont difficiles à répondre si vous n'aurez pas
de la source code et que vous devez pouvoir
vous faire en sorte que vous puissiez
faire en production que vous avez pu faire pour les utilisateurs.
Je pense qu'il y a beaucoup d'opportunités ici
et que nous sommes intents de construire des services
qui sont centrés autour de cet espace.
Je ne veux pas être trop spécifique maintenant
parce qu'il y a beaucoup de choses qui peuvent changer.
Il y a des détails qu'on est encore en train de travailler.
Mais l'idée ici est que
si nous nous faisons le mien, c'est des services.
Ce n'est pas de la source d'opportunités
qu'on construit directement.
Et la source d'opportunités
qui servent évidemment
comme le funnel et le mode
pour les services que nous avons construits.
Et c'est l'advocat idéal.
Je pense que ça fait beaucoup de sens.
Il y a un truc réel
d'une grande company
utilisant des tools d'opportunités.
Il ne s'est pas très bien scale.
Et si vous avez travaillé dans une compagnie semi-large
et que vous avez utilisé un webpack, pour exemple,
et vous savez que
on a un build de 5 à 10 minutes webpack.
Mais les gens ne l'expériment pas
parce que leurs apps sont trop petits.
Mais si vous êtes une organisation très grande
et que vous faites un lot de code
et que vous faites beaucoup de transformations
et que vous faites beaucoup de customes.
Vous commencez à être en train de faire des choses.
Je pense que ça fait du sens
d'être à un grand niveau
de dire que vous avez juste des plus grands nécessaires
et que nous avons des tools pour se résoudre.
Parce que 80% des gens ne vont pas avoir
à avoir des points de scale.
Totalement.
Oui.
Quoi ?
Part de la raison que nous pensons
qu'il y a un marché pour cela,
c'est parce que la partie de la équipe
a travaillé en tant que dents
sur leur équipe web.
Et ils appuient
des applications de l'application de l'application de l'équipe large
que nous avons oublié
dans l'industrie.
Et des codes basés
avec 100 000 lignes de code de travail
et qui ont fait une heure pour les constructeurs.
Donc, un scale que pas tous les développeurs
devraient avoir à faire.
Mais c'est pourquoi
beaucoup de tools que nous sommes construits,
comme le début de l'OICP,
c'est que nous sommes déçus
avec la performance du plus haut niveau
pour que ces tools puissent toujours
détenir le scale.
La plus grande application de l'application
que vous pouvez acheter,
il devrait être capable de le faire
avec une expérience de développement decent.
Donc, en parlant de l'OICP,
je trouve ça drôle
que ça semble que ce projet
a commencé en même manière
où vous étiez juste créé
un projet pour un projet de l'application.
Et je pense que Boshin,
le gars derrière l'OICP,
a créé un réference
de l'implementation
d'un OICP en Rust.
Donc, comment nous avons de l'application
de l'application de l'application
de l'application de l'application
de l'application de l'application
de l'application de l'application
Oui, je pense que
beaucoup de cela est moi
qui, quand je pensais
qu'on devait
mettre notre propre bundler
et qu'est-ce qu'on base
le bundler sur le top?
Et on a regardé
des multiples manières
de penser sur ce projet,
donc, ne réunir en JavaScript
non, parce que c'est trop lent.
Donc, on veut le faire
dans la langue comparterie.
Et on regarde que
il y a déjà une nouvelle bale
qui est un projet grand.
Je pense que le plan d'application
de l'esfield est,
en orderant à atteindre
la performance maximum,
l'esfield est architecté
dans un moyen où
beaucoup de différents
concerns sont liés
à travers
comme des passages de l'AST
possible.
Donc, c'est comme
son logic de minification
est en fait spread
à travers des multiples passages.
Et ce n'est pas
comme la minification
de la minification.
C'est comme, dans le même passage
vous verrez des branches
envers les minifications,
des branches envers les transforms.
Et ce qui fait
que l'externe
a fait
de l'expérience
dans un moyen raisonnable
assez difficile
parce que vous allez
mettre plus de branches
dans ces passages de l'AST.
Et c'est très difficile
pour nous
d'y écrire.
Comme,
Evaluannis est évidemment
brillant
et il a tout dans son corps
et il peut
approcher l'esfield
avec cette architecture
parce que c'est son décision
mais on se sent
comme si ce n'était pas
une bonne foundation
pour nous
si nous voulons
aller au-dessus
de l'extérieur.
Et aussi,
nous voulons
faire
chaque partie
bien isolée
pour que les gens
puissent l'utiliser
comme des médecins individuels
en avant
de l'optier
dans le tout
ou en plus.
Donc, nous devons
faire du russage.
Et
donc,
qu'est-ce qui peut
en fait aussi contribuer
à l'exploitation de l'ESPAC
à la bidaise.
Et il y a des décisions
dans l'ESPAC
qui ont

d'essentiel trop tard
pour eux
pour changer l'EXE
parce que c'est déjà
sorti
sur le top
d'un C4
une très longue période
avant l'EXE
qui était même
utilisable.
Mais
j'ai été
en train de
l'exe
pour une très longue période
et
je pense
que c'est important
que
pour la chaine de neutral
être basée sur quelque chose
qui est
qui
s'étendu
d'un peu
des
choses
que nous avons fait
dans le passé
parce que
c'est
quand Boise
a travaillé sur l'EXE
il a contribué
à
le rhum
sur le bas
dans le passé
aussi.
Ils ont dû
contribuer
à l'ESPAC
et
à l'ESPAC
durant
notre
expérience
de l'exploitation.
Donc,
le team
à WebEnfra
a
beaucoup d'expérience
en dealant
avec
les
langues
des chaussages
et des systèmes.
Et
je pense
qu'il a dédié
beaucoup de
les
études
dans l'EXE
initialement
comme un concept
et
quand
il a été
un peu plus
production
préparé,
il a montré
que
ok,
toutes ces choses
ont payé
de l'exploitation.
Comme
les
l'ESPAC
et l'EXE
sont
rétendus
mais il y a
une
profondeur
de performance
que l'EXE
a.
Et il y a
quelques autres
décisions
qui
sont un peu plus
détails.
Par exemple,
quand
vous
utilisez
les changements de l'exploitation
pour soutenir le bundler,
il y a beaucoup
de
analyses
que nous devons faire.
Par exemple,
en déterminant
si ce variable
est
referendu
dans ce scope
ou
est-ce
un variable
d'outre

est-ce
utilisé
et exploité
et utilisé
dans un autre module.
Un peu de ces
choses
vous devez
faire
l'analyse,
oui.
Donc,
en JavaScript,
la plupart des
parces
sont
juste
pour vous
donner
l'AST.
Et ils sont
prêts.
Donc
nous en déterminons
avec,
disons,
je pense
que
le Babel
probablement
provise un peu
plus d'infrastructure
pour ça.
Mais
en
mon
travail,
par exemple,
dans le compilier de l'EU,
nous devons
faire
beaucoup de ces
analyses
de semantics
de nos
salles.
Je pense que
les salles
Rich Harris
a aussi
écrit
beaucoup de
tools
qui sont
assises
autour de ça.
Mais
je pense que
ça devrait
être
une première
partie
de la
question
de la
tournage de la

Donc,
l'AXC
vient
d'une

de semantics
qui
permet
de vous
faire
ces informations
après
la
tournage de la
salle.
Parce que
comme
ces parcs
sont
aussi
collectes
et
ont
déjà

de cette
information.
Donc,
vous n'avez pas
à faire
le travers
de vous-même
pour
faire cette information.
Vous pouvez juste
demander.
Donc,
c'est aussi
un peu
différent
de,
disons,
le

le
le
le
le
le

le

le
le
le

n'est-ce brakes
afin d'en

quarter
port
et nous sommes heureux que la performance se tourne en arrière à nos préoccupations.
J'ai toujours adhéré à quelque chose de votre approche pour les projets.
C'est un style très iteratif.
Je me souviens que quand je first discoverais View,
tu faisais juste la transition de View 1 et View 2,
introduisant Virtual Dome,
et je me suis rendu compte que tu as toujours étudié un certain style.
Je suis très inquiétant de te faire raconter l'approche incrementale
que tu as en train de faire.
Qu'avez-vous appris par des projets,
comme Bion, et Rome,
qui ont essayé de faire des problèmes similaires,
mais peut-être d'un autre angle ?
Les projets de WC sont probablement dans la même catégorie.
Ils tentent de faire des problèmes de performance.
Quels sont les lessons et les takeaways
que tu tries à faire différemment que ceux que tu as fait ?
Je pense que, en termes de vision de la fin,
c'est très évident que Voyzer a beaucoup de similaires
à ce que Rome veut faire.
Je pense qu'il y a deux grandes différences.
La première est que nous avons décidé de travailler
sur le tour de chaine pour Voyzer.
C'est parce que nous avons déjà un VIT
en tant que point de convergence.
Si nous n'avons pas un VIT en avance,
la chance de succès sera beaucoup plus rapide.
Rome n'a pas de choses comme ça.
Ils ont commencé par quelque chose
qui est complètement de scratch.
Pour Rome, je pense que la plus grande
challenge est de 0 à 1.
Comment faire que les gens aient adopté ?
Ils ont commencé par un format.
Il y a probablement le plus intrusif
de la task dans le développement de l'environnement.
En fait, c'est complètement un couple d'autres.
Ça fait que c'est plus facile pour les gens
de s'adopter.
Ce qui est en dessous de ça, c'est que c'est pas un
rapide de l'environnement.
C'est pas vraiment lié au reste
de la task que les gens font.
Je pense que le point de convergence
où vous avez l'adoption,
c'est un différenci stratégique.
Un autre différenci technique est
que Rome's implementation,
ou la base Rust code de biomes,
a été initialement créée pour être
plus intente pour un scénario d'IDE.
Ils ont focussed beaucoup sur la story de l'IDE.
Ils ont donc construit
quelque chose qui s'appelle CST,
son synthèse concrète.
Ils veulent préserver
la forme de la code originale
comme possible.
Ils veulent être résumables
et plus résilientes.
Un peu de ces sont très bons
pour l'IDE, mais pas nécessairement
le mieux si vous voulez
faire les autres tasks.
Vous pourrez avoir le plus vite possible
de la transformation.
Et aussi, vous pourrez
utiliser la CST
pour plusieurs tasks,
une ligne longue.
Je pense que
Borschen pourrait probablement
partager plus de conseils sur cette front.
Mais je pense que le différence entre la CST et le CST
était aussi une raison plus grande
où Borschen s'est dit
qu'on ne veut pas vraiment
faire ça en XC.
Mais je pense que
c'est un peu l'un des raisons
qu'il n'est pas possible
de faire de la même manière
qu'il y a maintenant.
Je pense que c'est toujours
possible
de faire de la même manière que le javascript
et Rust.
Parce que beaucoup de gens
sont heureux avec le biome.
Comme un format,
d'ailleurs.
Et c'est aussi une raison
pour laquelle nous ne sommes pas heureux
de travailler sur Flamatter.
Parce que ça already fillet
cette gamme.
On va probablement
avoir une FF
juste pour une sake complète.
Mais pour nous, c'est juste
un peu la route.
Le premier point vous me rappelle
de dire,
faire le travail,
faire le travail,
faire le travail,
faire le travail,
faire le travail,
faire le travail sain,




Je pense que c'est mé де
le premier point de victory,
juste pour faire le travail
et son Factory.
J'aivous la possédance
d'avoir des filtres
un petit peu de vies,
les plug-ins,
comme j'ai passé,
j'ai fait beaucoup de génération de site statique,
et j'ai rébuildé un livre de historie
quelques fois différents.
Et les choses qui sont souvent
qui sont en train de faire,
je dois faire un plug-in très intense
pour le système.
Et la chose qui me trompe
beaucoup de temps,
c'est que le plug-in API
pour vies,
est le même
que le roll-up,
mais il n'y a que
que des hook,
et je me sens que les hook
sont probablement exclutés
parce qu'on a des concerns de vitesse
dans le mix.
Avec le roll-up,
nous verrons que les APIs
commencent à
ouvrir un peu,
et que la vitesse
va éloigner plus de pouvoir
pour les plug-ins.
Je suis inquiétant,
que sont les hook-ins que vous
regardez, mais ça ne marche pas,
il y a juste 4 ou 5
d'entre eux
que j'ai toujours voulu
utiliser, mais ils ne rassemblent pas
dans le mode de dév, parce qu'ils ne sont pas
là.
Je suis inquiétant,
que va-t-il
les nouvelles forces
s'expander pour plus de
choses pour nous faire?
C'est
intéressant,
parce que
tout d'abord,
avec le roll-up,
et dans la version de la future,
VH,
Dev et Prod
seront plus consistants.
Ils seront utilisés
avec le même plug-in pipeline,
et les plug-ins
vont travailler exactement
dans le même
entre Dev et Prod.
Mais
l'interstance
de la javascript plug-in
en russespace
est qu'il y a
l'overhead de
la data back and forth
entre les deux langues,
parce qu'ils ne s'en
séparent pas
par défauts.
En
plus,
quand vous vous envoyez les choses
autour du wire, vous avez
de la clé à la main,
et c'est probablement
l'un des plus
grands
bottlenecks pour les speaks.
Alors,
on va dire que si vous utilisez
la javascript plug-in
sans n'importe quelle javascript plug-in,
vous pouvez bundler
20 000 modules.
Ils peuvent le faire
dans 600 milliseconds.
Mais
si vous ajoutez
un couple de javascript plug-ins,
vous pouvez le faire
par deux à trois fois.
Et
ceci est directement
correlé
à la quantité de modules,
parce qu'il faut
pour chaque hook
de chaque plug-in,
vous avez à carrer
une fois pour chaque module.
Donc, on va dire
que vous avez
une plug-in avec trois hooks,
que nous faisons
60 000
russes à des calls J.S.
Et ce n'est pas
cher,
même si vous ne faites
rien dans un hook,
c'est encore un peu
de la coste.
Donc,
nous sommes
en train de
optimiser ça.
Donc,
en tout cas,
la compétition base

est qu'on veut
tous les plug-ins existants
pour pouvoir
continuer de travailler
de la même manière.
Ça peut compromise
la performance ideal
à un certain extent,
mais
on va faire
les choses avant.
Et puis,
le prochain step
est
pour VIT,
en internait,
on a déjà porté
un peu de VIT internait
sur Rust.

maintenant,
c'est pour les builds,
donc,
quand vous faites
la build production,
vous pouvez évoquer
l'équivalent native
de l'internait VIT.
Donc,
ça nous permet
d'essayer
d'avoir
la speed de build

à un peu
de 2 à 2,5
fois plus
plus lent,
plus rares,
plus de low
solите.
Si l'ID s'est terminé avec une certaine extension, on fait ça,
sinon on ne retourne plus tard.
C'est vraiment agréable si vous êtes en train de faire l'utilisation de la plug-in dans un Rust Bundler.
Parce que le Bundler fait un Rust2JS call,
on ne doit pas faire tout ça,
mais ils ont déjà payé le prix.
C'est pourquoi l'ES Builds plug-in a besoin d'avoir un filtre à l'outil avant que ça soit appliqué.
Et on va donc introduire quelque chose de similaire.
C'est une extension sur le point de vue des rollups et des packs.
C'est compatible, parce que quand vous utilisez le format d'objet pour vos hooks,
vous spécifiez la logique dans la property de la cellule,
et vous pouvez avoir une propriété de filtre pour dire,
« Appliquez-le, si l'ID matche ce réject. »
Donc, on peut déterminer si ce hook doit être appelé pour un module comme ça avant qu'on appelle ça.
Donc, on ne doit pas encore faire le Rust2JS bridge.
C'est l'autre chose.
On a vu beaucoup de plug-ins dans le wild,
en faisant très similaires choses.
Par exemple, dans le hook transformé,
beaucoup de plug-ins ont pris la source de source d'incompréhension,
et parvigé à utiliser le composant de l'adjustation de l'adjustation,
dans le hook,
et ensuite, ont fait leur propre analysis de semantics,
ou de traversée de l'AST,
et ensuite ont utilisé quelque chose d'une manière magique
pour alterer la code et générer une nouvelle code,
et aussi, ont besoin de générer la source map,
et ensuite passer par le bundler.
Donc, beaucoup de travail en JavaScript,
pas de la sélection du partage de Rust,
et aussi, le Rust a besoin de prendre la source map
et de faire la source image.
Les source maps sont aussi très clairs
pour passer par la boundary,
parce que c'est un objectif plus grand que la source code.
Donc, on est en train de créer des APIs
pour faire ce genre de standard ASD-based simple transforms
pour être aseficient comme possible.
Imaginez que, en prenant la source map de la code,
vous avez le préparé ASD directement.
Et en en utilisant la code
pour générer la source map et la JS,
vous faites toujours la même manière de faire des operations
comme la code,
mais ces opérations sont en train de se faire
et de faire des instructions très compactes
pour le Rust.
Et la liste de code, de la manipulation de la source,
et de la génération de la source est en train de faire
le Rust sur le Rust.
Le seul travail que vous faites sur la JS
est de regarder le ST
et de faire les opérations que vous voulez faire,
et de faire le Rust.
Donc, je pense que ça peut couvrir
un grand nombre de transformations customes
pour les nécessaires,
parce que nous sommes en train de construire
des views single file componentaires
qui sont entièrement utilisées en JavaScript.
Et si nous avons cet API nativement
sur le bundler,
nous pouvons offler beaucoup de la levée de la surface
pour le Rust tool change
en fait, en faisant le JavaScript.
Et je n'ai même pas besoin d'installer
une dépendance de la poste.
Donc, c'est la deuxième partie
et si nous allons un peu plus loin,
c'est pour la ligne.
Nous avons aussi investi en savoir
si c'est possible de
envoyer des STs
sur le Rust pour le JavaScript
pour que les costs de la petite memoire soient possibles.
Donc, c'est quelque chose de la 0 cost
de la JS
d'utiliser un ST transfert.
En fait,
c'est possible d'utiliser un buffer shared
et puis
nous avons besoin
d'un custom
de serialiser sur le site JavaScript
d'understand le layout de memoire
et d'être capable de laiser
la ST
du buffer flat
comme vous avez besoin.
Un de nos membres de notre team, Overlook Motel,
a déjà appris un concept de la construction
de la JS
mais le procédure de la JS
va être très difficile.
Donc, c'est quelque chose d'une manière
d'être en train de faire le tour, mais le concept de la JS
montre que c'est possible.
Il y a des choses intéressantes
dans le aspect JavaScript.
Par exemple, il y a un propos de shared struct.
C'est
assez nouveau, c'est toujours un stage long.

c'est aussi
assez intéressant si vous pouvez
utiliser des structs de shares
pour
faire le state de shared struct
et de la restée de la JS.
Ce qui s'enlève
est la parallélisation
de la plugin JavaScript.
Maintenant, quand vous utilisez la plugin
avec RustBundler,
parce que la plugin JavaScript
ne fait pas le processus JS, c'est toujours un single thread.
L'un des choses que nous avons fait
est d'utiliser des threads de multiple works
pour parallèler le workload.
Mais
le downside de ça, c'est que
si la plugin utilise une grande
dépendance, comme un Babel,
chaque thread de works
doit initialiser avec un Babel et apprécier
le mérif pour le code.
En beaucoup de cas, le gain
est plus petit que vous pensez.
Parce que le cost de initialiser
chaque thread a offre
beaucoup de gains de performance.
C'est difficile.
Il y a des choses que nous avons joué
avec, par exemple,
en attendant les travailleurs
au processus JS, et puis
de la recette de la data
et la recette de Rust, nous avons
directement détenu les travailleurs
pour les recettes de Rust.
Je pense que ça peut être utile,
mais les apprécier
ne peut pas être comme
l'exemple que nous pensons.
Il y a encore beaucoup de travail que nous explorons
dans cette région.
Mais je suis un peu optimiste
que
un grand plan de course pour nous
est de s'assurer que
les utilisateurs puissent
faire des plugins JavaScript
sans complémentation
de la performance de l'application.
Je pense que c'est l'un des plus
plus difficiles.
Pour toutes les raisons que vous avez
évoqué, et la tentation est
réelle de dire que
pas encore des plugins de JavaScript,
mais c'est aussi
un grand ecosystem
de la coste de l'écosystème
qui est un grand côté.
Je veux mentionner
que nous voulons
commencer par les
faire les plugins.
Nous commençons par avoir un sub-set
ou une meilleure pratique
pour faire des plugins
de JavaScript pour nous.
Nous allons donc avoir des rôles
pour vous aider à
faire des plugins, ou nous pouvons
avoir des warnings de ronde
comme l'une des choses que nous avons
fait, c'est que nous utilisons
OXC pour
mettre un petit outil qui peut regarder
votre code de source
et
voir votre transforme hook.
Vous devez voir que vous faites
quelque chose comme
si l'ID.test.reject
retient.
Il y a un signe de retour plus tard
qui montre que le transforme hook
est élevé pour l'optimisation de filter.
On va détecter ces cas
et vous donner
une recommandation
que le clou de l'ID.test.reject
peut être refacteuré pour utiliser
l'API de filter
pour faire un plus performant.
Il y a un défi
où il y a un peu de
plugins de legacy qui
travaillent dans la nouvelle architecture.
Mais ensuite, nous allons avoir un
recommandé V2 de tous les
nouveaux APIs pour faire
les choses très vite.
On veut aussi
faire des choses communes
pour faire des choses qui sont
construites. Par exemple, si vous utilisez
Ro-Down, vous ne besoinz pas
de plugins de JS, car ça ne marche pas
dans la boxe. Vous ne besoinz pas
de plugins de résolve, car ça ne marche pas
dans la boxe. Vous ne besoinz pas
de transforms de type script, jsx transforms.
Toutes ces choses travaillent sans plugins.
Il y a un peu de choses similaires
pour que le level de rollups
de abstraction
de Ro-Down est un peu plus
comme ES build
ou Veebs. C'est un peu plus
plus d'intérêt, car c'est
aussi le plus pragmatique
de pouvoir avoir le meilleur performant.
Ça fait un peu de sens.
Je suis vraiment intéressé de voir ce que vous allez voir
avec les transforms de la AST.
Je me sens que c'est un problème
assez commun.
Si vous avez besoin de faire des transforms
vous avez le problème
d'avoir des boundaries
de langue.
Ça me rappelle un projet
que j'ai vu l'autre jour,
qui s'appelle Render,
qui s'appelle Eric Mann.
C'est un code byte
qui s'appelle JavaScript,
qui est un engine de render.
Il y a
beaucoup d'interessants dans le space
quand vous pensez, comment on peut
faire
ces programmes,
ces programmes de marchery
qui sont très très très rapides.
Ça sera vraiment cool.
Je suis très excité.
Peut-être que nous nous sommes
en train de parler de l'épisode,
de parler un peu de ce que le futur
semble.
Vous avez dit que
Veebs est déjà
assez prolifique. C'est
votre point de départ.
Vous avez une base
d'épisode assez grande,
comme Rome,
qui a commencé,
mais il y a encore beaucoup de travail
à faire.
Qu'est-ce que vous pensez
que la priorité de votre projet
sera?
Qu'est-ce que votre horizon de temps
que vous vous anticipatez
pour dire que vous êtes les premiers
produits que vous avez réglé?
Ça sera un processus très long.
Je pense
que notre priorité
est de faire un tour
pour des statuses beta
de la priorité.
Il y a beaucoup de travail à faire
pour l'alimentation
que nous devons faire maintenant,
parce que pour le but
d'être capable de faire un tour
de la priorité,
nous devons faire
une mission de tour de la priorité
pour unifier les deux.
En termes de la façon dont
les tests sont bien élevés,
c'est-à-dire les tests
qui sont en train de passer
en même temps.
Et pour les ones
qui ne sont pas passés,
nous devons analyser
et voir
si ce sont des
distinctions de l'alimentation
ou si c'est
un correctement correct,


et si c'est un correctement correct,
nous devons les déclencher
et si c'est une inconsistence
entre les deux, nous devons
faire un appel sur lequel nous allons.
C'est juste un peu de travail
de la priorité, mais c'est nécessaire
avant de considérer
la production.
En parallèle,
le XC
est aussi en train de finir
les transformations de la download.
Les plus hardes
sont les generators de la base
et tout comme ça.
C'est bien en train de finir
ceci, et je pense
que par la fin de l'année, nous espérons
d'avoir un modèle de
beta-status et de
les transformations,
plus ou moins complétées.
C'est un bon milestone
pour l'accès.
Cela prime le tour de chaine
pour les tests
dans le viet.
La base de la base de la base
a déjà un travail en progrès
français, où nous passons
90% des tests.
Les tests qui ne passent pas
sont plus ou moins
bloqués
par les tests de la mode de legacy
qui nous
l'ont potentiellement piqué.
Je ne suis pas sûr
de comment beaucoup de gens vont encore utiliser la mode de legacy
en temps que nous nous réélisions
de la table.
En fait,
la viet de la base de la base
est assez usable.
Nous sommes déjà en train de
utiliser la viet de la base
pour construire les docks.
Mais nous voulons attendre que la viet de la base
soit prête, nous avons les transformations
prêtes, puis nous avons
une release alpha-r
sur beta pour la viet de la base
et que les gens puissent tester.
Cette version de viet de la base de la base
est seulement replacée par
la viet de la base de la base
et de la base de la base de la base.
L'équivalent de la viet de la base
n'est pas vraiment de nouvelles choses.
C'est surtout comme nous voulons
faire surement que la viet de la base
soit prête pour la nouvelle viet de la base.
Ça va probablement aussi prendre un temps.
Dans ce processus,
nous voulons
éventuellement prêter la viet de la base
pour un mode de mode

C'est tout le temps puissant par la viet de la base.
colorisant leoped
Ra-ículum

broneur

evaporat
mágesture
Donc, tous vos dépendances dans votre source de la base
vont au même point de transformation,
pour la production et pour la production.
Donc, la consistance va augmenter grandement.
Et pour les métafrés,
l'un important API pour les métafrés est le module SSRLogic.
Dans le nouveau environnement,
l'API est appelé comme l'environnement.run module,
quelque chose comme ça.
Donc, l'intervient,
c'est encore currently en utilisant un transformement de JavaScript.
C'est en吹 l'�� loader de l'interviasme de l'API.




economically, on a Family Apprentices yardımieattereds et
ceux qui se affirment, baisse a à l' territorialité encore
l' 없고 de l'événement.


C'était un plaisir de vous avoir retourné.
C'est incroyable de voir comment les progrès que les projets ont été faits et que le nouveau projet s'est dit.
Merci.
Je vais vous parler.
Super excité pour ce que vous faites.
On a eu quelques autres épisodes où nous avons parlé de la construction d'infrastructure.
On a eu le biome qui était en train de se faire un peu plus tard.
On a eu Charlie Marsh en parlant de rough et UV dans le système de Python.
C'est un système de Python.
C'est vraiment l'un des bêtes que nous avons faits dans le space.
C'est l'un qui est le plus probable de se faire.
C'est toujours un grand bête.
Je suis très heureux de voir ce que vous faites et je vous souhaite le meilleur.
Merci.

Les infos glanées

Je suis une fonctionnalité encore en dévelopement

Signaler une erreur

devtools.fm:DeveloperTools,OpenSource,SoftwareDevelopment

A podcast about developer tools and the people who make them. Join us as we embark on a journey to explore modern developer tooling and interview the people who make it possible. We love talking to the creators front-end frameworks (React, Solid, Svelte, Vue, Angular, etc), JavaScript and TypeScript runtimes (Node, Deno, Bun), Languages (Unison, Elixor, Rust, Zig), web tech (WASM, Web Containers, WebGPU, WebGL), database providers (Turso, Planetscale, Supabase, EdgeDB), and platforms (SST, AWS, Vercel, Netlify, Fly.io).
Tags
Card title

Lien du podcast

[{'term': 'Technology', 'label': None, 'scheme': 'http://www.itunes.com/'}]

Go somewhere