Richard Feldman - Zed, Roc Lang - Elm but for everywhere
Durée: 74m28s
Date de sortie: 12/08/2024
This week we're joined by Richard Feldman, the author of Roc lang, a futuristic functional programming language. Richard is a software engineer at Zed, a company that making a new code editor that's built on the Rust programming language and integrates AI. We talk about all the crazy feature that Roc lang has, and how it might change the way you write code.
- https://www.linkedin.com/in/rtfeldman/
- https://github.com/rtfeldman
- https://x.com/rtfeldman?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor
- https://www.roc-lang.org/
Episode sponsored By MUX (https://mux.com)
Become a paid subscriber our patreon, spotify, or apple podcasts for the full episode.
Quand on parle de la plateforme, on parle de la application.
La application est comme un programme.
Tu es construit et une application, tu es à la ronde, tu vas faire des choses.
La plateforme est ce que tu construis la application.
Donc, à part les langues de la programmation,
dans Rock, tu dois prendre une plateforme pour construire, exactement une.
Bonjour, bienvenue à la podcast de DevTools FM.
C'est un podcast sur les tools de développement,
et les gens vont les faire.
Je suis Andrew, et je suis Michael Hoshessen.
Bonjour, tout le monde.
Je suis vraiment excité pour ce épisode de aujourd'hui.
Nous avons Richard Feldman avec nous.
Richard, vraiment, c'est drôle.
Je me disais avant de commencer la recording,
de entendre votre voix,
parce que je l'ai écouté dans votre podcast de software inscripté.
C'est une de mes préférences.
En fait, tu as fait un travail fantastique, c'est des propres pour ça.
Tu es le créateur de RockLang,
et tu es maintenant un ingénieur à Zed.
Je suis vraiment excité de parler de tout ça.
Mais avant de nous dévier plus tard,
tu veux te dire un peu plus de notre audience?
Je pense que ça me couvre.
J'ai fait beaucoup de choses à l'album,
je n'ai pas de temps pour ça,
Rock est inspiré par l'album.
C'est juste d'album, mais pour différents cas de utilisation,
et des différences en décision et de décision.
Je suis dans un livre,
d'album et d'action,
et j'ai étaté des cours sur Front & Masters
pour l'album et aussi pour Rust.
C'est génial.
C'est drôle.
Avant de parler de RockLang,
parce qu'il y a beaucoup de choses à faire.
Je suis allé dans la documentation,
j'ai l'impression que je suis presque prêt.
J'ai regardé la barre de scroll,
et il y a des pages et des pages à gauche.
Mais tu es maintenant en train de travailler à Zed.
Zed est un édite d'explicit,
qui a été construit.
Tu peux nous dire un peu
de Zed et de quoi tu es dans le projet?
Zed est génial.
Je me suis trouvé à Zed
parce que j'ai entendu de tout ça,
et j'ai commencé à l'utiliser.
J'ai vraiment aimé.
Et maintenant je suis en train de travailler.
Mais je pense que tu peux penser
que ce n'est pas une compétition de code VS,
mais que ce n'est pas construit en électron.
C'est juste écrit en Rust.
Il se débrouille très vite.
Tout le monde se sent super snappy.
Les founders sont les mêmes personnes
qui ont créé Adam,
le projet original que l'électron a été construit.
Et pour faire une histoire longue,
ils ne sont pas fan de comment
l'électron a été fait en pratique.
Ils disent que je vais bien,
et on va réétenir tout de la barre en Rust,
et faire le top priorité.
Et ça m'éloigne
avec mes intérêts et éditors.
Je veux que ça soit très vite.
Et aussi, je veux une mode de vim.
J'ai utilisé la vim pour longtemps,
mais j'ai toujours été dévoilé
par le fact que tu as un limiter fondamental
où tu peux seulement pouvoir
avoir des uis
qui sont faits en monopacé.
C'est une grande limité.
Zed est vraiment bien,
il a un mode de vim,
et ça intégrerait le multi-curz.
C'est la meilleure mode de vim.
C'est comme ça que j'ai terminé
avec Zed,
et pourquoi j'aime ça.
Mais la chose que j'ai travaillé avec Zed
est que je travaille maintenant
sur la integration AI.
C'est quelque chose que nous sommes
sur la route pour le ship.
Depuis ce que l'épisode est,
on peut déjà le ship.
Mais je suis très frustré
avec la gamme entre
les demos de l'AI
et les démos flashiers
et lesquels ils sont cool.
Et quand je sit-down
pour utiliser le tool,
on fait quelque chose
qui est aussi utile
et pas aussi flashier.
On ne fait pas de magique.
C'est comme, hey,
tu peux utiliser
une chose qui t'aimera
plus facilement.
Quels sont les approaches que tu as
pour ça?
Personne,
j'ai essayé de
utiliser un cursor
dans les autres éditors, mais
je ne fais pas de plus.
J'utilise super maven
car c'est très très facile.
Mais quelles sont les approaches
que tu as?
Le problème que je travaille
en personnalité c'est
d'ailleurs,
il y a un challenge fundamental
qui est que tu as un contexte limité
contexte window, et vous avez une grande base de code.
Donc, si vous voulez dire quelque chose comme, Hey, comme pour exemple,
je suis nouveau à la base de code et une chose que j'avais toujours
qui est bloquée, je dois aller à la base de la base pour les gens de
m'aider à l'aide, c'est comme, Hey, où est-ce que je mets ce truc ?
Je veux commencer à ajouter ce feature, comme, où est-ce que ça va dans la base de code?
Et historiquement, avant les LLM, je serai juste à la base, je serai en train de
faire des trucs comme le dark, comme faire des projets globales, de
choses comme ça.
Mais c'est bien de juste demander la question en anglais et de
avoir une réponse straightforward et une explication de pourquoi
ça va venir ici et de quoi je dois être consciente et, et j'espère,
des cas de l'aide et de choses comme ça.
Donc, bien sûr, ça requiert le contexte de tout le projet, ce qui est
trop grand pour les textes de contexte.
Donc, comment vous faites un feature utile comme ça, selon les
limitations de la technologie?
Donc, l'approche que je travaille sur est essentiellement, prendre
chaque file dans votre projet et puis, avoir une LLM, présomérer
et juste aller à la base de la code et, essentiellement, générer un
très concis de summaries de ce que ce file fait.
Et puis, basically, quand vous avez demandé la question, c'est
pour ces summaries de présomérer de toutes les files dans votre projet.
J'ai des stratégies pour garder ça à la base aujourd'hui sans
avoir à rébuilder le tout, vous savez, tout le temps.
Et puis, vous pouvez dire, OK, selon toutes ces summaries,
quel file voulez-vous voir le tout le contenu?
Comme, quel est-ce que vous voulez être en contexte?
Parce que vous espérez qu'ils vont être rélevants à la question
que je vous ai demandé.
Et ça juste se passe derrière les scènes.
Je n'ai pas de question de la question, je vous ai dit que ça
juste fait ça.
Et puis, basé sur ça, maintenant, ça peut avoir un plus grand
ou sub-set de mon projet, ça juste semble être
rélevant à la question que je vous ai demandé,
mais ça, dans le contexte, c'est un point de vue
et ça peut donner un plus grand answer que si
ce n'est pas possible.
Donc, le cursor a une stratégie que l'on utilise pour
adresser à ce problème.
Je ne pense pas que c'est ça, juste basé sur les résultats
de la preuve de la preuve.
Je l'ai vu de la manière de essayer de la faire sur notre
code base, comme en essayant de la faire sur notre code base.
Ce projet de summarisation semble avoir beaucoup plus de résultats
que ce que le cursor fait.
Mais c'est un challenge intéressant où on peut
juste faire un copy-paste sur le chat de la GTB.
C'est quelque chose que j'ai fait quand il est arrivé
et que j'ai trouvé utile.
Mais il y avait toujours une limitation de
dire que c'est certain que les questions ne peuvent pas
répondre parce que ça ne sait pas mon code base.
Et je ne peux pas juste faire un copy-paste sur le code base
parce que ça ne fit pas.
Donc, comment on se met en sorte que ça fait un bon
user expérience et que ça fait un outil utile plus utile.
C'est assez drôle comment nous sommes dans un nouveau
état de search indexation.
Et ça veut dire quelque chose de complètement différent maintenant.
Mais effectivement, en essayant de faire une très
similaire chose, qu'est-ce que, en fait,
qu'on a aussi de la rétrie, on a aussi de la summarisation
et toutes ces autres choses magiques.
Et c'est assez amusant.
Tu sais ce que ça me rappelle?
Ça me rappelle quand, au début de l'année
où les jeux 3D étaient les premiers à venir,
tu avais du Doom et du Quake et il y avait
un peu de...
Au début, ils se fassaient beaucoup et les plus
et plus et plus.
Et les cartes graphiques sont en train de se faire
et puis tu as dû les faire plus et plus.
Maintenant, ça me semble qu'on doit faire
beaucoup de fées dans la partie.
Parce que les modèles n'ont pas été passés
assez vite pour les modèles.
J'ai essayé de faire la summarisation localement,
par exemple.
Je me souviens que c'était plus beau
si tu pouvais faire ça localement.
Tu n'avais pas besoin de aller au cloud pour ces summaries.
Ça a pris une heure sur mon laptop
avec tous les fans maxés sur une M3 Mac,
avec des specs maxés.
Et tu n'as pas pu faire quelque chose
d'autre sur le laptop parce que tout se brouille
à une haute.
Et je me souviens que,
peut-être on va faire ça dans le cloud.
Mais en plus, ça me semble que c'est le type de chose
que les modèles ont beaucoup plus de hardware.
Mais pour maintenant, on est dans le...
Tu sais, on doit juste se faire des limitations
pour avoir une bonne expérience de user.
Pour sûr.
Ça semble vraiment un projet de fun,
et j'imagine que c'est incroyablement utile.
Parce que je pense que un code base comme Z
n'est pas nécessairement un code base
de travail pour le jump-in.
C'est donc que Z est en russes,
c'est-à-dire?
Il y a un custom renterring
qui s'appelle GPUI.
Je pense que c'est une partie
de pourquoi Z est supposée
pour être très très rapide.
C'est comme ça.
Il fait beaucoup de brésilien.
Pour sûr.
Oui, c'est donc le projet qu'ils ont pris
quand ils faisaient le grand réel.
C'est tout comme avant que j'ai jointé.
Mais essentiellement, comment je vais mettre ça?
Le design basé est,
on commence avec les brésilien, les MacOS, les APIs,
juste le truc que l'opératrice des systèmes
nous donne.
Et puis on dit, ok,
on ne veut pas avoir un code super hard
pour les boulots, parce qu'on veut aller au Linux.
Maintenant Z est aussi au Linux,
donc évidemment Windows sera la prochaine,
mais c'est un grand projet.
Mais comment créer une abstraction
sur les trucs de la hausse
et sans faire un tout
d'abstraction sur un whole browser,
ou en tirant un des frameworks
sur les C++ et rapping.
Ils ont écrit un blog
sur comment ils ont fait ça,
avec GPUI.
Les abstractures sont vraiment clé,
en rapping le
MacOS native
et en faisant
que vous puissiez
écrire des functions de la hausse
et la façon dont ça
est impliqué sous la hausse
en termes de comment ça s'en débat.
C'est en utilisant les mêmes APIs
que vous pourriez utiliser pour débat
si vous vous avez écrit des objectifs
en main ou en swif.
C'est vraiment cool.
C'est vraiment cool.
Cool.
Maintenant, on va changer les armes un peu
et nous allons parler de Rockling.
Nous aimerions remercier notre sponsor pour la semaine.
Mux.
Mux est un tool awesome
et juste comme l'un des tools
que nous aimerions débarquer sur les FMs.
Ils ont fait un domaine super difficile
pour le distiller dans une plateforme
pour que vous puissiez construire
et faire des choses que vous n'aurez jamais pu faire avant.
Le vidéo est d'un point notorisé
pour le déliver.
Il y a beaucoup de choses différentes
à penser.
Vous devez penser en hostant,
en muxant,
pour apprendre toutes ces nouvelles mots,
juste pour servir un vidéo pour votre utilisateur
et pour construire votre produit.
Et ce n'est pas fun.
C'est où Mux vient.
Ils déclenchent tout ce que vous pouvez possiblement
pour construire une plateforme vidéo.
Toutes les outils de utilisation que je listais
et tant d'autres.
Ils ont même un beau, customisable
vidéo que vous pouvez plop
à votre front-end.
Donc, si c'est le client
ou le service,
Mux vous permet d'avoir une belle vidéo app.
Si vous n'avez jamais fait une vidéo avant,
vous ne pourrez pas savoir
comment beaucoup de différents pips fallent.
Et certains sont juste
comme des formats de file.
Il y a tant de formats de file
et des formats de formats.
Il y a aussi tant de différents connecteurs.
Donc, votre utilisateur ne peut pas
pouvoir streamer votre vidéo de 4K.
Ce que Mux offre
est une manière de maneuse
sans vous avoir à penser.
Ils font tout le transcoating,
le transmuxing que vous pouvez penser.
Et ils délivrent
pour vos utilisateurs le meilleur
possible de qualité de stream
à leur condition de nettoyage.
Si vous me demandez,
c'est beaucoup de travail
que je ne veux pas faire
et que je veux être certain d'experts.
Donc, si vous voulez apprendre plus
sur Mux,
allez-y au Mux.com.
Vous ne voulez pas entendre ces ades anymore?
Votre membre est un des
différents canaux où nous offrons.
Avec votre membre,
vous allez avoir les épisodes un peu plus tard
et il y aura aussi l'aide à la fréquence.
Mais si vous voulez trouver
une autre manière de soutenir le podcast,
allez-y au shop.devtools.fm.
Là, vous allez trouver notre store merch.
Vous pouvez acheter un hat
et nous aider à garder
ce truc en plus.
Et avec ça,
on va retourner au podcast.
Alors, qu'est-ce que Rock Lang?
Pourquoi vous avez fait le build-up?
Et comment est-ce différent
de d'autres langues fonctionnelles?
Oui, bien sûr.
Donc Rock Lang est un langue fonctionnel.
Donc notre ligne de travail est
fast-friendly et fonctionnelle.
Donc, fast, en termes
de ce que nous voulons,
c'est de compiler fast
et de rouler vraiment fast.
Donc, en termes de compilier fast,
le but est,
et nous ne sommes pas là,
mais le but est que,
j'espère que
aucun projet de progrès
pour la raison de la saison
sous les millions de lignes de code,
c'est de compilier
toujours dans un second.
C'est comme
incrementale
ou non incrementale.
Et c'est comme
un type de check
de building
de scratch, tout ça.
Maintenant, les projets
plus petits sont comme ça,
mais les projets plus grands
sont sesquels
Western Singapore,
la musée photo,
ce sont les pond rejected,
donc c'est douce.
Pour que tout le monde
En termes de la sensibilité de l'usage,
les messages d'arrêt en compilant,
nous essayons de suivre l'exemple de l'Elm
et de faire un travail très bon
pour faire des messages d'arrêt user-friendly.
Et puis, en fait, functional, c'est un langage functional,
donc nous n'avons pas d'objectifs à des features
et les features que nous avons sont plus guérées
pour faire votre vie plus facile et functionnelle
plutôt que d'un sens imperatif ou de l'imparative.
Donc la raison pour la création
était que j'étais un grand fan de l'Elm,
j'ai utilisé ça depuis longtemps
et, honnêtement, l'une des plus grands pet-pies de l'Elm
était que je ne pouvais pas l'utiliser en browser,
parce que c'est ce que j'ai été créé pour.
C'est vraiment un JavaScript qui s'est vraiment concentré
sur la construction de l'expérience,
et j'ai aimé ça, mais il y a des autres choses
que je voulais faire, c'est pas de construire les web app UI,
comme les web app back-ends,
comme les services, c'est un grand truc que les gens font.
Il y a aussi des apps command-line,
mais aussi ce que j'aime penser est que les domaines longues,
ce n'est pas seulement des choses grandes
que les gens font en travail et en développement web,
mais aussi des extensions database,
ou des robots,
il y a juste tous ces différents cas de utilisation,
et j'ai toujours aimé essayer de se faire de la message avec Arduino,
mais j'ai vraiment aimé pouvoir éloigner un language d'Elm
et essayer de l'utiliser,
parce que c'est la expérience que j'aime.
Ou une extension database,
ou je l'ai utilisé Vim,
et j'ai vraiment aimé faire une extension Vim,
mais je ne veux pas apprendre VimScript.
J'ai entendu vraiment des choses déplaisantes
en en écrivant VimScript.
Donc j'ai voulu essayer de faire un language
qui pourrait être utilisé dans beaucoup de différents domaines,
incluant des domaines exotériques,
et bien être bon à ça,
et avoir l'expérience d'Elm
de la façon dont vous étiez construit,
et de la même manière que l'Elm
s'est utilisé pour les UI browser.
Ce n'est pas existant,
et je sais que c'est un bon ami avec l'élm,
et je sais que ce n'est pas la direction qu'il veut prendre.
Donc j'ai l'impression que je vais faire ça.
Et donc, nous sommes là.
Comment avez-vous travaillé sur Rock?
En 5 ans, j'ai commencé à la designer,
en 2018, je ne me souviens pas exactement d'un moment,
mais j'ai eu des sketches et des notes de design
qui étaient très scattaires.
Le premier commis était en janvier 2019,
parce que à ce point, c'est le plan,
et c'est ce que je vais construire.
C'est évidemment que c'est à l'heure de l'évoluer,
mais c'est quand j'ai commis à...
OK, on va le faire.
Donc, une des choses très fortes
sur la language de programmation
est de se faire comprendre ce que ça devrait faire
et ce que ça ne devrait pas faire,
et de être très explicite sur les syntaxes
et les features et tout.
Vous avez un épisode très grand
avec le créateur Gleam,
qui est une autre language que j'admire
pour être très cautieux
sur les syntaxes et être très tôt
sur comment vous ajoutez les choses
dans la language.
Qu'est-ce que votre méthode
pour décider
quand quelque chose devrait aller
dans la language ou être à la scope
et comment vous approchez de ça ?
C'est une bonne question.
Je dirais que c'est une chose très difficile
pour être honnête.
Je pense que ça dépend de
comment ça change la language
et à quel niveau ça change la language.
Un syntaxe de syntaxe
est un changement milder,
comme ça,
et ça peut être écrit de l'autre façon.
Nous nous introduisons une convenience optionale.
Même ça a des downsides
car les plus convenience optionales
que vous introduisiez sont des
plus différents de manière
que le code base peut se voir.
Si nous introduisons un piece de syntaxe,
je pense que ça
aide beaucoup
pour dire si nous faisons ça.
Si le syntaxe est quelque chose que les gens
vont toujours utiliser.
Si c'est...
Quand vous avez un syntaxe,
personne ne va utiliser le code de l'old way.
C'est beaucoup mieux que de le dire.
On introduit un syntaxe,
mais peut-être pas.
En ce cas, je dirais
qu'il n'y a pas de conséquences
et qu'il y a une plus ou moins
de fonctionnalité.
Je vais essayer de
mettre un bar pour les choses.
Il y a aussi des choses
où des pieces de syntaxe
sont vraiment évidentes.
Si vous pouvez le faire de la même manière,
ou de la même manière,
c'est très évident
et le curve de la compétition est très proche
de l'autre.
Je pense que c'est
beaucoup plus raisonnable
même si les gens ne vont pas toujours utiliser
ça.
Je dirais que c'est un truc difficile
parce que personne ne s'est pas fait
de la langue très compliquée
et difficile à apprendre.
Il y a des milliers de choses
que je vais faire,
mais
à l'end de la journée,
beaucoup de langues se sont endurées
intentionnellement.
Le moyen de la façon dont ils se sont endurées
est parce que chaque petit truc individual
n'a pas beaucoup de changement
à l'heure,
je vais essayer de être vraiment au courant
de ça.
Quand on parle de la changement,
on peut dire
comment on a fait le bar
où on se dit
OK,
on pense à la grande picture.
Je vais essayer de, si on peut,
si on parle d'adverter une nouvelle chose,
il y a une façon pour qui ça peut remplir
quelque chose d'existent.
On a un nouveau truc, mais on le déprochera
et on le remet
pour que la langue soit plus simple
en tant que résultat de cette changement.
On est très pré-1.0,
Gleam est 1.0, on n'est pas 0.1,
on n'a pas encore un numéro à relire.
C'est une bonne méthode.
Je pense que
en parlant de l'une langue,
j'aime Rust, je l'ai utilisé
pour beaucoup de temps, mais
Rust a beaucoup d'autres gens
qui ont été invités et ont été
créés.
On peut faire des choses,
et on se termine avec
une bifurcation
de la façon dont c'est
de la grande touch
et de la grande émission.
En particulier
quand vous avez
une langue
qui s'accroche
à l' depot de la grande honte
d'un type de gens en début
qui peut commencer
à pouvoir se faire un peu de l'est.
Oui,
il y a un problème,
je ne sais pas exactement
ce que le bon terme est,
mais c'est comme si
vous avez quelque chose qui n'est pas
initialement, mais vous ne faites pas de la comité, mais vous vous enlèvrez en charge de
choses et les incentives de comité vous gravitent toujours à l'adaptation, parce que si je ne
pense pas que nous devons ajouter beaucoup de features pour cette langue, mais je veux vraiment
ce qu'il y a, mais tout le monde a ça, mais pour une autre chose, eventually, vous avez
cet incentive où les gens doivent commencer à dire quelque chose comme, je vais voter pour votre
chose si vous votez pour ma chose, parce que c'est un autre chose si je veux faire mon
chose, c'est vraiment difficile de créer des dynamiques de comité où les gens sont
incentivés à dire, non, je sais que tout le monde dans cette comité veut leur
propre chose, mais nous ne allons pas les ajouter parce que c'est le meilleur pour
garder les choses simples. C'est comme un problème de n'importe quoi pour moi,
de se faire en train de se faire transition de l'un de les personnes qui ont fait la langue
pour un grand groupe de gens, tout le monde, à l'approximation de la même niveau de power,
comment vous la prévendiez de ça? Je ne sais pas vraiment ce que c'est de l'answer,
mais j'ai une page sur le site qui s'appelle BDFN, qui est la façon de me penser
que je suis un dédiément benevolent pour maintenant. Ce que j'aimerais faire, c'est
éduquer de transition de l'envers, de l'envers de quelque sorte,
que ce soit le long terme de la langue de gouvernance, mais après nous
figureons comment faire ça, dans un moyen où il incentivise la langue de
dire simple, je ne sais pas comment faire ça, mais j'espère que nous pouvons
changer de proyecto en sizin nom.
Oui, programme тол MBA oufaifs, tout le monde voula
dans son américain, pour backstage, on a une
tante qui a été forefrontée afin de mettre en place une
tante qui a étéleistisée dans son uncont kennteur,
et elle a émané vraiment Emperor Rose,
un type de compositeات qui Scottish en installe ses
les des lieux, qui vraiment la shove en mechanic d'obsidian.
Il a Sandy Waters, elle était,outhern Hindu,
et ils ont juste élevé des packages de nouvelles standard avec des types de données.
Vous ne pouvez jamais imaginer un code comme ça.
Oui.
Je pense que Rust's éditions design est vraiment clé.
Pour ceux qui ne sont pas habitués à la base de Rust éditions,
c'est qu'ils disent que,
chaque trois ans, nous allons arriver à une édition Rust.
Je pense que ce sont Rust 2015, 2018, 2021, 2024.
Ceci est le cas pour les deux.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
Ce qui est le cas, c'est que les deux sont en train de faire des changements.
On a parlé des gens qui ont fait des épisodes, et ça a l'exemple de mettre les erreurs dans les types résultats.
Mais c'est tout manuel.
Le fait que tout de vous est infert, c'est tellement plus puissant.
Parce que nous n'oublions pas de mettre de l'aliment.
Oui, totalement.
Oui, ça continue le thème avec la séarisation, la désearisation, où c'est comme si on pouvait avoir des caractéristiques très belles, en termes de la réliabilité.
Mais aussi, en même temps, on peut avoir des conveniences que nous avons, en tant que les approches qui ont une bonne expérience pour le faire et le réveiller, et puis, comme, pas de bonne expérience, le débugner plus tard.
Je me suis demandé ce que l'async model pour Rock était, et il me semble que le tâche est la première structure de la structure de la async.
Exactement, oui.
Oui, donc, je suis en train de réveiller comment ça fonctionne dans Rock, parce que nous avons introduit, un peu d'années, ce nouveau syntaxe qui s'appelle l'exclamation point.
L'exclamation point suffit, ça fonctionne essentiellement comme un weight, mais, en fait, en disant, un weight, un fil de read, on dit un fil de read exclamation point.
Ce n'est pas exactement le même que l'async avec le weight, c'est un peu différent, parce que c'est juste de créer un tâche derrière les scènes, c'est syntaxe, le tâche, le tâche, le tâche, etc.
Il n'y a pas de keyword async, je pense, c'est l'une des différences.
Tu te réveilles un fonction, et si tu utilises l'exclamation point, maintenant, ça va retourner à un tâche.
C'est vraiment cool, et j'adore l'utiliser.
Mais je n'ai pas assez de la façon de le expliquer à la personne.
Je pense que j'ai cette intuition que le meilleur moyen de l'expliquer est en termes de weight async.
C'est comme que c'est comme un weight async, mais il y a des différences, parce que je pense que c'est le modèle de la mode de mental la plus close,
alors que avant, je devais expliquer comment les tâches se fonctionnent dans un tout différent de la façon.
Je suis toujours en train de l'adjuster, pour savoir comment faire ça.
On a lancé des features qui font l'expérience complète, mais pas toutes les autres.
Je suis assez procrastiné en en savoir comment réactuer le tutoriel,
jusqu'à ce que nous avons des pièces en place.
Mais c'est un peu plus beau que le système que nous avons avant, le syntaxe que nous avons.
Je faisais des recherches sur les paradigmes programmés,
et la couleur de la fonction, c'est comme un weight async,
c'est comme quand tu marques la fonction async,
et c'est comme coloré, différemment que la fonction normale.
Je l'ai déjà réécu sur les continuations,
donc le library FXTS, c'est un library de continuation,
qui vous donne une bonne pausse, interrupte,
des pièces de... je ne sais pas, je ne sais pas comment expliquer.
Il semble que les choses sont vraiment difficiles,
parce que si tu fais des petites décisions,
et que tu peux faire un design en langue,
je veux faire ce truc asynchroniste,
et maintenant, je dois changer un peu de choses dans ma base code.
Dans un JavaScript, tu as des fonctions de la function,
et tu dois faire ce truc async,
et tu dois aller tout le temps,
pour faire ce que le top-level est appelé,
et faire les fonctions asynchres,
ou prendre des promesses à un moment.
Comment ça fonctionne dans Rock?
Parce que si tu fais quelque chose de retour au tâche,
est-ce que ça a été coloré?
Oui, ça fonctionne.
La façon dont je prends les fonctions,
c'est un peu différent de la programmation pure,
que ce que c'est dans le monde de JavaScript.
Dans le monde de JavaScript,
si tu as un async versus un async,
c'est une annoyance,
parce que tu as dit que si je veux faire mon fonction async,
je dois ajouter un autre keyword,
comme tu l'as dit,
il y a des propagations,
donc tous les calls doivent maintenant devenir async.
C'est très annoyant,
et le bénéfice est, j'espère, des performances.
C'est pas une bonne expérience d'usage,
alors que sur ce,
tu as le système de bifurcation,
où les libéraux sont encourageés
de dire que je dois avoir la version sync et la version async,
alors que si tu ne veux pas,
tu n'as pas de tout ça.
Dans le monde de programmation pure,
c'est un trait de la différence.
Si tu veux introduire ce aspect async,
tu dois changer le type de la fonction,
et aussi les fonctions qui sont appelées.
En ce cas,
c'est plus d'adverter le keyword async
pour que tu puisses dire que tu n'as pas du tout retourné.
Mais la même base,
c'est de l'expérience de l'usage.
La différence est que nous avons beaucoup plus d'outre
de faire ce changement,
parce que dans NoJS,
si je fais un fonction,
je prends un string et je retourne un string,
ça mérite d'être un fonction pure,
ce qui signifie que tu peux, pour exemple,
memover, pour sûr, 100%, pas de problème.
Tu peux parallèler ça, pour sûr, 100%, pas de problème.
Il y a toutes ces propres que tu sais
sur une fonction,
que, juste par regardant le type,
c'est la garantie de tenir,
parce que c'est juste comment ça fonctionne
en fonction pure.
Si la fonction s'adresse à un tasque,
maintenant,
c'est pas safe de memover,
parce que ça peut faire des effets,
et peut faire de l'externe,
ou de l'externe,
et donc,
quand tu as fait ça multiple de fois,
ça peut faire des choses différentes.
Donc,
changer le type de fonction
est un bénéfice,
dans le cas de Rocks,
parce que c'est comme,
je veux savoir,
est-ce que ça apporte
memover,
très bien,
ou est-ce que ça retourne un tasque,
qui va potentiellement pas faire
des choses,
donc je veux changer tous ces types,
parce que ça me dit que c'est utile,
je veux comprendre comment ça se passe.
On en a une technologie,
encompasses par la leukur de la compagnie,
qui résume bien avec cetteowanie.
Je veux des types de changements, pour que je sois certaine de la garantie que les choses sont changées.
Oui, j'aime vraiment cette garantie.
C'est similaire à l'arrière,
mais avoir plus d'informations disponibles pour moi,
comme un développeur,
pendant que je l'offre quelque chose, est tellement invaluable.
C'est intéressant.
Il y a beaucoup de parler,
de l'impact des modèles de langage AI,
de ce qui veut dire que ce soit un programme,
et que c'est un programme qui va changer.
Je suis un pragmatique,
ce que je peux faire pour moi maintenant,
et je ne suis pas comme,
« Oh, demain, c'est un magique, je ne sais pas. »
Tout le monde a dit ça depuis 50 ans,
peut-être que c'est...
C'est vraiment bon pour le prochain,
parce qu'il va être très bientôt,
pour beaucoup de décennies.
Encore plus,
je suis très utile,
avec des modèles en general,
mais,
quand je pense à la future de programme,
de langages et tout,
une des choses que je pense,
c'est que,
on peut imaginer que l'AI
s'est plus utile pour générer des codes,
pour m'aider à comprendre les codes,
ce que ça veut dire pour les langages,
et une des choses que j'ai déjà vu,
c'est que j'ai pris un % de mes codes
plus élevé que j'ai utilisé,
parce que si je veux
faire ce grand choc
de code générique,
et que je vais faire un tweet,
comme si j'avais écrit tout en scratch,
c'était comme si je devais
prendre un % de mes codes,
mais maintenant,
je suis comme,
hey, Claude,
sors-le,
je dis ça pour que les gens
puissent savoir que c'est quoi,
si ils sont en train de regarder ça,
et qu'il y a de la saison,
c'est le plus chaud,
en 2024.
Je suis comme,
hey,
peut-être que tu peux
faire ceci pour moi,
et que ça le réprime,
et bien sûr,
je ne vais pas juste le croire,
je vais aller le réveiller,
comme les codes que j'ai créé,
et je vais faire des changements,
de vais-je vous rac NTG sur un
format qualifié,
gin oro que jekeepers?
Est-ce qu'ici,
comme seeingego et
comme ce suggestion s'étend vers
ça,
d'autres apoyo,
un mémoire,
pour moi,
être parmi les HonorHaussi бу,
est figuring
et certains ont fait des effectuées de l'esprit et ça va cacher mon programme d'exploitation.
Je ne m'ai pas oublié, je ne m'ai pas oublié que l'une des codes de code qui fait un effectu de l'esprit et que tous mes assumptions sont violées.
Dans les langues de l'exploitation, je ne les ai pas oubliées, mais dans Rock c'est comme, non, si ils ont des effectuées,
ils vont changer tous leurs tasks, comme pour sûr.
Il n'y a pas de file de read, de file de sync, de Rock, il ne peut pas être.
Donc le langage ne supporte pas ça.
Tout le I.O. a de changer le type de fonction.
Donc si ça a généré quelque chose comme ça, je serais immédiatement au point que ça me rend plus facile de me réveiller
par le niveau de mes assumptions qui sont violées.
Et la validation de la cacher, de la cacher et de l'autre chose comme ça,
c'est un des les plus difficiles de faire en programme.
Donc j'apprécie vraiment d'avoir l'aide avec quelque chose comme ça.
Oui, juste de avoir un système de type fort, c'est bien.
C'est un novel.
Oui, et je veux dire, c'est facile de dire,
mais je n'apprécie pas le challenge d'avoir un système de type fort,
surtout si vous commencez par un langage dynamique ou vous commencez par...
On doit soutenir tous ces paradigmes objectifs,
des paroles classées, des paroles classées, des types classiques, des types co-variants et des contrôles, etc.
Ça peut être difficile, je pense, de créer un système de type qui met tous ces critères,
et qui est aussi fort, assez fort pour vous donner une garantie très forte.
L'autre chose que j'aime beaucoup de programme functional,
c'est que beaucoup de choses ne existent pas.
Et donc le challenge de faire un type-checker qui est vraiment réel et se débrouille très vite,
est plus facile par le fait que il n'y a pas de choses qu'on n'a pas à faire,
parce qu'il n'y a pas de choses qui ne sont pas dans le langage,
comme si on n'avait pas de classes.
Il n'y a pas de classes, il n'y a pas d'inheritance.
Ce n'est pas les choses que le type-checker a de la pensée.
Donc ça m'a aidée.
Oui, et je pense que plus et plus je suis convaincu
que de faire un type-checker qui est un type-checker qui est un type-checker qui est un type-checker
C'est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un
type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker
qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type-checker qui est un type
Ce genre de trucs c'est vraiment difficile de faire pour qu'un renew奇
Donc avant comment Frederic prie de excuser la vie
Je veux savoir pour conclure, quelle plutôt que l'un des riches instituts du人民, le nom est Amielen
Je suis Build Mommy Legend etzo
C'est quelque chose qui finira par Buenos Aires
Et au revoir levil Australia
C'est très similaire à la façon dont le Macro est débarcé.
C'est comme un débarc et le nom de la chose que vous voulez faire.
C'est juste une petite paix pour le standard.
La raison pour laquelle nous avons ça est une feature séparée.
C'est parce que ça a un effectif.
C'est certainement...
C'est comme ça que le fonction change.
On veut faire ça en même temps.
En premier, on peut voir si on peut le faire.
Non, on ne peut pas le faire avec un langage qui ne peut pas le faire.
C'est malheureux.
C'est un effectif qui ne peut pas être débarcé.
Mais la idée est que si on fait ça,
c'est un truc spécial qui est sorti de la langue.
Vous comprenez très clairement que vous ne devriez pas,
d'exemple, débarcé des choses,
et que ça va être le standard,
et que l'on parle d'un autre programme,
et que ça va changer de programme,
et que ça va changer de programme,
et que ça va changer de programme,
et que ça va changer de programme,
et que ça va changer de programme,
et que ça va changer de programme,
et que ça va changer de programme,
et que ça va changer de programme,
et que ça va changer de programme,
et que ça va changer de programme,
et que ça va changer de programme.
yellowoис isnt app Earthman.
So what that that tight was
your
exit.
Si tu as un erreur dans tes tests, comme tu as dit, il y a une barbe double double,
tu dois utiliser des equals triple, ce qui était comme une chose d'exploitation.
Ce qui se ferait c'est de se printer,
ce test a fail, ce qui est le cas, et aussi, c'est ce que Foo a fail et ce que barbe a fail.
C'est toujours une expérience très belle pour moi,
parce que c'est la prochaine question que je vais avoir,
c'est que je vois que ça a fail, mais quelles sont les valeurs intermédiaires qui ont causé ça à fail.
Je vais essayer de le faire, c'est comme si c'était le cours de fail.
C'est parfois évident, mais quand c'est pas, c'est comme si je fais le prochain truc,
je vais aller ajouter des statements de débat pour voir quelles sont les valeurs.
Et je veux juste me faire de la peine de faire ça.
Je dirais que j'ai une implementation partielle de ce que je fais.
Le moyen de le faire dans les tests rock est que tu as écrit un test,
et si le test a fail, on print tous les variables nommées,
je veux prendre un peu plus, et faire un breakdown de chaque call de fonction,
et te dire que c'est tout les valeurs intermédiaires,
il n'y a rien à voir, mais on n'a pas fait ça,
on n'a pas fait une forme finale.
Un autre cool truc qui est bien, c'est que
j'ai voulu faire l'expérience d'adresser un nouveau test
comme absolument non-frictionnel possible.
Donc, tu n'as pas besoin de faire un file separate,
tu peux juste, dans le même file,
le keyword est « expect »,
tu peux juste dire « expect » et puis,
tu as fait une expérience et tu es prêt, c'est un test.
Et ça va se faire de la test rock automatiquement.
Tu peux aussi faire « inline expects »,
donc, comme dans la mode de fonction,
tu peux dire « oh, je t'ai attendu pour être vrai ».
Le cool truc de ça, c'est qu'ils sont comme assertions,
mais ils ont un feature critique,
que, à part les assertions en plus de langues,
ils se sont fait en débat et dans les tests.
Ce qui signifie que, donc,
ce n'est pas comme si ça se crasse en production,
si tu veux faire ça,
tu devrais utiliser le keyword crash.
Mais le point de tout ça, c'est que
si je veux dire,
« oh, je pense que ce truc doit être vrai ici,
mais je ne suis pas sûr,
mais si ça n'est pas vrai,
je veux vraiment faire mes tests,
si je fais un débat et je vais essayer de le faire,
je veux vraiment me chier. »
Le point de ces tests, c'est que,
nous ne allons pas incurrer
aucun cost de performance
dans ces tests.
Ils vont être déçus quand tu fais un build de production,
donc, ne t'inquiètes pas,
mets beaucoup de ces tests en place,
parce qu'ils ne vont jamais peut-être
faire mal sur votre code de production,
et aussi,
comme sur les assertions,
ils vous donnent un test,
mais ils ne sont pas de la execution.
Vous pouvez les faire,
ils vont juste se gérer,
« oh, ça a fallu,
ça a fallu, ça a fallu,
ça a fallu, et ça a fallu,
et ça va te dire
tout ça, le même chose
que les builds de debug,
ça va te informer,
mais ça ne va pas arrêter le programme.
Donc, le but,
c'est de se faire,
« ok,
vous n'avez pas de risques
pour les traitements,
pour les choses,
juste instrumentez votre code,
dis-le que les assumptions sont en actuale code,
si les assumptions sont violées,
vous allez voir les tests,
ou quand vous essayez de le faire,
et en production,
il y aura un cost de 0,
parce que ça va juste se faire,
se faire de la façon.
»
»
»
»
»
»
»
»
»
»
»
»
»
»
»
»
»
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