Impressionnant. J'ai donc le privilège de vous présenter nos deux prochains orateurs, Matt Klein est
un ingénieur logiciel chez lift, mais est bien connu comme le créateur d'envoy.
Il a travaillé sur la virtualisation des systèmes d'exploitation, distribués
mise en réseau des systèmes et facilité d'utilisation des systèmes depuis plus de 20 ans
à travers une variété d'entreprises. Les faits saillants incluent la direction du développement de Twitter
Proxy L7 Edge et travail sur l'informatique et la mise en réseau hautes performances pour
Amazon ec2. Il y a un Idaho avec le fils de balayage et
fille et trois,
Cats as Glare Own est le fondateur du PDG de vectorisé
où lui et l'équipe piratent le panda roux. Une plateforme de streaming moderne pour
Charges de travail critiques. Précédemment. C'était un ingénieur principal
Akamai. Et co-fondateur et CTO de Concord à qui je dois un
moteur de traitement de chaînes hautes performances intégré étonnamment
C++, qui a été racheté par Aqua my en 2016, lorsque
a présenté les deux panélistes pour qu'ils se joignent à moi pour un coin du feu, discuter d'open
projets sources, alimentés.
Par C++. C'est Bienvenue, Matt et Alex sur scène.
Hey comment ça va? Bonjour? Bonjour. Comment ça va? celle d'Alice ?
Et nous avons, Matt. Ouais. Je suis ici. Tous
droit. Je vous ai donc donné toute l'introduction. Écoute, je dois poser la question, vous tous
créé pour des projets incroyables et l'a fait. Que feraient certains
considérer l'impensable. Vous avez choisi C++ pour votre
langue de choix. Je vais commencer par toi, Matt. Je suis nul pour ceux qui ne savent pas
est un truc de proxy réseau très populaire qui fait partie de ce que la plupart considèrent comme le
maillage de services.
Et à l'époque, un jeune garçon est sorti, la plupart des gens l'auraient compris, vous l'auriez écrit dans quelque chose comme go ou même
Java dans cette mesure. Dites-nous pourquoi vous avez choisi C++ pour Envoy
le projet open source. Oui. Eh bien, vous savez, je suppose que de
a, d'un point de vue d'arrière-plan. Je travaille avec CNC pause, pause depuis plus de 20 ans,
et au moment où nous avons commencé à travailler sur,
garçon, j'avais écrit des systèmes précédents et c et C++.
Et la principale chose que nous recherchions à l'époque était un
écosystème robuste.
Élément de bibliothèques. Donc, évidemment, C++ a de nombreuses années de très robuste
bibliothèques et voulait aussi un
expérience de latence très faible. Nous ne voulions donc pas d'un langage ramassé. Maintenant,
il y a une conversation plus large qui aura probablement pour savoir si j'aurais choisi
C++ aujourd'hui. Et et la réponse en 2021 est
franchement, probablement non, mais tu sais, quand j'ai commencé sur garçon, au début
2015, en regardant
L'état des différentes langues dans l'écosystème, vous le savez, va à la poubelle.
La collecte n'était pas aussi faible qu'aujourd'hui. La bibliothèque était,
les bibliothèques ne sont pas aussi robustes qu'elles le sont. Rester. La rouille n'était pas là où elle est. Aujourd'hui.
Il me semblait juste à l'époque. Au début de 2015, quand j'étais
à partir de ce projet que C++ avait, vous savez,
la meilleure combinaison de performances et de bibliothèque
écosystème et outillage. Et, vous savez, j'aime le dire.
Il n'y a pas de grandes langues, comme toutes les langues, l'écosystème a ce problème. Il s'agit donc principalement de choisir votre
poison.
Je veux vous poser la même question Alex, pour ceux qui ne savent pas. Le panda roux est un
remplacement sans rendez-vous pour le célèbre. Le système de messagerie Kafka a quelques ajouts
fonctionnalités supplémentaires autour des performances. Mais même question pour toi Alex, tu sais, tu avais beaucoup de choix en termes
d'entre vous le savez, construisant ce nouveau service de streaming. Pourquoi as-tu choisi
C++ avec l'open source ?
Ouais, c'est quand j'ai commencé le projet
est vraiment venu.
Je suis désolé de vous interrompre. Votre audio est très statique.
D'accord.
Essayez juste de le voir.
C'est ça qui change.
Améliorer ou est-ce que c'est toujours super? Alors si tu ressens la même chose,
c'est super stylé. Juste j'essayais peut-être de redémarrer et je reviendrai
à vous sur cette question parce que parfois, vous savez, la connexion peut devenir un peu bizarre
vous pouvez donc prendre un moment pour fermer le navigateur et revenir. Comment ça marche maintenant ?
D'accord, cool.
Kelsey et je pense que nous ne pouvons pas vous entendre. D'accord, Matt, maintenant nous ne pouvons pas
reviens vers toi. Je pense que j'ai toujours été curieux de savoir quand vous choisissez et C++
langue parlée, vous savez, il y a un impact sur les contributions du plus large
Communauté, vous savez, vous voulez choisir une langue familière aux personnes qui envisagent de
étendre ou même utiliser le produit. Comment s'est fait le choix du C++ ? Type de
contributions communautaires impactées ?
Ce qui est vraiment intéressant, c'est que, vous savez, certains
de nous au sein de l'industrie dans laquelle nous vivons. Et ce que j'aime appeler le Twitter
bulle, non ? Et si vous si vous vivez dans la bouteille Twitter, le
Bulle Twitter, les gens vous feraient penser que le C++ est un
langue morte et personne ne le sait plus. De plus et c'est impossible à trouver,
vous savez, des gens qui peuvent écrire du C++. Je veux dire que ce n'est pas vrai
C et C++ sont toujours, vous savez, probablement le top
trois langues les plus populaires.
En utilisation, qu'on le veuille ou non, vous savez, ce sont ses Millions, sinon
des dizaines de millions de nouvelles lignes de c et de C++ écrites chaque année, n'est-ce pas ?
Et si vous regardez les grandes entreprises, que ce soit Facebook ou
Google ou Microsoft, même si bien sûr, les gens se tournent vers des langages comme
rostand go et vous savez, des choses qui ont de meilleures propriétés de sécurité. Il y a toujours
des milliers d'ingénieurs logiciels de haute qualité qui sont des experts en
CN C plus plus. Ce qui est intéressant avec Envoy, c'est
que sur
Audience initiale de garçons composée de personnes de niveau relativement bas qui traitent avec des
logiciel de performance, vous savez, ils ont tendance à être très à l'aise dans ce
environnement. Et ironiquement, quand sur garçon
est sorti ou était open source en 2016, le premier
la clientèle principale était plus large, des entreprises comme Apple et Google et
Microsoft. Et ces types de personnes qui, vous savez, avaient toutes des tonnes de
Bibliothèques C++ des tonnes d'expertise C++. Donc
de
Vous savez, une perspective d'intégration. Franchement. Il n'a jamais été difficile à trouver
personnes à travailler et contribuer à la base de code d'envoy. Nous avons des tonnes de personnes
qui peut écrire ce code de bas niveau. C'est franchement beaucoup plus compliqué
pour trouver des personnes qui vont travailler sur le python à la pose ou la documentation
ou tous les problèmes open source typiques. Donc,
tu sais, je n'ai jamais vraiment été un problème
pour le projet. Vous savez, c'est écrit en C++. je pense qu'il y a
beaucoup de gens qui ont pu
Capables et disposés à contribuer, il existe certainement un sous-ensemble de personnes qui
ont été laissés de côté, vous savez, et c'est bien sûr malheureux.
Mais vous savez, je pense que peu importe la langue ou l'écosystème que vous choisissez.
Il y aura toujours un sous-ensemble de personnes qui choisiront elles-mêmes parmi
ce.
Impressionnant. Je pense aussi que nous pouvons voir le logiciel et
arrière. D'accord génial. Maintenant, c'est ton dos. Bien Super. Bisous, mon
micro maintenant, c'est beaucoup, beaucoup mieux. Alors, bon retour. je vais
revenir à cette question précédente. Tu sais, toi, tu as du rouge
panda, qui remplace Kafka et je sais que vous avez eu un
beaucoup de choix dans le choix d'un langage de programmation, et vous avez choisi C++, vous
sais, je suppose qu'est-ce qui vous a conduit à cette décision?
Juste pour Echo. Je pense en partie à ce que Matt a dit. j'essayais de construire
système de stockage à faible latence en particulier. Les deux choses que j'essayais de faire
une. Je voulais le construire en utilisant le réseau ou l'architecture. Et la raison de
c'est que le fond qui est venu dans les systèmes de stockage, au moins
déplacé de, essentiellement la coche Spinning Disk de
comme, vous savez, lorsque vous avez des problèmes de coordination de la rouille du processeur, en particulier
avec l'augmentation du nombre de cœurs. Et donc, je
Il essayait de créer une latence aussi faible que possible comme système de stockage
et tu sais, franchement il n'y avait rien de bon
bibliothèques système pour moi d'exploiter qui étaient en C++. j'ai aussi écrit
C++ depuis si longtemps à partir de périphériques embarqués similaires.
Avant. J'ai écrit un processeur de flux en in, in, en C++. Et
donc c'était vraiment, j'essayais vraiment de serrer autant
performances que je pouvais au niveau du matériel et
Et le projet est lancé hors de moi en essayant de résoudre, je suppose qu'un problème pour
experts par des experts, ce qui était comme, vous savez, pourquoi le
alternative à la diffusion d'événements ? Vous savez, pourquoi est le, quel est le, quel est l'écart entre
le travail dur? Ce que le travail acharné peut faire et ce que le logiciel peut faire est si important.
Et donc quand j'étais à Akamai, j'essayais vraiment de
comprendre cela et voir comment l'optimiser. Et donc le projet vraiment
a commencé avec moi en essayant d'extraire autant de performances du matériel
et ce qui est intéressant.
Je pense que je suppose que pour faire suite à cette question, nous sommes allés et
nous avons construit une entreprise sur ce projet C++, qui est probablement,
vous savez, contre la sagesse commune. Mais à l'écho
le deuxième point qui me correspond vient de faire, c'est que le
le logiciel est vraiment fait pour
les entreprises qui ont de grandes ont été fermées, vous savez, qui ont une expertise, etc.
Et donc dans l'open source, nous n'avons en fait pas trouvé autant
de nombreuses contributions comme nous le souhaiterions.
Comme, parce qu'en plus le logiciel est écrit en C++. Il utilise vraiment toutes les dernières
des fonctionnalités telles que les lambdas polymorphes C++, 20,
couvrir, les adolescents, et cela nécessite de penser au dernier compilateur de plan. je pense
mentir 12 est vraiment. Et ainsi nous avons vu
défis réels en le faisant. Mais nous
choisir de vraiment rester avec le dernier compilateur car cela nous permet de
livrer des logiciels, je pense, plus rapidement aux clients. Mais de toute façon, ce
l'été c'est qu'on essayait juste
Tirez autant de performances que possible du matériel.
Je vais rappeler à ceux qui regardent. Nous avons Matt Klein le créateur. Envoyé. Nous rigolons Alice,
sur le créateur du panda roux et nous répondrons aux questions tout au long. Donc je
entrera tisser ceux-ci. Nous avons en fait une question qui a déjà surgi. Alors je vais
Pour commencer avec toi sur celui-ci, Matt, tu sais aujourd'hui, pourquoi choisirais-je
C++ sur quelque chose ? Comme aller et je pense que vous avez frappé à ce début de votre
réponse, mais peut-être pouvons-nous aborder cette question plus concrètement. je
pensez, vous savez, si vous regardez chaque langue et
associée
Écosystème. Il y aura des avantages et des inconvénients pour chacun d'eux. Droit? Je veux dire si tu regardes
à quelque chose comme oh c'est un tu sais, c'est un fantastique
langue en termes de Simplicité. C'est très facile d'y aller
comme un grand écosystème de bibliothèque. Il a un très faible
ramasse-miettes de latence, mais il a toujours le ramasse-miettes. Ce qui signifie que
il va y avoir de la latence, des pauses difficiles à comprendre.
Ils ont fait un travail incroyable avec le runtime. Donc en 2021,
Je pense qu'il y a en fait
Nous avons probablement très peu de choses critiques pour les performances qui ne pourraient probablement pas être
fini avec go, mais c'est vraiment ce à quoi cela va se résumer. ça va
se résume à, vous savez, l'écosystème logiciel, la bibliothèque
Support. Et si vous pouvez gérer le ramassage des ordures, en termes
de, je pense que la meilleure question aujourd'hui, sur laquelle je suis sûr qu'ils seront des questions de suivi est,
vous savez, C++ pour quelque chose comme la rouille, n'est-ce pas. Et pour moi c'est un,
c'est une question beaucoup plus compliquée parce que la rouille n'est pas ramassée,
droit?
Vous savez, c'est similaire à Swift à cet égard. Bien que, vous savez, il y a
caractéristiques de performance de Ross qui sont là encore mieux que Swift
et et la rouille apporte avec elle. Beaucoup de garanties de sécurité. Un C++ fait
pas le droit ? Et, et c'est vraiment l'éléphant, et la pièce était
C++ est aussi bon que tous nos désinfectants et
l'outillage et toutes ces choses sont pour nous aider à écrire des logiciels. Qui n'a pas de mémoire,
vous savez, les courses et les courses de données, et tous ces types de
problèmes. Voir,
E + + encore, a un risque très élevé qui lui est associé et pour quelque chose comme
Envoy, qui est le processus réseau assis dans le réseau Edge,
droit? Je veux dire, c'est que nous avons mis beaucoup d'efforts dans, vous savez,
essayer d'écrire, de citer, de C++ sûr, vous savez,
en nous assurant que nous vous fuzzons et exécutons tous les désinfectants et toutes ces choses.
Donc, en termes de C++, d'abord rouillez encore, nos forces ou vont,
Je pense que ce sont les profils de latence. ça va être la bibliothèque
écosystème. Et
Evidemment, la sécurité garantit, je ne conseillerais franchement jamais à personne d'écrire quoi que ce soit
aujourd'hui. Et C++. Je me rends compte que c'est le superstream C++.
Désolé, mais je ne conseillerais à personne de commencer
avec C++ aujourd'hui, non ? C'est comme, je pense que C++ devrait être fait pour une raison
soit des performances très critiques. Garanties existantes
Écosystème de la bibliothèque. Droit? Quand il y a d'autres solutions
là-bas, cela pourrait être un meilleur choix. Donc encore une fois, il y a juste beaucoup
de compromis ici.
Impressionnant. Même question pour toi Alex, tu sais, si tu veux peser là-dessus, tu sais, je suppose que quand tu penses à
C++ contre les alternatives, je pense que vous avez déjà compris, vous savez, combien
de la bibliothèque existante, l'écosystème, joue dans cette décision. je pense que la deuxième question
nous avons ici qui suit est, vous savez, nous avons mentionné toutes ces choses, vous
savez-vous, ont-ils des bibliothèques comparables et si vous deviez regarder ce genre de choix aujourd'hui,
diriez-vous que C++ vous donne toujours ce dont vous avez besoin pour les performances ciblées
travail que vous faites. Ouais, tu sais, un bon,
ils sont vraiment.
N'était pas, comme, je pense que la bibliothèque a été testée au combat
pour la menace pour l'architecture de la cour à ce que nous essayions de faire. Et je pense
Sistar du côté C++ a été fait, a été fait de manière très réfléchie
en fait regardé au repos. Quand j'ai commencé ça, croyez-le ou non. je
a écrit le premier prototype de panda roux à Rust. Et j'ai trouvé assez de boîte de compilateur dans le
première semaine que j'étais. Comme, je ne suis pas un expert en
Ruston quand j'essaye de contourner ça. J'ai trouvé assez de boîte de compilateur. C'était comme, je fais, je fais.
J'ai l'impression que, tu sais, je pourrais être productif dans ça assez vite
et et, vous savez, c'est c'est je pense que Russ est une grande langue. Mais
de toute façon, sur, je fais également écho à ce que Matt a dit, je pense qu'aujourd'hui, je voudrais
commencez probablement par quelque chose comme West pour la plupart des projets, mais vraiment pour les choses qui nécessitent une faible latence.
Exiger la prévisibilité de l'empreinte mémoire pour nous. C'était aussi
à peu près comme la comptabilité fine et l'écosystème des bibliothèques. Donc
Je vais vous donner deux exemples aujourd'hui. Donc le troisième disque était vraiment
la grande conduite.
Résultat, non ? Et donc nous avons pu tirer parti des choses
comme la Gen-X obéit, le
évolution de la lèvre AIO, son genre de saute mon esprit.
J'entends vos trucs de sonnerie. Super tôt. Et puis le suivant
ce que nous avons fait, c'est d'intégrer cela sur le troisième avantage ou
vous savez, nous n'utilisons pas le cache des pages du système de fichiers. Nous écrivons en quelque sorte le nôtre
répartiteurs. Et donc quand vous êtes, quand vous travaillez à ce niveau de
Un code où vous essayez vraiment, dans une large mesure. J'ai envie de ranger Anna
système est presque comme un petit système d'exploitation spécialement conçu pour ce que vous essayez de faire.
Et ce qui était sympa d'écrire en C++ pour nous, c'est que nous avons récemment,
a ajouté Watson et nous avons donc lié dans Pickens la course VA
temps. Je sais aussi qu'Android le fait et et aussi avec un
coupler d'autres VMS comme wah bone et d'autres choses, un autre point d'extensions.
Il y a donc de réels avantages pour l'écosystème à écrire le genre de
un logiciel qui
Tu sais, j'ai tendance à écrire ou que j'aime rouler qui sont
Je suppose que résumer, vous savez, les systèmes critiques de mission qui sont destinés à
faible latence en particulier. Et alors oui, alors
l'écosystème était vraiment, vraiment une grande partie de la partie
de choisir C++ pour nous et franchement aussi l'expérience, non ? je pense si
J'écrivais le reste depuis aussi longtemps mais je ne pouvais pas parce que
la rouille la rouille a été inventée depuis aussi longtemps que je programme. Mais depuis très longtemps
temps et je me sens à l'aise et
Et je pense, vous savez, c'est aussi la vitesse que je pense que j'aurais reconsidérée.
J'aurais peut-être contourné les bogues du compilateur. Ce n'est pas comme si j'étais aussi
Juste pour être clair. J'ai aussi trouvé assez de bugs du compilateur, en particulier avec
Routines de code C++ avec la façon dont les lambdas pourraient capturer cela
qu'il fait, vous savez, pour certains, pour un non-expert d'entrer dans un
C++, 20, codebase, comme vraiment difficile à comprendre. Donc je pense,
vous savez, les langues n'existent pas isolément quand vous faites vraiment un
le choix est
Qui es-tu? Dans quel type de systèmes êtes-vous intégré ? L'écosystème était
important, comme je l'ai mentionné V8 et webassembly
et puis je dirais que oui. Celles
sont ce sont les trois principales raisons. Impressionnant. Alors vous deux
mentionné. Je vais passer la parole à Matt. Vous avez tous les deux mentionné les fils. Mmm. Et je pense
pour les personnes novices en C++ et peut-être nouvelles pour savoir pourquoi ISM et ses extensions et dans
général, qui peut donner aux gens un aperçu rapide de pourquoi ne l'a pas été, a été choisi
en tant que composant d'extension ou couche à Envoy. Qu'est-ce que c'est
Cela fait. Et c'est quoi? Apporter au projet en général ? Sûr. Oui,
donc, vous savez, du point de vue d'un projet open source. Nous avons fait beaucoup de travail pour faire
Plateforme Envoy très extensible. Et par extensible. je
signifie simplement qu'il existe de nombreux points différents auxquels les gens peuvent
compiler dans différentes extensions pour faire différents types de réseau
le filtrage ou la sortie de métriques ou quelque chose du genre. Et
historiquement, la seule façon d'écrire
les extensions sont
Via C++ et comme nous le faisons, comme nous en avons parlé à ce sujet
sur ce flux, vous savez, ce n'est pas difficile à trouver, vous
savoir, des programmeurs C++ de très haute qualité, qui feront un excellent travail et
ajouter des extensions s'ils s'en soucient, mais lorsque vous essayez de
fournir un produit à l'ensemble de l'industrie, vous allez laisser de côté. Beaucoup de
les gens écrivent qui ne sont pas à l'aise, vous savez, avec des extensions d'écriture et
C++ et, vous savez, alors ce que nous
ce que nous avons trouvé
Et est-ce que vous savez, nous voulions donner aux gens
l'opportunité de parcourir et d'écrire des extensions et des langages différents.
Et la première chose que nous avons faite là-bas, c'est que nous avons fait Lua et
Lua est en fait un langage très Papa ou de script utilisant beaucoup de moteurs de jeux.
Il est intégré à de nombreux systèmes C et C++
et le problème avec Lua c'est que tu sais,
la langue a des inconvénients et puis c'est en fait
c'est une sorte de langue abandonnée.
C'est une belle histoire, dans laquelle je ne vais pas m'écarter en ce qui concerne la personne qui a écrit
légitime. Histoire très intéressante. Je vais vraiment chercher,
mais l'assemblage Web est un
runtime qui vous permet théoriquement de prendre n'importe quel
langage différent que ce soit C++ ou minuscule, allez
ou une liste, peu importe, compilez-la en un
langage mordant commun, puis exécutez-le via un runtime webassembly,
et il a été écrit à l'origine pour le navigateur. Donc en gros,
Comme vous le savez, le prochain modèle d'extensibilité du navigateur pour permettre aux gens de
écrire des plugins de navigateur, mais il a vu une grosse mise à jour que j'ai
penser comme un remplacement Lua essentiellement comme
un cadre d'extensibilité qui va permettre aux gens d'entrer et
écrire dans la langue avec laquelle ils sont à l'aise. Alors, que ce soit à nouveau ou
citation de listes, C++ sûr ou quelque chose du genre,
et nous avons commencé à créer un assemblage Web
extensions dans Envoy et
En excellent. Il est encore très tôt. Il y a en fait il y a certains
problèmes de performances avec le runtime webassembly. Vous ne pouvez plus, cela revient à
latence et performances. Vous ne pouvez donc pas obtenir la même latence et les mêmes performances via le
runtime comme vous le feriez avec Native C++. Mais je crois vraiment que ce
c'est l'avenir car il va nous permettre d'écrire aux gens
pour permettre aux gens d'écrire des extensions qui sont en bac à sable et sont sûres
et ils peuvent les écrire dans n'importe quelle langue avec laquelle ils sont réellement à l'aise. Donc
un, suivi rapide que j'ai ici est quoi?
Type d'extensions, vous savez, étant donné qu'il envoie un proxy réseau. Quel type de
extensions dépassez-vous la communauté d'écriture ? Et aussi quelle était la couche sage mm
là pour permettre aux gens de faire à l'intérieur de l'envoyé. Oui. Donc
les extensions les plus courantes de quelque chose comme Envoy sont. C'est probablement en train d'obtenir un
peu dans le côté réseau des choses, mais pour le public là-bas, vous êtes
probablement familiarisé au moins avec un niveau élevé, les concepts
d'un proxy réseau ou d'une API Gateway ou du protocole HTTP,
mais tu peux penser
Les extensions les plus courantes sont disons que je fais un
demande, tu sais, d'avoir Foo, n'est-ce pas ? Et il y a quelques
En-têtes HTTP, vous savez, vous savez, bar, est égal à x,
droit? Disons que dans mon entreprise. je veux voir si
la barre est égale à X, puis ramenée à y,
droit. Je veux dire que c'est le type d'extension dont je parle, c'est que ces
viennent beaucoup et des contacts d'affaires où les gens
veux juste faire très subtil.
Les changements de logique d'application dans leur réseau, les proxys, font différents
les transformations de données et ce sont des choses que vous n'allez jamais vraiment faire
codifier et config, non ? Il y aura toujours une petite application
logique que vous voulez que les gens fassent. Et historiquement, les gens ont
fait cela en utilisant Lua, mais comme nous l'avons dit, Lua est
quelque peu fin de ligne. D'accord. Alors maintenant, nous cherchons en quelque sorte, quel est le
l'avenir de ça ? Type de mail d'extensibilité. Cela ne veut pas dire que l'assemblage Web
ne pouvait pas être utilisé pour écrire en gros.
Des extensions, mais ce que nous avons trouvé, c'est que, vous savez, quelqu'un
qui est capable d'écrire une très grande extension, comme pour un nouveau
protocole réseau ou quelque chose du genre. Ils peuvent probablement écrire du C++.
Et c'est là que ça devient, tu sais, ça devient un peu délicat parce qu'ensuite, il y a ça
compromis sur les performances. Je considère donc le modèle d'extension webassembly comme
beaucoup plus pour apporter l'extensibilité de l'application,
et la modification des masses pour l'ensemble de l'industrie.
Ce n'est peut-être pas confortable d'écrire.
C++ pour un très petit changement. Ce qui, encore une fois, pourrait être, vous savez, si
la barre d'en-tête équivaut, vous savez, aux aliments contenant des herbes comme
égal à, vous savez, d'accord. je vais juste rappeler
les téléspectateurs que nous avons. Matt Klein, le créateur de tout le monde. J'étais gay. Allez le créateur
de panda roux qui est un remplaçant de Kafka. Alors tu peux répondre,
vous pouvez poser vos questions dans la section Q&R. Je vais les retirer.
En fait, j'ai une autre question. Cela va vous revenir, Alex. Donc tu sais
cette question est, à quelle fréquence?
Vous envisagez de réécrire des parties de la base de code en fonction de
une nouvelle fonctionnalité de langue. Si vous pouvez gagner en performance, dites
5 % de performance est, voudriez-vous revenir dans certaines parties de la base de code et
peut-être réécrire les choses pour tirer parti de certaines nouvelles fonctionnalités linguistiques nécessaires.
Désolé, vous parlez de cette requête
écrire une partie de la base de code. C'est une fonctionnalité de langage avec en C++ ou apportant un
tout nouvel écosystème dans le dans le
pays. Allons-y avec les deux. Je pense, tu sais, il va y avoir quelque chose
A dire pour les personnes ayant des bases de code C++ existantes. Je sais que vous avez mentionné plus tôt que
vous vous en tenez tous au dernier et au meilleur ensemble de fonctionnalités. Peut-être que ce ne sera pas juste le premier
lieu mais j'ai vu d'autres projets qui ont choisi d'apporter
C++ quand il est écrit dans un autre. La plate-forme centrale
est construit dans une autre langue. Alors peut-être que vous pouvez aborder cela des deux points, vous savez, comment
souvent, vous savez, revenez-vous en arrière et, vous savez, pensez à réécrire une partie de cette base de code
soit en utilisant de nouvelles fonctionnalités et C++, ou avez-vous déjà envisagé
une autre langue ? Comme aussi bas qu'un
Si nécessaire, pour des parties de la base de code, oui, car
donc, sur le déplacement, cela pourrait basé sur évolué dans la base de code.
Nous ne revenons généralement pas en arrière et ne réécrivons pas les bases de code existantes. Ce que nous faisons est comme
les nouveaux codes sont, je pense, un excellent exemple, ce sont les co-routines.
Les rideaux sont passés par là. Je pense que sous une forme de prototype pendant un certain temps et quand vous commencez à utiliser
eux, GCC, par exemple, a cette sémantique de durée de vie. Lorsque vous
faire une capture Lambda comme un
Très variable et vous le passez dans le paramètre bracket de capture Lambda
qui garde, vous savez, c'est le cas. Il ne transfère pas correctement la propriété dans le
lampe dans le rappel. Droit? Et ainsi, vous êtes
va courir dans une nouvelle boîte. Chaque fois que vous testez, le compilateur est essentiellement le
À la pointe de la technologie et la façon dont cela fonctionne est vraiment
commencerons à vouloir d'abord nous aimons construire notre propre
compilateur. Nous avons donc compilé notre propre compilateur et maintenant c'est en fait une raison stratégique.
Pour être honnête, pour ceux d'entre vous qui essaient d'évoquer la base de code, c'est
une grande partie de, vous savez, par exemple, la façon dont cela a été fait dans l'ensemble de mon projet que je viens. je
était vraiment tout ce que vous obtenez avec Upstream comme up get et vous aimez rester coincé sur la broche
sur une distribution et c'était vraiment frustrant parce que tu travailles
comme, vous savez, il y a quatre ans de problèmes de compilateur que vous essayez de contourner et donc
comme, vous savez, il existe des solutions de contournement connues et donc une chose dont nous voulions nous éloigner
c'était comme, d'accord, je ne veux pas utiliser ce très vieux compilateur.
Je pense que nous avons probablement pris le pendule peut être un
un peu trop en avant et utilisez les dernières technologies de pointe - et donc, vous savez,
nous finirons souvent par déposer des bogues contre le tracker GCC ou le llvm
traqueur. En fait, vous savez, il y a une si grande communauté de personnes sophistiquées et talentueuses
les gens que lorsque vous cherchez un livre, il y a généralement quelqu'un d'autre dans le
l'équipe du compilateur cette pièce. Donc cette partie je suppose dans notre évolution interne de
le langage est que nous allons commencer par les plus petites sections.
Coroutines était un excellent exemple récemment migré pour entrer maintenant et couvrir également les adolescents
a eu un grand impact sur les performances.
À cause de leur durée de vie. La sémantique que le compilateur peut construire a généré une machine à états pour vous
et c'est super efficace. Et donc nous allons continuer à évoluer. Nous
ne reviendra pas en arrière et ne réécrira pas toute notre future base de code là-dedans.
Et puis je pense qu'il y a une seconde, une chose ici, qui est intégrée à tout un écosystème. Disons un
runtime webassembly rouille parce que nous sommes le troisième enregistrement
architecture avec notre propre allocator, non ? Donc on n'utilise pas
comme Jay Malachor, TC, Malik ou quelque chose comme ça.
Vous savez, je pense que nous devrions peut-être reconsidérer cela à un moment donné, mais nous gérons notre propre répartiteur. Et
le problème avec certains externes
écosystèmes, c'est qu'ils, vous savez,
Ils pensent qu'ils ont un répartiteur différent à bord. Donc, en fait, intégrer les écosystèmes lorsque vous
avoir une coutume. Je la regarde, je pense que c'est le plus gros point de friction. Nous n'utilisons pas le virtuel
mémoire par exemple, donc, au démarrage du programme, on se trouve dans la, la
mémoire que l'utilisateur nous permet d'allouer et qui est
ce. Il n'y a pas de mémoire supplémentaire allouée. Droit? Et donc,
nous rencontrons essentiellement des problèmes similaires à ceux du noyau Linux en termes de
fragmentation de la mémoire coalescence, Etc. Choses que certains alligators sont
Vraiment bon à. Et maintenant, le point de friction est que nous avons
testé. Par exemple, les temps d'exécution de l'assemblage Web de rouille ? C'était vraiment
difficile de s'intégrer réellement avec eux. Et une partie de la raison pour laquelle nous sommes allés avec VA
est parce que nous pouvons, vous savez, creuser dans l'allocateur et
sorte de l'accrocher à notre propre allocateur externe. Et donc
c'est le genre de friction au niveau le plus bas que vous aurez lorsque vous essayez d'apporter un
nouvel écosystème. Si votre code a fait des hypothèses particulières, ou si vous
comme même si tu
Sélectionnez la conception. Car comme nous l'avons fait avec le troisième disque, avec nos propres applicateurs personnalisés, bla, bla, bla,
apporter un écosystème. Vous n'apportez pas seulement le code, vous apportez les hypothèses selon lesquelles le
programmeurs de cette base de code, est venu avec. Et pour la plupart des gens, ils courront,
tu sais, que ce soit Lindsay allocator ou J my
logo ou TC mon logo ou quelque chose comme ça. Il s'agit d'un répartiteur à usage général. Et
donc je pense que ce sont les plus gros points de friction et je pense que ce sont les véhicules extatiques
et des choses dans le genre. Mais je pense que l'emplacement est le plus difficile.
Vous répondez à la question suivante que nous avons eue qui était, vous savez, la compatibilité autour de la mémoire
l'alignement entre des choses comme Waze. Mm et la base de code de base. je pense que tu as
a parfaitement abordé celui-ci. Eh bien, ils vont aller à Je vais ramener celui-ci à Matt
est-ce que vous savez, quand nous pensons à la sécurité de la mémoire, vous savez, un grand sujet aujourd'hui c'est
super populaire dans tous les projets open source est autour de la sécurité.
Il y a des appels pour vraiment comprendre d'où viennent les dépendances
penser à la sécurité de la mémoire et à toutes sortes de problèmes. Tu sais, je suppose
Matt en Européen. Comment vous débrouillez-vous ?
Certaines des choses autour de la sécurité de la mémoire, le logiciel sécurisé
chaîne d'approvisionnement, vous savez, d'où viennent vos dépendances et assurez-vous simplement que vous pouvez
détenir la qualité autour de la sécurité du projet.
Oui. C'est une, c'est une question très épineuse. Et malheureusement, quand vous
commencer à parler de cette question, il y a beaucoup de plaisir.
Il y a beaucoup de discussions qui, je pense, devraient être nuancées, mais
n'est pas et je vais vous donner un exemple, non?
Droit. Je serai le premier à admettre que le C++ n'est pas un coffre-fort
Langue. Il existe de nombreux risques liés aux armes au pied. Comme c'est un, c'est un bien connu
fait. Et tu sais quoi? J'aime que C++ soit un coffre-fort pour la mémoire
Langue. Absolument. Oui, mais quand je regarde le
position de sécurité de l'envoyé en termes de quelles sont les choses qui
me tenir éveillé la nuit ? Croyez-le ou pas mémoire? La sécurité est
pas en haut de la liste, non ? Est-ce que si vous regardez nos cves nous avons
eu et, vous savez, cinq ou six ans de
Projet nous avons eu 30 ou 40 cves. je pense que l'un des
eux a été un problème de sécurité de la mémoire, non? C'est comme 39 d'entre eux
ne sont qu'une application. Les bogues de programmation. Cela peut arriver dans n'importe quelle langue. Nous avons eu beaucoup de
problèmes de chaîne d'approvisionnement de logiciels. Droit? Et ceux de la chaîne d'approvisionnement
les problèmes sont encore une fois, ce ne sont généralement pas des problèmes de mémoire, de sécurité.
Une erreur de logique de programmation ou quelque chose qui peut conduire, vous savez, à un joli
application sévère, problème de programmation. Ce n'est donc pas que je
ne pas
voulez, vous savez, que C++ soit sûr. C'est juste
c'est je pense que ce n'est pas le plus gros problème auquel nous sommes confrontés
au moins du point de vue du projet. Et les problèmes plus importants auxquels nous sommes confrontés
sont en fait généralement juste là, vous savez, en s'assurant que nous faisons
test fuzz pour les erreurs de logique d'application, connaissant notre
la chaîne d'approvisionnement du logiciel en fait, connaissant la chaîne de train transitive de
dépendances de, je dépends de cette bibliothèque et de cette
La bibliothèque dépend de cette bibliothèque.
Dans un certain sens, C++ est meilleur là-bas parce qu'il y a un
plus petite prolifération de bibliothèques et plus de bibliothèques sont écrites. Comme
Alex parlait un peu plus d'un primitif de bas niveau. Alors que, si vous regardez
comme un écosystème, comme node ou go ou même
de plus en plus quelque chose comme de la rouille, l'un des inconvénients, si vous
peut appeler cela du robuste, vous savez, la gestion des packages
Systems est que, vous pouvez obtenir une chaîne transitive de
inclusions, comme, si vous regardez kubernetes,
Je veux dire, je pense que cette chose doit attirer littéralement des milliers de go pack. C'est
droit. Alors comment quelqu'un peut-il même comprendre ce que vous êtes
en tirant? Alors que, pour quelque chose comme Envoy. Nous en fait, nous avons
outillage, nous savons exactement ce que nous tirons, nous connaissons l'ensemble du transit de
chaîne de dépendances. Nous suivons leur posture cve, leur
position de la chaîne d'approvisionnement. Et vous savez, je dis juste que c'est un très
problème majeur dans toute l'industrie qui va bien au-delà du C++.
Alors, tu sais, je
De, de mon point de vue. Je veux toutes ces fonctionnalités dans
en termes de sécurité, mais je pense que comme pour tout
l'ingénierie, nous avons peu de temps dans la journée et j'essaie d'aborder les
plus gros problèmes. Je veux juste très rapidement revenir à une chose que vous disiez auparavant.
À peu près, vous savez, l'inclusion de différentes langues et écosystèmes
et c'est en fait lié à la sécurité. Est-ce que je, tu sais, là
sont des milliards des dizaines de milliards, peut-être des centaines de
Des milliards de lignes de code C et C++, elles ne vont pas disparaître comme par magie.
Et c'est encore le vous savez, Fudd et Fear Factor de Twitter, que j'ai
trouver Fury en train de manger. C'est comme si tu n'allais pas réécrire le monde dans R Us n'allait pas
arriver. La voie à suivre pragmatique est donc
nous allons augmenter, à droite. C'est comme si nous allions comprendre comme c'est maintenant
étudié dans le chrome et un tas d'autres grands projets. Comment pouvons-nous
mettre la sécurité dans? Ou vous savez comment nous apportons la sécurité dans ces
écosystèmes ?
Et je suis un grand croyant que, vous savez, et je pense que le
la dernière personne qui parlait avant notre arrivée, mentionnait que le C++
comité des normes va devoir ajouter les fonctionnalités de sécurité ou C++ va mourir.
Et je crois que non? Parce que je pense que ce qui va se passer c'est que
C++ va devoir intrinsèquement ajouter, vous savez,
la rouille comme les dispositifs de sécurité ou ce qui va finir
se passe, peut-être encore plus probable est que l'interopérabilité
entre quelque chose comme C++.
Ross va juste aller de mieux en mieux. Nous sommes maintenant dans quelque chose comme sur garçon,
tu sais qu'il écrira tout notre nouveau code et rouillera, d'accord, tu sais, laissera l'ancien
code en C++ et progressivement au fil du temps, vous savez, la base de code va
évoluer davantage vers une posture sûre. Mais je pense que ça va juste
être la voie des choses, c'est que je ne crois pas à la réécriture du monde,
droit? Je suis une personne plus pragmatique et je pense qu'on veut toujours faire des logiciels
mieux et nous allons le faire comme outil pour évoluer.
Pour ceux d'entre nous, juste deux dominants à un moment donné, deux mois, quand
nos invités suivent le point de Matt. Je pense, pour ceux de
nous qui sommes vraiment bien depuis très longtemps
qui ont en fait essayé où vous prenez un projet, et vous êtes comme, c'est un nouveau langage de programmation.
Et puis quand j'irai le réécrire, tu soulageras le
le même ou un ensemble similaire de problèmes que ce n'est vraiment pas
valoir la peine. C'est comme si une fois que vous avez quelque chose à agrafer, les gens en dépendent.
C'est essentiel à la mission. C'est
C'est une perte de temps et d'efforts d'ingénierie. Je me sens mal, tu sais, c'est comme le
genre de soins et un mois d'amour qui entre dans une base de code, pour la rendre stable
et Mitchell critique et comme sûr et performant. Et vous savez, tout
cette. C'est comme tout jeter lorsque vous passez à un nouvel environnement de programmation
car vous ferez des erreurs et les goulots d'étranglement des performances se déplaceront
un peu et puis il faut tellement de temps pour stabiliser un morceau de
un logiciel que c'est, vous savez, c'est presque comme rendre un mauvais service comme nous le sommes
juste coincé.
Et la location que nous sommes encore et encore, et parfois ça va. Quand comme la route est
fondamentalement différent. Comme quand tu es passé du genre, je suppose que les calèches dans avec,
Je suppose que des roues en bois sur la route avec des roues en caoutchouc, mais
et dans ce cas, je parle du changement de paradigme dans le matériel,
mais en gros la réécriture, le même logiciel qui fait
la même chose dans un nouveau langages de programmation. Je ne sais pas. C'est souvent
ne vaut pas la peine. Ouais, alors je
voulez donc nous avons environ huit minutes de plus.
Rabat. Donc, une chose dans laquelle je veux me lancer est le flux de travail, vous savez, en tant que personne qui est
contribué à un certain nombre de projets Open Source au fil des ans, quand je pense à la
workflow, vous savez, vous disposez de ces progiciels vraiment robustes, Management Systems. Typiquement
vous pouvez définir des dépendances et un fichier sera construit et extrait
Je vais donc commencer par vous. Matt ici. Quel est le type de flux de travail moderne ? Tu sais,
parlons un peu de la recherche et de la découverte du système de facturation
dépendances que vous souhaitez intégrer au projet et vous savez, l'ensemble du processus de facturation en tant que
tout pour produire un binaire qui
fonctionne sur toutes les plateformes. Et c'est un autre grand défi avec les projets open source. Typiquement,
les gens veulent le voir fonctionner sur toutes les principales plates-formes. Alors peut-être parler un
un peu sur le genre de ce flux de travail pour le projet envoy et
la chaîne d'outils, vous avez l'habitude de construire et de livrer, et d'accompagner les différentes cibles. Les gens veulent utiliser.
Sûr. Alors quand j'ai fait Envoy à l'origine, vous voyez
make, qui est, vous savez, un joli système de construction assez typique
puis début 2017, lorsque Google de plus en plus
Je me suis impliqué. Google utilise en interne un système de construction appelé Blaze et
puis il y a un système Bill open source appelé basilic et
nous avons migré vers le basilic et je n'entrerai pas dans une longue discussion
ou sur du basilic mais le basilic est similaire à celui de Facebook
Buck ou il y en a d'autres. C'est fondamentalement un, c'est une construction hermétique
système avec un graphe de dépendance très fort et
la migration de cmake à Bâle précoce et sur les garçons.
Le voyage était rugueux Le basilic était un peu rugueux sur les bords. Alors je pense
basilic est toujours comme C++. Il y a une barrière élevée à
entrée. Je dirai que c'est difficile pour moi de
imaginez réellement faire un projet C++ maintenant sans utiliser basilic.
Juste parce que le basilic, s'il est bien mis en place
le rend à mon avis, relativement facile à
comprendre toutes vos dépendances. Ils l'ont finalement compris. Où
si un
Il ne le fait pas lui-même, utilisez du basilic. S'il utilise cmake ou make ou quoi que ce soit, vous pouvez le tirer
dans et Définir les dépendances Basil. Alors ça
le rend à mon avis, vraiment sympa et vraiment efficace
hermétique où je peux comprendre exactement ce que je tire. Comme je le disais avant mon
chaîne entière de dépendances transitives, et je peux les suivre et je peux
les construire et je peux travailler avec eux. C'est donc notre chaîne d'outils. Maintenant c'est
fondamentalement, là où entièrement à base de basilic, nous soutenons toujours
cliquetis dans GCC. N'étaient pas
Tout aussi tranchant que ce que disait Alex, nous avons tendance à traîner derrière la courbe du compilateur un
peu, mais nous essayons de rester au courant des dernières nouveautés, juste pour
assurez-vous que les choses se compilent, nous avons
lutté un peu avec le support d'autres architectures parce que c'est
pas aussi intégré qu'il l'est, dans d'autres langages plus modernes,
écosystèmes simplement parce que nous rencontrons quelque chose
code d'assemblage. Et ce n'est pas encore prêt ou ça ne compile pas ou quelque chose comme ça
lignes, mais à ce stade,
Cela dans une perspective de projet. Nous avons un support de première classe
évidemment pour x86 64 et nous avons un support de première classe pour armé
et il y a des gens qui le font sur d'autres plateformes. Mais ce sont
nos principaux supporters et vous savez, c'est
plus de travail que je ne le souhaiterais en termes de support d'OS, X et Windows et
toutes ces choses. Et pour moi, tu sais, c'est l'un des beaux avantages de quelque chose
comme aller là où ils ont fait un travail fantastique de cross
la compilation et toutes ces choses. Et je pense
la rouille y fait du très bon travail. C'est certainement plus douloureux
dans l'écosystème C++. Mais c'est notre c'est notre configuration de base est
que vous savez, nous avons essentiellement un système de construction basé sur le basilic. nous sortons
Images Docker. Nous avons différents pipelines qui prennent en charge
x86, 64 et arm et autres plates-formes. Nous prenons en charge plusieurs opérations
systèmes et vous savez, il y a quelques aspérités mais cela a fonctionné
s'en sort plutôt bien pour nous. J'ai donc une question personnelle comme
quelqu'un qui va
Le look pour les comme juste les binaires. Vous savez, une chose est comme quand je trouve ces images Docker, je suis
comme essayer constamment d'y aller et d'extraire le binaire. Pourquoi le projet ne
produit juste des binaires que je pourrais aimer, télécharger? Est-ce les dépendances que vous ne voulez tout simplement pas
faire souffrir les gens ? Oui. Alors pour que nous puissions
faire cela et c'est un problème constant ici.
Comme vous pouvez évidemment le comprendre d'après votre expérience, c'est que
tu ne feras jamais plaisir à personne. Droit? Parce que tu sais, si on met en place des binaires,
les gens vont
Soyez comme, pourquoi ne mettez-vous pas en place des RPM ou des Deb, n'est-ce pas ? Ou si tu mets Deb's,
les gens vont se dire, pourquoi n'avez-vous pas d'images Docker ? Droit? Et c'est comme, nous pourrions nous pouvons
faire n'importe quoi. C'est plus une question de ressources, non ? Et et, et
le problème, comme je le disais avant de revenir au début et c'est la vraie ironie,
c'est que j'ai littéralement des centaines de personnes qui
peut écrire du C++, mais trouver des personnes qui entreront dans l'open source
et aidez-nous avec nos pipelines de construction ou de basilic ou
comme les milliers de lignes.
Python dans notre système de construction ou autre. Il est en fait très difficile de trouver ces personnes.
Alors je vais me tourner vers vous. Kelsey. Si vous voulez venir nous aider avec notre
distribution différente, s'il vous plaît faites-vous un bon point
autour du navire de maintenance de ces projets open source ? Je pense que beaucoup de gens se concentrent trop sur
au cœur de ces projets, qui peuvent être très compliqués, une forte
bar. Et il faut beaucoup de temps pour apprendre. Il y a tellement de valeur autour de la documentation
Système d'exploitation, emballage, test de ces éléments pour s'assurer qu'ils peuvent réellement être mis à niveau.
Alors je pense que nous allons sortir et
Mangez plus tard, je vais appeler à l'action pour les gens qu'il y a tellement de façons de contribuer et ils sont tout aussi
précieux en tant que travail sur le noyau le plus semblable
oui, j'allais dire. Je veux dire, c'est ce que je dis tous les jours, c'est que c'est tout le
des trucs auxiliaires pour lesquels nous avons besoin de plus d'aide. Génial vient d'être témoin de l'Alex,
comme donner que vous êtes à la fine pointe. je suis hyper intéressé
dans quelle chaîne d'outils vous utilisez pour maintenir tout cela ensemble et assurez-vous que
les factures sont fluides et les gens font les choses correctement. Parlez-nous un peu du rouge
Panda.
Torching et comment répondre à ce genre d'attente de pointe
que le projet a accès à ces compilateurs et systèmes de construction.
Système de facturation, je pense que c'est le plus gros C++
Écart. Je veux dire vraiment, je pense qu'il s'agit d'un outil unifié dans un écosystème.
Je suis d'accord avec Matt que le basilic est fantastique
et l'expert l'entrée à cela, vous savez, à avoir c'est
est vraiment élevé. Ce que nous avons trouvé, c'est que nous utilisons toujours cmake. je pense que nous voulons
passer à Basil à un moment donné, mais la façon dont nous le contournons est honnêtement nous
avoir une équipe en interne comme juste dédiée à la
Le système et les infrastructures. Je peux dire que c'est probablement au moins
comme un tiers des lignes de code des projets
en totalité parce que c'est un montant fou
de et vous savez, et franchement c'est un peu fragile en ce moment. Et donc
comme, vous savez, cela fonctionne et est reproductible, mais nous avons
à travers comme Great Lengths pour s'assurer que c'était
construire comme, vous savez, les dépendances des broches Etc et nous le configurons en apparence.
Ils pensent que la raison pour laquelle
nous l'avons gardé dans cmake parce que l'ajout d'une nouvelle dépendance
sur le projet est. Si trivial semblerait juste parce que vous savez, pour
meilleur ou pire, c'est exactement ce que la plupart des projets plus des gens ont fini
en utilisant, vous savez, n'importe lequel de vos petits bibliothécaires, auteurs du
malade, comme, comme le bitmap rugissant par ce Dudley Maya
Route ou quelque chose comme ça. N'importe quoi, n'importe quoi comme petit
bibliothèque compacte, la plupart de ces bibliothèques ne sont que des dépendances simiques et lorsque nous
commencé le projet que basilic n'avait pas.
Le support Cmeg n'a pas vérifié récemment à quel point il est bon, mais je dirais que le
le plus grand écart pour moi, vous savez, en tant que mainteneur et
et et contribué au projet C++ est vraiment et facile. Comme le
communauté adoptée, l'ancien système. Cela n'a même pas besoin d'être facile, mais il doit y avoir un esprit partagé
autour, comme une direction particulière. Et je pense que c'est quelque chose qui
que vraiment le comité standard devrait donner plus d'avis et plus
des conseils sur. Et tu ne vas pas rendre les gens heureux, mais tout comme le fret
la raison pour laquelle
Pourquoi? C'est peut-être à la fois une bénédiction et une malédiction. La raison pour laquelle obtenir
commencer avec la rouille est facile et aller est facile, n'est en fait pas le code
lui-même, est l'écosystème autour. C'est ainsi que je me lève et que je construis quelque chose qui est prêt pour la production.
Et de toute façon, la réponse courte n'est pas bonne, c'est que nous avons
les gens à plein temps parce que le travail est vraiment juste pour faire le projet
construit le répétitivement et assurez-vous de suivre les dépendances et comme, vous savez, tous
ça et rouler ce cmake érafle
et
Ambre. Donc je dirais que si on à emporter pour moi c'est
c'est que je pense que c'est une lacune vraiment, vraiment importante dans ce
Écosystème C++ en ce moment.
Impressionnant. Écoute, je veux te remercier. Matt et Alex. Cela a été une très bonne plongée profonde dans C
plus plus pour les projets open source et merci à tous. Si
quelqu'un a d'autres questions, où peuvent-ils trouver? Vous commencerez par Matt et ensuite nous irons
aux applications.
J'ai un site web Matt Klein, 1 2 3. Dev. Vous pouvez me contacter sur Twitter ou
par e-mail font en fait des heures de bureau public. Tellement heureux
trop heureux de discuter avec n'importe qui n'importe quand.
Oui, et donc Twitter est probablement le plus simple.
C'est Emacs sont connus comme les plus grands sont maintenant que vous obtiendrez
dans la voiture. Maintenant. C'est comme essayer de trouver une poignée de tuteur. Alors Twitter
est vraiment l'endroit le plus facile pour me trouver. Mes DM sont ouverts. Je suis vraiment
sympathique et sinon, vous pouvez nous trouver sur leur panda roux, slack Community et en gros,
ce sont mes plus, vous pouvez m'y joindre, le plus facile. Et
ouais, j'ai hâte de communiquer avec vous les gars. C'était génial. Je suppose que c'est difficile quand vous faites ces séances.
Vous pouvez voir les visages des gens. J'étais comme, savez-vous si nous vous suivons comme si c'était
difficile à suivre, mais c'est le mieux que nous puissions faire pendant la pandémie. Comme ci comme ça
C'est super d'être ici et c'est toujours un plaisir de vous voir Matt et Kelsey.