Mike Samuel - Temper
Durée: 52m26s
Date de sortie: 15/12/2025
Join us as we chat with Mike Samuel, an engineer who was at google for 17 years and built the original version of google calendar. He's now the founder and CEO of Temper, a programming language specifically design for translating logic into other programming languages.
Notre objectif est de soutenir beaucoup de communautés et de soutenir beaucoup de langues.
Les libraries doivent avoir des interfaces idiométiques.
Je pense que l'un des frameworks d'envergation ne peut pas être un peu de l'idiamétisme.
Bonjour, bienvenue à DevTools FM.
C'est un podcast sur les tools de développeur.
Les gens font des choses.
Je suis Andrew et je suis ma co-host Justin.
Bonjour tout le monde, nous sommes vraiment excitées de nous avoir avec Mike Samuel.
Mike, tu es une autre Google Powerhouse.
Ça me semble que nous avons eu quelques de ces deux l'année dernière.
Je veux dire, tu es un peu légendaire.
Tu as créé un calendarié Google,
qui je utilise tous les jours,
parfois beaucoup plus que mon chagrin,
mais pas parce que de votre travail.
C'est un outil magnifique.
Je suis très content d'avoir un outil de coloris,
et j'ai l'impression que j'ai le temps de faire des choses.
Je suis très content de parler de ça.
Et c'est un peu de la même travail que tu fais maintenant.
Mais avant de nous dévier tout ça,
pourquoi pas te donner une histoire de retour?
Comment as-tu été, à quel point tu es là?
Merci beaucoup pour avoir me laissé.
Je suis un personne de la language de programmation.
Je fais du calendarié Google,
parce que j'ai une relation étrange avec le temps.
C'est le seul moyen de me faire organiser.
Et je me suis élevé.
Je suis un personne de la language de programmation.
Je suis un personne de la language de programmation.
Je me suis élevé dans le développement web,
mais je me suis toujours en tournage
pour des langues de programmation.
Partly, c'est faire quelque chose
qui n'est pas de la language de programmation,
c'est faire quelque chose qui n'est pas de la tools de développement.
Et trouver quelque chose qui me déterne vraiment.
Et puis, à un moment,
le courage de faire un problème,
en fait, il y a des problèmes qui sont en train de se déterner
et de se déterner en langues et de la tools de développement.
Et puis, je pense que je me déterne des problèmes.
Je ne me déterne pas, mais je fais quelque chose d'intéressant.
Et ça, mon outre de l'auteure est de faire quelque chose,
de se faire frustrer avec quelque chose,
de essayer de fixer cette frustration.
Peut-être que tu as fait 300, et ça c'est bien.
Mais oui, je fais des choses
que les gens ne sont pas utiles pendant les années.
Dans quelque chose de haut,
desarrollé en 2006...
avoir这么 cardboard de neiger.
Ça s'intivia 10 les petits тыontaux.
La structure, la transitionable,
c'est un petit métier.
Et elle était sonire de cal making...
Le ph它.
Le projet et se désagresse bien en skatehe objection.
et de la fin de la journée.
Oui, donc je pense que ce serait peut-être Google's 3rd JavaScript heavy web application
et les gens étaient Ajax, c'était le grand terme à la fois,
un JavaScript asynchronous et XML, je pense que l'XML est oublié.
Mais oui, c'était très bien, et donc il n'y avait pas de grandes libraries de JavaScript.
Je pense que jQuery était probablement un gleur dans quelqu'un's eye,
mais JavaScript n'a pas un système module,
donc c'était très bien, comme tenter de construire ces grandes applications de JavaScript.
Et on a beaucoup de gens qui ont des langues nominaux comme Java,
et donc il y avait beaucoup de tools pour faire des gens en writing en langues statiques comme Java,
productive en produisant le JavaScript.
Et Google et les autres joueurs, Yahoo, étaient très grands à la fois, Microsoft, évidemment,
étaient tentant de venir avec un système écosystème,
de l'écosystème.
Et donc c'était très intéressant.
Je pense que j'ai eu un précurseur de type script,
on avait un précurseur de type script,
qui avait un système de Java-type,
sur le point de faire.
Mais il n'y avait pas de classe syntaxe à la fois,
donc il y avait toujours des classes en essayant de modéliser le domaine de problème
par attaquant des pièces sur les fonctions.
Et donc je pense que nous sommes un endroit beaucoup plus écosystème,
aujourd'hui, que nous sommes.
Mais oui, je pense que beaucoup d'entre eux et moi,
et d'autres en travaillant avec moi sur le calendrier,
et les gens à Microsoft et Yahoo,
et évidemment, les gens à Google Maps,
je pense que nous avons figuré un grand nombre de choses,
comme ce que l'on a mis dans le système de Java-type,
et que nous n'avons pas fait des gâts,
ce qui est arrivé à cette discussion,
c'est que vous avez des langues dynamiques,
où vous avez pu contrôler le source sur le browser,
et construire des bons tutoriels,
des bundles, des types checkers, des lincais,
et des frameworks d'expérience,
ce qui a été un peu de la vie que nous avons.
C'est le début de la compuie de closure,
parce que je pense que la compuie de closure a été élevé en 2009,
mais je pense que ça a commencé bien avant.
Oui, donc la compuie de closure,
je pense que l'une d'entre elles a élevé une version d'envers de Gmail
avec la compuie de closure,
en utilisant la compuie de closure.
Vous pensez que la compuie de closure est une combination
de checkers de qualité de code,
des types checks,
et de bundles, et de minifiles,
en un tout.
En fait, la première version de Gmail a été élevé
comme un bundle dynamique,
juste en temps.
Donc,
Gmail a commencé par une compuie d'expérience.
Peut-être que si vous êtes sur Google,
vous êtes opté pour des pieces
de JavaScript et d'un contenu web,
et c'est partie de la story de localisation.
Vous avez des strings pour votre localisation.
Si vous utilisez Gmail en français canadien,
vous allez avoir ces strings de translation.
Ce sont des strings de liste
dans le JavaScript.
Nous avons fait tout ce contenu
de différents places,
CSS, strings de translation, JavaScript,
et de la map des identifiants
qui apparaissent en code,
et en CSS ensemble.
En taking all these things,
en taking some experimental code
that your account has opted into,
compiling it all into a bespoke
bundle of JavaScript just for you
and sending it down the wire.
So, yeah, it actually started off
not as an ahead of time bundler,
but as a just in time bundler,
specifically built for Gmail,
and then it got factored out,
and that is what finally made it into
the open source closure compiler tools.
It was actually just called
JS compiler inside Google,
and then eventually the term closure
became our branding for that
and some template languages.
Cool, so after that,
you went into the security team,
you looked at everybody's code
seemingly at Google
and did a lot of interesting things.
Is that where you started to gain
the vision of what you're working on today
by like seeing these cross cutting problems
across this enormous company?
Yeah, so I think kind of,
I actually did a left turn,
like you said, from Google Calendar
into security engineering,
and that was partly driven by Google Calendar.
So I was thinking we've got,
we're building this heavy interface
for calendaring,
but a lot of people have very kind of
task specific understandings of time.
So lawyers have dockets,
doctors have rounds,
people who, they may not speak any English,
they're not well served by the web as a whole.
They probably have other ways of doing things,
village life in some place
with poor internet connectivity, right?
It doesn't make sense to have a Silicon Valley
user experience designer paid
several hundred thousand dollars,
the economics just don't work.
So could we democratize to some degree
the interface to calendar?
And it turns out that very much depends on
security concerns.
Can we allow somebody to create a
craft a custom user interface
that serves some small user community
that they understand really well
without opening people up to abuse, right?
Their personal data getting phoned home
and that kind of stuff.
And so this is, yeah,
I got into security engineering from there
and never did solve that problem.
But that kind of led to the CAHOP project,
which is a object,
it's a programming languages,
object capabilities version of kind of
the web stack language.
Ah.
I'm about to talk a little bit more about that.
I hadn't heard of that project.
I was thinking, being that you're a PL guy,
I was thinking about the fact that
when I've come into the web world,
it's easy to see it as a compilation target,
we treat it that way.
And if you think about how people are writing
a lot of web applications today,
a lot of folks are using, let's say,
React and Telwind and things like this.
And they're distilling it down to almost this
single language.
That's a rough approximation
because it's JavaScript
and a bunch of other things in the hood.
But it's interesting that we have HTML, CSS
and JavaScript to these compile targets.
So I'm curious,
this project that you're mentioning,
how you were thinking about that
and what the shape of that was.
So, CAHOP,
it's a programming language approaches to security
kind of project and just CAHOP in Spanish,
it means strong box, cash register,
a box that you use to protect something valuable.
I think it's cognate with Caixa in Portuguese,
which I think means bank.
And so we named the project after these kind of,
the idea of containerization within the browser.
And so we ended up seeing chunks of the browser
and that allowed us to,
and then goal here was mutual suspicion.
You want multiple independent pieces of code
operating together
without each being able to protect their security properties
from the other.
And so object capabilities are an approach to that.
It's the idea,
you can have objects that they have some private state.
They maintain their own invariance, right?
These things are true no matter what methods you call.
And you can hand off authority, right?
The right to render something into some DOM subtree
is linked to some object and I can deny access to pointers, right?
By reasoning about how values flow through the system.
A skill programmers develop just in the course of like
learning languages and debugging programs.
By following how values flow through the system,
you're also modeling how authority and privilege flow
through the system.
And so we got,
like I think we were successful in our language design goals.
We were not successful in getting this adopted by the developer community
at large,
but what we did,
I think spawned a huge amount of kind of web security research.
I think as a programming language project,
I think we failed as a making the web safer for people,
their privacy, all that kind of stuff.
I think we did a lot of really good work.
So the language was mostly as much about like exploring security on the web
and like how you build things for the web in like a safe way.
Yeah.
And I think if I was obviously younger than how time works,
but maybe if I had to go back and tell my younger self something,
I think object capabilities are a lovely approach that I use in my own work.
I'm a big kind of reliable systems are my jam.
Right.
But I think it's not for everybody.
I think, you know, what I would go back and tell myself,
but if I could is focus on crafting languages and tools so that blue teamers,
right, the security folk who focus on defense and on supporting developers,
so that blue teamers can audit large amounts of application code
efficiently and help assist developers in the kind of security properties
that they're interested in.
So focus on making best practices,
the easiest practices and also in smoothing interactions between developers
and DevOps and blue teams.
So I think that's, yeah, it's very hard to impose discipline on large groups.
There's a lot of kind of friction there.
And until you've got a developer community that has bought into your goals,
you're not going to be able to, by fiat, use this language instead of this other language.
Et while you're talking there, a lot of what you're saying reminds me of Wossom.
Like we have this containerization primitive now.
It's a little more heavy handed than I think what Caja did.
Caja seems like it's a little more fine grain to your application.
What are your thoughts on Wossom after doing all that stuff?
I knew the Nackle NACL native client about the chemical symbol for salt.
And so they were very much doing object capabilities from the point of view of instruction sets.
And I think then Mozilla came up with ASM.js,
which is we can pick a subset of JavaScript that has where the semantics of it,
like it's a JavaScript, but you're using doing things with numerics
where it's very clear what, you know, that this variable only holds a number, right?
12政aton.
C'est un с 20000 block.
Native Client.
Et je pense qu'ils ont terminé avec un
bon sens de la construction
et ont des choses très intéressantes à dire
sur comment nous faisons une complétation cross-platforme.
Je pense que le runtime de Wazen est intéressant.
Je trouve les aspects de la containerisation moins intéressants.
Je pense que
vos décisions sur la containerisation
sont très importants.
Vous pouvez utiliser un système de
interception,
et avoir tout ce que vous voulez.
Mais il y a un valeur de sub-dégrit
pour pouvoir faire un runtime de Wazen
et d'autres choses.
Et je pense que,
c'est comme Gral.
C'est un runtime très bon
pour un défi de construction
qui se défendra
dans tous les problèmes de la construction.
Et nous pouvons
faire plusieurs choses
à l'extérieur.
Mais il y a un peu de temps
que vous n'avez pas de contrôle
sur le runtime.
Et donc,
ce n'est pas une solution
de la construction.
Si vous faites un langage de programmation
et que vous allez compilé
l'alternation et que vous contrôlez le runtime,
Wazen est
une chose magnifique
pour construire votre runtime.
Mais je pense que
ce type de runtime
qui le défendra tous les approaches,
je pense que c'est intéressant.
Je ne pense pas qu'ils vont
réussir à le défendre.
Si un de eux
va gagner,
je pense que Gral aura un
plus grand défi
que l'autre.
Oui, je pense que
si vous faites un projet
et que vous essayez de le faire,
votre technologie
va être
trop overloadée.
Vous devez
compromise quelque part.
Oui, et je pense que
l'un des choses que Wazen
n'a pas, et c'est un choix
intentionnel, je pense que le meilleur choice
est qu'il n'a pas un modèle d'objectif.
Oui, et
je pense que
les interfaces Wazen
sont un projet
ou quelque chose qui est
tentant de l'adresser
et c'est un problème très difficile
que l'on s'occupe.
Vous avez des optimisations
qui sont critiques,
et ceux qui ont l'idée
de
ce que c'est de la date,
c'est un point ou quelque chose d'autre.
Il y a des problèmes
de l'objet
et d'un modèle d'objectif,
vous avez un valeur
et vous devez
poser des questions,
des méthodes, des propres.
Une question peut être
quel est le troisième caractère
dans ce string.
C'est une question
qui ne fait pas le sens
par les définitions de la language
et de la language
en tant que l'on est en haut niveau,
ils ont des différentes manières
de répondre à ces questions,
des optimisations de string.
Ce n'est pas
un peu triviel de dire
que je vais avoir mon objectif
et que je vais parler de
mes traits russes.
Oui,
Wazen est
une solution à un problème très spécifique
et très qualité.
Je me souviens
des gens qui pensent
que c'est un problème
de la language en programmation
et qu'il est en train de le faire.
Je pense que c'est un bon transition.
On parle de
ce que vous avez travaillé
plus recentement.
Vous avez
une compagnie
en langue de programmation
de la language.
Je voudrais apprendre
plus de
ce que vous avez motivé
à commencer.
En commenant un business en langue de programmation
il me semble un truc
de la faire.
Juste de commencer un business
en database.
Les produits techniques
sont très techniques.
Je voudrais entendre
ce que votre motivation est
et peut-être
vous parler de ces produits.
Oui,
je pense que
on parle de mon
tenure en groupe de sécurité
en Google.
Je suis en Google
depuis 17 ans
et j'ai passé 6 ans.
Je suis en train
d'avoir
10 de nous.
Et je pense que
nous avons un nombre
de langues de programmation.
Si vous faites le travail
en sécurité, vous ne pouvez pas
apprendre le JavaScript de la bonne partie.
Vous devez apprendre les parts
de la partie de la sniki et les parts
de la très très très mauvaises parts.
C'est tout défense.
Quand je dis
que je sais un langues
en sécurité
en sécurité,
si Python est un engeneur de sécurité
vous vous dites
que Python 2
c'est
le même langues
que WCAR
passent
à la compagnie.
C'est un petit
petit truc
qui est toujours cognisant
de la situation.
Nous avons 10 de nous
qui ont utilisé
les langues de la bonne partie
d'une personne.
Nous avons
un programme de
de la saison.
C'est un tas d'importance.
Et l'answer est, oui, mais ces équipes sont très stables.
Et plus je pensais à ça, plus je pensais que si nous avons une façon de spécifier une solution,
nous pouvons nous donner beaucoup plus de valeur.
Et puis j'ai commencé à regarder, je me demande, je me demande,
en utilisant cette libraire en Java, qui est un sanitiser html,
qui est utilisé par l'app Android et l'app iPhone,
l'app iPhone par une application J2,
l'objectif Java, la translation de CUE.
Il n'y a rien d'about de la sanitisation html
qui est spécifique à la langue Java.
La définition de la libraire html,
c'est ce qui fait que l'HTML est safe.
Si je peux prendre un body html et le body html
et le faire en train de rendre le safe dans le browser
sans le risque de CSS, c'est juste une transformation de string.
Je pouvais avoir le problème pour toute la communauté d'open source
si je n'avais pas ce problème de multiplication.
Et comme l'un peut, vous reconnaissez un problème
et vous vous obsessez à ça.
Et si vous êtes un peu comme moi, vous commencez à voir ce problème.
Et donc, j'ai lu Google pour des raisons,
sur les bons termes, mais, vous savez,
surtout pour faire avec où je suis dans ma vie.
Mais j'ai lu Google et j'ai commencé à regarder
comment il faut道 et cucumber le idéal
et dure lectorat etNY laps,
en doing comparative programming language linguisteW,
which's not really a thing.
Et quand j'ai commencé to look at,
what is preventing from writing a library
on to solve poble?
T постes que vous pensez d'ingl poble
to be able to support all the programming languages ė
et donc part de cela, c'était juste de cristalliser ce goal.
Mais aussi, j'ai fait beaucoup de comparatives linguistiques et j'ai réalisé que je pense qu'il y a une language utilisable
dans le milieu de toutes ces constraints intersectantes.
Et c'est ce que j'ai travaillé sur.
Oui, juste un design de la language programmable de la Terre pour transmettre bien à toutes les autres languages.
De retourner au Wasm, plutôt que d'avoir une première fois de la temps pour faire des langues,
c'est une langue qui fonctionne par une translation et qui ne fit pas dans un certain temps.
Et donc, à un moment, c'est le coup.
Je ne vais pas essayer de se solider le même problème que le Wasm.
Je vais se solider quelque chose d'autre.
Mais le but réel est d'améliorer les programmers tous les jours pour comprendre un problème qui ne fonctionne pas très bien.
Pour soutenir tous les autres programmes dans les langues communes avec une bibliothèque qui encapsule leur connaissance sur ce problème.
C'est très fascinant.
Vous êtes en train de construire la langue la plus haute,
qui transpire ou compile dans les langues targetées dans tous les différents pays.
Est-ce que vous avez expliqué que vous avez été transpiré pour une langue comme ça,
et que vous avez pu se solider en tant que profondeur,
et que vous avez pu se solider en tant que profondeur,
et que vous avez pu se solider en tant que profondeur,
et que vous avez pu se solider en tant que profondeur,
et que vous avez pu se solider en tant que profondeur,
et que vous avez pu se solider en tant que profondeur,
et que vous avez pu se solider en tant que profondeur.
Vous avez compris que c'est une manière d'appuyer un scope.
On a l'impression qu'il a unasına de la traduction de la siglo 800-200 d'E virtuale духов Trustee,
On peut faire des listes, on peut faire des valeurs de JavaScript, c'est fonctionnel.
Les langues fonctionnelles, elles sont un peu plus compliquées.
C'est souvent des constrains très particuliers, des choses comme les effets.
Et un effectuement de langues comme les effets est probablement plus difficile pour nous.
Mais il y a des moyens de voler ça.
Les langues objectaires comme Java, C-Sharp, c'est facile pour nous.
En Python, vous avez des classes, vous pouvez changer ces classes.
Nous nous transmettons à classes que nous ne utilisons pas cet extra dynamisme.
Et c'est aussi un point de vue très bon pour nous.
Je pense que c'est l'émergence d'une consensus qui a été formée depuis les années 70 et 80.
Mais oui, c'est ce que nous sommes aimés à.
Un langues très familier aux programmes de chaque jour,
dans la combination fonctionnelle et objectaire,
que je pense que Martin Odiersky a très bien dédié avec Scala.
Mais nous ne sommes pas aimés à Scala, à l'usage de l'usage.
Ce sont des langues qui ressemblent à des typescripts,
pour que ce soit familier et facile à lire.
Quand vous designez ce genre de langues,
est-ce que vous êtes constrainés par les langues que vous compiliez ?
Est-ce que ces langues influencent les décisions que vous faites en temps ?
Oui, c'est une des raisons de pourquoi
les langues comparatives en quelques années
sont juste d'en comprendre.
Et je pense que c'est ce qui différencie nous d'autres langues.
C'est un langues JVM qui s'appelle un langues multi-paradise.
C'est très fonctionnel,
mais il intervient aussi des langues Java-Codewell qui sont objecté.
Scala fonctionne sur le JVM et aussi transmet à JavaScript.
Il y a beaucoup de langues qui translèrent à JavaScript.
Je pense que même des langues de la nouvelle beam,
comme Erlang et Glean,
ne sont pas très bien,
mais ils ne sont pas très bien.
Il y a beaucoup de code Python qui se trouve.
Ce serait génial si nous pouvons juste intervier
avec un jupiter de la notebook de data scientists.
Ils ne font pas ça.
Et Python, pour des raisons variatives,
c'est juste plus difficile.
Scala a essayé de faire des ronds sur le point net.
Donc, c'est un C-Sharp, pour exemple.
Vous pensez que F-Sharp et Scala
ont beaucoup de communes.
Scala déjà intervient très bien avec les programmes Java.
Vous pouvez faire des programmes mixés
avec un Java et Scala et les ramener dans le même JVM.
Pas de problème.
Ce sera un C-Sharp,
le point net de runtime.
Je ne veux pas avoir trop de jargony.
Il y a une formule limitée de monomorphisation,
qui a complété ça incroyablement,
et surtout le fait que les références nulles
soient des choses comme des integers
et des interactions avec ça.
Et donc,
en tant que j'ai mis un peu d'effort dans la scala,
je n'ai jamais pu faire des ronds sur le point net de runtime.
Donc, si vous voulez faire des ronds dans les mêmes ronds,
vous devez regarder ces ronds
et faire des choix très spécifiques
et faire des boulettes incondensées
plus tard dans votre procédure de langage.
Et c'est vraiment ce qui différencie.
Nous avons décisé,
spécifiquement, avec ce qu'on veut.
Donc, à la fin,
vous avez un set de langages
qui sont lesquels vous soutenrez.
Et je ne peux pas être infaisable
de faire plus de choses après les faits,
car vous avez déjà fait toutes ces décisions.
Oui, il n'y a pas de genre réel.
Ce serait bien si il y avait
un framework de théorédicale qui était un peu overarché.
Et maintenant,
nous avons décisé
chaque des langages de programme existant
dans ce framework de théorédicale.
Et maintenant,
le design de langage s'étendu
à ce framework théorédique.
Et ce n'est pas
le cas de la façon dont les semantics de langage
sont faits.
Il n'y a pas de...
Et je pense que notre objectif
est d'assurer que les développeurs
soutiennent beaucoup de langages
et de communautés avec les libraries.
Et les libraries doivent avoir
des interfaces idiomatiques.
Et je pense que
aucun framework de théorédicale
ne pourrait pas
capturer l'adaptation de l'idiométricité.
Et donc, ce que nous sommes vraiment
en faisant
est de prendre
un set de éléments définitionnels
qui translèrent bien
et puis de faire
augmenter
cela avec
un design d'application très attentionlée
pour que nous puissions
avoir des semantics consistantes
autour de
des strings,
ou bien, ils ont commencé
comme des bêtes de réservoir.
Et puis nous réaliser
que le monde ne parle pas
en anglais et un peu en grec,
je n'oublie pas exactement
ce qu'il s'agit de l'extrême ascii.
Et donc,
les strings ont été
de la fixation de code
à l'UCS2,
une autre fixation de code
à l'un des deux,
à l'UTF-16
et au UTF-8,
qui est une variabilité de code.
Donc,
nous sommes en combinant
des choix de design très spécifiques
autour de l'élément de l'anglais
définitionnel
qui map bien
les 20 les plus populaires
des langues de programmation
aujourd'hui.
J'espère que, depuis 10 ans,
ils ont encore servi
les langues de programmation
les plus grandes.
Et donc, c'est notre
objectif.
Et oui,
un comprenu de notre communauté
vous ne devriez pas
comprendre
les idiosyncrasies
de la management de la mémoire
dans 10 langues de programmation
pour pouvoir
faire des livres avec nous
et puis,
ce qui s'occupe
de l'idioticité.
Et donc,
oui,
c'est comme,
est-ce qu'il y a une raison
peut-il construire un langu
ou peut-il prendre un langue existant
qu'on ne peut pas transmettre?
Oui, oui, sûr.
vous savez,
c'est un analys de
langues de programmation
d'understand les trends
dans les langues de programmation
des développements
pour que nous puissions
essayer de l'abstracter
et produire quelque chose de utile.
Et je pense que si nous sommes
successeurs,
à un certain niveau,
nous serons
nos propres futures,
oui?
Donc,
une stratégie est
de se faire grandir
vite enough
pour que
vous affectez la conversation
dans les manières
que
vous continuez votre valeur,
oui?
Oui, absolument.
Donc, c'est comme,
les gens suffisent
de utiliser
le temps
et
de lire les libraries
dans les langues de délouement,
comme,
OK,
vous savez,
je pense que ces
constraints
sont ajoutant ces features,
mais ça va en faire
plus difficile
pour les gens
d'interrompre
avec,
donc peut-être que
je vais
prendre un autre
path ou simplifier
ou quelque chose.
Oui, c'est
vraiment
une stratégie intéressante.
Je pense que
nous avons vu ça
dans des places
d'esprit,
surtout comme
compilant
à JavaScript,
que vous avez mentionné,
ce qui sort
d'une façon
d'appeler
comment les gens
pensent
sur le langues de programmation,
ce qui est
très fascinant
pour moi.
Je veux
parler un peu
de l'expérience
de
écrire
un temps
à la library.
Donc,
j'ai l'impression
que
je vais
aller
dans des samples
dans un de vos
parcs.
C'est
un peu
l'expression
de temps code
maintenant
sort de
un style de programmation
illiteraire.
On a
ce markdown
où vous avez
comme
votre
ce sort
de pros,
sort de description
de ce qui s'est passé.
Vous avez
vos definitions
pour
des logiques
ou
les types logiques
et puis
même des tests
sort de
comme
de
code code
et
et ce
file
pour ce futur.
Parlez un peu
plus
de
le design explicit
et
comme sort de
je ne sais
l'expérience
que vous allez
faire ici
et comment
vous pensez
comme les gens
écrire
temps
comme
ce qui
semble
comme pour eux.
Oui
et donc
je pense que
vous pouvez écrire
un file
et si ça
vient de
ce dot
temps
c'est
juste
code
dans la langue que
comme je l'ai dit
plus
il a beaucoup de typescripts
c'est
on veut
je ne suis pas
intéressé
en faisant
un design syntaxe
je veux que les gens
puissent le lire
facilement
mais oui
vous pouvez aussi
écrire
un dot
temps
dot
md
file
et
si vous
vous indique
votre code
par
quatre
spaces
alors
c'est
un code
de la fin
et on
nous
on le
juste pour
ça
ça
et donc
oui
la idée ici
est
je pense
que le programme
va retourner
est-ce qu'il y a
canouth
avec
la tech
oui
c'est un
code
de la fin
oui
et donc
je pense que canouth
a eu
un très
expliciel
des
qui ont
travaillé
et des
qui n'ont pas
donc je n'ai pas
appelé
le programme
semi-literat
c'est
qui a
voulu
un
un set
de macros
qui
permettent
pour
la langue naturelle
style
code
code
c'était
très
beaucoup
en
le jour
que ça était
un
code
de la fin
évidemment
se construit
c'est
ici
une
langue
qui
est
assez close
à
l'anglais
que
un
dirigeant
peut
lire
le code
maintenant
il se trouve que
le code
est aussi
très
très
très
donc
vous pouvez le
vous voulez probablement
lire
50 pages
pour
faire
où
un
deux paragraphes
anglais
synopsis
serait
servie
mais
vous
savez
vous pouvez
donc
oui
c'est
c'est
jettisonné
dans les
goals
et l'idée
est
vous savez
les libraries
ont une structure narrative
c'est pas un programme
qui commence
à un point
et est
à un point
un
livre est
un toolbox
c'est
et donc
vous pouvez
commencer
dans votre
marquement
par expliquer
ici est le problème
qu'on est
essayant de
et
pourquoi
c'est
et puis
vous
vous
indéfinitiez
un code
ici est
une définition
c'est
comment on
nous
nous
expérimenter
et donc
le
le
langu
la
langu
le
le
et
pourquoi
le code
est
et puis
pour exemple
et maintenant
on a
un
des tests unit
et donc
c'est
le
le
le
le goal ici est
pour la
et
et
nous
on
on
les codes
on
on
on
on
base
sur
des
analyses
et puis
transler
mais
le
le
est
est
un
1er
class
part
de l'écosystème
donc
je pense que
je referai
de
les
notebooks
et
c'est
un huge
amount
d'interessants
sur
comment
les scientists
je pense
que
plus
on peut apprendre
plus
de
comment
les scientists
travaillent
et
et
et produisant
les langues pour
plus
traditionnels
développeurs
mais
mais
les notebooks
sont pas
une 1er
classe
partie
de la
écosystème
vous ne pouvez pas
aller
de la
piéon file
et importe un
notebook
de
de la
et donc
je pense que
on a fait
une décision très
intentionnelle
de
décider
le modulé
de l'écosystème
de l'élaboration
de l'élaboration
de l'élaboration
de
groupes
à l'enjeu
et de
paraître
où on fait
cette embeddation
c'est aussi
une 1er classe
partie de l'écosystème
qui travaille avec les imports
qui travaille avec
notre analyse des compétences
de l'écosystème
mais
je pense que
il y a un autre
but
ici
et
vous savez
nous nous veut
les souveraines
pour
être
et de pouvoir se résoudre un problème comprehensivement
par l'éco-écosystème d'open source
ou par une organisation d'organisation de source close.
Un exemple si si, ça semble curieux,
quelles semaines sont-ils entre ces deux dates
par rapport aux accounts d'organisation ?
C'est quelque chose que vous devez pouvoir se résoudre.
Vous devez pouvoir, vous devez devoir faire ça
dans la simulation de Monte Carlo,
très rapidement dans le Python,
vous devez pouvoir faire ça dans votre système de management.
Quand vous computez des choses sur les coupons,
peut-être que c'est une vision basée.
Vous devez probablement faire ça dans les bas-bordes,
et peut-être sur votre face de customer des mobiles.
Donc, vous devez se résoudre ce problème.
Mais ça requiert de l'input des développeurs
et des experts en matière de sujet.
Les experts en matière de sujet ne sont pas des degree de sciences de computer.
C'est souvent leur lawyer ou leur développement de travail.
Et la façon dont je vois ce travail est
que vous vous devez se rafler un document dans un breakdown,
ou peut-être un format traditionnel,
comme le format de biker, l'écu, le markup ou le respect.
Un des formats de ces programmes
peut-être que les experts en matière de sujet
contribuent à la plupart des pros.
Le point d'engénération de contact
va écrire la code qui implemente ceci.
Les deux côtés peuvent être implementées par les tests.
Les tests sont formuleux.
Je ne suis pas malade
pour la utilisation des méthodes AI en produisant des codes.
La translation est en matière de méthode de compagnie.
Mais je pense que l'opportunité pour cela
est un expert en matière de sujet.
Peut-être qu'un scientifique social
utilise l'aie de leur description de la case de la couronne
dans un test de unité.
Peut-être que le test de unité s'en comporte.
Peut-être que ça ne peut pas, mais ils peuvent le ajouter au doigt.
Ils peuvent dire que c'est en langue humaine.
Je ne veux pas être trop anglais.
Dans les pros, c'est pourquoi cette case de couronne est importante.
Et puis, ce sont les 4 choses indentées.
Les tests, les brackets de couronne, le certes, etc.
Je pense que les styles de programming literaires
sont très agréables.
Je veux que vous parlez de Jupiter.
C'est très agréable que je pense que nous n'avons pas
des environnements qui ne sont pas lesquels nous devons développer.
C'est un peu de sens.
Je suis en train de faire une libraire.
Il faut une documentation, tout un fil.
Et puis, ce qui est le unité de la chose,
c'est vraiment cool pour moi.
C'est une idée intéressante.
Mais le style de programming literaire
semble aussi bien aller bien avec l'A.I.
et ce que nous avons aujourd'hui.
Vous en en en décrivez un,
et ça c'est le premier,
et le deuxième, c'est de l'implementer.
Ça fait que l'application de la feed-back est probablement
assez rapide dans le temps.
Si vous voulez pouvoir utiliser des tools AI,
pour refactor la code ou pour s'attendre ou ajouter à l'application,
avoir ce contexte de pourquoi nous faisons des choses,
là-bas.
Je n'ai pas besoin d'assembler mon documentation.
Je pense que la documentation
peut s'éteindre même quand c'est en train de vivre
à l'extérieur de la code qui implemente.
Mais je pense que, oui,
avoir cette documentation qui est readable
par les experts de la matière,
mais aussi par l'application de l'A.I. et par le compiler,
je pense,
vous en avez le contexte qui fonctionne sur plusieurs niveaux,
le pourquoi, le commentaire,
et, oui, aussi,
réunir ces tests internes
quand vous faites vos
codes d'agent des codes de génération.
Je suis fêux que je...
Je vais essayer de garder la speed
sur les techniques de code de génération,
mais, en termes de terminologie,
je n'ai jamais vraiment vu des définitions crispées
de ce qui signifie.
Oui, et le temps est en train de bouger
au moins que vous ne faites pas de travail en un jour.
C'est difficile de rester sur le top.
Je veux dire,
on est sur le sujet de l'A.I.
Et souvent, comme nous l'avons fait,
on a toujours l'impression d'avoir une question de face.
Et
vous avez cette longue durée de travail
en travaillant sur des applications grandes,
sur des domaines de sécurité où vous devez
aller plus loin sur les langues.
Vous pensez beaucoup sur
comment les gens vont faire
et comment les logiciels sont réunis
sur les écosystèmes,
ou sur les audits de sécurité
sur les écosystèmes.
Vous vous faites une langue qui peut transpirer
en itself en tant qu'un autre
langues de target et en essayant de penser
sur les langues semestriques,
sur les ergonomiques et tout ce que vous faites.
C'est un truc très intéressant et valuable.
Et en même temps,
il y a une sorte de
changement dans l'industrie
sur comment les gens sont en train de penser sur la code.
C'est bien, c'est pas bien.
Beaucoup de gens utilisent l'A.I.
comme un état de translation entre les libraries.
Ils disent que je veux voir ce Python en libraire,
j'ai envie de l'enlever en JavaScript
et j'ai envie de le faire.
Et ça se passe.
Il y a une séparation
entre l'intent et la connaissance.
Et la chose qui m'a emmené
avant, c'est que vous parlez
d'un engénier de sécurité en langue.
Je pense en pensant sur comment
les allocations de string ont été
travaillées par le niveau de base.
Parce que c'est des choses
que vous pouvez utiliser en langue
dans un très valide moyen.
Et c'est comme un peu mal.
Parce que vous devez savoir
des semestriques en lien.
Et je suis juste inquiétant
que, comme vous pensez
de la façon dont nous construisons
le software, de la façon dont vous voulez voir
nous construire le software,
et que les trends que l'A.I.
est en train de mettre en place.
Qu'est-ce que les opportunités que vous êtes
excitées pour avec Tempor,
ou juste l'industrie,
et ce qui vous inquiète
sur l'intention des chiffres?
Qu'est-ce qui vous inquiète
sur la direction de l'entreprise,
de l'institut,
de la société,
est-ce que vous êtes le premier?
Oui, si vous pensez
que, bien, on commence avec l'opportunité.
Donc, vous êtes en train de travailler sur Tempor.
Il semble qu'il y a une opportunité fantastique
pour aider les gens à mettre en place des codes résibles.
Alors, on commence là.
Qu'est-ce que l'opportunité
pour nous enantant
quand nous pensons sur l'offre de l'A.I.?
Oui, et je pense que
vous avez mentionné la sécurité,
et c'est quelque chose, évidemment,
c'est dans mon cerveau,
parce que c'est la vie que j'ai vécu.
Et je pense que l'A.I. est le baie de l'entreprise.
Donc, l'élefant dans l'entreprise,
c'est dans le sondage avec nous.
Et je pense que l'A.I. pour le code
est beaucoup moins problématique
que l'élefant de l'A.I.
pour exemple, l'élefant de l'école de l'école,
ou les artistes et les musiques
qui créent des works copyrightables pour le vivre.
Donc, je pense que
mais nous voulons encourager les responsables de l'A.I.
Et je pense que les systèmes d'aujourd'hui,
nous avons créé des systèmes multilanguage.
Vous avez mentionné des apps javascript,
quand je travaillais sur Google Calendar,
et c'était pas app-based.
Vous avez eu un site web, vous avez visité le site web.
Le site web a parlé à un service,
le service a parlé à un database.
Nous sommes tous amis,
mais les langues d'aujourd'hui
sont plus multilangueuses que avant.
Nous avons des scientifiques de la date,
en travaillant en Python,
nous avons le site web,
nous avons l'air de la base,
nous avons l'enquête de l'accent,
nous avons les langues de la fin,
on est souvent faits en langues comme
javascript, où vous pouvez avoir
des gens qui travaillent au même programme,
ou des gens qui construisent des services micros.
Nos systèmes sont multilangueuses,
collés ensemble par JSON sur HTTP.
Ce n'est pas où
que les systèmes distribués
d'académie ne sont pas prétendus,
mais c'est ce que nous sommes en train de faire.
Je pense que
nous sommes au point où les systèmes
sont très importants,
nous pouvons produire des systèmes plus robustes,
pour les gens,
il faut en faire des choses
qui veulent être reliant.
Nous pouvons produire des choses
plus récivables,
des systèmes plus robustes,
si nous pouvons partager
les nodes dans un système.
Si les scientifiques des données,
les simulations, les résultats sont
en fait acurés,
parce que les simulations de logic
sont utilisées en même temps
pour produire des systèmes.
Si nos smartphones
peuvent opérer un mode off-line,
parce qu'ils peuvent
simuler les données accurately,
et que l'on peut faire
si elles étaient connectées.
Si nous avons
les mêmes definitions
sur deux côtés d'un type de network,
et que les codes et les codes de decode
ont une relation utile entre eux,
maintenant nous avons des types de guardrails.
Peut-être que nous pouvons
éclater nos analyses statiques.
Nous avons des analyses statiques.
Je vais analyser votre programme Python,
mais ça nous donne la valeur
de l'un de nos services web et nous sentons
l'autre.
Ce code que je vais analyser,
c'est un petit island connecté.
Peut-être que nous commençons
à établir nos analyses
si nous avons ces points de résistance communes?
Et je pense que, à un moment,
ce sont les pratiques des AI,
personne ne sait ce que ce sera.
Mais je pense que beaucoup de gens
font des prédictions,
mais si l'un des choses que nous
voulons nous faire,
c'est que quelqu'un qui comprend
que les systèmes ne sont pas en place,
doit regarder les systèmes qu'on a
produisant.
Si nous produisons des codes en plusieurs languages,
et nous pouvons obtenir des
langues qui se traduient
relativement aux autres langues,
cela réduit le manuel ou le revue.
Si nous pouvons faire des tests,
et faire tous ces translations,
par traduire nos tests de unité,
cela nous donne confiance sur le système.
Je pense que,
comme nous avons décidé
de faire des tests,
ce que nous devons
faire des pratiques des AI,
ce que nous devons faire des tests,
nous devons regarder les 5 ans.
Je pense que la proposition de la valeur tempérale
n'est pas de utiliser cette langue
plutôt d'un autre.
C'est d'utiliser ces autres langues,
et de supporter le développement grand.
Mais je pense que, même dans lesquels
les codes sont traduits par l'AI,
ce qui, je veux dire,
c'est que vous demandez l'AI
pour transmettre une spécification
dans les codes.
Maintenant, vous vous maintenez
cette spécification et le code
dans le Git,
ou vous vous dites que c'est le code,
c'est-à-dire que,
si vous vous transmettez quelque chose
dans 5 langues en utilisant l'AI,
vous vous maintenez 5
langues en tant que Git.
Je pense que les méthodes traditionnelles
combinées avec l'AI
sont la seule façon de faire
l'AI pour la software semi-reliable
qui sort de cette discussion.
Je pense que la tempérale
est très bien dans ce multiplier
pour les méthodes traditionnelles.
C'est un grand vision,
j'espère que ça va se passer.
Je vais vous regarder sur les lignes.
Merci pour parler.
C'est une conversation
d'enlightnement
et d'un peu d'autres langues.
Merci pour parler.
Merci Mike.
La tempérale est très intéressante.
Si les gens veulent apprendre plus
sur la tempérale, où viendrai-vous
les pointer?
Je devrais probablement
avoir ça disponible.
Envis Samuel
sur Blue Sky,
c'est là où j'ai la chute avec les gens.
Je vais vous donner un lien
dans la chute
avec notre...
On va le donner
dans la chute où
c'est un style d'adopter
mais c'est un langage de fond
pour travailler.
Et...
C'est la tempérale.github.io
sur TLD.
C'est la documentation de la chute.
C'est cool.
Merci Mike.
C'était un plaisir.
Je suis content de apprendre plus.
Allons-y.
...
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