José Valim - Elixir, Erlang, Phoenix, Livebook
Durée: 77m49s
Date de sortie: 21/05/2024
This week we're delighted to have José Valim on the podcast. José is the author of Elixir, the programming language build on the Erlang VM. Elixer provides a functional programming language with metaprogramming and built-in support for concurrency and distributed computing. Livebook is a web-based interactive programming environment for Elixir and it flexes what the Phoenix framework can do.
- https://twitter.com/josevalim
- https://elixir-lang.org/
- https://www.phoenixframework.org/
- https://livebook.dev/
Episode sponsored By Clerk (https://clerk.com)
Become a paid subscriber our patreon, spotify, or apple podcasts for the full episode.
Le but est que vous allez être plus productifs,
parce que vous ne vous worryz pas de plus de choses.
Les clients et les services, ils se connectent et ils ont des informations de changement de temps.
Et ça fonctionne vraiment bien avec le Model de l'Alexis.
Donc, construire des applications de temps réel et interactifs, c'est vraiment très bien.
Bonjour, bienvenue à DevTools FM, un podcast sur les tools de développement et les gens qui les font.
Je suis Andrew et je suis ma co-host Justin.
Bonjour, tout le monde.
Nous sommes vraiment excitées aujourd'hui pour avoir José Vellime sur le podcast.
So, José, vous êtes le créateur d'Alexis, le langage de programmation.
Et je suis extrêmement excité de vous parler.
Je suis un grand fan de la travail que vous avez fait sur l'Alexis
et juste les choses amusantes qui ont été parmi l'Alexis écosystème.
Donc, avant de nous dévier et de parler plus sur ça,
serait-ce que vous voulez nous dire un peu plus sur vous-même?
Bonjour, tout le monde. Merci pour avoir me.
Oui, je suis José Vellime.
Je suis un Brésilien, vivant en Pologne.
Et je suis travaillé sur l'Alexis à ce point.
Bien, l'Alexis a changé en début, un peu,
mais tous ensemble, 13 ans, ce qui est beaucoup de temps.
Donc, avant de nous parler d'Alexis,
nous devons commencer par parler d'une autre langage de programmation.
l'Alexis est basée sur un truc qui s'appelle le Vien Erlang.
Pour être honnête, je suis un développeur de front.
Je n'ai pas de clou à ce que ce soit.
Donc, ce que l'Irlang Vien Erlang est?
Je vais dire un peu
comment l'Alexis est venu.
Parce que je pense que c'est probablement ce que vous parlez de.
Et c'est en ce moment que vous répondrez à la question.
Il peut être une histoire très longue.
Je vais essayer de vous summariser.
Mais à peu près de 1000...
Aujourd'hui, le multi-core est un endroit commun.
Tout le monde.
Le watch de wrist est à 4 cores.
Tout ce que nous utilisons
a des machines avec plusieurs cores.
Mais ce n'est pas toujours comme ça.
Donc, en 2006-2007,
j'ai commencé à entendre
une machine dual-core.
Et ça se trouve
que beaucoup de langues programmées
que nous avons utilisées en même temps.
Et nous les avons toujours utilisées.
Ils ne sont pas vraiment prêts
à utiliser toutes les cores
de votre machine efficacement.
C'est normal que vous puissiez commencer
par des programmes séparés
à utiliser les cores.
Mais certains langues programmées
ne sont pas vraiment les plus simples
pour un programme
à utiliser toutes les cores de la machine.
Par exemple,
comme une comparaison,
c'est une équivalente
de la marchandise
au marché.
Vous voyez qu'il y a une chaine
de check-out que va vite.
Et vous ne pouvez pas changer les lanes.
Parce que les autres cores
vont vite,
ils vont être malade.
Et c'est un peu
la laitière qu'on a en tête.
Et c'est ce que je faisais en même temps.
Et je me disais,
si la chose concurrente
va devenir le futur,
comme ça,
j'avais envie de trouver
un programme de langues
ou un plate-forme de 2-way.
Je ne savais pas vraiment
que ça peut évoquer les cores
de notre machine efficacement.
J'ai commencé à regarder,
à regarder,
et puis,
j'ai trouvé, je veux dire,
que dans cette route,
il y avait deux choses qui ont changé
de la façon dont je
approche, de la façon dont je le réchauffe.
La première,
c'était quand j'ai trouvé
le programme fonctionnel.
Le programme fonctionnel peut être de différentes choses
pour un peu de gens différents.
Mais pour moi, le grand
partage fonctionnel
était les structures immutables.
Donc, aujourd'hui,
en JavaScript,
par exemple, si vous avez un array,
vous pouvez aller et remettre
un élément de l'arrêt.
Et ça change
ce type.
Dans l'élicier et dans les langues,
vous ne faites pas ça.
Si vous avez un liste ou un array
et vous voulez remettre un élément,
il y a un
nouvel array,
un nouvel liste sans l'élément.
L'origine est toujours là.
Et
ça a un peu d'implications.
Je pense que les deux rélevants,
ce qui est important de parler,
sont
des problèmes que nous avons
avec les langues de programme
parce que,
quand vous avez plusieurs cours,
vous avez deux choses en même temps.
Donc, qu'est-ce qui se passe si vous essayez de changer
le même endroit en mémoire?
Qu'est-ce qui se passe si les deux
essayent de délire le même chose
dans la structure?
Et puis, les choses peuvent se faire de mauvaises choses.
Vous pouvez avoir des façons de segmentation,
des langues de programme.
C'est là où toutes les complexes
sont contrôlées.
Mais,
si vous ne pouvez pas remettre le truc,
si vous ne pouvez pas changer les choses en mémoire,
un peu de problèmes,
ils ne se dissappearent pas.
C'est ce que
j'ai fait en amour.
C'était l'idée.
Donc, concurrence de les langues de programme
va être plus facile.
Mais,
aujourd'hui,
quand je pense
à l'immutabilité,
je pense que
quand vous vous réveillez un code,
vous ne pouvez pas
pas envoyer des arrays
que d'autres personnes changent.
Le code est beaucoup plus clair.
Parce qu'ils ne sont pas comme,
je suis passé à cet objectif
pour ce météon.
Et puis, ce météon change le objectif.
Et c'est pas clair que ça change le objectif,
parce que c'est tout en faisant des choses
derrière les seins.
Mais, le programme functional,
mais, dans un mindset,
que tout ce que
une fonction ou une méthode
doit être donné en input,
et tout ce qu'il faut changer,
c'est donné en output.
Et le software, conséquent,
c'est beaucoup plus clair.
Donc,
c'était le premier point.
Ce programme functional,
surtout l'idée d'immutabilité structure,
est génial.
Pour moi,
aujourd'hui, quand je retourne,
et je dois
travailler sur la langue,
où les choses sont immutables par la faute,
je me sens comme un fou, pas fou,
je me sens comme un paranoïde.
Parce que je suis appelé, et je me suis dit,
ce que ça va faire,
je ne me sens pas comme,
je dois être double-checké.
Mais,
c'était le premier part de la histoire.
Mais,
il y a beaucoup de programmes en langue,
Scala,
Closure, Haskell, Erlang,
et
pourquoi le programme en langue
et l'airling virtual machine.
Donc, quand on parle l'airling,
ça peut être un couple de choses,
c'est le programme en langue,
c'est le virtual machine,
comme on a le Java language et le Java virtual machine,
ça peut être le programme en langue,
l'airling et l'airling,
et pour moi,
vraiment le problème de l'airling,
parce que, si on retourne
en 2008, 2009,
toutes les languages que nous avons
enversées, nous étions en parler
de concurrence. Closure a
une première classe permette pour concurrence,
et Go,
comme Swift,
mais tout le temps, nous étions en parler
de concurrence.
Et le beau point de l'airling,
c'est qu'ils en parlent de concurrence,
mais l'airling,
et l'airling, par contre,
a été créé dans les années 80,
c'est assez l'airling,
et nous, nous sommes assez au même âge.
Donc,
l'airling a aussi parlé de concurrence,
mais
qu'est-ce qui s'est passé ? Imaginez que vous étiez en
un software et vous voulez que
vous utilisez toutes les courses
dans votre machine, vous allez utiliser de concurrence,
c'est ce que nous parlons de,
mais si un
machine n'est pas suffisant pour vous
de rouler dans cette course,
vous avez besoin de deux machines,
et maintenant vous devez
figurez de la façon dont les deux machines
sont combinés pour faire ce travail,
et peut-être que c'est un moment
où vous allez dire, je vais vous
mettre de la grade, ou de la FAQ,
mais l'airling,
ils en ont en fait décidé de
résoudre la concurrence,
et ils ont décidé de résoudre
la prochaine challenge,
de comment faire des machines parler à l'un ou l'autre,
c'est tous les éléments de la
language de l'intervier de la machine,
et ils ont décidé de résoudre ces problèmes.
Donc, quand je regardais ça, je me disais,
alors, tout le monde parle de concurrence,
mais l'airling a résoudre
cette problème, de concurrence,
deux ou trois décennies auparavant,
mais pas seulement ils ont résoudre
cette problème, deux ou trois décennies auparavant,
ils ont résoudre la prochaine problème,
qui est la distribution.
Donc, pour moi, c'était mind-blowing.
C'était fantastique.
J'ai eu l'amour à l'un des premiers sites,
j'étais immédiatement convenu,
c'est ce que j'ai envie de...
Le software que j'ai écrit,
je pense que c'est beaucoup plus simple,
et on peut parler de tous les caractéristiques
et les bénéfices que nous avons de ça,
mais c'est le lieu que je veux être.
Et donc, la réponse,
c'est comme j'ai trouvé leur médecin d'intervier,
et c'est assez ce que ça veut dire pour moi.
Mais en racontant plus directement,
donc, AirLink,
c'est un langage programme
créé par Erzo,
qui est une compagnie télécommuniquée,
et c'est pourquoi ils ont résoudre tous ces problèmes,
parce que dans les années 80, ils ont construit
les téléphones.
Et si vous pensez à la web aujourd'hui,
oui, c'est des téléphones,
il y a beaucoup de choses connectées,
et d'exchanger de données tout le temps.
C'est pourquoi ils ont résoudre ces choses,
parce que les problèmes qu'on a fait aujourd'hui
par les développeurs de la web,
ils ont dû se résoudre
ces trois années auparavant.
Et ils ont bien regardé la communication
de la télé
et
aujourd'hui, nous avons utilisé le web.
C'est une histoire vraiment incroyable.
Erling est assez
amusant
qu'ils ont construit
toutes ces technologies
en années 80,
et c'est
un moment pour les gens qui l'ont fait
à ce moment.
C'est un moment pour les gens qui l'ont fait.
C'est un moment pour les gens qui l'ont fait.
C'est un moment pour les gens qui l'ont fait.
C'est un moment pour les gens qui l'ont fait.
Vous avez parlé un peu,
vous avez trouvé Erling,
vous avez dit que c'est génial,
il y a des choses qui ne sont pas les mêmes,
ou des choses qui ne sont pas les mêmes,
je veux faire quelque chose de tout différent
et construire la législation ici.
Mais quand vous avez trouvé Erling,
vous pouvez dire
que c'est un programme en langue de l'Eurling
qui a toutes ces propres propres.
Je peux juste utiliser ça pour les choses que je suis construit.
Pourquoi n'est-ce pas
que vous n'avez pas fait le tag
et que vous devez décider
que quelque chose d'autre
doit être construit sur le top de ce programme?
Qu'est-ce que c'est la progression
de découvrir Erling pour dire
que quelque chose d'autre doit être existé?
Oui, pour moi, il y a
deux choses
à l'époque.
En fait, à l'invité, je me sentais
que quelque chose de l'autre était missing,
mais ce n'était pas clair de moi
ce que l'on était missing.
Parce que, pour le moment,
je n'ai pas de background
de computer science.
Les expériences précédentes
ont été
avec des langues objectatives
avant.
Je changeais
le programme.
Je me sentais que les choses étaient missing,
et je n'ai pas de ce qu'elles étaient.
Je voulais essayer un couple de choses.
Mon premier implementation
de l'Elysée, et c'est toujours là
dans GitHub.
C'est partie de la histoire.
Mon premier prototype
a été ajouté
en langage objectif.
C'était immutable, mais
sur le top de leur machine.
Les choses se sentaient clonquées.
Je n'étais pas heureuse.
C'était vraiment un prototype.
Je n'étais pas heureuse
avec ce qui m'a aidé.
Mais, je pouvais
se faire comprendre
ce que j'étais vraiment missing.
Pour moi,
à la fois,
on était vraiment missing
quelque chose qui était équivalent
aux langues différentes,
donc, un programme de langues
comme Go, on va le chamrer
interface Java,
donc, je me sentais
comme ce type de mécanisme
pour externer les types.
C'était l'un des deux.
Et l'autre, qui est le plus grand,
c'est que je me sentais
missing un mécanisme pour le programme de langues.
Et puis, c'était
vraiment un grand voyage pour moi,
pour me sentir comme, ah,
quelque chose ne me sent pas bien,
je me sens comme que je dois
pouvoir m'exprimer mieux,
et puis, en en déterminant
ce que ça est,
et après, en en déterminant
ce que c'est,
ce que c'est le meilleur moyen
d'implementer ces features
dans leur machine de langues.
Donc, pour exemple,
le model de programme de la mécanisme
que nous avons
dans le league,
c'est,
je sais que le programme de la mécanisme
peut être
un topic très important,
les gens peuvent avoir des opinions fortes,
et je ne sais pas qui a dit ça,
mais ils ont dit
que la langue de programme
a à moins une de ces deux bugs.
Ou ils ont un programme de la mécanisme,
ou ils n'ont pas de programme de la mécanisme,
qui, je pense,
summarise les opinions
de la mécanisme.
Mais pour exemple, le système de programme de la mécanisme
n'est pas en train de se faire
en temps de ronde, c'est très stabil
en temps de ronde, le programme de la mécanisme
s'est passé en temps de compilation,
donc c'est un peu strict,
on ne veut pas, après que vous compiliez
votre code, qu'il ne soit pas changeable
dynamiquement,
il y avait un processus de discovery
et je pense
que, il y a beaucoup de choses
que nous avons ajoutées à l'élicier
comme
nous travaillions sur la langue,
parce que nous pouvions
se trahir en avant, la langue s'évolue
conservatiquement, et je pense que c'est
pour
une bonne raison, c'est quelque chose que nous pouvons parler
plus tard,
comme la langue de programme
et les frameworks,
ils évoluent très vite,
les frameworks
qui sont
5 ans ou moins, et ils sont déjà
sur version 10, 11,
et ce sont les versions
plus grandes, en théorie,
c'est-à-dire que, que vous avez écrit
que le passé n'est pas break, et c'est
trop vite, trop grave,
et la langue est très conservatrice,
donc il y a des choses que nous avons ajoutées
dans l'élicier, comme le UTF-8
par défaut,
les libraires de l'EUTF-8
et les libraires de l'EUTF-8
et c'est un peu plus grand,
et c'est un point de vue très important
pour les libraires de l'EUTF-8.
Et, évidemment,
il y a des choses qui sont
et qui sont très importantes,
comme c'est très abstract dans la conversation
quand je dis que
c'est un peu de programmation
et c'est
polymorphisme, je me sens
que les gens qui n'ont pas
entendu de l'élicier,
et qu'ils veulent essayer de le faire,
les choses qui vont les faire
exciter, comme, oh, ceci est
bien, c'est bien, c'est bien,
les structures, c'est bien,
les concurrents sont bien,
les features, elles sont toutes
parce qu'ils n'ont pas mal d'élicier,
je suis froze...
et c'est leici à essayer cette ideia de reconstruire ces idées
et ce que vous pouvez y construire avec,
les scènes dejaas, mettre des applications deretchedure,
tes 500 hands de machine à2019.
Toutes ces choses seront ingérées.
Génial.
Tu parles ni en ce moment avec un forefall traditionnel,
c'est très utile.
Je yieldais un point de vue PDG, mais ce n'est pas siılanしょうide.
Je vais faire mon nouveau Mitarley comme gotta 말고.
C'est un grand coup de boule à l'eau.
C'est intéressant.
Comment as-tu expérimètes avec la construction de la langue de programme?
Tu as aimé les 4éatres?
Comment as-tu fait le tour?
Oui, j'ai pas expérimètes.
Je me souviens quand je disais que je voulais essayer.
J'ai acheté quelques choses en ligne pour essayer.
J'ai aussi acheté un livre de compilers,
le dragon dans le couvert,
que je crois que je vais faire aujourd'hui pour les compilers, les classes, etc.
Mais j'ai probablement écrit 30 ou 40 pages
parce que j'ai commencé à lire,
et j'aurais des idées,
et je vais aller au computier et essayer les choses.
C'est généralement comment je le profite.
Je suis un élément patient.
Je suis un élément patient,
et je suis très impatient,
et je suis désordeur.
Je vais essayer de prendre le temps
et de pouvoir en faire de la même manière.
Mais je dois aussi dire
qu'ils sont des langues de programme,
et ils sont des langues de programme
qui se sont mis en place sur un machine vertus.
Je dois dire que je dois faire
une représentation de haut niveau,
je n'ai pas besoin d'implémenter un collecteur de garbage,
je n'ai pas besoin d'implémenter tout ce que l'airlane a,
je vais aller en ayant pour les machines vertus.
Un peu de compilers d'airlane sont implémentés dans l'airlane,
je pouvais en voir et apprendre.
J'ai fait un job
un petit peu plus facile
que d'autres langues de programme,
c'est-à-dire que si on utilise la vm,
tu es en train de commencer à un niveau plus haut.
Je suis en haut niveau
et l'airlane vertus
est très opinionnée
sur ce que tu peux faire et ce que tu ne peux pas.
parce que la autre chose, c'est de créer un langage programmable,
ce qui a toujours été très difficile, et je le trouve toujours difficile aujourd'hui,
c'est qu'il y a beaucoup de décisions que vous pouvez faire.
Et ce n'est pas comme que vous pouvez aller et prendre tout ce que vous voulez
et mettre cela ensemble et que ce soit bien.
Ce sont les choses qu'ils ont besoin de composer,
qu'ils ne peuvent pas avoir quelque chose de clavier avec l'autre.
Je me sens comme si c'était un jeu de jenga.
Si vous en avez une, le jeu peut se passer.
Il y a beaucoup de décisions, beaucoup de décisions,
et, pour que les machines de l'invertor soient opinionées,
il y a beaucoup de choses que je serais en train de regarder,
et je me suis dit que c'est génial,
mais il n'y a pas de manière à qui je peux impliquer ce jeu,
efficacement dans l'invertor machine,
ou ça ne fait pas le sens,
donc je pouvais le régler et ne pas se prévoir pour explorer
ce passage particulier ou la décision de la décision.
C'était un processus fond,
et je l'ai appris beaucoup,
mais je pensais que j'avais beaucoup d'aide,
comme de la chute de géants et tout ça.
J'avais beaucoup d'aide à l'air,
et l'écosystème était là depuis le début.
Ça m'a aidé à construire un système
qui a été là depuis 20 ans,
et qui a été prouvé dans un field différent.
C'est cool que c'était construit pour les communications télécommuniques,
et que tu es en utilisant un domaine différent.
C'est super cool.
Quels sont les problèmes que tu penses que l'Elexer a été bien dessiné
et quand ne pas que tu l'aies utilisé ?
Ça a changé beaucoup,
ça a changé beaucoup de ce que l'Elexer était bon.
En original,
je suis venu de la communauté de Ruby et de Reyes,
et je savais que l'Elexer
aurait été utilisé pour des webstaves.
C'est parce que c'était mon background.
Les gens qui me sont suivis,
ils sont venus de ce background.
Aujourd'hui, l'Elexer a un webstack très compétentiel.
On le fait d'une fois que tu n'as pas de place.
Je vais l'expandre un peu.
On a la framework de la web Phoenix.
On a beaucoup de choses.
On dit que l'Elexer a un peu d'élection.
Imaginez que tu fais un déploiement de production.
Un des trucs que tu veux avoir,
imaginez que tu es construit un exemple de social,
mais tu veux avoir un autre.
Quand quelqu'un te joigne,
tu veux te montrer une notification dans le système.
Tu veux te montrer une notification pour ton ami.
Tu sais, ton ami te joigne.
Tu peux faire quelque chose,
si tu prends une application de web,
la façon dont ils ont à impliquer ça,
c'est parce que
ils peuvent joindre différentes machines.
Tu dois mettre un système de queue
pour que tu puisses envoyer des messages.
Tu dois envoyer des messages
pour que tu puisses envoyer des messages.
C'est un message.
C'est un message.
Je peux envoyer un message
pour que le personne soit dans le code.
Il va y avoir des messages.
Il y a des messages.
Il y a des messages,
C'est un message.
Il va y avoir des messages.
Tu peux te montrer un message,
application, c'est une des choses où vous pensez que c'est simple, mais c'est un problème
distribué du système. C'est complexe, parce que imaginez que vous allez
faire un track, vous avez des machines différentes dans votre application, et vous allez
aller voir le database, qui est connecté. Mais, qu'est-ce que si une machine
crash, qui va réprimer les gens qui sont connectés à cette machine, et dire qu'ils ne sont
plus disponibles. Donc, ce sont les problèmes complexes, et Phoenix vient avec des présences
de la boxe, et il n'y a pas d'autre frameworks qui viennent avec des présences
de la boxe, rien ne donne cela à vous. Il y avait quelque chose de très
fort, et il y a des messages changés en temps réel, qui sont disponibles pour des
corporations multimillionaires, et maintenant Cloudflare est en train de faire
cela disponible pour tous. Il y a des choses qui ne sont pas disponibles, mais
qu'il y a d'autres, et ça ne marche pas. Il y a quelque chose d'autre que nous
récentement annoncés, c'est tout beau sur Erlang, que Phoenix récentement
annonce, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'
dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est
c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est à dire, c'est är
characterization aussi.
Vous partez d'autreske�station.
Mais ici on le regarde hein.
Etuxeses
hyst hoodie
C Si
à dire c'est à dire, très attention à qui il faut
de礼 filling
Hi
Croquis
et les gens vont dire, je vais mettre un lambda et un scale qui se démarre.
Et le truc que vous pouvez faire avec Flame et Liquid Jest, c'est que
quand vous faites la upload, vous commencez un copier,
qui vous pouvez faire très rapidement sur Fly ou en Kubernetes.
Vous commencez un copier de votre application.
Et parce que tout est distribué, vous êtes comme,
Hey, c'est le vidéo,
comme les utilisateurs vous envoient des parts de la vidéo
à un autre node qui se démarre en FFM-Pag,
faire des screenshots et envoyer ça à vous.
Et c'est ça. C'est la même application.
Vous ne vous dites pas, vous avez de créer un projet de separate lambda,
que je fais un deploy, d'autre côté,
que je dois savoir comment je vais tester.
Si vous testez, il y a beaucoup d'infrastructures et de complexité
que nous avons, comme, juste opté pour cela par défaut.
Et si vous regardez cette complexité,
tout vient de la facture que le software que nous avons écrit aujourd'hui,
les plateformes que nous avons utilisées,
vous êtes en cours de write que ne peut ne communiquer
entre les machines.
Et tout le déployement, tout le système que nous avons créé
en production, il utilise plusieurs machines,
mais les plateformes que nous avons utilisées
dans les machines de write, ne permettent pas
de communiquer entre les machines.
Nous sommes trappés à ce point,
et chaque fois que vous avez ce problème,
vous portez des solutions spécifiques
pour se résoudre,
pour que vous puissiez avoir quelque chose en général
qui va permettre de résoudre tous ces problèmes,
comme PubSub, sending messages,
réel temps, présence,
elastic scale, basé,
qui existent pour 3 ou 4 décennies.
J'ai eu le rail ici,
mais je pense que le point est que Alec Serre et Phoenix
sont excellentes pour faire des applications de web.
Et si, c'est pas parce que l'Alec Serre,
c'est vraiment parce que c'est en l'air.
Et ça va donner beaucoup de power ou des tools
pour que vous avez un système simple.
C'est une simple opération.
Vous devriez payer 3 ou 4 services,
Pour faire ceci, pour construire ces choses, et pour ajouter un message,
et différents types de databases, tous ces choses.
Vous avez besoin d'élicieux et de votre database, et vous êtes heureux, vous êtes déçus.
C'est ce que vous allez déployer.
Et bien sûr, il y a d'autres choses que vous espérez d'un framework web,
comme « Oh, on doit parler de votre database » ou RIM, et je fais des quotes ici
parce qu'il n'y a pas d'objet dans les liques, donc on ne peut pas avoir un objectif relationnel.
Mais nous avons des choses qui sont en train de faire un système de compagnies,
toutes ces choses sont là aussi.
Mais pour moi, la chose fascinante est
comment la communauté de l'électro-communité est capable de obtenir ce « air lane » que j'ai trouvé en love avec,
et de faire des idées pour construire des applications web,
et de vraiment construire quelque chose que vous ne pouvez vraiment pas répliquer.
Toutes les features que vous avez, vous ne pouvez pas répliquer à n'importe quoi autre.
Vous avez couvert beaucoup de fonds, et nous allons faire des choses.
Nous allons parler d'une phoenix, et d'un second,
qui est le framework web pour l'électro-communité.
Vous parlez des problèmes, des présents, des messages de sending.
C'est vraiment en train de faire des nodes sur deux machines différentes,
et que l'Eurling connaît comment connecter et les messages passés.
C'est comme une fonction naturelle de comment ça fonctionne.
Vous n'avez pas de quoi faire,
d'autres que des configurations,
pour le dire, les addresses IP ou quelque chose.
Il y a un library qui s'appelle libcluster,
ou il y a beaucoup de libres différents,
qui sont comme « oh, si on utilise Kubernetes,
Kubernetes sait où les nodes sont.
»
Vous avez un library qui est comme « hey, Kubernetes,
dis-moi où les nodes sont.
Vous piquez Kubernetes à chaque 60 secondes,
et vous connectez les nodes,
et ça fonctionne, vous n'avez rien à faire,
vous avez juste le whole library.
Mais je pense qu'il y a une machine plus basée,
parce que l'Eurling existe longtemps,
avant que Kubernetes,
et vous avez toujours les capacités de networking.
L'Eluxer sort de construit tout ça,
et vous donnez les capacités basées de l'Eurling.
Et ensuite,
il s'expandent plus en plus dans le monde web,
et vous donnez,
où l'Eurling existe,
et des choses autour du système d'écosystème,
et qui commencent à mettre des laitres sur le dessus.
Peut-être que nous devons juste entrer et parler de Phoenix.
Je dois avoir des questions
sur l'Eluxer language,
et peut-être que nous pouvons les mettre en place,
et surtout des improvements que nous faisons à l'Eluxer.
La question était,
qu'est-ce que l'Eluxer est bon pour ça,
et je n'ai parlé que d'une chose,
donc on devrait le faire.
On parle un peu de Phoenix.
Donc,
comme je l'ai dit,
Phoenix est un web framework,
ou un web framework sur l'Eluxer.
Je pense que mon meilleur moyen de le décrire,
c'est que l'Eluxer est comme un RELS,
est-ce que c'est une bonne characterization ?
Je pense que c'est une bonne characterization,
ou que le genre est un Python.
Je pense que ce sont des bonnes caractérisations,
mais je pense que ce que peut être mis en cette caractérisation
est exactement que l'Eluxer et Ruby,
ou l'Eluxer et Python,
sont des choses très différentes,
exactement parce que tout ce que nous parlons de,
mais si vous pensez que RELS
est en train de lever les meilleures features en Ruby,
et Django est en train de lever les meilleures features en Python,
Phoenix est en train de lever les meilleures features en Elyxer et RELS.
Donc, oui.
On a parlé des propriétés
que RELS et Elyxer ont été construits en RELS
pour les Fenix.
Alors, plus tard, on a parlé de présence,
et on a parlé de flame,
qui est le nouveau framework de Lambda
qui a été construit sur cette infrastructure.
Quels autres features
ont été utilisé par Phoenix
par l'Eling Elyxer et l'Ecosystème
qui sont uniques pour Phoenix ?
Oui, je me sens...
Il y a...
Et je peux aussi parler de cela pour l'heure,
mais je vais essayer de summariser.
Phoenix a aussi eu beaucoup d'attention
par un projet appelé Phoenix LiveView.
Il y a beaucoup de moyens de décrire Phoenix LiveView,
mais l'idée est...
Comment vous pouvez construire,
atteindre et interagir les applications
en évoluant le JavaScript ?
Et le sens de l'évoluer en JavaScript
peut être de différentes choses.
À times, les gens pensent que les choses sont négatives.
Mais je ne veux pas évoluer le JavaScript.
Je suis bien avec l'évoluant le JavaScript.
Mais les gens disent que je n'ai pas à évoluer le JavaScript.
Mais je me sens...
C'est un des trucs que vous avez...
Et aujourd'hui, quand l'évoluant a commencé,
qui était, je pense, 4 ou 5 ans plus tard,
c'était assez polemique,
mais aujourd'hui, nous sommes en train de voir.
L'évoluant était le pionnier ici
et a commencé à évoluer les conversations.
Mais peut-être que pas tous les apps
devaient être un app en spA.
Et peut-être que le service
devait prendre plus de responsabilité.
Donc, même quand ils réagissent
les compagnies de service,
les compagnies de service,
c'est un des trucs qu'ils mènent
comme influence à l'espect service
de la vie de Phoenix.
Mais l'idée est que...
Vous avez le client et vous avez le service,
et nous avons été en train de bouger
au client,
comme tout le monde va être dans le client.
Mais si nous nous avons bougé au service,
et nous avons le service,
nous avons été en train de voir
que les clients ne vont pas utiliser l'application.
Et bien sûr, il y a beaucoup de nouvelles
discussions qu'on peut faire.
Mais c'est ce que je dirais.
Je pense que le bénéfice avec LiveView
est que, comme une équipe,
vous n'êtes pas comme les gens
travaillant sur le front-end
et sur le bas-end.
Il y a Chris Granger,
qui a un très bon quote
dans le sens que
ils avaient une réaction à la front-end
et ils en ont utilisé Phoenix
avec GraphQL, je crois.
Et c'est toujours un travail de split.
Vous devez travailler un peu sur le réact,
ou vous devez couler votre équipe.
Vous avez des gens qui ne font que le front-end,
des gens qui font le bas-end,
et puis vous devez décider
les patterns de communication
et les complexes qui peuvent arriver.
À times, ça marche bien, à times, ça ne marche pas.
Et puis si vous dites,
je peux aller tous sur l'une ou l'autre,
ça vous permet de simplifier
beaucoup de ces aspects.
C'est comme, OK, je vais juste faire
que je recule des phénomènes électricains.
Ça va être la propre main d' taxes
de la réorticité qu'on recreation.
ribbon relaté
但是 ce n'est pas le premier успire
bar de son application.
Donc, je ne sais pas facilitate
davantage par la time d' trusted
au niveau de la Frankie Granger
la aerospace
exists
Je pense que notre défaut devrait être, je vais avoir des choses sur le server parce que ce n'est pas quelque chose que je peux donner.
Et puis, si je dois des choses qui sont plus, je ne veux pas aussi aller sur le server.
Imaginez que je clique un bouton et ça expère quelque chose.
Si je fais des animations ou quelque chose comme ça, si cela a été fait par le server, cela introduit la latence.
Donc, bien sûr, dans ces cas, je veux utiliser le client.
Mais pour moi, le server devrait être le défaut.
Et ça reprend à la facture que j'ai commencé à faire web en 2004, donc ça a été 20 ans.
Et ça a été plus complexe pour quand j'ai commencé.
Et quelque chose de cette complexité est juste défini.
Quand j'ai commencé, le Git n'était pas un truc.
Mais aujourd'hui, tout le monde a commencé à apprendre le Git et pour une bonne raison.
Je pense que c'est juste une complexité.
Peut-être qu'il y a des alternatives pour le Git qui pourrait être plus simple.
Mais c'est juste une complexité.
Mais je pense que aujourd'hui, quand nous sommes construits dans la application web, nous sommes demandés de gens de faire être vraiment bon à l'arrivée.
Vous devez être vraiment bon à le server, vous devez être vraiment bon à la base de la database.
Et je pense que ce que nous avons commencé à explorer dans les dernières décennies, c'est exactement...
Mais si je n'ai pas de bonnes choses à tous ces trois choses, c'est vraiment trop beaucoup.
Nous sommes en train de demander trop de choses.
Les gens ont essayé de simplifier.
Et c'est un peu plus important.
Mais c'est un peu plus important.
Mais c'est un peu plus important.
C'est notre réponse.
Et le but est que vous devez être plus productifs.
Parce que vous ne vous inquiétez pas de plus de choses.
Les clients et le server, ils se connectent et ils se réunissent à l'exchange de l'information tout le temps.
Et ça fonctionne vraiment bien avec le Model de Délixir.
Je dis que imaginez si chaque utilisateur que vous avez dans votre application web est comme une entité dans un cluster.
Ils peuvent tous communiquer avec l'un ou l'autre.
C'est exactement ce que l'on peut faire.
Donc, construire des applications en temps réel, interne, c'est vraiment un modèle élégant qui synchronise le client, le server, etc.
Le thème que je vois c'est que les protocoles de transfert sont juste de la friction.
Et beaucoup de compétition moderne est tentée de faire partie de ces protocoles de transfert.
C'est un même sur le podcast, mais on parle de unicin beaucoup.
Et unicin est très bien dans ce genre de « donnez-moi un truc, ne caresse pas de ce qu'il est connecté, mais donnez-le tous ces features poweraux en même temps ».
Oui, je pense que ça se summarise parfaitement.
Parce que, entre ces choses, client, server et database, nous sommes en train de traduire un truc sur l'autre et ensuite de traduire l'autre.
Et par les layers de translation, il y a complexité, overhead, etc.
Donc, vous avez récemment travaillé beaucoup sur un projet appelé « Livebook ».
Qu'est-ce que c'est et comment se connecte à Phoenix LiveView ?
Oui, c'est une bonne question.
Nous avons commencé à parler de ce que l'Elicier est bien pour.
Et puis, nous avons parlé beaucoup de web et de ce qu'il y a de la simplité opérationnelle et de l'innovation qui est déclarée par l'Elicier.
Et avant de parler de Livebook, il y a des choses que l'Elicier est bien pour.
Je disais que je savais que ce serait bien pour la web.
Et la première surprise que j'ai eu, c'est quand l'Elicier a commencé à être utilisé pour construire un software de la haine.
Parce que nous n'avons pas parlé de ça, mais il y a un autre aspect de Verling,
qui est de la construction de la haine faute et de la software résilienne.
Parce que, si vous avez des switches de téléconnication, vous ne vous souhaitez pas faire de la haine.
C'est vraiment l'infrastructure, ce n'est pas possible.
Et puis, ils ont eu ces idées sur comment vous construisiez la software faute en Verling
et vous utilisez cela pour construire un software de la haine.
Parce que le software de la haine est très rigolo, parce que quelqu'un va prendre votre maison
et que l'application peut être spotée, ça ne fonctionne pas sur Bluetooth.
Et vous ne voulez pas que, si le Bluetooth se perd, vous ne voulez pas que votre whole hardware est embadé pour se perdre.
C'était quelque chose qui s'est utilisé et l'Elicier a utilisé cela.
On a aussi des outils pour la processation d'événement, parce que, pour le moment, il est juste de la mobilisation de téléconnication.
Et il y a 3 ou 4 ans, on a commencé une affaire pour mettre l'Elicier à l'application machine.
Et c'était une coïncidence d'événement.
On a commencé à focusser vraiment fort sur l'application machine et l'AI,
juste avant l'année avant l'AI, qui a été vraiment explotée.
Mais pourquoi vous pouvez faire des idées d'avis,
que vous pouvez obtenir un subset de l'Elicier et compiler pour la GPU ?
Et on a commencé à faire des modèles machine-learning.
Et ça a commencé 3 ans, on a commencé à mettre l'Elicier à un nouveau domaine.
Et c'est tout à fait construit sur le programme de métapos,
et on a commencé à mettre l'Elicier à l'application machine.
Et on a commencé à mettre l'Elicier à l'application machine.
Quand j'ai commencé à utiliser l'Eirland,
mon premier idée était de mettre l'objet.
J'étais en train de faire une translation de 1-to-1.
Quand je travaille avec quelqu'un et je fais une démarche d'Elicier à l'application,
je suis toujours très fier de ne pas faire une translation de 1-to-1.
On peut vraiment penser à comment nous pouvons mettre ces idées,
mais on a déjà construit un système de l'éco-écosystème.
Si les développeurs sont très intéressés avec les notebooks de Jupiter,
c'est comme si les notebooks sont un environnement de programming,
où il y a des documentations et des codes,
et que les gens n'ont pas de notebooks,
pensez à ce que vous avez en terminaux,
comme si vous avez un programme en terminaux,
comme si vous avez un shell JavaScript,
ou un code de code,
mais aussi avec des documentations et un bunch de features
qui font un environnement de programming.
C'est ce que le livre est.
La raison pour laquelle le livre existe,
c'est parce que nous avons commencé à travailler sur machine learning,
et ils se sont dit que les développeurs Python
ont des tests de machine learning.
Les notebooks de Jupiter sont très fameuses,
ils sont très populaires,
ils sont utilisés extensivement.
Et ils se disent que,
et parfois, si on regarde un problème,
on se dit que c'est quelque chose qu'on devrait acheter,
on doit essayer de se solver les problèmes,
ou on doit construire sur le top des choses qui existent.
Par exemple, quand on compile un livre sur la GPU,
je utilise des compilers existants
par Google et Facebook,
et c'est aussi ce que le Python utilise,
parce que je suis 100% sûr que je ne vais pas
filmer un compiler de GPU,
il n'y a pas de chance d'avoir un projet,
même si j'ai fait ça, je serais capable de confier.
Quand c'est arrivé aux notebooks,
je me suis dit que les notebooks sont vraiment web applications.
Et il y a une chose que j'ai parlé,
c'est que l'électro est vraiment bien pour la web,
et je me suis dit que si on essaye de faire
nos propres tests, ce sont des notebooks
comme un environnement de l'électro.
Je pense que c'est un peu de nouvelles idées
et de nouvelles solutions,
c'est un espace intéressant pour explorer.
J'ai commencé à travailler dans le livre,
et je pense que c'est un très excès,
un projet principal qui charity
Si le projet ose
mettre un Android ,
yeniithé risks nos
webinars quelque chose d'autre qu' remembers the effecteure d'l'éectro
à un tout seul terme,
d'aborder et aller au bon Mandarin,
donc si vous avez éc Lightning,
En 20 minutes, j'ai utilisé des features en livebook,
des features en lexer, j'ai utilisé une application web
qui a distribué des features machine learning.
Je suis en train de faire des models machine learning,
implementé en lexer et en en train de faire un cluster.
Parce que, si on retourne,
je vais répéter, mais c'est bien.
Imaginez que vous êtes en train de construire un startup,
et que vous avez des features machine learning,
vous avez vos propres models que vous avez besoin de rouler.
Vous avez votre back-end qui recevra des requests web,
ça ne se passe pas si vous utilisez le SBA,
ou en liveview, mais vous avez quelque chose qui est en train de se faire.
Mais si vous avez un model machine learning,
le moyen que vous scalez ce que vous avez,
ce sera différent.
Ces machines, elles ont besoin de GPUs,
et différents requérements.
Si vous travaillez dans d'autres environnements,
pourquoi vous ne vous avez besoin de ça ?
Vous devez créer une histoire de repos séparée,
quelque chose de communiquer entre votre service,
et votre model machine learning.
Vous devez savoir tout ça,
et en lexer, ça fonctionne.
Je fais un machine recevoir des requêtes,
et on peut parler d'un machine en train de faire des GPUs,
et le model, dans un cluster,
ça fonctionne tout et le demo construit ça.
Le livre est un tool où vous pouvez explorer le lexer
et apprendre plus.
Nous avons cette idée de smart cells,
qui permettent de se faire des tasks particuliers,
dans un moyen efficace,
et de apprendre plus de l'anglais.
C'est pour ça qu'il faut être un environnement fun
de apprendre le lexer, mais aussi de faire des protéines.
Une des choses que j'aime vraiment,
c'est d'avoir le lexer,
il y a un projet de « Nerves »
qui est le lexer,
en train d'être en environnement.
J'ai rencontré le lexer
quelques fois, parce que c'est un area fascinant.
Il y a un livre de « Nerves »
où vous pouvez faire un lexer
en train d'avoir un Raspberry Pi
et d'avoir un style de notebook du Jupyter.
Vous pouvez en faire des codes
pour contrôler le GPI,
un environnement littéral,
dans votre notebook.
C'est un culmination fascinante
de tous ces features qui s'en sont mis en place.
Il est distribué au « Nerves »
et rendu dans un notebook
avec LiveView.
C'est interractif,
et vous êtes contrôlés à l'actual hardware.
Je pense que la première fois
que je suis réveillé,
ça a vraiment fait mon cerveau.
Je pensais que mon dégrad
était un ingénieur de computer,
et quand je faisais
mes projets d'embêtement
c'était un « C »
et je me récompile tout.
Je me réveille des « Data Sheets »
et je me réveille des « PIN Highs »
et je me faisais des « Lowes »
et je me faisais des « Signal Vs »
et je faisais tout ça.
Le loop de feedback est toujours très lent.
J'ai eu des trucs qui se sont mis en place.
Je vais essayer de le faire
dans ce petit « Smart Cell »
c'est vraiment cool.
Pour moi,
la chose que je trouve fascinante
c'est que
on a fait un livre
avec une spécifique
quand on a commencé, on pensait
« Machine Learning »
c'est ce que nous pensons,
Machine Learning Data.
Exactement, quand Frank
était un des développeurs
pour le « Nerves »
il a vu un livre, il était parfait
exactement pour ça.
Maintenant, je peux me faire des « Nerves »
et remettre
ce tout et le loop de feedback
pour le plus vite.
Maintenant, ils ont un environnement
où ils peuvent se tourner
sur le devise
et faire des choses comme ça.
Et c'est tout le
ecosystem, la construction
sur les autres.
On a construit sur le Verlaine
et vous avez dit que je n'ai pas répondu
mais je suis en train de le dire.
entre « Live View » et « Live Book »
c'est juste que
« Live Book » est implémenté
avec « Live View »
mais c'est ça.
Il n'y a pas d'autres relations.
Je me suis dit
« Christmas Core »
« The Creator of Phoenix »
comme quand on pense sur comment
on appelle le projet.
J'ai vraiment aimé le « Live Book »
et je pense
que je peux penser sur deux choses
que j'avais le nom avant.
Mais j'avais le nom avant.
« Live Book » et j'avais deux idées.
L'une
était un livre
pour apprendre « Live View »
qui était dynamique.
Je pouvais construire « Live View »
et construire les interfaces.
Je pourrais apprendre les gens comment faire ça
mais c'était un environnement « Live »
parce que si vous voulez apprendre quelque chose de « Live »
c'est un environnement « Live »
l'autre était cette plateforme
« Notebook »
qui est collaborative
et toutes les choses
que « Live Book » doit faire.
Je n'ai jamais écrit le livre
ou l'interactive
je ne ferai pas de la suite
si quelqu'un ne l'a pas dit.
Je veux que tu aies l'idée
de faire ça pour mon vision.
Pour une bonne language de programmation
tu veux un environnement « Expansive »
et « Elixir »
c'est un environnement où beaucoup de gens contribuent.
Qu'est-ce que tu as
des projets favoris que tu vois dans la communauté ?
Je ne peux pas
être un enfant favori.
oui,
je me sens...
ce que je peux dire
c'est que je me sens
que l'Elicir est dans un très cool...
je suis pas mal à ça
mais l'Elicir est dans un espace très confortable
car
le travail de l'art
a été fait par Airwing
et
la team Airwing est fascinante
chaque fois que je parle avec eux
ils sont en train de se solider
les problèmes de l'art
ils introduisent un « cheat »
3 ou 4 ans
et puis
en version initiale
l'Elicir culte est maintenant 40% à 50% plus vite
et je n'ai pas besoin de tout ça
je m'en souviens de ça
je me sens
que ma responsabilité
est vraiment
de
pour motiver tout le monde
de essayer de construire les choses
et de construire les lèvres
et de soutenir eux
comment je peux m'aider ?
c'est la langue
ce sont nos outils limités
et
si
ils me demandent
je ne vais pas
donner
un « souci »
mais c'est mon souci
de connecter les choses
je me sens
que c'est mon rôle
car je suis en position
très confortable
où je peux
évoquer le travail de beaucoup de gens
et je tries
de les aider
pour moi
je veux dire que quand la question est en place
je me dis que les lèvres
sont des exemples de mon sens
je l'ai vraiment aimé
car c'était la première fois que je suis surpris
je savais que l'Elicir serait bien pour Web
et puis quelqu'un m'a dit
« oh mon Dieu, c'est incroyable ! »
et la raison pour laquelle j'aime
c'est parce que si tu me demandes
parfois, il me demande
« pourquoi il faut être la plus importante pour l'Elicir ? »
si tu me demandes
l'Elicir serait utilisé seulement pour Web
parce que c'est ce que mon background était
donc je me demande
la communauté
ça devrait vraiment être
que tout le monde soit le voix
qui est soutenu
donc le nerf est fantastique
car je me souviens
que j'ai eu
de l'air de l'Elicir
parce que je pense que en ce moment
je n'ai pas encore eu l'Elicir
et je le vois, c'était comme un livre
c'est comme « c'est en train de faire l'Elicir »
et c'est en train de faire le nerf
c'était, je le vois
la première fois que je l'ai entendu
c'était avec un produit naturel
c'était
pour le nerf
et c'était
fantastique
mais aujourd'hui
on parle de
l'Elicir est bien pour la processation
on parle de machine learning
l'Elicir aussi a
des frameworks très bons
pour faire audio
et vidéo
et de la streaming en général
donc
je suis excité
à tous ces choses
parce que
c'est toutes les idées
et
en faisant des choses que je n'ai jamais pensé possible
et c'est excitant
c'est génial
je m'en profite
j'adore
voir l'Elicir écosystème
et c'est une des choses qui sont toujours
en train de revenir
je n'ai pas vraiment fait beaucoup professionnellement
mais c'est toujours en train de revenir
c'est la seule chose que je veux travailler en
parce que je me sens comme si vous avez un écosystème
il y a un terrain très riche
pour explorer
on parle de la première question
avant de râper
Andrew et moi avons beaucoup de
expérience en france
donc on a été dans le script écosystème
et j'ai eu
des expériences rouges entre autres
et
depuis la fois que vous avez développé
l'Elicir
à commencer
les types dynamiques
sont en train de
c'est ce que je pense
beaucoup de gens ont fait des langues scriptées
qui étaient dynamiquement type
on veut être rapide
on veut interagir
et puis, dans le prochain décès
des types systèmes
ont été un peu plus mainstream
et les gens ont commencé à parler de leur
ou ont réunis les conversations
sur leur
et puis on a des types scriptées
nous avons beaucoup d'autres
focus sur les langues type
je sais qu'il y a un projet
d'envers pour penser à
ce que les types sont comme en Elicir
et il y a aussi
une autre langue qui s'appelle Gleam
qui s'appelle
Vm
qui est un langue type
pouvez-vous parler un peu
de la façon dont vous pensez
les types
dans l'Elicir écosystème
et peut-être que vos plans sont là ?
oui, c'est...
je vais commencer
ici
aujourd'hui je pense
à faire un tweet
qui va être
quelque chose de...
je dois encore m'en poser
parce que
je me sens partie
que tout le monde
qui est super excité
sur les types sont enceintes
et tout le monde
qui est
pas excité sur les types
sont aussi enceintes
et quelque chose de...
alors tout le monde a commencé
parce que
les types sont en Elicir
parce que si je suis allé
en Elicir
avant ma présentation
et la présentation
ce que vous pensez est le plus important
que l'Elicir
aille
à un moment, comme la langue s'évolue
à un moment, c'était comme un coup de feu
et ça a été un deployment meilleur
donc on a travaillé sur ces choses
avec l'aide de la communauté
et à un moment, ça a été
vraiment clair que l'answer était les types
mais le truc est
que les types sont
pas les mêmes
pour tout le monde
c'est comme... ils vont être
des choses différentes
et j'ai parlé beaucoup de ça
en essayant de comprendre
ce que les gens sont en train de comprendre
pour l'exemple, on parle de typescript
mais typescript
sont des types pour typescript
c'est en train de
développer
des ideas
je ne m'en souviens pas
d'ailleurs ils me disent
que quand on pense dans un futur
mais si ce futur signifie
que maintenant les gens
qui s'en utilisent pour leur idée
vont être
500 ms
alors c'est pas� dla nous
donc ils sont par types
dans cet aspect de type
Et le autre chose est que l'élicieux est un langage dynamique, mais il n'est pas
comme dynamique, comme JavaScript, Ruby ou Python.
Je veux dire que l'élicieux est un langage assertif parce que,
généralement, vous savez ce sont les structures que vous travaillez sur.
Vous savez que vous avez une liste.
Vous savez, parce que quand vous utilisez Ruby, JavaScript ou Python,
vous vous faites beaucoup de méthodes de quelque chose, et ce n'est pas quelque chose.
Vous ne savez pas ce que c'est.
Il ne peut pas être quelque chose, si vous n'avez pas utilisé le JavaScript,
c'est juste un JavaScript.
Il ne peut pas être quelque chose.
Et c'est une propriété des langages,
des langages qui sont appelés du type duck.
C'est très intentionnel de le design.
En l'élicieux, nous n'avons pas ça.
Quand vous avez une structure,
vous passez souvent par des modules très spécifiques.
Vous savez ce que vous travaillez sur.
Quand vous avez une liste et vous voulez changer,
vous n'avez pas besoin d'un module.
L'élicieux est assez assertif, et c'est important.
Nous allons le voir plus tard.
Il y a beaucoup d'expérience que les gens pensent,
je voudrais avoir cette expérience de l'idée.
Nous n'avons pas besoin d'un type d'élicieux pour avoir ces choses.
Nous pouvons juste travailler sur l'idée.
Il s'agit de l'idée qu'elles sont complexes.
C'est comme les langages de programme qui ont les meilleures idées.
Normalement, elles sont des grandes corporations
travaillant sur ces projets très bien fondés.
Il y a beaucoup de ressources sur ces projets.
Je pense que, à un moment,
je vois des gens qui disent que
si j'ai des types, j'ai de plus de tests.
Je veux dire que c'est 0, mais ça fait 1 % de sens.
Pour moi, si j'ai des types,
je dois faire des tests plus mauvais.
Vous pouvez avoir des tests mauvais,
mais ce n'est pas des tests que je vais faire dans le premier endroit.
Surtout en termes d'élicieux.
Il y a beaucoup de choses que je vais comprendre.
Il y a des gens qui disent que je n'ai pas besoin de types
parce que j'ai 100 % de test de coverage.
Ce n'est pas la même chose.
Pour le début, les types sont pour vous donner de plus vite
que de passer les tests.
Il y a beaucoup de choses que vous pouvez avoir 100 % de coverage
et avoir des bugs dans votre code.
De la même manière, vous pouvez aussi avoir des types
et avoir des bugs dans votre code.
Le exemple que j'aime donner,
c'est que les types sont très importants.
Imaginez que vous avez des types en JavaScript,
les types de 10 % de 100 %.
Le type de ces types peut être...
C'est comme...
On va prendre un simple,
juste un type de bouleon en operating.
On le met avec un bouleon.
La plupart des images programmées,
le type pour ces types
est celui qui recevra un bouleon,
qui recevra un autre bouleon
et qui le retient à un autre bouleon.
C'est comme...
Je n'ai pas des types pour ces types.
En implementant ce signature
qui va être réussi,
il faut avoir un vrai et un fals random.
Le type de ces types va être 100 % de type.
On va avoir 100 % de coverage,
si vous le appelez.
Mais l'implementation est complètement faite.
Je pense que beaucoup de choses qu'on parle de,
c'est comme...
Quand je dis que j'ai mis mes pensées en ordre,
c'est parce que nous tendons à dire
que les types sont bons ou les types sont mauvais,
mais nous ne parlons pas de quoi.
Ils sont bons pour quoi,
ils sont mauvais pour quoi,
les choses particulières.
Si vous me dites que les types
vont prévenir des bugs,
ils disent que les bugs sont de quoi.
RUST, je pense, est un grand exemple,
parce que RUST a...
Regarde, le type RUST
va vous permettre de prévenir 100 %
de bugs, de la dégâter,
d'accessuer quelque chose après vous déloyer.
Il y a beaucoup de bugs
que c'est garantie,
et nous pouvons parler de ces bugs.
Mais, il y a un collector de la collection de la même chose.
Donc, ajouter un type RUST
pour un lexer ne va pas faire de l'invité,
parce que ce n'est pas le genre de bugs
qu'on doit trouver.
Donc, une histoire longue,
je pense qu'il faut
faire beaucoup plus,
et je ne veux pas dire que le lexer,
mais en général,
nous devons faire beaucoup plus de research
sur ce type qui nous signifie
et parfois,
il faut avoir une conversation très facile,
qu'il n'y ait pas de space
dans le sens,
et beaucoup de mon travail,
en en amenant un type système
pour un lexer,
est enversant,
en essayant de comprendre
ce qui est l'answer à cette question.
Qu'est-ce que ça veut dire
quand nous avons un type système de lexer,
qu'est-ce qu'on veut d'en avoir?
Parce que,
il y a aussi un peu de gens qui disent
qu'il y a une discussion
entre dynamique
et
étatiquement,
et programme état,
et qui disent que le lexer
a été un peu détenu,
un peu depuis le temps,
et je veux voir un moyen
de l'envers entre
l'expression
et
l'expressivité.
C'est le traitement
qu'on veut penser
à ce qu'il y a.
Parce que
le problème est
que les langues programmes
qui ont un type système,
un système état,
restent les sortes
que vous avez en place.
Il y a des temps où vous avez un sort
qui vous rend
un peu d'expressivité.
Mais le type système est
comme,
je ne comprends pas
ce que je veux,
donc
vous devez l'écrire,
vous devez l'écrire,
mais ce n'est pas
le moment de l'écrire.
Donc,
il faut que
c'est un programme
qui vous dit
que ce serait le sens,
mais le type système ne peut
pas comprendre
et
il y a des idiomes
de ce que vous pouvez faire
et de ce que vous pouvez expérer.
Mais quand vous avez
des langues dynamiques,
c'est comme,
on n'a pas ça,
et vous avez
beaucoup plus
d'expressivité.
Et
le point de
mettre un type système
dans une langue dynamique
est comme,
si vous vous ajoutez un type système,
vous devez
limiter
ce que vous pouvez faire.
Mais si je prends un lexer
ou un autre langue
existant
et je limite ce que cela fait,
comment je peux limiter
jusqu'à ce qu'il y ait un lexer?
Qu'est-ce que je limite
tant de ce que le langue programme
peut faire
que je ne me sent pas
comme en éliminer un lexer.
Et
on a
et donc je pense que ce sera
quand
si un lexer a des types,
dont je ne suis pas sûr
que ce soit le lexer,
il y a des langues
d'idiomes qui vont changer.
Je suis 100% sûr.
Mais
nous devons
évaluer,
nous devons nous demander
si
ce n'est pas un idiome
meilleur
ou plus
est-ce que les types
me poussent
pour faire ça
parce
que
mon lexer
va être
en fait meilleur
ou
est-ce que je vais
faire ce truc
et être plus expressif
parce
que
le type système
ne me laisse pas.
Et
pour
en quelque cas, c'est bon.
C'est un trade-off
comme
que les gens
font.
Donc
le go
est un exemple
où on dit
que
je veux
que le type système
soit limité
à l'application des gens
parce que
je veux que le software
soit simple.
Je crois
que le go
ou le gleu
est similaire.
C'est comme
le type système
est là
pour
simplifier
les choses.
Et c'est
quelque chose
que vous devez considérer.
Les gens
ont parlé beaucoup
de
comment
les gens ne sont pas
vraiment
heureux
avec le trade-off
qu'ils ont fait
dans le type système
et dans le langage
parce qu'ils pensaient
que c'était trop constrainant.
Et certaines autres personnes
sont heureuses.
Ils disent
que c'est mon spot
je ne pense pas
que les verbaux
sont dans des places
je ne pense pas
que ce soit
ce que
ce que
il faut
C'est une partie
de ce balance
entre
la simplité
de l'expressivité
et de la correcté.
Et pour nous
les défis
vous savez
nous avons un langage existant
pour les types de
de la qualité
que ça va changer
et
comment
nous pouvons
intégrer
ça
dans des
que
à l'endredi
les développeurs
ils
ils pensent qu'ils sont
en train de
ne pas
un subset
de l'expressivité
qui est limité
et ne leur permet
de le faire exprès
X, Y, et Z
parce que
ce que je dis à l'événement
et la raison
pourquoi je ne veux pas
qu'on se constrainent
l'expressivité
c'est parce que
je suis
très heureux
avec le subset
qu'on a fait
je suis très heureux
avec les features
qu'on a dans le langage
et les choses
que nous pouvons exprès
et, encore une fois,
ce n'est pas
que je me dis
que
j'ai fait
un job
parce que
comme je l'ai dit
plusieurs fois
comme
95%
des features
ils sont juste
venus de l'arrière
je suis super heureux
avec ça
donc je ne veux pas
que tu restes
ça
et
juste une autre chose
c'est que je ne sais
si tu
je ne sais
comment
si c'est trop vrai
mais
Wikipedia
a
articles
en simple anglais
qui était
comme un variateur
de l'anglais
qui était
comme
c'est
simple
on est en train de
exprès
et la chose qui est
que
les articles
comme
si tu pourrais
avoir un paragraph
et transmettre
une à l'autre
le simple paragraph
le simple anglais
c'est que
les temps
qu'ils ont
fini
en plus
en plus
parce que
tu perds
l'objet
d'exprimer certaines choses
et maintenant
tu dois
prendre
un plus
en plus
et je pense
que c'est une
analyse
qui aussi
apprécie
les
langues programmées
et
et c'est
et c'est le trade-off
que nous avons
fait
comme
à la première
type de systèmes
ils étaient
ils étaient restricés
ils ne pouvaient pas
expérer beaucoup
mais comme un type de système
qui a évolué
et on pourrait expérer
plus de codes
les gens qui
utilisent
l'analyse dynamique
parce qu'ils
ont senti
le sang
ils sont comme
oh
maintenant
les types de stratégie
sont beaucoup plus
mieux
et ça me permet
de expérer
ces choses
et
je pense
et je pense que
peut-être
peut-être
en fait
on va trouver
comme un spot parfait
ou peut-être pas
mais c'est
c'est
c'est ce qui est
bien
et
et
c'est
le
c'est le juggling
je suis en train de travailler
et
on a été
on a publié le papier
comme
développé
les
théories
de nouvelles
idées
de comment
comment
les interfaces
entre le type
de système
et l'analyse dynamique
de la langue
donc on a été
travaillé
vraiment
très
très
très
en essayant
d'enverser
ces questions
et le
prochain version
qui va arriver
dans le mois de la 2
va être
la première version
qui a
ces
les
les cédes
du système type
sont déjà
dans le compiler
donc
ce que j'ai voulu
maintenant
être très spécifique
c'est être très
théorique
et
comme
exploratoire
dans le
dans le comment
donc
être très spécifique
donc
encore
dans l'électriciel
on est
comme
30
on est
souvent
pas
très spécifique
on est
très spécifique
ce que je veux
c'est que
je veux
utiliser
toutes les informations
qui existent
dans le programme
votre programme
aujourd'hui
déjà
et
faire le système type
et vous aider
à trouver
les bugs
dans votre
code
sans avoir
à changer
une ligne de code
c'est comme
si on a
l'infrastructure
mais ce n'est pas
vraiment
un infrastructure
mais c'est
l'idée
ce que j'ai voulu
ce que nous voulons
faire
parce que
je pense que c'est
bien
parce que
cela nous permet
de
expérimenter
le système type
sans faire
des changements
dans la surface de la langue
ce qui est important
parce que
peut-être
les choses
peuvent toujours être
d'accord
peut-être
ne sont pas
heureux
avec le système type
au final
donc c'est important
pour nous
d'avoir
une façon
d'expérimenter
sans
pousser
des usages
pour les usages
et
et cela
permet de
improving
leurs messages
pour
assurer
la performance
et puis
si
je suis
heureux
avec ça
nous
allons
à un point
effectivement
ajouter
la langue
et on
sera
capable de
avoir
des notations
et ce qu'on
posent
Green
d guillot
non
la
male
nous
de
tous
supposedly
Parle au début de notre conversation, de la construction de l'un des deux, c'est que la
�éité est vraiment belle, le programme functional est vraiment belle.
Il y a une confiance que vous avez donné que cette fonction ne va pas muter la chose que
je l'ai passée.
En JavaScript, vous avez des fonctions qui peuvent juste muter l'objectif, comme
sur la main.
Il y a des fonctions standardes en JavaScript que certains les mutent et certains ne.
Vous avez besoin de savoir qui fait quoi.
Et je pense que c'est un type de surface de la vie, je suis certain que je suis passé
le bon moment ou que je suis retourné le bon moment.
C'est comme si l'immutabilité vous donne la confiance que la mutation ne va pas être
la même chose.
Et comme si vous avez des fonctions de la fonction, que vous avez des garanties, que
vous avez des fonctions de la fonction, que vous avez des fonctions de la fonction, que vous
avez des fonctions de la fonction, que vous avez des fonctions de la fonction, que vous
avez des fonctions de la fonction, que vous avez des fonctions de la fonction, que vous avez des fonctions
de la fonction, que vous avez des fonctions de la fonction, que vous avez des fonctions de la
fonction, que vous avez des fonctions de la fonction, que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction, que vous avez des fonctions de la fonction, que
vous avez des fonctions de la fonction, que vous avez des fonctions de la fonction, que vous avez des fonctions
de la fonction, que vous avez des fonctions de la fonction, que vous avez des fonctions de la
fonction, que vous avez des fonctions de la fonction, que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction, que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction, que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction, que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction, que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction, que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction, que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction, que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction, que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction, que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction, que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction, que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction, que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction, que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction, que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction,
que vous avez des fonctions de la fonction,
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