Jeff Dickey - Mise, Usage, and Pitchfork and the Future of Polyglot Tools
Durée: 41m28s
Date de sortie: 27/01/2025
This week we talk to Jeff Dickey, the creator of Mise, Usage, and Pitchfork. You might know him from his work on Oclif, a CLI framework for Node.js. With his latest tools he is focused on making development easier and faster.
- https://www.linkedin.com/in/jdxcode/
- https://jdx.dev/
- https://github.com/jdx/mise
- https://github.com/jdx/usage
- https://github.com/jdx/pitchfork
- https://github.com/oclif/oclif
Apply to sponsor the podcast: https://devtools.fm/sponsor
Become a paid subscriber our patreon, spotify, or apple podcasts for the ad-free episode.
C'est comme le seul moyen de l'exploiter le toulon de polyglot.
J'ai pris un petit peu de plus de looks à un moment donné,
et j'ai réalisé que c'était très lent.
Ça m'a fait de la chaleur de deux secondes de la charge.
Je pense que si j'ai écrit ça dans un autre langage, je pourrais le faire vite.
Bonjour, bienvenue à DevTools FM.
C'est un podcast sur les taux de développeur et les gens qui font ça.
Je suis Andrew et c'est ma host, Justin.
Salut, tout le monde.
Nous sommes vraiment heureux d'avoir Jeff Dickey sur ce sujet.
Jeff, vous êtes l'authors de mon nouveau toulon de préférence.
Un toulon que j'utilise en tout de même dans tous les projets.
Je suis comme en retourant sur les projets de résurrection.
C'est juste pour que je puisse ajouter ce toulon,
ce qui est un défi de la fuite.
Vous êtes l'authors de Mies & Place,
qui est un toulon de la charge.
Nous sommes vraiment heureux de parler de ça aujourd'hui.
Mais avant de nous dépasser,
Would you like to tell our audience a little bit more about yourself?
Vous avez bien compris.
Je suis en train de faire un espace de productivité en développement
pendant un décès.
Mon premier travail,
c'était de joindre Heroku pour réécrire le CLI.
On a une mandat de ce que le bon Ruby, Heroku CLI, a fait.
J'ai fait DevTools pour longtemps.
J'ai commencé à Heroku,
où j'ai vécu avec la mandat
pour réécrire ce gros, crouffé Ruby CLI
dans une autre langue.
C'est quelque chose dont je vais jeter un petit peu d'écrainer.
Alors, heureusement,
c'est un
que vous devez connaître.
Qu'est-ce que l'Oklif et quelles sont les principes de guidance
derrière ce projet ?
Oui, donc le but avec l'Oklif est d'améliorer les deux
CLAs en particulier.
Perroque est faite par Salesforce,
et Salesforce a dit qu'ils sont CLAs,
qu'ils ont leurs CLAs, et qu'ils veulent améliorer les deux
et aussi que les deux soient interpétents CLAs
à la même fois.
Et les deux CLAs ont été développés
avec une structure très similaire,
qui est commune dans les grandes entreprises de la CLA
où vous avez beaucoup de différents équipes
qui maintiennent une petite compagnie de la CLA,
un peu de commandes ici et là,
que tout va bien se faire flower dans cette grande CLA.
Et l'Oklif et le Node
étaient un bon nombre pour cela,
parce que la façon dont les dependencies
travaillent, chaque module ici
peut avoir sa propre set de dependencies.
Et chaque de ces dependencies peut être de différentes versions.
Et donc, ce modèle a vraiment travaillé bien
pour des grandes CLAs
avec des commandes.
Et je suis en train de développer
cela plus de décennies d'avant.
Mais je sais que c'est...
C'est encore développé,
je sais que les grandes entreprises
sont encore en train de le prendre.
Je pense que Shopify a récemment décédé.
Et si je l'ai décédé,
je voulais aussi faire la solution
pour les grandes CLAs,
parce que c'est un peu d'intention
pour les grandes CLAs.
Ce n'est pas ce que c'était fait.
Mais je pense que ça pourrait être.
Je voulais toujours avoir
un exemple de single file,
un single file Oklif-CLA.
Mais ça n'est jamais de la fruition.
Ça pourrait être.
Je pense toujours que l'Oklif
est la prochaine JS de les frameworks COI.
Parce qu'il y a beaucoup de petits
commandes qui sont sur le terrain.
C'est un bon moyen
de faire une petite app COI.
C'est évidemment en train de développer.
Mais des choses comme ça
qui sont en train de changer les interfaces
ou quelque chose,
qui sont très élevé.
Je pense que vous devez avoir
une équipe très rigoureuse
pour la maintenir.
Le problème avec les codes COI
est la temps de start-up.
Parce que le moyen de faire une CLA
a été un peu plus dans le code COI.
Je ne sais pas d'autres solutions
qui sont en train de faire ça.
Mais normalement,
vous avez un
besoin de tous les commandes.
Si vous avez un COI
qui est un de la tente de mille
files de JavaScript,
à chaque fois que vous l'utilise,
à chaque fois que vous lisez,
ça va faire partie de tout le JavaScript.
Et donc,
ce que l'Oklif a fait,
c'est que ça allait juste
mettre la commande
qu'il va faire.
Ça a fait ça plus vite.
C'est toujours un autre point.
Vous avez des codes COI,
vous avez le temps de faire
Vous êtes en train de faire
100 milliseconds,
probablement en plus.
Mais au moins,
c'est seulement 100 secondes,
même dans un code base
Je pense que
un article que vous avez
écrit très longtemps,
à ce point,
les principles de 12 guides
de la design interface commande
.
Je vous réfère beaucoup à ça.
Une chose que je veux savoir,
c'est que vous lisez beaucoup
de CLA.
Mais vous n'aurez pas d'autres codes COI,
si vous n'avez pas d'autres codes COI.
Je n'ai pas utilisé Oklif
pendant un moment.
Et vraiment,
parce que je n'ai pas écrit
un code COI
sur ce scale
pendant longtemps.
Je pense que
il y a
une bonne utilité.
Parce que
les codes COI sont en Rust
maintenant.
Mais ça ne serait pas
une bonne chose
pour
beaucoup de gens
qui utilisent Oklif.
Parce que,
comme je vous ai dit,
vous pourrez avoir
une équipe de service
qui fait
des postgres.
Et si
ils n'ont pas
beaucoup de Rust,
si ils n'ont pas
beaucoup d'expérience,
ils ont besoin d'une chose
qui est assez simple.
Et
même si les gens
parlent beaucoup de JavaScript,
je pense que
d'autres softwares
peuvent le faire.
Et si c'est quelque chose
qu'ils n'aiment pas
5, 10 % de leur travail,
je pense que
c'est un bon
nom de nombre
pour beaucoup de développeurs.
Donc,
d'autres que
le temps de start-up
et
potentiellement
cette composabilité
et la simplicité
pour contribuer
pour les équipes grandes,
qu'est-ce que c'est
les aspects
importants
des aspects d'ex-ex-ex
pour s'en faire
une construction de la CLI.
Qu'est-ce que c'est
les fundamentals
que vous faites
quand vous commencez
une composabilité?
Il y a des basics,
des choses que vous
dîtes,
d'utiliser le standard air
et le standard air correct.
Une chose que je vais dire
parce que
je pense que c'est
un des plus
intelligents.
Le standard air
n'est pas pour les erreurs.
C'est pour
aucune information
qui n'est pas
une partie de l'outil normal.
Donc,
souvent,
c'est une erreur
de l'invité.
Mais ça peut être
une information de progrès.
N'importe quel moment
que vous avez besoin
d'avoir
quelque chose
qui va au user,
c'est ce qu'il y a.
Et donc,
je pense
que c'est
l'un des importants
que l'on s'est
souvent misé en place.
Et je pense
que
mettre un peu d'idée
sur ce que vous n'en avez
des choses.
La philosophie que je
ai, c'est que
le nom des commandes
doit toujours être
des verbes
et pas des noms.
Et ça,
je pense,
tend à avoir
une interface consistante
de la façon dont les choses sont
construites.
Pour exemple,
je ne sais pas si vous parlez
de l'ASDF,
mais
il y a un command
qui change
la version globale
de différents outils.
Et
le moyen que vous faites
c'est
l'ASDF globale
dans le nom.
Le nom de l'ASDF
n'est pas un verbe,
c'est
une version
de l'ASDF
qui change
ce qu'on a fait.
Donc, je pense qu'ils
ont réalisé que c'est un error.
Donc, c'est
l'ASDF
globale
dans le nom
Ce qui fait
plus de sens.
Je pense
que
le nom
de l'ASDF
est un verbe
et c'est
des choses
qui le font.
Oui, c'est un peu
le sens.
Il y a des
lignes
que j'ai utilisées.
Le nom est OK.
Donc,
par exemple,
le nom de
l'ASDF
est un
PR.
On va faire
quelque chose
sur le PR.
On va
faire un PR
ou quelque chose.
Le nom est OK,
mais il y a
beaucoup de
categories.
Oui,
c'est la dernière chose.
C'est un PR
de l'ASDF.
C'est bien.
Et
avec
d'autres
exceptions,
comme
les logs de Heroku,
ça
marche.
Je ne pense pas
que c'est un liste de
logs de Heroku,
des views
de Heroku.
Mais,
je pense que c'est un
général
pour commencer.
Il
peut être
bien.
Et
quand c'est un
tier,
le
middle stuff
devrait être
le nom.
Parce que
tu es
en décembre.
C'est
qui est
C'est
un
truc.
C'est un
C'est un
truc,
mais
la
r energía.
C'est un
truc.
Mais
sur
ce savoir-tu.
Puisque
Mais ça décrive ce que la CLI ressemble à,
les arguments, les flags, etc.
Et, je pense, probablement, c'est tout pour l'aide.
Et donc, l'idée est que,
quand vous définissez la CLI avec cette spécification,
les choses comme générer la documentation pour l'aide,
ou avoir la soutenance de complétions,
peuvent être beaucoup plus facile.
Et donc, le marché de targés, pour les gens qui utilisent les usages,
et les utilisateurs, c'est vraiment pour les authors de la CLI,
et les vendeurs.
Parce que si quelqu'un est là,
il y a des complétions,
particulièrement avant,
non, c'est vraiment difficile.
Ce n'est pas beaucoup de fun.
Et si vous avez des utilisateurs qui veulent
faire du travail en BASCH, en ZSH,
en PowerShell, en Nuchel,
vous devez répéter cette logique très pire,
plusieurs fois,
et c'est comme un travail sur le service de langage,
avec des idées, des idées similaires,
vous devez juste faire ce
relativement facile de faire des spécs.
Et puis, l'usage qui fait un tour de temps
sur l'usage des utilisateurs,
peut générer la code de complétion pour vous.
Et donc,
cela en fait,
ce stade
attiré
tout ça pour l'ocide les restants
Je veux faire le même, hein ?
Donc, mon hope est que, avec les usages, je peux...
Je l'ai écrit tout de suite.
Et maintenant, je dois pas le répéter pour tous les CLI, hein ?
C'est cool comment ça fait aussi des autres outpots aussi.
Devant des pages maniaux et des documentations marquées.
Juste, donc beaucoup plus simple.
Et j'aime beaucoup la fois, quand je l'ai écrit les CLI, c'est un code.
Et la documentation, tout ça, c'est une partie de la définition.
Et c'est comme...
Ils sont tellement liés.
Et ça, c'est vraiment primitaire.
Je peux utiliser ça sur des scripts.
Ou tout ce que je veux en décrire.
C'est très intéressant.
Oui, oui.
Et on va le faire.
Il y a beaucoup d'intégrations avec moi ici.
Mais, vous savez,
en étant capable de avoir un seul file basse
qui peut avoir cette compétition,
avoir une génération doc,
c'était un grand but pour moi en en faire.
Et voilà le dilemma d' monster,
vidotes.
un petit petit petit petit petit petit petit petit petit petit petit petit petit
qui a créé le spectre de utilisation.
C'est comme ça.
J'ai eu tout ça.
C'est incroyable.
Quand j'ai construit ça pour moi, c'est que ça m'a pris
quelques semaines pour me faire écrire tout ça.
Ça me semble que les récits pour un nouveau
O-Cliff-shaped
sont là-bas.
Il y a quelque chose
de ce nouveau métaphrame pour COI.
Mais ce n'est pas nécessairement
de la implementation directe.
Donc, c'est comme ça que la structure est à la place.
C'est assez cool.
Oui, je pense que je pense que c'est un très polyglotte.
Mais je ne vois pas vraiment
que je suis allé en train de faire une langue
en personne.
Je préfère vraiment les choses qui sont
agnostiques.
Si je vais en faire un truc,
c'est facile de
prendre ces livres et travailler avec eux.
Oui, j'ai fait beaucoup de co-gen.
J'ai eu un projet qui est écrit en russe
qui utilise un crét qui s'appelle Schemares
pour générer un schema de JSON.
Je suis en train de générer des types.
Ce qui est comme ça.
Quand tu as un polyglotte,
tu as des bases de configuration
ou quelque chose,
c'est un super power.
Parce que sinon, c'est très difficile
de maintenir une consistency.
Nous aimons arrêter et merci
de notre sponsor pour cette semaine.
Mais nous n'avons pas.
Donc, si tu aimais sponsoriser
DevTools FM,
allez sur DevTools FM
slash sponsor pour appuyer.
Et si tu veux trouver un autre moyen
pour soutenir le podcast,
allez sur shop.devtools.fm
où tu peux acheter un merch
et repérer le podcast.
Avec ça,
on va revenir au épisode.
Avant de vous remercier,
tu as mentionné le projet Pitchfork,
qui je voulais parler un peu.
Pitchfork est nouveau.
Il semble que tu es actuellement
en train de travailler sur ça.
C'est un CLI
pour la launches des démonstres.
Ce qui semble vraiment cool,
c'est vraiment difficile.
Ma question est
que les gens
pourraient être intéressés
de la launches d'un,
ou d'un système d'un,
ou quelque chose.
Ils pourraient être utilisés
un OS primitive
pour la faire
leur démonstres.
Pourquoi Pitchfork,
et qu'est-ce que ça donne à des gens?
Oui,
je crois que c'est un succès
à 1 à 20,
quand il s'agit de choses.
C'est très expérimental.
Pitchfork est vraiment
un développement de démonstres.
Ce n'est pas un réplacement
pour des tools DevOps
comme SystemD.
Le problème que je voulais résoudre
c'est que je laissais
mon documentation web
sur un CLI.
Le moyen de ça,
c'est d'ouvrir un nouveau
démonstres
et de minimiser.
En ce moment,
je n'oublie pas
que ça va passer
et je le fais
sur un différent CLI
et le port se conflite.
Je voulais,
pour mon démonstres,
arrêter
quand je suis fait
travailler sur quelque chose.
C'est plus de la stop
que j'ai besoin.
La façon de la Pitchfork
fonctionne,
c'est que,
si tu entres un directeur
qui a
un sort de Pitchfork
qui se conflite,
il va lancer
tout ce que tu veux.
Donc,
tu sais,
un service post-scrass,
ton service web,
ton documentation,
tout ce que tu veux,
tout ce que tu veux,
tu veux,
et puis,
quand la dernière session
déviste
ce directeur,
ça va
arrêter
le démonstres automatiquement.
Et donc,
plus ou moins,
je dois avoir un démonstres
séparé et plus ou moins,
je dois m'en souhaiter
que je dois avoir
ces démonstres en train de ralentir.
C'est assez cool.
Donc,
on va nous faire un tour de Mies.
Mies est un projet
plus grand que les autres deux,
qui sont des utiles
Mies semble avoir
une grande partie
de votre travail de développement.
Donc,
qu'est-ce que tu as?
Pourquoi tu as...
Oui,
je pense que le tagline
s'encappale,
c'est
le point de la développement
de ta développement.
Et donc,
mon but avec Mies
c'est pour être
une interface
de polyglot
que,
en tant que producteur,
en tant que
des écosystèmes
tu as juste une
façon commune
pour le set,
pour le manager,
pour le rater
et pour
le maintenir.
Donc,
le rater de vos commandes
et de la production
sont
au moins
démarrées
par Mies,
c'est l'idée.
Et donc,
il y a vraiment
trois sortes de
des piles
de Mies
qui font de quoi c'est.
La première,
c'est les tools.
Et donc,
Mies
a commencé
un projet séparant
qui s'est appelé RTX.
C'était un direct
juste russ-clone
de la tuelle
appelée ASTF.
je pense qu'on peut
mettre un pin sur ça.
Mais les autres deux piles
sont
des variables
d'environnement.
Donc,
c'est similaire à dot-n
ou d'Orem
parce que les gars sont
familiarisés avec ces tools.
Mais c'est juste un moyen
que,
quand tu entres dans un directeur,
tu as des variables d'environnement
qui sont installées.
Donc,
c'est non-DEMV
ou des creds AWS
ou des choses comme ça.
Quoi quelles variables
tu as besoin,
tu vas juste être là
quand tu entres dans le projet.
Et la dernière est des tasks.
un peu de gens
qui utilisent
des mails
pour avoir
un peu de tasks phoney
pour que
c'est
juste un moyen commun
d'un moyen
d'un projet d'intervention
qui peut
faire des choses différentes.
Qu'ils soient
des dépendances installées,
construire le projet,
ou
parfois déployer
les recettes de la release
ou
des choses comme ça
dans les tests, évidemment.
Et donc,
meses
ça t'a fait un tout petit tour
comme un tool
pour que
tu imagines
que
si tu as un meset
et un projet
utilise ça,
les idées que tu dois faire
c'est que tu vas dans ce projet
faire des tests de meses
et ça va faire
les tests scripts.
Tu vas installer
tes dépendances,
tu vas installer
tes variables d'environnement
et
tu n'as pas besoin de care
ou de savoir
quelle langue
tu as réglé.
Donc
ça
c'est tout pour que tu aies
tout ça ensemble.
Oui,
il y a beaucoup d'eux,
ce tool est beaucoup en train
et
c'est
d'au-dessus,
c'est peut-être
un peu difficile
de grappler avec
l'evaluage.
Donc,
on va
commencer,
on va
parler un peu
de ça.
Donc,
c'est mon introduction
pour moi.
Je
n'ai pas
l'aisté
de la
mais
j'ai pas vraiment
aimé ça.
la maquillage
c'est un tool
pour
managé des versions
des choses.
Donc,
j'ai utilisé
pour managé
la version de Node,
la version
de Python,
ces types
de choses.
Et
la maquillage
de la maquillage
est bien
faite,
ils ont fait
un petit peu de
Mais
il y a un peu de projets
qui
utilisent
3 ou 4
différents
tools
pour managé
des versions
des choses.
Donc,
tu as
un russ
pour managé
les versions
de russ
ou tu as
un nvm
ou un nm
ou un
nombre
de choses
pour managé
les versions de Node
etc.
Et
je pense
que
ce sont
les deux
qui ont un spot
qui est
très
stupide
et qui
fait ce que tu penses.
Et
qui
c'est le reste
de ce que tu as besoin
de bien.
Donc,
telle-moi un peu
la histoire
de
la réplacement
pour ASTF.
Qu'est-ce que c'est
ton motivation?
Et
quels sont les
journeys
qui sont
lesquelles je suis?
Je pense
que les développeurs
sont automatiquement
lesquelles ils voient
la valeur de la
ASTF
quand ils s'entendent
sur ça.
Je pense que les développeurs
sont plutôt
confortables
avec des outils
comme
nvm
et pym
et
des choses comme ça.
Mais c'est
un peu
de se changer entre eux
parce qu'ils
ont
des caractéristiques
des UX,
des
structures de file
pour comment
les versions
et les choses.
C'est génial
d'avoir un file
pour
qu'on
se démarre.
Je pense
que
ASTF
était
la
seule
tool
qui a fait ça.
C'était la seule
personne
de la
polyglotte
de l'auteur.
Mais
j'ai pris un
plus
de look
il y a
quelques années.
J'ai réalisé
que c'était
très sain.
J'ai fait
un
et j'ai
un
et j'ai
et j'ai
et j'ai
et j'ai
et j'ai
c'est très facile à utiliser, mais je me suis dit que ça me fait trop de crédit pour ça,
parce que j'ai vraiment simplement impliqué les idées que les gens ont eu
pendant les 10 ans, que l'ASCF a été en train de se mettre en place dans un tool similaire.
C'est un bon moyen de proposer un nouveau tool,
juste par aller par les bonnes réponses sur le autre tool.
Je l'ai remarqué, avec mes, vous pouvez installer différents types de notes,
Python et tout ça, mais dans certains de les plugins, ça réclame l'ASDF.
Quels sont les situations où j'ai voulu utiliser la version de Mies vers les versions ASDF qui sont en train de se mettre en place ?
Je pense que je dois juste réexpliquer comment ça fonctionne.
C'est donc commencé, les outils ont juste utilisé l'ASDF.
Pour différents raisons, le moyen de les outils de l'ASDF ne sont pas très bons.
Et donc, il y a un an, j'ai construit un set de features en Mies,
qui sont des multiples end-ins.
Ce que Mies a fait, c'était que l'ASDF était un moyen de installer les outils avec Mies,
mais pas le seul.
Vous pouvez aussi installer les outils avec NPM, avec PIPX, avec Cargo.
Et puis, quelques plus généraux, les outils de l'asdf, qui sont UBI et Aqua.
Et donc, les deux ont des pros et cons, mais ultimement, pour des raisons de sécurité,
pour des raisons de performance, pour des raisons de sphérité,
il y a souvent des meilleures manières pour installer les outils avec un en haut vers l'autre.
Et donc, généralement, pour un utilisateur, ils ne doivent pas savoir ce que Mies a fait,
mais il y a une liste de plusieurs outils de Mies,
et j'ai choisi ce que je pense que c'est le meilleur pour les uns.
Et donc, c'est super pour les uns.
Si j'ai essayé de summariser, je dirais que l'ASDF est le plus capable d'être un en haut vers l'autre.
Donc, le moyen de l'ASDF de la pluggée est de l'assistance basse.
Et donc, ce code peut aller en bas et pouvoir compiler le tool.
Il peut mettre sur GitHub Releases, il peut installer, ils peuvent vraiment faire tout.
Mais, oui, comme un utilisateur, je ne sais pas, c'est compliqué.
Ça fait du sens, tu as BASH et BASH, tu peux faire tout.
Donc, tu end up having to trust random people on the internet
pour faire des choses sur ton computer, ce n'est pas une bonne idée, vraiment.
Non, non, et c'est probablement le plus grand problème avec l'ASDF.
Et je savais que, dans ce cas, le moyen de l'ASDF de la pluggée est de tous les outils
qui ont leur propre repository, c'est presque toujours un développeur random
qui a construit ce code qui s'est fait en fait comme un outil.
Et c'est très risqué, parce que si tu as 20 différents plugins,
tu peux être en train de mettre sur tous ces 20 développeurs
pour ne pas être hacké et, en fait, avoir une code malicious pour entrer dans leur pluggée.
Et donc, je l'ai fait recently, je mets un gros poste
où ça a effectivement été un problème de solver des problèmes en murs maintenant.
Mais, en fait, quand tu as utilisé mes outils de default,
tu n'es pas en train de mettre sur les vêtements sans un pluggée
ou, dans les quelques cas où je dois utiliser un pluggée,
le pluggée vient de la repository que je m'envoie.
Donc, tu ne dois toujours pas me confier, pardon.
Mais au moins c'est juste un développeur et pas un pour tout le toulou que tu utilises.
Oui, on a eu un client, on a eu Jordan Harbin en au-delà de la fin,
il avait parlé de la dépendance et de la chaine de la confiance.
C'est plus sur les gens dans la chaine de la dépendance que c'est,
les différents packages ou les différents pluggés que tu as réellement fait.
Donc, c'est un bon modèle, en tout cas, de savoir qu'il y a une source de la confiance.
J'ai aussi appris à l'Aqua sur mes outils,
donc, les outils de la CNI sont un outil de la CNI qui fait le tourment,
mais c'est très attentionsé sur la sécurité.
Et je ne sais pas si c'est un peu comme un peu d'autres outils que mes appareils.
Mais leur registre est vraiment bien, c'est aussi un bon source de la qualité de la qualité,
qui est vraiment attentionsé sur leur extension,
donc c'est aussi un bon source.
Et j'apprécie que mes outils appuient à ces multiples ins et
ça me donne beaucoup de hope pour le futur de l'adaptation,
de pouvoir changer ces ins et des outils.
C'est assez fort.
Oui, et donc, les meilleurs, les outils auparavant sont les meilleurs.
Et donc, si il y a un outil de la CNI,
l'Aqua est un modèle de manifestation pour chaque outil,
et si ça existe, je vais toujours l'utiliser.
Et l'Aqua a des plus grands features de sécurité,
que ça supporte la séance de la co-signée et de la source de la vérification,
qui vont juste en plus,
pour que ce tarball soit de ce Github release,
de ce username repo.
Comme sur Salsa,
le rêve là est que vous pouvez regarder un seul Githemit
dès que ce tool est taggé,
et vous pouvez vérifier que même la chaine de construction
et toutes les dépendances que ça a pu s'en faire,
c'est tout coche.
Et donc, notre industrie est encore jeune
quand ça arrive à ce point, pas que beaucoup de tools supportent ça.
Mais, part de ce problème là, c'est des tools comme moi.
Parce que, finalement, à l'endemain de la journée,
les développeurs ne sont pas installés avec des...
Je pense que ce sera de la sécurité essentielle,
il n'y a pas de raison pour le vendeur de l'utiliser.
Je pense que le monde ressemble bien.
Et, vous savez,
qui nous donne l'auteuil pour,
à moins de commencer nous en route,
par avoir une registrée
que les tools comme mes peuvent rédiger?
Cool, on va le déliver à l'autre partie des autres.
La chose qui me stoutait beaucoup c'est Tass,
qui est venu de l'un des nodes du monde.
J'aime rédiger sur mes scripts et mes packages JSON.
Et Tass me donne un feel très similaire.
Mais, comme un tool,
il me semble qu'il y a un package JSON pour tout.
Qu'est-ce que Tass et comment je peux l'utiliser?
C'est exactement ce que c'est.
J'aime les tests de test en NPM.
C'est juste que...
N'importe quel développeur
aime juste de pouvoir couper dans un projet
et de faire des commandes conventionnelles
qui sont utilisées
dans tous les nodes des projets.
C'est mon but.
Je veux que tu prennes l'expérience
pour le monde polyglot
où tu peux avoir l'expérience
quand tu parles dans un projet Python
ou dans un projet Go.
C'est l'idée.
C'est de la manière commune.
Je pense que
les packages JSON
sont très limites.
Il n'y a pas de fonctionnalité.
Et beaucoup de fois, c'est un plate de boiler.
Peut-être que ça fait un script.
Avec mes, je pense
que tous les différents moyens
que les gens veulent faire.
C'est juste un script.
C'est nécessaire.
Si tu mets les files
dans le bon endroit,
mes va juste les prendre.
Et ça va être un script.
Et ça va présenter à l'utilisateur.
Tu peux générer la documentation
et avoir des dépendances.
C'est tout le monde en train
d'avoir des compagnies
en fonction de la configuration.
Et aussi,
parfois, avoir des tasks en Tommel
est bien.
Il y a des tasks
en 5 ou 6
qui sont des codes.
Ça peut aussi
vivre là aussi.
C'est aussi un improvement.
Tu n'as pas de commentaire
dans le package JSON.
Je viens de faire un bloc
de scripts où je ne peux pas dire
à personne
de ce qu'ils ont fait.
Tu peux maintenant mélanger mes
avec l'usage et avoir
des docks pour
votre section de scripts.
C'est super, super bien.
Et les completions.
Les completions sont les choses que je suis mostaiment
d'inquiétude.
Avec mes tasks,
tu peux très facilement avoir un completion
pour, pour dire, avoir un username
ou un flag sur un
task. Tu peux définir
d'autres tasks que tout ça
doit faire pour s'enlever un bunch de username.
Donc, peut-être que ça va
faire un API ou quelque chose, c'est très facile.
Et pendant que les completions sont en train
de travailler avec mes normales, ça tout
se fait s'arrêter.
Et donc tu te types mes run, name of pass,
dash, username, tab, tab.
Il y a des usages.
C'est incroyable.
Le package JSON a beaucoup
de drawbacks.
Donc, le commentaire est vrai.
Évidemment, les gens installent
une séparation de dépendance pour pouvoir
faire des tasks en parallèle, pour exemple.
Et donc, Mies a des tasks
parallèles ou au point de la poche.
Tu as des dépendances.
Tu peux faire des pre et des postes
dans un package JSON, mais c'est assez
gros.
Mais tu peux faire des dépendances.
Je veux que tu puisses
faire des compétences pour faire un complet.
Tu n'as pas de temps pour te dire
que je veux que tu le fais, mais si c'est
en train de faire, je veux que tu m'en as
dépassé.
Il y a beaucoup de tasks
qui sont très riches.
Et je pense que quand je suis vraiment
en train de faire le valeur,
j'ai eu un projet où j'ai installé
Rangler, le tool CLI
pour Cloudflare,
comme une dépendance du projet,
parce que j'ai besoin de le faire.
Mais idéalement, je n'aurais pas installé
une dépendance.
J'aurais probablement utilisé le MPM
pour me installer
le truc.
Et tu as juste
un build.
Et tu as fait le build script pour te faire
faire sure que Rangler a installé tout ça.
C'est vraiment
très puissant,
surtout pour les deux,
pour les détenir et les installer.
Et je pense que le projet que je
m'avais mentionné avant,
c'est un projet rustique
qui utilise beaucoup
de langues.
C'est Rust, Python,
Dino.
Et je vais installer
tous les deux.
Je vais faire
RunGen Python, RunGen Dino,
et faire sure que tout
est correctement installé.
C'est un
difficile task.
Dino n'a pas vraiment un manager
de la base.
Il y a
beaucoup de choses.
Le fait que je l'ai
dans un file est super
profond.
C'est un bon
fonctionnement.
Vous avez
des hooks qui sont
expérimental.
Vous pouvez mettre un hook pour
interpréter
le directeur ou le directeur.
Qu'est-ce que
l'intérêt et l'inspiration
pour hooks?
On a parlé de pitchfork
avant.
Frequently, hooks est un
exasperation, donc je n'ai pas
d'implémentation.
Donc,
comme les gens ont commencé
à utiliser mes mots pour des
très advancedes choses, les gens ont
commencé à demander des features
que je ne pouvais pas développer.
Les hooks
ont été pour moi de
pouvoir développer
tous ces mots.
Il y a un
use qui a
une password qui génère
des variables
qui peuvent être interpréter.
Je ne veux pas
faire cette intégration.
Les hooks sont un moyen de
faire un lieu qui peut définir
cela.
Maintenant,
ce user peut avoir un hook interpréter
et que, quand il entre dans la
direction, il va demander
une password qui génère le file
et que Mies
puisse l'importer.
Un autre,
un usage qui a
support pour
automatique créer et activer
Python VirtualM.
Ils veulent que VirtualM
s'accueille avec des packages
que, pour tout le monde, ils ne veulent pas
avoir dans leurs requirements.
Cela donne
une habileté, parce qu'ils peuvent
juste rassembler, installer, installer, tout ça.
Je pense
que c'est un bon travail
parce que ces choses ne sont pas
hard à faire, mais, finalement,
cela
permet de solider les avances
sans que Mies ait besoin
d'être plus compliqué que ça.
Ça fait un peu de sens.
Un autre
futur à couvrir,
c'est les variables environnementales.
Nous pouvons parler des secrets,
donc,
.m
est un grand outil
très fort,
et on peut automatique
importer ces files
quand vous commencez à votre programme.
C'est une autre dépendance, c'est une dépendance
très basée,
que ce soit le cas de Mies
qui a beaucoup de fonctionnalité
pour m'aider
à les variables environnementales.
Vous voulez parler de ces
variables environnementales?
Et peut-être que vous avez
des pensées en
un bon secure setup
et que vous avez
des conseils pour les Mies?
C'est drôle,
mais c'est le plus important
que ça existe.
C'est ça qui a commencé, parce que c'était facile.
Quand j'ai construit
les choses de management de la tue,
il y a des tools,
java, pour exemple, qui ont besoin de
mettre le variable java-home.
C'était très drôle pour moi
d'améliorer les variables environnementales
que les utilisateurs ont.
Et
initialement,
je l'ai
fait parce que c'était simple.
Mais j'ai trouvé moi-même,
et beaucoup d'usages m'ont dit
qu'ils n'étaient pas
utilisés d'un Durem,
ou d'autres tools similaires.
C'était juste convenu,
ils avaient déjà des Mies,
donc
ils pouvaient juste mettre ça
dans un endroit et c'est convenu.
C'était le cas pour un long temps,
mais
comme les gens l'ont utilisé,
et comme les Mies l'ont créée,
les gens ont identifié
plus de cas de utilisation
que les autres.
Les Mies l'ont utilisé
un grand nombre.
Les Mies l'ont utilisé
pour ne pas mettre le source.bm
ou tout ça,
pour activer leur virtualité
dans un projet,
ça peut se passer automatiquement.
Un autre,
c'était le management secrets.
Donc,
à l'aide de
ce.mfile,
je pense que je vais vous demander
des questions de sécurité,
mais
c'est pas bon de
avoir vos creds AWS
juste en train de s'en faire.
En fait,
quand j'ai travaillé
à Heroku,
j'ai envoyé
les creds à
le bucket AWS 3
dans le package NPM.
Il était là pour un moment
et on a eu un bug report
d'un autre.
Parce que
j'ai eu le file
et le public NPM
a été publié
pour s'en envoyer
les files.
C'est pas bon de avoir
ces files en texte.
Les Mies
ont utilisé un tool appel SOPS
et AUGE,
qui leur décryptent.
Si ça
s'en va,
les files sont incrutes.
Donc,
personne ne peut les avoir.
Bien joué.
On a un roadmap.
Il y a beaucoup de choses.
La chose qui m'a piqué
était la support de GUI2.
Qu'est-ce que vous avez plané
pour 2025?
Il y a beaucoup de refin.
Il y a des choses
qui sont encore expérimentées.
Les Mies
ont un file lock
qui a besoin d'un peu plus.
Il a besoin d'un travail
qui a besoin d'un bug.
Je pense
que les
expérimentations sont très belles.
Des choses de la chaine supply
que j'ai mentionnée
sont un peu moins sur les Mies
et plus sur les tools
que cela s'en rapproche.
Je veux
construire des
features que je veux
pour que les choses comme
le code de salsa soient utilisées.
Les développeurs sont conscients.
On peut
prendre des tools
pour les adapter.
Et aussi,
on peut en approcher le registry.
Je suis sûr que beaucoup de vendeurs
sont en train de faire ça.
Mais on n'a pas été réveillés.
Il y a beaucoup de choses
que je veux vraiment
poursuivre la sécurité
avec les tools
que je suis en train de faire.
Il y a eu
des choses de la chaine supply
que j'ai déjà mises.
Si tu te type Mies Run
avec aucun argument,
il te donnera un style FZF
pour que tu puisses
mettre un test en cours.
C'est un autre chose avec Mies Use
qui est un moyen de installer
les tools.
Tu peux chercher
comment c'est pas un JS
ou un Go
ou un GoLang.
Tu peux commencer
avant que tu le fais.
Je veux donc identifier
des places comme ça.
Il y a des cas
où avoir un élément interactif
est très chiant.
Je ne travaille pas sur ça,
mais Oog Verathon
travaille sur un plugin de code BS
pour Mies.
Il a beaucoup d'adaptes.
Je vais probablement
supporter ça
par ajouter plus de support
pour que ça
puisse faire plus.
C'est assez intéressant.
Il y a aussi IntelliJ
qui est aussi très attentionnée.
Je ne sais pas si je vais travailler sur ça,
mais c'est bien que les gens sont intéressés
et ils veulent les choses.
Je pense qu'on va voir
beaucoup plus de ça.
C'est incroyable.
Je veux juste dire
que je vous remercie pour votre travail.
C'est
mon préféré tool
que j'ai déclaré.
Il a changé beaucoup de mes workflows.
C'est très bien.
C'est très bien.
Merci pour votre question Jeff.
Je n'ai pas essayé de Mies,
mais je vais essayer
de la faire quand je set mon nouveau computer.
Merci pour votre question
et pour construire un cool tool.
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