Steve Klabnik - Rust, Oxide Computers
Durée: 53m23s
Date de sortie: 03/03/2023
This week we're joined by Steve Klabnik, an engineer at Oxide Computer Company. He was formally on the Rust Core team, co-author of the Rust book, and a lot of other things. We talk about how he got into Rust, why you might choose rust and how he uses Rust in his day to day.
Join our patreon for the full episode https://www.patreon.com/devtoolsfm.
Tooltips
Want to hear use talk about our tooltips? Join our patreon! https://www.patreon.com/devtoolsfm
Andrew
Justin
- Get a labeler! (Here's mine)
- https://github.com/hyperfiddle/electric
Steve
Qu'est-ce que ça veut dire par travail ?
Parce que si je veux dire que quand un bon chum de mes tests sont passés,
alors bien sûr, cette période de temps peut arriver plus vite que la construction de Rust.
Mais si je me facture aussi dans le temps que les bugs qui ont été filés dans les premières deux semaines
ont été réveillés et fixés,
alors que le code Rust ne tient pas à avoir ce genre d'effect,
je suis payé un plus grand up front,
mais ma période de développement est plus rapide.
Hey, avant de commencer, nous voulons vous rappeler que nous avons un Patreon.
Si vous voulez entendre le tout épisode, vous devez devenir un membre d'ici.
Vous pouvez aussi nous soutenir par aller à notre merch,
sans pas acheter une de nos chaussures.
Avec ça, nous allons voir l'épisode.
Bonjour, bienvenue au DevTools FM Podcast,
un podcast pour les travailleurs et les gens qui le font.
Je suis Andrew et je suis ma co-host Justin.
Bonjour tout le monde, notre guest aujourd'hui est Steve Kladnick.
Steve est un collège à l'Education Computer...
Oh, je vais juste ré-starter.
Hey tout le monde, notre guest aujourd'hui est Steve Kladnick.
Steve est un co-worker de moi à l'Oxide Computer Company.
Il était formelé sur le team de Rust,
co-author de la Rustbook,
et beaucoup d'autres choses.
Steve, c'est vraiment génial de vous avoir.
Est-ce qu'il y a d'autre que vous voulez dire aux listeners ?
Oui, merci pour moi.
Je ne sais pas,
comme je suis approchant de 40,
je suis plus et plus générique avec ce que je disais,
parce que les choses ont été pédagées en cours.
Je ne sais pas, j'ai fait des trucs rubis,
j'ai fait des trucs Rust,
j'ai travaillé beaucoup, c'est tout que je dois dire.
Comment vous enduriez sur la Rust?
Ça semble être un grand accomplissement.
En 2012,
j'ai entendu de cette petite language de programmation
qui était comme C et OCaml,
et je me disais
que ce sont deux choses que j'aime.
Je devais y voir.
En général, j'ai été un ennemi de programmation,
et à l'époque, j'étais très évolu
dans les rues et les rails,
comme les deux mondes.
J'étais en train de regarder pour mon prochain grand truc.
J'ai entendu de cette,
j'ai entendu que c'était sponsorisé par Mozilla,
et ça m'était intéressant.
J'ai checké sur le site,
j'ai essayé de construire et de faire un bonheur,
et ça ne fonctionnait pas.
J'étais comme, ok,
ils disent que c'est pour aller dans la chute de l'IRC,
pour m'aider à faire des choses.
Je sais ce que c'est,
mais j'ai aussi un adulte, j'ai l'estim,
je peux rejoindre un chat de l'IRC
et m'en demander pour l'IRC,
et ils vont me remercier.
C'est bien.
J'ai fait, et ils me demandaient,
oh mon Dieu, un nouveau personne.
C'est pas mal, la conversation est un peu mal.
C'est comme ça qu'on fait maintenant,
et c'est parce que ça a changé deux jours,
mais s'il y a d'autres questions,
je suis super heureux d'y répondre.
J'étais comme, oh mon Dieu,
ces gens sont bienvenus,
qui m'aident à m'aider,
j'ai envie de me faire des choses.
Et donc,
j'ai continué de faire ça,
et puis,
j'ai travaillé de la manière originale,
mais c'était la façon originale,
de me trouver le reste.
En termes de la team,
une des choses que j'ai personnellement valu,
et une des choses que je ne vais pas dire nécessairement,
qu'on va savoir maintenant,
parce que j'ai été en train de le faire,
mais la Mozilla a valu très fortement,
c'était la documentation.
Et donc,
j'ai été comme la personne de Dock,
parce que c'était un intérêt de moi,
et c'était aussi quelque chose qu'ils ont vraiment besoin,
vraiment malheureusement.
Et donc, je me suis fait faire ça de cette manière.
C'était aussi mon intérêt,
mon intérêt et mes skills,
et mes rails se sont alignés avec quelque chose qu'ils ont besoin.
Et donc,
on a juste de toutes les choses,
on a juste de l'air de la personne qui a été venu.
C'est tout ça qui a été fait.
Ouais.
Ouais, comment est la communauté de reste,
spécialement quand tu es commencé,
comment a-t-il le contraste
avec la communauté de rails,
ou la communauté de Ruby,
c'était un vibe simple,
ou il y a quelque chose qui vous a l'a emprunté,
de la manière différente?
Ouais, il y a un couple de choses différentes.
Le premier est que
les rails étaient
en temps
que les start-ups étaient en défaut.
Il n'était plus
le petit project
qui se déroule pour la rélevance.
Il était le mot de la personne
qui a été en train de faire le travail
tous les jours.
Et même si la communauté n'est pas
je dirais pas,
c'est comme ça qu'ils ont décrit.
Et c'est toujours
comme ça,
que les reales entreprises
ont fait de l'argent,
et que les gens ont utilisé
tout ça.
Et Rust à l'époque
était presque l'exact opposé.
Je ne me souviens pas de combien de gens étaient dans le room de l'IRC,
mais c'était
probablement environ 100,
pas 1000.
Et donc,
avec la communauté de la communauté plus petite,
et plus de 100,
je pense que ça a fait un grand nombre
de différences.
J'ai fait un défi
que les rails en train de faire
qui étaient en train de faire le travail.
C'est très accurate.
La culture
a été très forte.
Il y avait 7 groupes de gens qui
étaient très proches de l'autre,
mais ils étaient tous en train de faire le travail.
Et Rust est un endroit
unifié
où tout le monde était en train de travailler
et en train de travailler sur la même page.
Il y avait
encore des arguments, mais
les communautés petites
sont très différentes que les grands.
Et donc, en respectant les bonnes
et les mauvaises choses de la communauté,
je pense que c'était, à l'époque,
l'envers des choses,
et c'est
bien, ou bien, pour moi,
j'ai appris que j'ai souvent enjoyed
d'avoir un peu de travail,
plus de la surface,
et que je suis un employé
n°1.
Je n'ai pas un co-founder
dans les termes de start-up.
J'étais un employé 17e
et il n'y avait pas de raison
que je n'avais pas un co-founder.
Je n'ai pas un co-founder,
mais je n'aime pas
travailler dans
1000 personnes,
et des entreprises,
et donc,
Rust était plus
à l'aspect de ces choses,
et cela fit dans
le moyen que j'ai
de travailler sur des choses.
Vous pouvez avoir un impact
plus grand
sur les choses quand les choses sont petites,
comme un co-founder.
C'est bien, c'est bien,
mais, en particulier,
à l'époque, je ne pouvais pas
avoir un impact
mais c'est un point nasant
qui commence à s'éteindre,
et je pouvais avoir un impact.
Et, vous savez, je suis là.
Oui, je pense que
cela inspire
pour des développeurs
parce que je rencontre des gens
qui disent que je veux aller au OSS,
mais c'est tellement dur,
et c'est comme,
je me dis,
ce n'est pas vraiment,
il y a des problèmes,
et les gens ne l'ont pas.
Si vous voulez aller au OSS
et ajouter un Dock,
c'est une contribution totalement valide.
Je me suis dit que je vais aller au Dock
et je me remercie de l'homme.
Si vous voulez aller au OSS,
c'est le meilleur endroit.
Oui, et je pense aussi qu'il y a
des gens qui
sont en train de
faire des choses,
et c'est un problème,
mais si vous avez un projet
qui est comme ça pour votre première fois,
et que vous vous avez très discouragé,
c'est aussi un truc
de remercier, et c'est vraiment dur
d'être, oh oui, vous avez
fait un projet qui est bien,
mais c'est aussi
le cas,
que certains projets sont juste opéles
et ils aiment ça,
mais ça ne fait pas
un endroit très bon.
Oui,
sur tout le monde,
ce qui est bloqué,
c'est que
vous emmettez un PR
et je l'ai fait
dans un projet particulier
qui a été contribué
à environ un demi-dois de temps,
et tout le monde a été
le plus proche.
Je comprends qu'ils veulent
faire leur chose
d'un plus holistique.
Vous devez avoir
des besoins de graines,
car vous pouvez faire des choses
qui ne sont pas très bien
avec leur roadmap,
ou leur plan pour les choses.
Absolument.
Oui, c'est aussi un truc
comme un contributor.
Vous êtes en code,
mais vous ne êtes pas
en code
sans aucun bilan,
ou une autre.
Comme un maintaineur, j'adore les patches.
Les mineurs me donnent beaucoup de stress et d'excité.
Parce que c'est un nouveau feature.
Ça fait du bien,
je ne sais pas
si je veux soutenir ça.
Absolument.
Et il y a
une chose
que je sais
parce que parfois leur projet ne faut pas
parce qu'ils ne savent pas comment faire un truc.
Je utilise les windows,
donc je vois beaucoup de fois que les gens
disent que je supporte les windows, mais je ne sais pas comment.
Et puis le problème est que même si vous venez
de l'appartement de support des windows,
si je ne planerais pas devenir un maintaineur sur le projet
et qu'ils ne savent pas comment maintenir le support de la windows,
ça pourrait être utile pour un petit peu d'un moment,
mais ce n'est pas le même.
Et ça n'est pas comme ça pour les nômes.
Ils ne savent pas que je utilise les windows
et que je ne maintiens pas le projet.
C'est ce que c'est, mais c'est aussi un moyen
de faire un moyen que même si les deux côtés veulent
avoir une patte ou être capable de s'en prendre,
ça ne veut pas toujours être le cas pour les projets,
en regardant.
Je pense qu'une autre note
est que tous les systèmes de software
sont des systèmes humains,
comme fondamentale.
Même si nous commençons à parler
de la vie
que la communauté donne pour comment ils approchent
vos contributions
ou les choses que vous avez à penser
quand vous faites des contributions,
est-ce que ça se passe avec la vision des projets
ou tout ça?
Tout ça, tout ça,
ça a des gens comme un aspect fondamentale
pour tout le monde.
C'est surtout vrai quand vous êtes en train de faire des compagnies
et tout ça.
La dynamique des gens
se matters beaucoup.
Une des meilleures histoires de mon vie
est pourquoi Makefiles a des tabs
pour l'inventation.
Donc,
le gars qui l'a écrit,
je n'ai pas oublié le nom,
a utilisé les tabs
parce que c'était convenant et qu'il l'a aimé,
mais il n'a pas supporté les espaces.
Il a
voulu changer les espaces
ou pouvoir utiliser les espaces en quelque façon,
en défaut.
Mais il a regardé
et je lui ai dit,
« Vous savez ce que 100 personnes utilisent ce tool?
» Je ne veux pas causer de plus de stress,
donc nous ne serons pas allés faire ça.
Et puis, tout d'un coup,
il y a des millions de gens
qui ont souffert par cette chose.
C'est un décision très humain
de maintenir un projet.
Je ne peux pas le faire,
parce que dans les années 70,
100 personnes utilisent mon projet,
et la distribution n'est pas la même.
Il y a beaucoup d'infrastructures que nous avons
qui auraient pu faire ce choix plus facile.
Mais c'est un problème.
Et puis, sur un projet
qui est assez similaire,
un projet,
mais aussi des choses sociales,
GNU Make a un message de bon error
si vous utilisez des espaces en tant que tabs.
Mais seulement si vous utilisez 8 espaces,
il ne vous détectera pas de nombre de espaces,
mais seulement 8.
Et donc, je me disais,
« Vous savez ce que je suis un bon citizen?
» Je fais une source en bas.
Je vais envoyer un patch.
J'ai fait le truc,
j'ai signé un compte pour Savannah,
et j'ai fait tout ça,
et j'ai écrit un patch
qui va aussi vérifier
4 espaces.
Je me disais, « Je pourrais généraliser ça
pour être 2, 4 et 6, ou tout autre.
» Mais j'aurais aimé entendre.
Et cette personne,
j'ai eu une réponse,
et elle m'a dit,
« Je suis inquiétant sur ce qu'il y a dans les codes existants.
» Et je me disais,
« Non, c'est dans le path d'erreur.
» Nous avons déjà déterminé que nous avons un error.
La question est, comment nous printons
les erreurs que nous avons?
Il y a 0 issues de compétibility,
juste comme tout.
Et puis, pas de réponse,
et c'est depuis 6 ou 7 ans.
Je me disais, « Je pourrais
m'aider à des messages de plus de erreurs
pour aller sur Stack Overflow. »
Mais c'est difficile.
Je ne sais pas
pourquoi le patch a été réjecté,
mais c'est juste,
« Je l'ai essayé,
même moi, avec des
zillions de messages. »
Il y a eu un temps,
depuis le début de la Github,
il y avait un temps,
dans les days rubis,
où j'étais
l'un des plus importants organisations
de la Github.
J'étais en 17 ou 20 ans,
et la prochaine personne
de la Github était 16 ans.
Même moi,
ce n'était pas ma faute,
mais si je suis un débutant,
je peux dire que les gens
sont très discrets, si c'était mon premier interaction
avec d'autres sources.
Oui, oui, on parle de Rust
un peu.
J'espère que
tous les listeners sont connus avec Rust,
mais certains ne l'ont jamais utilisé.
On parle de la langue un peu,
et peut-être comparé
avec les langues existantes
avec Rust.
Je pense que dans beaucoup de circonstances,
Rust est parlé
en langue de l'étranger,
et on peut dire
d'autres langues de l'étranger
comme C et C++.
Pourquoi
un developer choisirait Rust
sur quelque chose comme C et C++ ?
Oui,
je pense qu'il y a des aspects
de ce genre, je veux vous dire
un truc qui va être en train de faire,
et je vais répondre directement,
mais je pense que part de la question est
que c'est plus fort que ça,
mais c'est un débat
qui est réglé, mais je pense que
c'est solide, mais en termes
de la langue de C et C++,
Rust vous permet
de faire tout ce que C et C++
vous fait, mais ça vous aide
à faire ces tasks plus fort.
Ce que je veux dire
c'est que quand vous faites
ces works de haut niveau,
même si vous n'avez pas l'air de la langue,
mais c'est bon,
si vous faites du travail de haut niveau,
vous devez utiliser des tools très fortes,
et des tools fortes peut parfois
vous faire couper, et il y a
une balance bizarre.
Plus, ce space
n'a pas vraiment vu un tout lot
de nouvelles langues de programmation
en longtemps, compared
à plusieurs autres fields,
plusieurs aspects,
des points de design dans le
langues de programmation, et donc ils
tendent aussi d'être plus
d'anciens schools et donc
plus difficile à utiliser
si vous n'avez pas fait de la langue depuis les 90's.
Et donc,
Rust, l'un des choses que Rust fait
c'est que ça sort de
un 20-10
d'éros
d'expérience de développement
à un espace qui est assez solidaire
dans les 70's et 80's. Et même sur ça
d'aujourd'hui, il y a beaucoup de gens qui
ne m'ont pas vraiment voulu
parler de Rust pour le langues de C++,
mais le fact que c'est une expérience de développement
plus familier à moi, ou c'est
plus facile que pour Rust,
c'est plus facile que pour Rust.
Donc je dirais que c'est un de
ces gens, si vous regardez
sur l'épisode de C++, mais vous avez
utilisé NPM avant, vous pouvez
préférer Rust solide, parce que c'est
plus familier à vous. Et je pense que c'est
une bonne raison pour utiliser les tools,
la familiarité est incroyablement importante
et une vraie raison
pour utiliser quelque chose. Parce que si vous
essayez d'avoir quelque chose à faire,
vous n'en essayez pas de apprendre
quelque chose nécessaire. Et donc, en utilisant
quelque chose que vous êtes plus familier avec, vous pouvez
aider à faire le truc plus vite, c'est votre
goal actuel. La deuxième raison
c'est très similaire
à... Je préfère faire
les analyses de tools, comme beaucoup de
programmes se font. Donc il y a
des sauts circulaires, et des sauts de banques,
des bruits de spin, et
James Bond est lentement
en train de les couper ou tout.
Il y a un autre tool très intéressant
qui s'appelle le saut stop.
Et ce que ça fait
c'est que ça détecte
si... Je n'ai pas compris exactement comment
ça fonctionne, mais c'est quelque chose
comme... Vous pouvez le faire avec votre
oeil ou votre hot dog, mais pas tout autre,
et c'est capable de détecter que
quelque chose de flèche est approché de
saut, et ça va arrêter
tout de suite avant qu'il s'est fait couper.
Et le CEO fait ce démon, et il est
comme, j'ai hâte de faire ce démon
mais je le fais toujours. Il s'étend
et il est comme, je suis en train de faire
un petit démon, mais mon oeil est ici.
Et donc, le saut est comme ça.
Mais
les plus grands sont plus près de la saut
dans ce instant.
C'est plus
pas comme, ça arrête
de faire le truc que vous avez besoin de.
C'est comme, il y a des gardes de sécurité
qui sont construits pour que vous faites un erreur.
Il sera comme, attends, attends, attends.
On va vérifier ce truc ici.
Et ça peut être utile quand vous êtes
dans un autre sens.
Mais c'est pas comme,
c'est comme, vous avez été
dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Et c'est comme, vous avez été dans un autre sens.
Je l'ai écrit un blog poste il y a quelques années,
qui a beaucoup de gens très angri,
mais j'aime toujours ça et j'ai l'impression d'answer cette question,
particulièrement, donc peut-être que je vais pouvoir
répondre à quelque chose.
Mais j'aime dire que Rust a une collection de cartes statiques.
Et ça tend à faire tout le monde mal.
Mais ce que je veux dire par ce que Rust
n'a pas de management de ménagement manuel,
dans le sens que vous rarez très rarement
que vous vous dites,
« Pensez-moi une ménage, et je suis maintenant
terminée avec la ménage. »
Et ça n'a pas de collection de cartes,
mais c'est WAY les kilogrammes de cartes
à l'intérieur dans les Hijri,
qui ne sont pas mariées à la hypocrite.
On entend peut-être que les reachings
ou de Houston,
ici est une opportunité pour toi
et puis aussi pour votre
extraction de Minecraft.
C'est capable d'utiliser un analyse, un temps de compagnie qui dit, OK,
c'est là où votre mémoire est mis en use et là où il n'est pas mis en use anymore.
Et ça sort de comme insert le salle à
fray et et maloc comme le nom et c, mais comme c'est sort de l'allocé de la
mémoire et de l'allocé de la mémoire, le même moyen
que vous pourriez, en un, en un de la main, comme un langage de la mémoire manuale,
mais vous n'avez pas écrit cette code anymore.
Donc c'est sort de similaire à ce cas-ci où vous n'avez pas écrit cette code.
Et donc je pense que c'est l'une des plus grandes raisons pourquoi
c'est sort de comme plus familier aux gens qui sont venus de la langue de GCD,
parce que vous ne voyez pas des mémories de m'aider et que vous m'aurez la main.
C'est comme un variable qui vient de la scope et il a la mémoire allocée à ses
besoins, il va sortir de la scope et la mémoire est délite.
Et vous devez être comme,
pourquoi n'est-ce pas que le GCD fait ça ?
Et l'answer est,
il y a beaucoup de, il y a beaucoup de,
comme
imagine, vous avez un objet qui référence à un autre objet
et le second objet référence à l'un des premiers.
Où vous insèrez ce call
pour freer parce que si vous l'avez fait sur un,
ce serait invalidant.
Et si vous l'avez fait sur un, ce serait invalidant.
Donc un collecteur de gare, parce que c'est à partir de la
rondeur, est capable de sort de
comme, attendre jusqu'à l'heure où les deux n'ont plus été utilisés.
Et puis, ok, je peux les faire aussi,
les deux, en même temps.
Mais ça fait que ça fait un sort de dynamique analysis.
Et
Rust sort de,
le modèle
s'acclut à des patterns
où vous faites des choses comme ça,
parce que ça va sort de mettre ses mains en l'air
et être comme, je ne sais pas comment
l'analyse pour l'analyse.
Et il y a des outils et des techniques que vous pouvez utiliser
pour faire ça de toute façon.
Mais le point est que,
un GCD, comme, fondamentale,
vous permet de dire,
write le code le manière dont vous voulez
et je vais faire sure que rien ne passe pas.
Et le trade-off Rust vous donne,
c'est comme, je ne vais pas vous faire write le code
de toute façon que vous voulez.
Mais 90 % de la time,
ce que vous voulez fonctionne avec mon modèle de toute façon.
Donc vous avez des gains d'efficacité
parce que vous n'avez pas de ce genre de choses
en roulant dans le background.
Mais vous vous donnez un petit peu,
ou, selon comment vous codez,
ou le manière dont votre brain fonctionne,
c'est comme, un peu de style de code
que vous avez utilisé pour le writing.
Et donc, ce genre de,
Rust a choisi un trade-off.
Ce n'est pas universelement mieux,
ce n'est pas universelement plus,
je l'aime le meilleur,
mais je suis en biais.
Donc, pendant votre développement,
est-ce que ça se passe en l'air,
comme, oh, vous faites quelque chose de mal avec la mémoire
que je ne peux pas déterrir,
c'est comme un temps de tour.
Oui,
il y a,
donc,
il y a toujours un astro-exon sur tout,
donc je vais juste arrêter de dire ce que c'est.
Mais s'il vous plait,
tous les statements plus furtifs
sont en astro-exon.
En général, 99 % de la time,
ça va dire, hey,
ce référence est en train
jusqu'à la fin de la fonction,
mais il est pointé à quelque chose qui
se déterre dans le milieu de la fonction,
donc,
vous devez fixer ça.
Et ça vous donne l'obligation de faire ce que vous voulez.
Vous pouvez construire des choses
de la même manière,
il y a des types de libéraux standard
qui vous donneront une chose de temps de tour
à l'heure, mais ceux sont utilisés plus rarement
parce que le temps de tour est meilleur
que le temps de tour pour les erreurs.
Donc, vous faites ça seulement
dans certaines situations spécifiques.
Mais généralement, oui,
ça va être comme,
je ne comprends pas ce que c'est,
c'est ce que je vois qui se passe,
s'il vous plait, fixez-le.
Et puis, vous devez fixer ça.
C'est génial, oui.
Mon
professeur en systèmes de programme
est moi, le code C en collège.
Et c'était un navire.
Je ne peux pas croire que c'était le premier langage
qu'ils ont essayé de nous appeler.
Je regarde ça et je fais des pointes.
Pourquoi vous appeler un professeur?
Mais le management de membre
était le plus difficile à me râler.
Et le fait que ça vous donne
des bonnes erreurs de compilers qui disent
que vous faites quelque chose de mauvais ici et là
est tellement mieux que le segfault.
Ouvrez un débugger
qui a été construit dans les années 60.
Et vous n'avez pas de clous à utiliser.
Oui.
Et c'est un des gros débats sur
si Rust est facile à utiliser ou difficile à utiliser.
C'est que je pense que des gens différents
ont expéré ça de différentes manières.
Donc, par exemple,
certains gens ont vraiment
pas l'idée de l'idée que un compilère
peut vous dire ce que c'est de mauvais.
Compilers doivent être vu et pas entendu.
Et ils vont avoir
une présence quand un compilère pointe
quelque chose à vous.
Et ils vont donc se frustrer et ne l'aiment pas.
Alors que je suis personnellement
un tool pour me faire travailler plus vite.
Un peu de gens sont comme
Rust vous aimait beaucoup plus vite
parce que vous avez de ce compilère
qui vous aimait tout le temps.
Et je suis comme Rust vous aimait plus vite
parce que vous avez ce compilère qui vous aimait tout le temps.
Et je ne suis pas tout le temps sûr
que c'est un
scientifique résolvable
pour l'answer correcte
plus que c'est un préférence personnelle.
Mais vous verrez les gens
expérimentant
les opinions d'opposés
sur le même scénario exact.
Et je pense que beaucoup de ça
doit faire avec votre
référence à ce que vous voulez
être dans votre travail de développement.
Oui, c'est toujours un trait de
ce que vous allez payer.
C'est juste quand vous payez.
So Rust est comme vous avez payé
sur le front,
donc le compilère vous dit que
ça va causer un problème.
Si vous faites un scénario
c'est plus ou plus,
ça va être compilé.
Et vous pouvez le faire.
Vous ne pouvez pas
jusqu'à la production
et à l'opportunité de l'envers
que votre programme s'en crasse.
Ou il y a un flow de buffer
et quelqu'un qui le figure
et qui le fait.
C'est un peu comme un software.
Je fais la chute
l'autre jour.
Vous devez considérer
le prix total de l'adversité,
qui est très chiant,
depuis l'adversité,
comme un concept en Rust.
Mais si je pense
dans mes days rubanaises,
c'est un des choses perspective.
Les gens disent que ça prend
de l'air de faire quelque chose.
Et c'est comme,
qu'est-ce que vous venez de faire ?
Parce que si je veux
que quand un bon
test de mon unité passera,
ça peut bien que ce période
soit plus rapide
que de développer un Rust.
Mais si je me facture
en temps de la bulle
qui a été file dans les deux weeks,
que je dois aller en fixation,
alors que le code Rust ne tient pas
à avoir cet effet,
je suis payé un grand
plus de prix,
mais mon temps de développement
est plus rapide.
Et c'est quelque chose
qui est pas trop
dans le sens de la science de brain,
parce que je n'ai pas de ça.
Mais mon comprenant
est que,
par la société préindustriale,
nous sommes vraiment condamnés
de ne pas savoir le short
en opposition de la longue durée,
et nous faisons un bon travail
de la bulle
sur le long terme et le long terme.
Et donc, nous perçons
ce qui est un plus rapide,
même si ça ne tient plus
plus que pour la manière
que nous l'exprime.
C'est un source
d'interessage
vraiment intéressant
de beaucoup d'arguments sur internet,
on va dire,
sur
si Rust
a hâte de développer
une vie de développement,
c'est comme,
on va entendre que les gens
parlent de ça,
et c'est comme,
le moyen que je vois,
personnellement,
c'est comme, oui et non,
en même temps.
Oui, pour sûr,
j'ai vu des articles récemment,
des gens qui ont dit,
on a commencé
et on ne va pas faire ça
encore ou autre chose.
Et c'est comme,
c'est tout pour l'application,
c'est comme,
comprendre
ce que vous essayez d'acheter,
mais il y a un certain,
si le certain,
comme,
niveau de sécurité
et de correctité
est important
pour votre application,
ce qui devrait être
un peu de temps,
mais,
tu sais,
ça fait que
ça fait que,
c'est plus worthwhile,
parce que tu as plus de compétence,
tu sais,
quand quelque chose est composé,
c'est en fait,
c'est bien sûr.
Ce qui aussi,
c'est le truc que j'avais parlé
de la familiarité,
plus tard,
c'est que je pense que cette question
est très différente,
parce que,
je me répète à cette très thread,
et je me dis,
« Bonjour, je travaille à la start-up,
nommé, après Rust,
et on utilise Rust,
après tout notre stuff,
et c'est travaillé bien pour nous,
et on ne devrait pas avoir ça de l'autre manière. »
Et quelqu'un répondait,
« Bien, tu es Steve,
» et je dis,
« Oui, mais je suis un employé de 50,
et je suis sûr que le reste de la marque
n'est pas aussi Steve. »
Et,
mais c'est parce que,
pas que tout le monde à l'oxydation
est familier avec Rust quand ils commencent,
mais que nous sommes plus rapides
en utilisant les tools en Rust
parce que nous avons la familiarité avec Rust,
et donc, nous ne sommes pas en train de se défendre,
comme l'un des choses,
les points qu'ils ont fait dans cette poste,
c'est qu'ils se défendraient un peu,
parce qu'ils étaient encore en train de
pendant qu'ils allaient construire leur start-up,
et ça ne veut pas dire que
ils ont fait la décision de la première décision,
comme je ne suis pas en train de le judicier,
leur procédure de décision,
mais aussi, un autre facteur subjet
qui vient de répondre à ces questions,
c'est que, moi,
j'ai spent, en plus de 10 ans,
de ma vie en utilisant Rust,
ce n'est pas un peu le même problème
que quelqu'un qui a appris six mois,
même si nous avons commencé
un start-up identique,
le même jour,
l'alcool sera totalement différent.
Et c'est pourquoi la familiarité est une bonne raison
de choisir la technologie,
parce que, si vous me demandiez
de utiliser un langage de programmage
que je n'avais jamais utilisé,
et de construire une marque en même temps,
je dirais aussi que la philosophie de développement
estnt entièrement reconnu,
même si c'est un métier traditionnel
un curt masqueıktif.
Oui, dans le monde des hypertériences.
Weird opaque type issues, but they get up to speed eventually.
Absolument.
I think there's a lot of mental mental model mapping here.
Like if you're used to just using languages that use garbage collection
and you're not used to thinking about memory management as a concept
and then you start building a new product where you have this like
change in perspective that you're trying to tackle
at the same time or trying to figure out your product.
That's going to make it obviously much harder.
It's like if you were only ever use object or programming languages
and you like started a new startup in a functional programming language
is probably going to be a little rough, you know, like out of the gate.
Yeah, let's try out Lisp.
What we could go off.
Yeah, it's really.
Do one thing at a time.
It's like start a startup or try to learn something,
but maybe like, you know, reduce the set of new things.
Tracoling once.
So we've been talking about like the sort of applications of rust,
rust at a like a very high level.
And I mentioned earlier in that first question about like
referring to rust as sort of like a systems programming language.
But but maybe that's not even truly fair given how much rust is developed.
So let's talk about it like rust broadly is like what what types of programs
is rust really well suited for.
So.
I'll get there, but I'm gonna go on a small diversion first.
The especially the early rust community, but I was still
argued today is kind of the confluence of these three audiences.
And the first one is those systems folks.
And the second one is like functional folks.
And the third one is Ruby, Python, JavaScript,
Pearl, PHP folks.
And so each one of those kind of like brought their own perspective
to how rust sort of developed along.
And so one of the things that makes rust kind of like weird
and interesting and hard is like, if you have, if you've
worked in functional languages and scripting languages
and systems languages, rust isn't going to be that weird to you.
But like, not that many people have done that.
And each one of those different audiences has different challenges
when it comes to learning rust, because they all struggle
with some things slightly different.
And so I think we're seeing that being expressed at a little bit
of a higher level now with this, like, what is rust good for a
thing?
Because like, if you go on hacker news and you read a thread
and about web development and rust, there's going to be a whole pile
of people that are going to be like, you would never use C to write
a web app.
Why would you ever use rust to write a web app?
And eight years ago, I would have like mostly agreed.
I'd have been like, I don't really think rust is a great choice
for a web application, but, you know, whatever.
But now, like, I think rust is kind of a good choice for certain
kinds of web applications.
And some of that is due to the ecosystem, like, people have shown up
and they do web development and they're learning rust because they
want to get into systems programming or they like see it as a
system language, they learn to do that.
But as we said earlier, learn one thing at once, not two things at once.
So what are you going to do?
You're going to build a program that you know how to build already a
website with your new language you're trying to learn rust.
And so you end up with people building web stuff and rust.
And there's been enough of those folks, because there's a
jillion web developers, that there's now an ecosystem of like,
there's, there's like six different frameworks that you could
viably build a web app and rust.
And I wouldn't say you're using like an obscure hipster framework.
You're using like one of the well-known ones.
And so with the support of the libraries and also some language
changes that have happened in the last, you know, since 2015, like, I
think it's like much more feasible to do so now than it was back then.
And so my personal opinion has kind of shifted.
But what I would say is that like rust has had this pervasive attitude
of like bending the curve.
So it's like, if there's a trade-off, if we have a and we have b, is
there like a c that we could like take the middle point in that line
and like drag it up to be part of the way over there.
And so the thing with rust makes some choices that put it firmly in
that systems category, if you can even call systems category, but
whatever, like the point is, is you can write an operating system
with rust more easily than you could in say Ruby.
Uh, but like rust also has this kind of range that's confusing.
Because traditionally, you know, as you said, like programming
and C is kind of a little rough.
And so you would only want to make that choice if you had to make that
choice and you'd want to use something more convenient.
And this is the way a lot of people say, like rust isn't good for
web apps cause garbage collectors are convenient.
And like I'm looking for convenience for writing web app.
But as people sort of get used to this mental model of this kind of
like other additional way to deal with writing programs, they're
also still finding it very useful for writing applications like web applications.
And so they're doing it cause like, like I use rust to write stuff.
I would use for like systems scripting tasks cause there's a couple
packages in the standard library.
They're good enough that I can bang that out pretty quick.
And it's just like not a struggle for me in the way that it would
be for C.
Piscouc, plus, plus.
Um, there was a, there was a.
Thread on hacker news yesterday where people were arguing about
is C or C plus plus better.
And someone said, show me your C code for writing this little
sample problem and I'll show you the C plus plus code for writing
the sample problem.
And it was take, take input on standard in, reverse it and then print it out.
And there was a couple of different submissions.
I thought they were all interesting, but the deal is, is that like.
In rust, that's like a one liner cause like the standard library is
just so much richer than in C and C plus plus.
And, and using packages, external packages is so much easier.
Not the needed for that task, but it just like compounds on to that thing.
And so it becomes significantly more ergonomic for use cases that are not
your traditional systems cases.
And like, there's other aspects of rust, like everyone talks about the
memory thing cause it's the most novel part.
And it's also kind of what early rust marketing sort of trumpeted,
but like no null, like I don't want to use programming languages
that have null anymore, unless I have to, like for me, that's just like a,
like we're, we're friendship over with null, like I knew friends with
some types and like, uh, you know, that doesn't have to be, that's
totally orthogonal from the GC to non GC access, but just like, I just
like think null is bad and like ideally I wouldn't have to use it.
Sometimes you do like, you know, I'm not saying I never program
languages, don't have them cause I would basically only be able to
use rust than a couple of other things.
But like, I think in the future, we're going to see that as a trend for
languages all across the memory management spectrum to sort of like go away.
Uh, and so there's these sort of other ergonomic aspects of rust that are
appealing to folks.
And so they're using it to write literally everything command line tools.
You're seeing tons and tons of command line stuff be redone and rust.
And that's like one of the, I think the best possible use cases.
Um, I recently checked in with the, uh, core utils project, which is
trying to rewrite the, the UNIX core utils and rust.
And like, they're to the point where you can take a Debian and build
the Debian from scratch with those rust core utils and everything works.
You can build a Firefox, you can, all that stuff, just drop in, like
totally fine.
Um, and so like, that's like a, could replace all your basic
command line tools with rust equivalence today.
Um, and I think that's a really cool, interesting, good use case.
Um, the, the web stuff is interesting.
I think that it, there's definitely a lot more caveats there, but
those caveats have been reduced over time and are reducing more and more over
time.
Um, but, uh, then that's definitely like a good one.
Uh, embedded development, what we do at oxide, you know, at least in part,
we do the web stuff at oxide do, but like the embedded development stuff.
Everybody is super, super on board and loves that.
And we have a lot of folks who have a very deep bench with writing, embedded
code, and other languages, and they're not interested in going back.
That's obviously some amount of selection bias, but just like the point
is, is like, I think it's a very good use case.
Um, and just sort of almost anything, I just kind of by default reach
for us cause I've invested the time to use it.
And so that sort of mirrors the like, when not to choose rust, like
as we sort of already covered.
You're, you're trying to start to do a new thing and you also want to
learn rust, probably not that great of an idea.
Um, rust does take a certain amount of dedication to learn.
And by that, what I mean is people talk about the learning curve
being steep and rust, and that's true, but it's also flatter.
We don't, we don't like have tools.
I can't draw you a graph, but like, you know, a, a, a hill can be very steep,
but ultimately, you know, not very tall, whereas a mountain can be like
very tall, but not very steep.
And those are very different journeys.
And so rust is closer to sort of like a 10 foot wall.
You have to climb over.
Like, yeah, it doesn't really help you very much getting started.
And rust sort of does, but like whatever the point is, it's very difficult.
It's at the start, but once you're on the top, it's like totally flat.
And so you sort of can like reach that level.
I think it like takes more effort, but you get there more quickly.
And there's not nearly as much to go on afterwards.
Whereas in a lot of languages, they're easier upfront and then you get
into like the dark magic corners of them.
And you find out like, okay, there's a giant hill up here that I
can't like climb over.
And so that, that means that like some folks are going to struggle to
learn rust.
And if you use, if you try to learn rust, then it doesn't click with you.
That's a great reason not to use rust.
Um, like just in a very real sense, like, you know, if, if you don't like it,
I think that's a great reason to use something else.
Um, another weird phenomenon we've noticed that I would say to those
people though, is that there's a bunch of people who have tried to learn rust,
said, I don't like this.
I don't get it.
They go away six months, year later, they're like, I should really try
some rust again.
So they try it again.
And they have no problems.
And they're like, I don't know what my deal was a while back.
I like, I know I struggled with this.
And now it just makes sense.
And like, I don't know how to like skip people ahead in time, that, that six
months or a year, but it definitely seems to be, there's, and there's
some people who will just, who just don't seem to ever get it.
I've definitely heard from those people and they do exist.
But like, if you've tried rust and you struggle at it, just like, give
it a break and come back to it later.
Um, it'll still be there and maybe you'll still hate it, but maybe
you'll find it way easier.
And that's just like a very strange phenomenon.
I kind of, it's like when you go take a shower and you solve your problem.
And then you like rush out of the shower cause you're like, oh my God, I
wasn't thinking about it.
Now it worked.
Like I feel like some people have like a six months long shower with rust,
where like it just rolls around on the back of their head.
And when they come back to it, it makes more sense.
So, um, yeah.
So that's, that's some, some thoughts on that.
Well, you know, that, uh, I think I had a, had a, a slower start to begin with,
but I had experience at sea and C plus plus.
So I'm like interested in functional stuff, done a lot of screw up things.
So it's like, it wasn't too foreign when I started, but it's just like a
little bit of a learning curve.
And then I like set it down for a little bit, came back to it and it's like,
just worked for the most part.
Yeah.
It's, it's been interesting learning.
Um, and there's been like a lot of really interesting development for me.
So you mentioned, uh, man-line applications.
There's been like so many really, really cool CLI tools that I've picked up
over the last few years, especially that just like replace my default stuff.
Like, you know, replace cat or LS or like whatever, like all these like default.
Like, yeah, it's like, give me better ways to do these things.
And then, um, I think wasm is a really interesting use case.
Uh, it seems like rust has really been talked about a lot in the wasm community.
And just like seeing how that develops, it's pretty cool.
And then, I mean, the other thing is like that, you know, with any sort of
like compile language or systems, program, language or whatever you want to say
is like, there is like very obvious performance gains.
Seizing something.
That's right.
This is like, you know, when you set aside the garbage collector, A, and then
you don't, you make some other choices.
This is like, there's some huge performance here.
So if you're like wanting to handle like a lot of requests or whatever
appear on the web world and like, you know, something like this could help
you do that and like use less system resources.
Definitely.
And it's not magic.
I've actually seen naïve node beat naïve rust before.
Uh, and that's due to a classic trap, which is forgetting to buffer your I.O.
Whereas node has like a bigger buffer by default and rust has no buffer
by default, someone write the rust code and they write the node code.
And they'd be like, why is it so much faster?
And it's like, oh, cause the node is executing like 1000th of the
syscalls that you're executing.
So it's definitely not magic, but it can feel like magic because so often
it is just faster.
Even when you write basically the exact same code.
One of the ways in which rust gives you the ability to do these things is
there's an escape hatch.
So it doesn't turn off rusts checks, but it does give you some new tools.
That have no checks.
So those pointers you were talking about and see that caused you all that strife.
You could use those in rust, but you have to specifically sort of annotate
that section of code saying like, Hey compiler, I'm about to do some stuff
you can't know about.
So you're just going to have to trust me.
Um, and what's nice is you can, we can use a very common tool that
program is used and that's encapsulation.
So you can build up a function or a data structure that uses this kind
of like unsafe code internally, but presents an interface that is safe to use.
And sort of what that means is that as a user, I don't have to care that
you're doing some dirty stuff under the covers.
Like I can just peacefully use your project and not have to think about it.
Um, but that also means that if there's a bug in that, it could cause
some serious problems.
And so one of the things that's really nice about the dependency model, uh,
the similar to npm is that instead of me writing that unsafe code
every time I need it, I install a package that has that unsafe code in it.
I use that.
And that means that we have more developers looking at the same
implementation to find more bugs.
And it also means that if one is found, we can fix it and update it.
And everyone gets that benefit immediately.
And so I also think that while it's like a good developer experience,
it's familiar to a lot of developers, it also sort of helps sell the sort
of cultural aspect that Russ is trying to build around this, like, let's build
things that make it easier to do these low level tasks because like, like,
and to give you an idea of how low this like stuff goes, there's a package
called x86 and that package gives you the data structures that you need
to like do the low level stuff on an x86 processor.
Like if the word's like TLB or like, you know, interrupt handler
or any of that stuff matter to you, like those struct definitions
already exist and you just use them and they're right.
According to like the docs and like, sure, you could write that out by hand
and everyone who's written a hobby OS has written those out by hand.
But like, you don't have to do that menial drudge work in rust.
You can just install the package and get going.
For operating system development, like, not even, you know,
that's just like a wild thing that's not, you know, the norm in many of these spaces.
So yeah.
Yeah, not to keep bringing it back to typescript, but it's what I know.
Yeah.
The unsafe safe really reminds me of as any in typescript, like being able
to go like, I love the type system, but right now, fuck the type system.
I know what my types are.
Don't care about this little bit of code is so powerful.
Like, I was helping my fiancee's sister with C plus plus.
And we're just getting these like compiler errors.
It's like, what is going on?
Can we just at least run the program a little bit to see what's like, what's going on a little?
And just to have that escape hatch makes a typed language so much more approachable.
Absolutely.
And that's, it's also like Russ does have, as I mentioned, this very robust type system.
But that's also important for its performance goals.
Because again, on that trade off of like easy versus fast, his historically been a trade off
because easy meant like, you don't have to really care about what's going on
and fast meant you really have to care about what's going on.
But the cool thing about types is because they check your code
at compile time, they expend no time at runtime whatsoever.
And so you can do stuff that like is checked, but purely a compile time.
And therefore you get these massive runtime efficiency gains by using this kind of stuff.
So absolutely.
Like it's very similar and also very key, like part of how Russ works.
Yeah, I can literally already hear the arguments of the opposite side of that, though.
Sure.
There is, I think my favorite one is like.
If I can't turn seg faults in a remote code execution, how am I supposed to
jailbreak devices that are sold lockdown?
And so actually like, or like Russ will ruin the speed running community
because if games aren't buggy anymore, there's going to be no more bugs
d'exploit when trying to run video games as fast as possible.
And so I think both of those are very funny arguments.
I don't think they're a good reason for not improving software on this front.
But you know, takes all types.
So far as a hackable, what are we going to do with ourselves?
Yeah, yeah.
Let's talk a little bit about oxide.
I actually have not really mentioned it too much on the podcast.
But yeah, so.
Both work in oxide.
What do you what do you spend your days doing in oxide?
Yeah.
So if you haven't mentioned it, should we say what it is?
Yeah, yeah.
Yeah, yeah.
So this is also, this is also relevant because it's like sort of
kind of what I'm doing.
So anyway, so fundamentally, oxide is the oxide computer company.
And it says very straightforwardly on the tin, what it is like, you buy a
computer from us, you give us money and we give you the computer and everybody is
happy.
Like that's the fundamentally the business model.
The kind of computer is the interesting part though.
So we basically sell servers, like you would put in a data center, but
instead of them being like an individual, you, so if you've never used a server
rack before, there's like, usually I think 42 is the standard size of a rack.
Uh, and you is, I think for unit, I don't know, I'm just going to make that up
and say that's true.
I've never actually thought about that before, but you can sort of fit like
42 individuals servers into a rack of servers in a data center, somewhere.
Um, and that's cool and good.
And it's worked for a lot of people for a long time, but a lot of the
bigger tech companies are building their own servers.
Cause like, if you already know, you're going to build a data center,
why are you building individual servers?
Why not build a rack of servers at the same time and then fill your data
server data center with the racks?
And so they've sort of developed these strategies for building the hardware.
In a way that's like more conducive.
The example that I always use is power.
So like, if you have 42 individuals service in a rack, uh, and you have a
power supply in each one of them, you're being a lot less efficient than if
you can put one big power supply for the whole rack and only do that conversion
from ACDC, DC wants, and then route the power to the appropriate places.
So you get this kind of like efficiency of scale by building a server rack
as a whole cohesive thing, as opposed to individual units.
And so there's definitely a lot of folks from like a son or apple heritage here.
So you can kind of think of it as almost like an apple rack of servers.
Like we sell you this appliance and it's all cohesively designed software
and hardware together.
And you get kind of the cloud experience of deploying your applications, but
you get to own the hardware side of that.
Um, and there's a lot of people, you know, cloud computing is good, but
it's also a deployment model as well as an ownership model and a money sense.
And we've sort of conflated those two things that like you have to rent
to get the cloud deployment model.
And there's some people who want to own servers, but also still want
the advantages of the developer experience of a cloud model.
And so that's kind of like who oxides customers are to some degree.
Um, so one of the things I've been doing a little bit more oxides lately, and
I want to sort of move into more.
So it's marketing, which is why that's kind of a fun.
Uh, you know, let's talk about that part first.
But, um, what I started doing and what I'm doing right now is much more
the low level stuff.
So I kind of work on the, uh, the team that's sort of like an embedded team.
I guess we don't really have team names exactly at Oxide, but like we work
on the sort of like low level firmware stuff that is helping to build
those servers in the rack.
Um, and I started off by writing some code for that, but I've more moved
into sort of a very much like a sort of staff role where like I tend to work
on the build system or things that are kind of adjacent to the folks
that are doing the nuts and bolts, actual embedded development every day.
Uh, and the current thing that I'm working on is improving compile times
for the control plane implementation.
So, uh, you know, our compile times aren't absurd yet, but every minute
you can save, you know, if you save 10 other people, one minute, every
time they compile on the compile 100 times a day, like you're a
meaningfully increasing folks productivity.
So I've been investigating, uh, like how to drop the compile times on
the, the control plane implementation lately, but that's kind of, uh, I do
a lot of that stuff and helping, uh, with rest questions.
One of our coworkers started a bi-weekly one hour, kind of like, let's
talk about rust stuff, uh, meeting.
And so folks will bring in whatever they're struggling with and I'll answer
there, we have a channel at work that's like rust questions.
And so I answer questions there and kind of sort of my job, my job is
like force multiply other folks at the company.
And so whatever that ends up being, it's kind of a little fluid, um,
which is how I like it, uh, cause I get, I get very easily into things
and then distracted and onto a different thing.
So it's nice to like have some freshness and variety in what I do.
I think you're.
Yeah.
You're welcome.
Freuk file dives.
It's always, it's always nice.
You could thank me once the patches actually land.
Uh, I spent all last week doing the analysis and I'm like, here's
the culprits of the mystery, but I haven't like thrown them in
jail or whatever, whatever this analogy is going, like I haven't succeeded yet.
So, uh, you know, we'll get there, but, uh, yeah, totally.
That's somebody's like, yeah, no, it's, it's always an interesting transition
about like the things that are important.
And, and I think it's like, so I have this really novel position where I
started my career and sort of like systems programming and systems
environment, and then I went more of the JavaScript web route.
And then I'm sort of like, I'm still in the JavaScript route, but
I'm like, also, you know, like starting to line a little bit.
And I, uh, it's, it's been interesting watching like the
JavaScript ecosystem mature as rapidly as it has.
And like how they think about tooling and infrastructure and stuff, but
I would really profound both gratitude and respect for anybody who
like focuses on infrastructure cause it really is like it, it's a game
changer for sure.
Or.
Absolument.
I had a very similar background.
Um, so because I became professionally known when I was working on
Ruby and Rails stuff, a lot of people, when they saw me go to Rust,
we're like, oh, these dumb web people are trying to learn systems programming.
I learned systems, I learned C 30 years ago.
I started when I was seven.
Like I did, I did that stuff like a long time ago.
It doesn't mean I'm amazing at it.
No, but like I'm not some dumb web programmer.
Like not that I think web programmers are dumb, but like when
people say that kind of stuff, like I also am not that person, even
if you're trying to like talk trash on those people.
So it's just like very funny, right?
Like we forget that people can do different things, different points
in their careers.
Um, so yeah, absolutely.
Show them to the top.
Want to hear the full interview and all of our tooltips?
Head over to Patreon and subscribe.
Okay, that wraps it up for tooltips.
Steve, thanks for coming on.
As a JavaScript developer, not knowing much about Rust, you did a
really good job at explaining the community and all the tools.
And I might even give it a try myself now.
Thank you.
I'm glad that it works.
I hope you have a good time.
And if you don't, like I said, that's super okay.
Not everybody has to love Rust.
It's totally fine.
Yeah.
And likewise, Steve, thanks always a pleasure.
And I'm glad to both share a little bit of what we do with wider world.
And I don't know, hopefully share the level of Rust.
So yeah, absolutely.
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