Steve Manuel, Ben Eckel - Extism, Dylibso
Durée: 48m30s
Date de sortie: 23/06/2023
This week we talk with Steve Manuel and Ben Eckel from Dylibso about their project Extism, an extension framework built on WebAssembly. We talk about the inspiration for the project, the challenges of building a apps with WebAssembly, and the future of WebAssembly.
Become a paid subscriber our patreon, spotify, or apple podcasts for the full episode.
Je n'avais pas de système de plug-in sur la chelonne que je pouvais incorporer dans ma app,
donc j'avais besoin de faire ces décisions et de réinventer le rouleau sur et sur et sur et encore.
Et quand je l'ai déjà appris à WebAssembly 5 ans plus tard,
la première chose que j'ai été déçue était un contente pour un système de plug-in,
ou format d'exécution que nous avons besoin.
Hey, avant de commencer, j'aimerais vous rappeler que le tout épisode est seulement disponible pour nos abonnés.
Les plateformes qui sont disponibles sont Patreon, Spotify, YouTube et Apple Podcast.
Le tout épisode de cette semaine, vous devez entendre tous nos conseils de travail.
Et cette semaine, c'était intéressant.
Et avec ça, on va nous faire un épisode.
Bonjour, bienvenue au WebTools FM Podcast,
ce podcast de développeurs et des gens qui font des choses.
Je suis Andrew et c'est mon co-host Justin.
Tout le monde, notre guest aujourd'hui, c'est Steve Manuel et Ben Echel de Delibso.
J'ai entendu de votre travail par un projet de l'extisme,
qui est un framework de extension de Wazom.
C'est vraiment cool, j'ai hâte de parler de ça.
J'ai été en train de suivre ça depuis longtemps et j'ai vraiment envie de le faire plus loin.
Mais avant de le faire,
il y a un moment pour nous dire à vous-même et à votre company.
Qu'est-ce que vous faites ?
Bien sûr.
Je suis Steve, le co-founder de Delibso.
J'ai originalement trouvé au mois de l'agustin 2022
avec la formation du projet de l'extisme.
C'est la première chose que nous avons créée.
Avant l'extisme, je travaillais en compétition de compétition de compétition
et de compétition de quantum.
Je me suis brisé les mondes de quantum et de la compétition de la classe.
Et avant ça, j'ai travaillé sur la plateforme des travailleurs
et j'ai construit le projet de R.S.
pour mettre de l'aide de Rust pour la plage
et pour l'alternative language d'utiliser
comme une première classe de citoyenneté pour la plateforme des travailleurs,
qui a précédemment été juste en JavaScript.
Oui, mon nom est Ben.
Avant Delibso, j'ai travaillé sur un dog de data.
L'une des choses que j'ai travaillé sur
était de voir comment des tools de data
pour travailler dans des nouveaux environnements
déploiements comme l'Edge,
comme les travailleurs de Cloudflare
et des choses comme l'Edge fastidiaux.
J'ai porté des tools pour travailler sur l'Edge
et j'ai réignité beaucoup de mon intérêt et la technologie.
C'est quand j'ai été en contact avec Steve
et nous avons co-founded cette compétition
avec notre autre co-founder, Zach.
C'est ma histoire de Delibso.
Un bon plan de base pour l'adresse de l'Edge
est de vous assurer que vous portez l'assembly à la production
et vous la gardez là-bas.
Pour tous les développeurs qui travaillent en tant que
de la classe de la l'Edge et de l'expérimentation
avec cette nouvelle technologie,
il y a beaucoup de gaps
entre la première ligne de code
de la compagnie à l'Edge
et tous les procédurements
entre lesquels on va à la production.
Nous avons construit des tools de validation,
de test, de débug,
de visibilité et de l'observité des tools
pour aider à des gaps
de la production de l'Edge.
Je veux que vous puissiez avoir une bonne expérience
avec l'Edge, si c'est en prod.
Cool.
Avant de nous diviser
dans les tools que vous avez construits,
pourquoi Wasm ?
Pourquoi trouver un nouveau technologie excitant ?
Qu'est-ce qui est si excitant
que vous voulez construire une compagnie ?
Oui, c'est un peu personnel
et il y a un peu de professionnel.
C'est quelque chose qui est plus
pour le contexte de l'audience.
Et puis, ces deux choses intertruisent.
Mais pour moi,
je trouve Wasm excitant
parce que j'aime vraiment
travailler avec ce que je dirais
en langage et en infrastructur.
Je l'aime en lire
en compétition et des choses de l'avenir.
Wasm combine
beaucoup de choses différentes pour moi
en termes de la manière de travail
que je fais dans cet espace.
Et c'est aussi très difficile.
Personnellement, je trouve
ces choses très grandes et excitantes.
Et puis, il y a aussi l'aspect
de pourquoi c'est important
pour notre industrie.
Et pour moi,
je pense que la chose importante
de ce que je veux dire
est vraiment ses capacités de sandbox.
Et tous les deux sont dédiés
par les capacités de défaut.
Et je trouve ça un peu
intéressant
et quelque chose que les gens overlookent
parce que, typiquement,
les développeurs,
on regarde l'innovation de sécurité
et on regarde la sécurité
de la job.
Un peu de temps,
c'est quelque chose
qui nous arrête de se faire.
Mais en fait,
si vous regardez
à beaucoup de l'avance
dans les dernières 30 ans ou so,
beaucoup de ce que l'avance
est en train de faire
l'invance en technologie de isolation.
C'est comme de aller
de l'invente de machines
de machines virtuales
à des containers
et maintenant de
les containers à Wasm.
Et cette idée
de basically
de la boulon de l'isolation
plus près
à l'application
pour que vos applications
soient plus petites
et plus vite
et que vous pouvez les apporter
plus vite au système.
Je ne sais pas vraiment
où tout le monde
de la web
va aller,
mais je sais que dans 10 ans,
ce 2023
sera un moment de marque de l'eau
pour l'évolution
de certaines technologies.
Je pense que le Wasm
sera le raison pour laquelle.
Juste pour ajouter
mes deux sens
dans l'enquête,
je l'ai écrit beaucoup de codes
et beaucoup de langues de programmage.
J'ai ré-written beaucoup de codes
d'une langue
et d'une autre.
Et je trouve toujours
que j'ai toujours
de porter
quelque chose
dans une autre langue
parce que c'est un tour
dans la stack
que l'entreprise a choisi
pour un certain projet.
La web est simplement
de l'avis d'un premier,
peut-être le premier
réel actualisation
d'une opportunité
de réutiliser
un bunch de codes
qui sont en train de s'attendre
dans les livres.
Et parce que la web
est simplement
de targets
une seule l'ISA,
une instruction
de l'instruction
qui est commune
par chaque ronde
où le Wasm
se tourne,
vous pouvez faire
beaucoup de choses
très intéressantes
avec
cela
comme votre
fondation
de la salle.
Et en plus
de l'instrumente
de votre code source
avec les livres
et d'expect
le développeur
pour faire ça
bien
et inclure
tous les places
où
un trace
doit être
emploié
et un span
doit se suivre
et plus de spans.
Un peu de ces choses
peuvent être fait
automatiquement
et
sur l'instrumentation
de la débugging
et de l'analyses
il y a beaucoup
que vous pouvez faire
avec un set
commune
et un peu
ce qui m'a
illuminé
en travaillant
en compiler
avec la chaine
où, quand vous avez
votre langue
au LVMIR
c'est vraiment
où la magie
s'occupe
et WebAssembly
tient
ce genre de
plus approachable
lait
où plus de langues
peuvent faire
plus de environnements
et nous pouvons
mettre plus de tooling
dans cet écosystème.
Et je me suis dit
que nous voulons
faire WebAssembly
tout le monde
favorisent
le format binary
mais
personne ne pense
vraiment
au format binary
ou
le carence
au format binary
et donc
je pense qu'il y a
une opportunité
pour
faire que les gens
aient
le care
de ce format binary.
C'est un sujet
très intéressant
je pense
que le programme
a été un truc
qu'on a toujours voulu
partager
la code
et réutiliser
la code,
c'est vrai
et ce n'est qu'il faut
se faire
plus et plus
important
comme
nos systèmes
ont été
plus et plus
complexes
et je pense
que nous avons
pris beaucoup
de craques
sur le
vous savez
que c'est
comme
vous savez
des
LL
ou
des objets
ou peut-être
même
comme
les choses
comme
le JVM
comme
construire
des rondeaux
où vous pouvez
avoir
des langues
compilées
je sais
comme
Erlang
est sort de
comme
développé
un
système
vous avez
comme
toutes ces
différentes approches
pour
faire ce
chose
où c'est
comme
vous savez
on va
potentiellement
avoir
plusieurs langues
et nous voulons
faire
ça
sur un
système
éco
mais
un peu
de ces
sont très
spécifiques
pour
un
système
et je pense
que votre point
de lvm
est vraiment
une
chose
intéressante
parce que
ça a
été
ce sort
de
base
en
un
un peu
de langues
qui
ont
la
la
la
la
la
la
la
la
la
la
la
la
la
la
l'emmen
majestabil que
les
la
l'exception
sètre
pour le CLR ou le JVM,
était designé avec une langue de plus haut en main.
Et juste en un moment, les deux en un à l'arrivée,
ça fait que c'est plus difficile pour d'autres langues
qui n'ont pas peut-être la même semantics
ou les mêmes paradigmes pour la sécurité
ou les modèles de programmation,
qui sont desquelles que l'ISA,
c'est comme ce niveau de compétition,
et WebAssembly est designé de l'outil
pour ne pas avoir une langue vraiment attachée
à ce niveau de format.
Et je pense que ça a vraiment aidé à gagner de l'attraction
comme un target pour un peu de langues différentes
qui sont compilées,
qui est vraiment excitant.
Et ce que nous pensons est un component assez critique
ou WebAssembly,
comme ça, qui m'attrape,
pour plus et plus de langues
pour faire le travail à la fin.
Nous nous sommes en train de voir le progrès,
ce qui est génial.
Et aussi, vous parlez de l'Irlande,
par exemple, et de la JVM.
Un peu de gens ont targeté ces plateformes
de la générique pour leur code,
mais les deux de ces choses
sont beaucoup plus de choses
que vous ne probablement pas avoir besoin.
Comme la JVM,
vous ne pouvez pas vraiment allocer la mémoire
sans avoir à être élevé.
Aussi, la JVM,
aucun programme que vous avez fait
est possible de faire ce que vous voulez.
Vous pouvez ouvrir des blocs,
ouvrir des files,
et WebAssembly est bien
parce que ça ne s'agit pas de rien.
Et si vous n'avez pas besoin de rien,
votre WebAssembly programme
sera très rapide et très secure.
Et si vous voulez ces choses,
vous devez explicitement les opter.
Oui, c'est intéressant.
Pour beaucoup de les listeners de ce podcast,
peut-être le premier
expérience de sandbox
que ils ont,
c'est juste de la javascript.
Et un browser.
On a un tab qui est en javascript.
Il y a une correlation très intéressante
ici pour Node,
qui a pris
cette langue qui a sorti
historiquement dans un environnement sandbox
et qui a maintenant accès
à tout ce que l'on appelle la JVM.
Et puis,
contraste avec Dino,
qui a un modèle de la mémoire
et je sais que ça va être de la mémoire,
mais Dino,
qui a le design de l'outil
pour avoir une mémoire
qui est en un vêtement similaire
où vous pouvez penser
à ce que vous faites.
C'est comme construire
quelque chose dans un sandbox
où vous pouvez vraiment contrôler
ou juste donner accès
à ce qu'il faut
et rien d'autre.
C'est vraiment cool.
Donc,
on va parler un peu
du exthisme.
C'est vraiment intéressant pour moi.
Je me dis beaucoup
que l'une des choses
qui m'a vraiment apporté
dans le programme
était la mod des jeux.
Et un peu de mod des engins
sont très prudents
dans les systèmes de plug-ins.
Donc,
peut-être que vous pouvez
juste parler un peu
de ce qu'il y a
et de l'intérêt
de la construction.
Bien sûr.
Je pense que ça va en plus.
J'ai écrit
beaucoup de systèmes de plug-ins
pour parler de ces personnages
et ça me frustrait
de me faire des décisions
en même temps,
en essayant de
utiliser un autre stack
ou un autre langage
ou un autre modèle
de faire l'exécution de l'enquête
et de la forme
de la manière dont je vais
donner des données
pour les initialiser.
Et quand on a initialisé
comment ils ont accès
à ce qu'ils ont accès
à ce qu'ils ne peuvent pas
goggagner,
détenir un autre plug-ins,
et puis Karere
justement ces choses
sont invitées
d'autres décisions
road dans un plac
parmi moi
et depende deéric l'enquête
pour quand j'aiрач
votre programme
dans ma vie
tandis mon système de plug-in
individ dehydravation
de la phase de position
que j'ai été incorporée
dans mon app
J'aiju souligner
les décisions
et re Здесь
Et moi
le milligramme de web
sur leぼ
en l'année précédente
Le premier qui m'a appris c'était un contender pour un système de plus en plus de plugins
ou format d'exécution que nous avons besoin.
Et quelqu'un juste doit faire un temps de tour,
prendre l'assemblée web, donner des données,
permettre pour l'arbitration de la fonction d'être appelée,
et puis, prendre des données de retour.
Et ça fait un peu plus simplifier, mais effectivement, c'est le système de plugins.
Et pour ceux qui ne sont pas conscients de ce système de plugins,
c'est ce qui est ou qui fait.
Il fait votre application et laisse le programme de l'application
faire un point d'extension,
ou plusieurs points d'extension dans le cycle de la programmation,
et dit, « End-user, donne-moi des codes,
et je vais faire votre code à ce point dans mon programme.
Et le prochain step de le programme
va prendre les résultats de votre plugin et faire quelque chose de nouveau.
Donc, peut-être que nous ne nous couvrons pas tous les besoins pour vous
comme un end-user dans nos programmes.
Les capacités.
On a un système de plugins qui nous permet de nous donner des codes,
un peu de code, et maintenant le programme a des capacités extraites
que nous n'avons pas pensé, que nous n'avons pas pu éblier,
mais que vous avez imbueu dans le programme.
C'est un concept vraiment powerful
et qui peut donner aux équipes d'ingénierieurs
une grande relief de ces backlogs
qui, en finit, sont plus de temps que les équipes d'une certaine manière.
C'était vraiment cette idée de,
« Peut-on créer ce système de plugins
de l'universal, qu'on puisse utiliser pour mettre
et de l'immediatement obtenir ce système de plugins disponible ? »
Et donc, un jour, on a décidé de ne pas avoir assez,
on a pensé qu'il y avait assez,
on a besoin de construire ce système.
Et il y a quelques jours, on a créé un concept de prouvé
et on a été très longtemps
pour mettre en place Zach et Ben,
qui ont été plus loin de ma imagination.
Je suis très heureux.
Ils étaient intéressés d'être venus à l'aide.
Le système de plugins est maintenant un système de plugins
qui peut être emmetté dans 15 langues de différents programmes,
incluant le browser et les environnements de service.
Vous pouvez utiliser les plugins dans votre code
qui sont compilés à l'assemblée de web.
Nous avons l'assistance officielle
pour 7 langues de différents programmes
qui sont compilées à l'asembre,
mais, theoretically,
tout ce qui peut être compilé à l'asembre
peut être emmetté en ex-designes de plugins.
Et nous avons une communauté d'open source incroyable
et de discord,
qui est en train de programmer
tous les niveaux de l'expérience
et les langues de différents programmes.
Et ça nous donne vraiment un incroyable insight
dans le monde de comment les gens
commencent à penser à l'assemblée de web.
Comment ils utilisent,
les problèmes qu'ils ont,
et qui inspirent un peu
l'application de producteur
que nous nous avons évoqué
à l'entreprise.
Donc, les features que l'extisme
a été construit dans Wazm
sont les portables et la sécurité.
Est-ce que les autres features de Wazm
qui permettent d'évoquer l'extisme
pour faire des choses cool ?
Oui, c'est drôle que vous avez vraiment
détenu, c'est vrai.
C'est vraiment important
que l'extisme soit des deux aspects
de la sécurité et de la portabilité.
Et pour donner un insight
sur pourquoi ces choses sont importants,
la sécurité, à nouveau,
en tout cas,
c'est un peu comme
ne pas être réveillé
ou quelque chose de
le distingue de l'autre.
C'est en ennuyant un feature.
Parce que si vous parlez
de beaucoup de développeurs de web,
on a eu beaucoup de trouble
expliquant à des gens
quel est le système de plug-in.
Parce que ce qui a été passé
longtemps,
ou peut-être en 1990,
l'arrivée de l'earthme,
avant qu'on a pu passer
au web,
et nous avons eu ce type
de modèle de compétition clientèle.
Les systèmes de plug-in
sont très communs.
Un peu de vos apps desktop
ont eu leur browser.
On a fait beaucoup de
reading about music technology
des jours ou des systèmes de plug-in.
C'était toujours un point commun.
Vous avez juste de la code
que vous pouvez downloader
en ligne
et vous pouvez le placer
dans votre application
et les gens peuvent l'extender.
Les modèles de jeu
sont un bon exemple.
Mais ce qui s'est passé
quand vous vous rendez
au web,
on ne pouvait pas
vraiment les partager
avec ces objectifs.
Et il y avait des problèmes
de sécurité
avec maintenant
les systèmes de plug-in
et des environnements multi-tent.
Donc je pense que
l'une des choses
intéressantes
de ce aspect de sécurité
va vous donner
des systèmes de plug-in
aux places
qui n'aura jamais
vraiment pu avoir.
Le challenge,
c'est bien sûr
que beaucoup de gens
ont étendu le programme
sur le web
et ils ne savent pas
ce que c'est.
Et on va en parler
un peu
mais c'est vraiment
un très fort moment.
Et puis
l'aspect de portability
est important
parce que
nos stacks
sont très diverses.
Même les petites
entreprises
que j'ai travaillées
ont usually
deux ou trois
ou quatre
langues de programmation
à travers votre stack.
Les systèmes de plug-in
sont historiquement
très silo
aux langues
que vous choisissez
à l'aide de les guests
ou de l'hôpital.
Et c'est un grand
lift
pour faire
à quelque part
dans votre application
qui a une nouvelle langue
ou de re-réwriter
votre application
dans une nouvelle langue
et comment vous portez
vos plug-ins avec vous.
La chose vraiment cool
de Wazem
est que vous pouvez
mettre vos plug-ins
partout.
Et en fait,
vos plug-ins
peuvent en fait
relancer votre host
maintenant.
Donc,
en théorie,
vos plug-ins,
si Stripe
construit un système de plug-in
peut-être
un autre système de payment
comme un square
peut utiliser
les plug-ins de Stripe aussi.
C'est comme que les plug-ins
peuvent en fait
relancer
au-delà de
les hosts
si ils sont ultra portables.
Donc,
c'est l'aspect
de la leur permettre
de les mettre en place.
Mais aussi,
de bouger
ces plug-ins
autour
et de les faire
les interprétences
d'être
ces choses
qui ne sont que
une application de l'un de les autres.
Ce qui se passe
dans la sécurité
et c'est généralement
le traitement
de la performance.
Et donc,
oui,
vous pouvez mettre
un enjeu JavaScript
dans votre application.
Et c'est comme
le commun de la façon
dont vous voyez
une application
plus en plus.
Ça va inclure
un enjeu script
et c'est probablement
un enjeu JavaScript
ou un Lua.
Et comme Ben m'a dit,
oui,
c'est le type
de l'une langue
où vous pouvez seulement
mettre un enjeu JavaScript
pour éliminer
cette application.
Mais c'est très secure.
Vous savez exactement
ce boundary
entre l'application
de l'application
et l'enjeu JavaScript
de l'enjeu code
qui est éliminé.
D'où vous l'applique
et le traitement
est dans la performance.
Et généralement,
c'est
des ordres
de magnitude
de la slowdown
pour aller
de la code native
dans l'enjeu JavaScript
et ensuite
dans l'environnement
de la plug-in
en enjeu JavaScript.
Et WebAssembly
donne
cette vitesse néer
de la vitesse
parce que
cette code de la bête
de l'enjeu code
est ensuite compilée
dans la plupart des cas
deux instructions
et émettées
à la vitesse néer
dans l'application
dans le processus.
Mais c'est isolé
et a des caractéristiques
de sécurité
que vous voulez
d'un système de plug-in.
Et donc
ne pas avoir
de traitement
de sécurité
ou de performance
qui vous donne
cette unique
nouvelle superpower
que WebAssembly
donne
que nous n'avons pas
dans le passé.
Et à l'arrivée de l'avant,
nous avions pu
mettre un de la DLL
ou un objecteur de share
dans notre software desktop.
Une des autres pièces
nous avons évoqué
beaucoup de software
sur le surf.
Et comme Ben m'a dit
dans un environnement multisensé,
vous ne pouvez pas
mettre un objecteur de share
et espérer
que vous soyez
en toute façon
en sorte que ça fonctionne.
Et c'est en fait
l'une des fondations
de la compagnie,
en même temps le nom
DILIBSO
est un Mac,
DILIB
et un SO
un objecteur de share
qui est un
acknowledgement
de la technologie
que nous pensons
sera déplaissée
pour beaucoup de cas
et de la technologie.
Donc un peu d'appréciation
pour l'ancien
mais de faire
une nouvelle
chose
qu'on pense
est beaucoup plus
plus rapide
dans les dimensions.
J'adore l'origine du nom.
Ça fait un peu de sens.
La toute idée
de la portabilité
est super cool pour moi.
Je travaille sur un appui
appelé Descript.
C'est un éditor audio
et un système de plug-in
pour nous
fait un peu de sens.
Et un système de plug-in
qui vous permet
de peut-être
utiliser
des trucs
d'audio-processing
ou des choses
qui ont déjà été
solvées
et qui ont facilement
inclusé
dans un plug-in
que c'est un application
de web JavaScript.
C'est juste super cool.
Et l'utilisation
est la partie
réelle.
Oui, c'est un peu
plus rapide.
C'est un peu
comme si vous vouliez
réutiliser le code.
C'est à l'evaluage
de la base web
comme un système de plug-in.
Vous pouvez l'utiliser
dans un peu de différents
moyens.
Il ne faut pas
nécessairement
exercer
votre software
si vous voulez.
C'est comme
que je prends
ce code de russes
et le porté
dans ma appui Java.
Ou
que je prends
ce code de go-code
pour l'utilisation
de l'utilisation
du système de plug-in.
C'est un moyen
d'être
commencé
avec le WebAssembly.
Ce qui
aujourd'hui
a des
points
si vous n'avez pas
utilisé un framework.
Je suis heureux
de aller
dans un plus
détail.
Mais c'est aussi
une extraite
chaîne
que nous considérons
comment nous
ne faisons
pas seulement
ce système de plug-in
utile
et de la box
très capables
pour les développeurs
de l'utilisation.
Mais aussi
c'est un
petit
interdiction
dans le WebAssembly
qui ne
cause
aucun hésitation
ou vous hésitez
à l'exploitation
et il y a des
problèmes
que les gens
tentent de faire.
Nous
sommes
un peu
chiant
parce que
ça peut
faire
quelqu'un
de l'Assembly
juste
au-delà
de ce petit
hésitation.
Il y a juste
ce monde
de magie
et d'aménagement
que vous pouvez
expérimence.
Mais beaucoup de gens
sont
en train de
se faire
un
chemin
sur ce hésitation.
Et ce n'est pas
la bonne
chose pour tout.
Mais ça
aide
dans
beaucoup de cas
de
développeurs
qui ont
commencé
avec le WebAssembly.
Je voudrais
vous décrire
ce qu'il y a
dans le file
système.
Et pour
bonnes raisons,
si vous
vous
trompez un module
sur le browser,
il n'y a pas
un file système.
Donc,
vous savez
ce que vous faites.
Donc
aide-moi
à comprendre
la histoire
de ce petit peu plus.
Et juste
comme exemple
si vous voulez
faire une extension
qui
s'accueille sur les files,
est-ce que
votre
environnement d'exécution host
que vous avez
écrit
a dû
définir
des vocabularies
pour la
extension de
Si vous voulez
lire un file,
ici est ce que vous avez
besoin de me demander
et je vais
vous remercier
le contenu.
Et si c'est le cas,
qu'est-ce que
ce bruit
comme
vous savez
ce qu'il y a
à cause de là?
C'est vraiment
une question
et c'est vraiment
une question importante
pour
répondre
comme si
l'assemblée web
va rencontrer
tous vos besoins
à ce moment
parce que
je pense que
l'un des facteurs
maintenant
est
oui,
vous êtes constrainé
pas
l'objet de
évoquer un fonction
rapidement
ou un réponse
rapidement.
Vous êtes constrainé
par l'amount de data
que vous devez
mettre sur
cette boudrie
parce que
il y a une boudrie
et pour une bonne raison
l'assemblée web
a sa propre
espace de mémorisation
et
elle ne peut pas
éviter
cet espace de mémorisation
donc
si vous voulez
le savoir
sur d'autres données
vous devez
copier votre data
dans ce espace.
Donc il y a un genre
de copie
dans l'amount de mémorisation
c'est généralement
assez rapidement
mais ça ne peut pas
être un facteur limité
si vous avez
un ton de data
mais
c'est quelque chose
que je pense
que c'est
travaillé
et dans le futur
il y aura des
moyens
pour passer
les références
comme
des références
c'est un peu
un peu
plus
plus
plus
c'est
un peu
plus
ok
et en fait
il y a des plugins
qu'on doit utiliser
Wazie
donc
on supporte
et
vous pouvez
utiliser
aujourd'hui
mais
Wazie
est
un transition
à un
nouveau standard
c'est
encore
comme un
standard
donc
il y a un peu
de
points
je ne veux pas
parler
à
d'autres
dates
mais
probablement
par le bout
de l'année
la prochaine
année
il y aura
comme le nouveau
standard
que
c'est
un peu plus
plus
stable
mais
maintenant
ils sont
en
mode
prévu
et pour le
le plus
c'est
le plus
autre
version
de
Wazie
spéc
vous introduirez
ce genre
la version
n'a pas
pas
donc
vous n'aurez pas
à utiliser
ce
simple
pour
faire
un
très
performant
multithrédé
web
server
vous pouvez
certainement
faire
un
web
simboli
à l'intérieur
ce
performant
multithrédé
web
server
et vous pouvez
faire
des
n'est
pas
de
les
et
les
files
et tout
ce genre
c'est un
tarjet
un peu
mais
aujourd'hui
il
fonctionne
très
bien
et
le
le
le
le
le
le
le
le
le
le
le
le
le
le
le
le
le
le
le
le
le
le
le
dafür
Javascript, Wasm a été construit pour Javascript, donc s'allumant à les modules de WebAssembly est un peu triviel.
Mais qu'est-ce qu'il y a d'autres langues ?
Avant l'extisme, il s'est appelé à Wasm d'autres langues, c'est un challenge.
Parce que un grand part de l'extisme, à moi, semble que vous avez cette interface commune.
Ça ne importa pas ce que l'anglais est.
Call 2 Things et vous avez bloqué votre WebAssembly.
Oui, donc évidemment, les gens connaissent l'histoire de WebAssembly pour être quelque chose qui était dans le browser.
Pour le plus grand part, c'est que l'anglais était en train de s'interpréter dans l'anglais.
Mais évidemment, il était important que ça soit possible d'interpréter avec Javascript.
Et c'est générique de s'interpréter avec l'anglais.
Mais un peu de l'article plus tard qui a été construit,
c'est juste d'assumer que vous allez être en train de faire des modules de Javascript.
Et le truc qui est en train de se faire est vraiment ce que je dirais comme un layer de l'ABI.
C'est vraiment le layer de comment vous avez des données dans le code,
comment vous invoque les fonctions, comment vous avez des données dans le code.
C'est un peu de la chose que vous avez en train de se faire,
Et c'est un peu de la chose que vous avez en train de se faire.
Et c'est un peu de la chose que vous avez en train de se faire.
Et c'est un peu de la chose que vous avez en train de se faire.
Et c'est un peu de la chose que vous avez en train de se faire.
Et c'est ce que l'extisme a fait.
C'est ce que nous avons offert.
C'est un moyen de manière générique pour avoir des données dans ces modules et invoquer les fonctions.
C'est un moyen de manière générique pour l'ABI.
Et nous avons aussi utilisé des outils pour faire ça facile,
pour ajouter la soutien pour des nouvelles langues et tout comme ça.
Donc oui, c'est toujours un challenge.
Et comme WebAssembly se dévouit dans le service,
les gens commencent à se faire des moyens de construire ces technologies génériques
et puis, en fait, ils vont se faire rouler en train de faire des choses en Javascript.
Peut-être que dans le futur, on ne va pas utiliser des outils comme Wazm, BindGen,
on va utiliser un outil générique plus générique et Javascript se dévouit juste pour être la hoste.
Un des facteurs limités pour la soutien de langues
était le fait que WebAssembly Runtime ne sont pas disponibles dans la langue.
Il n'y a pas de PHP Wazm Runtime.
On ne peut pas juste prendre un file de Wazm
et nativement exécuter le Wazm dans le PHP.
Il y a quelque chose d'interprète qui sait que le code format
peut peut-être pouvoir compiler à temps ou dans des instructions.
Ces langues sont limitées à la version de Rust et C,
où Wazm Time, Wazma, Wazmer et toutes ces autres runtimes ont été développées.
Cela signifie que la version de Rust et la version de Rust
ont été nativement supportées pour charger ces runtimes
comme les libraries, les linker et puis charger un module de Wazm et l'exécuter.
L'un des choses que l'extisme a fait,
qui permet d'aller dans tous ces places,
c'est de décider que nous allons relier à la CFFI
et de donner une interface qui nous permet de faire ce travail
pour vous, d'embaîter le Wazm dans votre langue,
dans un moyen commun, que vous n'avez pas à penser en tant que développeur
et puis de rappeler la CFFI dans des plus idiomatiques SDKs,
les libraries qui font que c'est juste native Ruby,
c'est juste native PHP, c'est juste native Java.
Donc le développeur est vraiment comme si je suis bloquant un library.
Juste comme si vous avez utilisé SQLite dans votre langue de choice.
Vous êtes vraiment en utilisant une libraire de shared,
une libraire de SQLite dans le système,
et puis en faisant des calls de CFFI
dans votre langue dans le SQLite
pour faire des queries dans certaines données.
Et donc l'extisme marche très bien.
Le but de l'exécuter était universalité.
Nous voulons que l'extisme soit dans tout le monde,
dans as many platforms as possible,
et cette architecture est la seule chose qui permet ça.
Et donc un autre élément de cette difficulté
c'est que ce n'est pas des runtimes
dans la majorité des langues.
Donc nous avons fait le travail de la packaging
pour obtenir un runtime en Asm.
Dans votre langue, mais en même temps,
on a raté le runtime avec un certain
un layer de convenance qui le fait vraiment facile.
Comme Ben m'a dit,
on a fait des data de chute dans un call de function
dans le module Asm.
Sans avoir à faire le tracking,
l'allocation et la dégager
la function du Asm
et la exécuter.
Et en connaissant les conventions de calling
et la lignes de la API,
on a travaillé avec WebAssembly
dans un de ces runtimes.
Ironiquement, l'extisme est un dilib.
C'est un objectif shared.
Nous utilisons un de l'autre
de faire des choses pour répliquer.
En plus de langues,
on peut probablement avoir de support native
pour les runtimes.
Je vais vous parler de le project YZERO
dans le ecosystem Go.
L'extisme pourrait réimpliquer
notre API sur le top.
Et un travail qui n'a pas trop long
est de réimpliquer les runtimes
de l'Api en JavaScript
pour permettre les mêmes plug-ins
qui exécutent dans un programme
ou un programme de go-programme
dans un environnement de service
pour réimpliquer le browser
dans un JavaScript capable d'assembler
l'engin de WebAssembly
qui est trouvé dans tous les browsers.
En théorie, les runtimes
devraient être les mêmes.
Le Wazim est standard.
Ils devraient être capable de réimpliquer.
Donc, l'extisme pourrait réimpliquer
le runtime avec tout.
C'est assez cool.
Je vois que vous avez un playground
qui est un killer
d'être capable de le réimpliquer.
Vous devez légèrement
dédire votre module Wazim
et réimpliquer le site.
Oui, vous pouvez l'adresser
par URL, aussi.
Vous pouvez le mettre en GitHub
et envoyer un link à Wazim.
Ils peuvent le réimpliquer
avec des exports de function
et passer des dates avec un type de mime.
Ils vont le rendre dans un autre columne
si vous voulez un preview.
C'est très cool de tester le playground
si vous n'avez pas utilisé un browser
pour essayer votre plugins
avant de construire une taux de plage.
La taux de plage est l'application
dans laquelle le playground s'adresse.
Ça fait du travail.
Le playground est un endroit
d'essayer de voir comment ils ont fait
et de voir les valeurs de réimpliquer.
Mais, ça va être limité
par les capacités.
Nous sommes assis que vous avez un module Wazim
qui ne fait pas de nets
pour faire quelque chose.
Oui, mais nous pouvons supporter ça.
Ce que nous pouvons faire, c'est que
le X-System a sa propre façon de faire des calls de HTTP
et nous nous donnons le browser
pour soutenir certaines capacités de host.
Ce n'est pas trop uncommon
pour les gens de la web assemblée
et d'utiliser des capacités de browser
pour émuler des trucs comme l'OubC
comme les gens de la place de storage
où il fait des files, des retenues et des règles.
Il y a un certain limit pour ce que nous pouvons customiser
mais pour la plupart, vous pouvez le faire
avec les plugins de l'année.
Nous avons parlé de la tech beaucoup
et je sais que c'est plus tard pour vous.
Mais est-ce que vous utilisez l'extisme
pour faire des cool trucs et faire des cool apps ?
Oui, il y a un bunch de projets
que nous ne pouvons pas parler de,
que nous sommes interactuants avec les scènes
mais certains sont lesquels sont en source.
Mon préféré est cet projet
qui s'appelle Ultoroshi,
une proche de la grande entreprise
d'insurance, qui s'appelle MAPE
et c'est une équipe qui a construit
cette proche, je pense, pour des propres intérêts
mais qui a été sourceuse.
Vous pouvez le voir sur MAPE.
On a fait un job d'intégrer l'extisme
pour qu'à un point dans la proche
où il y a un réquest
et avant qu'il décide
qu'une fin de l'endroit ou l'extrême
va prendre ce réquest
et le redirecter à l'autre
ou tout ce qu'il va faire, vous pouvez faire une nouvelle décision
et cela s'est implementé
comme un plugin de l'extisme.
Ils ont été allés de faire
un document très excellent, peut-être mieux
que nos propres docs pour leur product,
pour utiliser l'extisme à l'intérieur de Ultoroshi.
Nous avons vu un pop-up de tous les types
de mises de fun, mais vous avez parlé
du project de l'LED Matrix.
Oui, c'est quelque chose que je veux essayer
bientôt, mais un étudiant
a fait un programme de l'LED Matrix
où vous pouvez mettre des plugins
pour les gens.
Des art-pices
qui peuvent être possibles pour cela.
Un autre point de vue, c'est un plugin
qu'on a créé, qui est un démono
de l'extisme. C'est un genre de game
de Jackbox, mais vous pouvez
upload votre jeu en plus
comme un plugin de l'extisme. Vous pouvez
faire un groupe de gens qui ont fait un jeu
de temps en temps réel
sur leurs phones. Nous essayons de trouver
de nouvelles cases de utilisation
et d'interessants. Je pense que dans le prochain
an, des choses intéressantes vont arriver.
C'est difficile de prédiquer, mais les gens
vont faire avec ça, car ça me semble
une nouvelle idée de utiliser les plugins
sur le service.
Si vous allez au xdes.org et cliquez le link
du discord dans le header, vous pouvez trouver
des hints intéressantes
sur les projets qui sont en train de s'émerger.
Je ne veux pas que les projets se démarrent
si ils ne sont pas prêts à parler.
Il y a beaucoup de questions
qui sont demandées.
Le service Discord a émergé
ce n'est pas un endroit où nous avons
décevé le service, mais nous étions
en train de apprendre des gens et des choses
qu'ils veulent essayer et impliquer
pour faire des rôles.
Si vous vous inquiéissez, vous pouvez
rejoindre le discord et vous rallier
l'attention pour votre idée et vous
vous entendrez.
C'est difficile de faire du support cross-wasm ?
Je l'ai lu en sequel light
avec un module semi-official
je me suis demandé si c'est quelque chose
qui serait relativement facile
pour les deux de la fonctionnalité de bridge ?
Oui, je peux peut-être répondre.
Il y a quelques différentes manières
que vous pouvez utiliser, comme un code
external en xdesm.
L'un est de somehow, statiquement,
compiler le plugin dans votre xdesm.
Si c'est possible, vous pouvez le faire.
Je n'ai pas essayé, je pense que peut-être
quelqu'un a fait ça, où ils ont
un module de sequel light pour le faire.
Un autre moyen serait quelque chose que nous appelons
host functions, ce qui ne nous a pas parlé
beaucoup, mais c'est un concept très fort
qui permet de vous donner des références
aux fonctions dans votre language host
pour le plugin. Si vous avez un database
et vous voulez donner votre plugin
l'obligation de voir les accounts
dans votre database, vous pouvez faire
une fonction scope que vous passerez
dans votre plugin, et ça leur permet de vous donner.
Si votre host est en Ruby,
ou si c'est un Java,
c'est un Java fonction.
Je fais des integrations de sequel light,
où je passe en un fonction scope
avec une session pour cet utilisateur.
Je passe en un function host, pour que le plugin
puisse faire des calls à un database de sequel
en utilisant la fonctionnalité host.
Il y a aussi un projet d'emmergence
standard, quelque chose entre component model
de la code de code, que quand il est réalisé,
il va permettre de la faire plus de interopabilité
entre les modules de WAZM.
Je pense que vous parlez de un projet
où je peux prendre le sequel light.
Je comprends le contract que c'est
qui donne entre les fonctions qui sont exposées
et les fonctions que l'on expecte
de recevoir d'autre côté.
Peut-être que c'est un environnement host,
ou peut-être que c'est un module de WAZM.
Le component model va permettre de les décrire
dans un format appel WIT, qui est une idl
unique de WebAssembly.
Quand vous avez un file de WIT,
il y a des outils qui permettent
de les décrire dans un format de WIT.
Les deux modules sont ensuite
combinés dynamiquement ou statiquement.
En cas d'un casque de statique
qui est lié au sequel light
dans un autre plugin ou un autre module WebAssembly,
le component model va permettre
de les décrire dans un format un peu plus difficile.
C'est possible, c'est un cool
tool qui est appelé WAZM merge,
qui fait de deux modules et les décrire
en un moment où le contract est imposé.
Mais le component model devrait
décrire beaucoup de ceci.
C'est un code de la Bicode.
On a mentionné ça
quelques fois, mais je veux
avoir une picture claire
et ce qui est là.
Qu'est-ce qui est dilibso,
quel est le but de la compagnie
et que sont les produits ou
les plateformes que vous planiez de relier
avec la compagnie ?
C'est à un niveau très haut,
c'est vraiment pour aider les développeurs
à prendre leur Wazm pour la production.
C'est vain, mais il y a un peu de surface
entre votre première base code,
votre compagnie de WebAssembly,
et maintenant, j'ai un module WAZM.
Qu'est-ce que je fais ?
Comment je raconte le code ?
Comment je versionne ?
Comment j'entends ce qu'est à l'intérieur de la code binary ?
Je ne peux pas juste cliquer sur un sourcefile
et voir ce qu'il y a.
Nous sommes construits pour les choses
que nous, les développeurs,
ont besoin pour les années 20
ou plus de nos careers,
en évaluant le code et en évaluant
les systèmes de production
et en pouvoir comprendre
les systèmes quand ils sont en train de faire le tour
et de pouvoir débarter les systèmes
qui sont en train de faire le tour.
C'est une compagnie qui a été construite
par les développeurs qui tentent
d'aider à m'assurer cette technologie
qu'on est très bullissus
mais qui a été rendu dans toutes les égages
que vous pouvez imaginer,
ou peut-être que vous ne pouvez pas imaginer,
mais qui sont là.
Les premiers produits que nous travaillons
sont tout en regardant la cléité
et l'entraînement de votre code WebAssembly
qui est un produit appelé ModSurfer.
ModSurfer est
un tour que vous voulez inclure votre pipeline.
Donc peut-être que vous avez
un Mavin ou une Artifacte
et que vous voulez mettre le code en train
de l'utiliser comme un repository pour votre code.
ModSurfer est similaire à ça
où, en addition à la place de votre code
dans votre système, vous devez comprendre
où est ce code et où est-ce qu'il vit.
Et puis, des choses sur ce code.
Peut-être que vous avez des metadés que vous avez associé
avec ça. Je veux comprendre
ce que c'est de cette code. Nous avons réveillé
le format de la binaire, on a appris
l'information pour vous, on l'a détruit
et on a donné des capacités de search.
Donc si vous avez un message en preuve
qui dit que le code FD a pas réussi,
qu'est-ce que je vais faire ?
Je ne sais pas ce que la modula est.
Je ne sais pas ce que l'environnement est
et je ne sais pas quel problème je dois investir
pour arriver à une résolution.
Vous pouvez prendre le code FD,
vous pouvez rewrite le code
et le search en monstres. Vous devez
lister tous les modules qui ont
l'accent disponible. Et au moins
vous devez avoir un point de vue
pour qu'il soit en place pour que vous
puissiez voir le problème. Il y a un
peu d'autres outils d'utilisation que
monstres est plus utile pour. Je m'ai mentionné
validation, monstres aussi,
et je suis au moins aware de la seule
capacité d'audition pour les entreprises
qui doivent rester en quelque sorte de compliance.
Donc, Lassie, pour exemple, en quelque case
on peut ouvrir la porte
pour peut-être s'éteindre au sein de
compliance. Donc, si un module a accès
à la réunition de ses variables, mais
ce module n'est pas assis par la société,
c'est assis par une troisième partie, ça
peut vous faire de compliance avec un vendredi
ou un régulier de gouvernement.
Et si vous avez besoin de vérifier
vos milliers de modules
dans votre système, vous ne pourrez pas
avoir une infrastructure pour qu'on
trouve facilement les modules qui
sont envers leurs outils, qui est la
function de Lassie qui explose
la capacité pour un module pour les variables
de l'environnement. Avec Modsurfer
je peux définir un file de check
qui dit, spécifiquement, que je peux
montrer tous les modules qui ne sont pas
validés, qui importent la function
et je peux rapidement identifier
chaque module qui peut nous mettre
en compliance et qui peut fixer
ce problème dans le sens qui est nécessaire.
Ça aussi aide aux choses comme cette transition
de l'Oassie prévieuse 1 à l'Oassie prévieuse 2.
À un moment, vous devez devoir déprocaire
les modules qui importent de l'ancien format
ou au moins identifier, pour que vous puissiez
récompiler ou faire les choses
compatibles avec l'Oassie prévieuse 2.
Cette capacité de l'audition
donne aux équipes un path plus rapide
pour se solider ces problèmes.
À l'avenir, nous avons un stack
pour l'observité. Nous savons
que c'est aussi la première de la classe
pour donner aux équipes des métriques
en tant que code web
de la course. Vous êtes used à
voir des choses comme traces
de la base en Jaeger
ou Zipkin, voir les fonctions
de la façon dont la fonction s'enlève
et les spans dans la trace
des fonctions nestées et de la façon dont ils sont
en train de faire. Les gens
sont en train de l'opérer dans un black box
parce que l'isolation est en train de faire leur travail.
Je ne peux pas juste attendre
de mettre un module en programme
et de faire les mêmes métriques que je
ai de la DioDog ou de la Nurelle
ou d'autres plateformes qui donnent
ces idées. Nous faisons
un peu de travail primitaire
pour faire le
instrumentation et l'observité possible
ou en priorité. C'est intéressant
pour vous et vous vous entendez, vous vous en avez
plus tard, mais vous allez avoir
un stack d'observité
pour que vous puissiez avoir un métro
de votre code web en tant que code
et que vous puissiez avoir
une optimization de performance
ou de débarter les codes
et les insights dans le code
comme ça. Ça me semble être un peu
un peu plus important pour vous
voir dans le black box et comprendre
ce qui se passe.
Je pense que le point général est
d'aller dans l'assembly web, on doit
rébuilder le monde un peu et
comme développeurs, on sait
que beaucoup de ces choses sont qu'on doit
faire les choses en production. Vous pouvez imaginer
tout ce que vous avez besoin de faire
dans la production que nous devons
faire dans le monde de l'assembly web.
Les choses qui sont dans nos targets.
L'observité est vraiment importante.
Une des questions que nous
toujours demandons à tous nos guest
est quelque chose de plus en
regardant et en parlant de Wazem.
Ouvrez-nous dans votre vision
ou ce que vous vouliez voir
ou ce que vous pensez arriver
dans le monde de l'assembly web.
Comment ça va changer dans les prochaines années ?
Je vous donne deux réponses. Je vous donne un long
et un short. Je pense que le short
et le medium term, ce que vous allez voir est
d'utiliser l'acceleration technologie et
d'adverter à l'évolution de l'aéroport.
Et d'avoir des applications
plus petites et plus rapides.
Je pense que la chose obviante
pour beaucoup de gens en short
est de demander
à Linux pour apporter
une fonction en service.
Nous ne sommes pas vraiment
en train de le faire. Pourquoi nous
éloignons ces grands systèmes
pour évoquer une fonction ?
Vous avez un bon exemple
de la construction de ces fonctions.
Le web est juste un grand target
pour cela car il peut s'évoquer
à 0, il peut s'évoquer rapidement.
C'est un langage agnostic. Il a tout ce qu'il faut.
Je pense que c'est un des choses
plus longues.
Ce que j'ai hâte de voir, c'est que
beaucoup de cette technologie est en train de
les gens qui n'aient pas normalement eu access.
C'est plus le domaine de les développeurs browser
et les développeurs de l'opératrice.
Et cette idée de
peut-être de tourner tout le monde
dans une plateforme de développement.
Steve et moi ont travaillé à un company
qui s'est appelé Recurly. Nous travaillons dans
l'espace de paiement. C'est où nous avons rencontré.
Et beaucoup de ces companies sont
des plateformes de développement.
Mais qu'est-ce qu'ils peuvent faire ?
Je pense qu'il y a beaucoup de choses.
Je pense aussi qu'on va commencer à voir
des standards qui passent
à différentes industries. Je m'ai fait un hint
sur les paiements, les entreprises,
en avoir un standard sur
ce que le plug-in semble.
Et les idées les plus outils
sont vraiment les... Le target
pour WebAssembly est juste comme tout ce qui peut être
compétu. Qu'est-ce qu'on peut imaginer
que nous devons compter des choses, comme WebAssembly
pourrait avoir un futur là. Et dans 10 ans
nous serons vraiment surpris de où WebAssembly
sort. Je l'ai bien compris.
Je pense que même juste quelques années auparavant
si tu m'as dit que le plus excitant
utilisé pour WebAssembly va être
au-delà de la browser, je ne m'en souviens pas.
Je suis très heureux de voir où ça va dans 10 ans.
Merci pour votre soutien, Steven Ben.
C'était un bon delve au monde
de Wossom et tous les tools
qui ne sont pas existants. Je suis heureux
de voir les gars de WebAssembly.
Ça fait que c'est un plaisir de voir
ce que vous avez fait.
Merci beaucoup, c'est très bien de vous rencontrer
et c'est drôle de vous parler de ça.
On va aller y aller, on va y aller.
Oui, oui, nous aussi.
Et je vais vous dire que c'est
un extisme. C'est vraiment difficile pour moi
de dire.
Je vais l'exister.
Faites un tour, et nous allons voir
comment ça va.
Merci beaucoup.
Merci beaucoup.
Bye, tout le monde.
Episode suivant:
Les infos glanées
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