
MeiliSearch, rustique à la française !
Durée: 48m59s
Date de sortie: 14/05/2021
Un épisode avec 2 invités : Thomas cofondateur et Marin développeur Core de MeiliSearch. Nous allons parler de ce moteur de recherche open source et du langage Rust. Retrouvez toutes les notes et les liens de l'épisode sur cette page : https://double-slash.dev/podcasts/meilisearch/
Bonjour et bienvenue sur ce nouvel épisode de Double Slash épisode numéro 23 déjà. Je
suis Patrick et comme d'habitude nous sommes avec Alex. Salut Alex !
Salut à tous ! Donc si vous aimez le podcast, et j'en suis sûr, n'hésitez pas à le partager
sur les réseaux sociaux pour dire comme vous aimez le podcast et on vous remercie d'avance.
Aujourd'hui, pour la première fois, nous avons deux invités. Bonjour Thomas et bonjour Marin.
Salut Patrick ! Salut Alex ! On va vous laisser vous présenter. Et voilà,
qu'est-ce que vous faites dans la vie ? Expliquez un peu ce que vous faites comme job,
d'où vous venez, etc. Ouais, ben rapidement, du coup, je m'appelle Thomas,
je suis co-fondateur de Melly Search. Je fais ça, on a commencé ça il y a deux ans et demi,
donc développeur de formation, puis maintenant, on va un peu m'enlever, un peu plus de business
dans la boîte. Moi je suis Marin, j'ai rejoint Melly Search en mars dernier et je suis développeur
Rust pour la partie core moteur de recherche. J'ai aussi un background,
des colles d'ingénieurs et de développeurs. D'accord, mars 2021 ? Mars 2020.
2020, donc ça fait un peu plus d'un an. Le sujet du podcast aujourd'hui,
vous l'avez déjà dit, c'est Melly Search. Donc la première question,
moi, c'est comment on prononce exactement Melly Search ?
Alors, du coup, moi je le prononce Melly Search, mais c'est vrai que ça dépend un peu d'où les
gens viennent. On sait pas mal casser la tête sur le nom et du coup, voilà, il y a moyen qu'à un moment,
on se dise, bah peut-être que ça va être rename d'une certaine façon. Et donc voilà,
ça se prononce Melly Search. Ok. Et du coup, Melly Search, alors, c'est quoi,
en clair ? Et qu'est-ce que ça fait ? Melly Search, c'est une API de moteur de recherche.
Donc c'est vraiment un moteur de recherche open source à l'élastique search ou à la albolia.
L'idée, c'est de proposer justement une techno pour n'importe quel développeur aujourd'hui,
pour qu'il puisse construire une barre de recherche assez stylée sur son site, sur son
Melly Search, s'occupe de toute la partie Algo de recherche et le développeur n'a que,
en quelque sorte, envoyé ces data. Donc la base de données, la table qui veut dans Melly Search,
chez nous, on s'occupe de tout optimiser pour rendre les résultats les plus pertinents possible
en fonction des recherches des usages. Excellent. La proposition de valeur, c'est vraiment,
c'est vraiment être ultra accessible pour les devs, demander le minimum de connaissances en
quoi que ce soit, même en développement, que tu puisses juste prendre tes documents,
les balancer dans Melly Search et cinq minutes plus tard, tu peux commencer à faire de la
recherche de recherche sur ton site. Ok. Est-ce pour le coup Patrick ? Excuse-moi de te couper,
mais pour le coup, pourquoi ? Moi, je vous ai demandé de venir parce que en fait,
je l'ai utilisé et j'adhère et je vous garantis personne ne m'a payé pour dire ça.
Ce que tu viens de décrire, c'est totalement vrai. C'est-à-dire,
moi, je suis bête et méchant, je lis la doc, je regarde sur comment implementer Melly Search
sur DigitalOcéan, je paye ma machine, je provisionne ma machine, je suis le handboarding
et dix minutes après, en fait, je pousse tous mes documents et j'ai ma barre de recherche et c'est
un rêve que j'ai eu, m'a dit, non, mais ça, c'est trop ouf. Et donc du coup, j'ai dit,
c'est mec-là, il faut que je l'ai faite venir sur Double Slash pour qu'il me parle de ça parce
que c'est juste hallucinant. Et donc, Marin, quand tu viens présenter sur la développeur expérience
qui est hyper simple, bah ouais, vraiment, c'est juste ultra simple, quoi. Et ça, c'est
juste trop, trop, trop, trop, trop bien. Trop stylé, ça fait trop plaisir.
C'était notre objectif et on est content de savoir que ça fonctionne.
Est-ce que ça vous dérange d'être comparé à Algolia ou c'est vraiment l'exemple ?
Non, pas du tout, pas du tout. Parce qu'en fait, c'est un peu l'exemple.
Oui, carrément. C'est trop bien, c'est qu'ils font Algolia. Non, et puis même pour la petite
histoire, on a commencé à travailler chez, enfin, c'est quand on travaillait chez VP,
on a commencé à travailler sur les moteurs de recherche et Algolia était une grande source
d'inspiration quand même pour nous au début en termes d'expérience, en termes de relevancy
par rapport à l'élastique où il faut le configurer, il faut passer du temps à comprendre comment
ça marche. Algolia a quand même pas mal fait avancer les choses sur la partie moteur de recherche
quand même. Donc, carrément, on peut parler d'Algolia, c'est un problème.
D'accord. Donc, en fait, vous êtes équivalent à Algolia, sauf que les données sont chez toi,
en fait. C'est ça, la différence ?
Oui, carrément. Carrément. C'est open source aussi. Donc après, en termes d'intégration,
j'ose espérer qu'un jour, avec une communauté plus à l'élastique, du coup, on aura de plus
en plus de facilités à intégrer mais il search. Effectivement, tu peux le hoster chez toi,
mais tu peux aussi le hoster où tu veux. Là, à Algolia, c'est que tu as un service, donc tu
ne sais pas trop ce que c'est, mais là, clairement, tu choisis que tu veux mettre sur ton AWS ou ton
Azure. C'est toi qui te juire.
Tu as parlé de VP, quand tu travailles chez VP, c'est un peu l'origine du 2000 Church ?
Oui.
Comme c'est pour l'historique, en fait. Pourquoi ça a été créé ?
En fait, donc, nous, on était trois potos chez VP. On travaillait au Lab,
Vente privée, qui était un partenariat avec l'école 42, donc l'école où on vient,
on entend de l'opera. Et un de les sujets qu'on a commencé à aborder au sein de ce Lab,
c'était le moteur de recherche parce que chez VP, si tu tapais à l'époque,
c'était il y a 4, 5 ans, 3, 4 ans, si tu tapais Robrouge, tu tombais sur du vin,
alors qu'on vendait des Robrouges, effectivement. C'était pas ouf, sachant que chez VP,
c'est des millions de chiffres d'affaires tous les jours. Si ton moteur de recherche,
il est un peu plus pertinent et qui marche bien, tout de suite, tu fais de la conversion et
c'est des millions d'euros qui rentrent beaucoup plus vite. C'était vraiment un sujet sensible.
À l'époque, c'était un élastique qui était justement plutôt mal configuré et nous,
on avait benchmarké ce qu'on aurait pu faire avec un élastique un peu mieux configuré,
ce qu'on aurait pu faire avec un Algolia. C'était une période où VP investissait beaucoup dans des
techs en interne. On s'était dit, on va essayer de refaire plus ou moins ce qu'on essaie de retrouver
chez Algolia mais de notre côté. C'est comme ça qu'on a commencé à nous apprendre à faire des
moteurs de recherche. Et à quel moment vous êtes dit, ok, VP, c'était cool, on sort,
mais on monte notre truc entre nous. Le deal du lab au tout début, c'était de dire,
effectivement, comme vous êtes des étudiants, vous allez bosser sur pas mal de projets différents
et VP est potentiellement prêt à investir en jour dans ces projets pour les faire sortir un peu du
cadre de VP, faire de l'intrapronariat et essayer de vendre ces projets à d'autres boîtes.
Donc nous, dès qu'on commence à travailler sur le moteur de recherche, on se dit cool,
c'est trop bien comme sujet et puis potentiellement, c'est vrai que c'est quelque chose qui peut
intéresser pas mal d'autres boîtes. On a essayé de faire ça un peu en interne,
on avait rencontré tous les gros chez VP et finalement, c'était la première fois qu'ils
faisaient ça, ils n'étaient pas ultra chaud sur le moment. Nous, c'était un moment où on avait
envie d'avancer quand même et donc on s'est dit, tant pis si ça avance pas à côté VP,
nous, on part et puis on va essayer de monter un truc de notre côté. Donc on n'est pas du tout
parti avec ce qu'on a fait fait chez VP parce que chez VP, on avait codé le moteur de recherche
en go à l'époque et ensuite on la refait de notre côté. Mais on est parti un peu comme ça avec
plutôt de la connaissance quand même acquise en se disant qu'est-ce qu'on va pouvoir faire autour
de cette connaissance, de se faire un bon moteur de recherche, mais c'est tout, quand on n'a pas de
client, on n'a rien du tout. Donc ça a commencé comme ça, c'était en fin 2018 et là clairement,
sur un gros coup de chance, on fait un hackathon pareil dans notre école avec Louis Vuitton qui
avait besoin d'une solution de search en interne du coup. Donc Louis Vuitton, la problématique
qu'ils apportaient lors de ce hackathon, c'était de dire, tous nos vendeurs où il y a pas mal de
turnovers ont besoin d'accès à la connaissance. Tous les vendeurs en interne, ils ont un iPhone
avec une quinzaine d'applications Louis Vuitton. Donc tu as du learning, tu as un catalogue, tu as un
réseau social interne à la boîte et nous ce qu'on a proposé finalement, c'était un moteur de
recherche qui était capable d'aller taper dans 2 ou 3 data sets en même temps et de te faire le bon
lien sur la bonne app du coup pour trouver la bonne information très vite. Et ça clairement,
Louis Vuitton comme ça est devenu notre premier client en fait et c'est avec eux qu'on a pu
financer les débuts de Mellisarch, on est clairement, on bossait comme des consultants,
c'est-à-dire parce qu'on leur faisait un moteur de recherche en interne et puis voilà,
c'est comme ça que ça a commencé. Et à quel moment, de 42 à Louis Vuitton quoi.
Ouais c'est ça. Et à quel moment vous êtes dit, ok on sort mais enfin on on on on développe le
truc mais surtout on l'ouvre quoi. En fait pourquoi vous l'avez mis en open source et
quels ont été les arguments la philosophie votre envie derrière d'open sourcer directement ?
En fait je pense que on est tous les trois devs à la base et c'était un peu évident pour nous
de le mettre en open source par défaut. Mais le mettre en open source ça veut un peu de
tout et rien dire, c'est-à-dire que le code était dispo sur GitHub mais il y avait zéro documentation.
Il y avait un pauvre rythmie, on ne savait pas comment lancer le truc, on ne savait pas comment
interagir avec la pays. Puis on était là donc on avançait à côté de Louis Vuitton et on
commença à se dire est-ce qu'on va construire un sas autour de ça pour essayer de vendre pareil
search as a service un peu à la Algolla. Donc on c'était pas forcément très clair à ce moment là.
Et on commence du coup à pas mal discuter avec des boîtes sur Paris et donc on rencontre,
je crois, prestachop, on rencontre Strapi et donc des boîtes open source. Et très vite en fait
on se rend compte qu'il y a un truc sur lequel on joue pas assez c'est que notre code il est
open source en fait et c'est ça notre grosse différenciateur aujourd'hui et c'est comme ça
qu'on va pouvoir en quelque sorte onboarder des gens à utiliser mail search. Et c'est là en fait
où on a eu des clics, on s'est dit mais en fait notre truc il est open source faut juste
qu'on investisse effectivement sur l'open source c'est-à-dire que à partir de ce moment-là
c'était vraiment il y a un an et demi ça. On a investi sur la doc donc on a une super doc,
c'est une fille qui travaille avec moi, on interne, qui a commencé à taffer de ouf,
à nous faire une documentation vraiment, alors pas nous, mais vraiment en se disant
voilà il y a quatre ans quand je ne savais pas développer qu'est-ce que j'aurais aimé comme
documentation. Et donc le but du jeu c'était de rendre le truc le plus accessible et pareil
au même moment il y a Clem qui commence à développer des intégrations en rubis en piton
pour dire comment on va pouvoir faciliter au maximum l'utilisation de la pays parce que
une la payée HTTP c'est bien gentil mais quand tu dois l'intégrer dans ton app,
ça prend forcément un peu de temps à trouver les bons patterns, les bons trucs alors que
quand tu as ton SDK dans ton langage, tu as le click start qui t'explique très vite comment
intégrer. Et donc je pense que c'est voilà c'est vraiment il y a un an et demi qu'on a eu ce
déclic de dire on investit sur l'open source donc en passant par une super doc on a refait une
grosse passe sur toute la pays de se dire la pays à la base elle avait été designée pour nous
en mode comment on l'utiliserait sans trop y penser puis là maintenant le contexte était
comment on fait une API qui est facile en fait pour n'importe quel développeur qui est
intuitive et donc là on se retrouvait donc on était cinq à l'époque on se retrouvait à cinq et
pendant des jours en fait on se battait pour dire non mais moi je veux qu'une API est ce qu'on
porte comme ça moi je veux qu'elle se porte comme ça et vraiment à chaque fois pour trouver
comment la route doit être designée pour être à la fois intuitive qu'elle respecte les standards
qu'elle soit facile à documenter ce genre de choses et donc il y a eu ce travail sur la pays,
ce travail sur la documentation et c'est comme ça qu'on a commencé un peu en début d'année
dernière à petit à petit avoir des gens qui quand ils tombent sur le GitHub ils disent ah mais
ça a l'air utilisable ça a l'air pas mal la promesse a l'air cool et puis c'est vrai que
à l'époque c'était pas en 10 minutes mais c'était plus en une demi heure une heure je peux
commencer à me servir de Melly's Search et effectivement ça marche bien mais donc c'est
ça qui nous a un peu lancé. Excellent et aujourd'hui tu dis vous êtes cinq aujourd'hui
tu vous étiez cinq aujourd'hui vous êtes combien chez Melly's Search ? On a un peu
grossi en fait on a levé du coup des fonds il y a un an en mars dernier justement avec ce contrat
en quelque sorte avec les investisseurs de dire on va se concentrer sur la communauté on va se
concentrer sur le produit on se prendra la tête en fait plus tard autour d'une monétisation avec
avec le moteur de recherche et donc en fait c'est le vêtepond qui nous a permis de recruter pas
mal de monde je crois qu'en fin d'année dernière on était presque 10 peut-être 11 12 et là en
début d'année pareil on a on a on a recruté encore quelques personnes aujourd'hui on est 17 donc
avec des gens principalement en Europe quand même. Et le profil des personnes c'est de la tech
où là vous êtes déjà arrivé à un stade où il vous faut du personnel on va dire non tech pour
juste de l'organisation. On a très tôt on a recruté le RH qui nous avait recruté chez Viby
c'est la seule personne non tech aujourd'hui de la boîte et après sinon c'est que des devs donc
on a une team de quatre personnes maintenant sur le corps on a une team de donc le corps c'est le
search engine Melly's Search on a une team de trois personnes qui s'occupe de maintenir toute la partie
intégration c'est développer des nouvelles intégrations t'as fait avec des contributeurs
être capable de les on-boarder tout ce que fait aussi le corps d'ailleurs donc c'est pas juste du
développement il y a vraiment une grosse partie du taf quand même qui se fait avec la communauté
ce qui est très sympa aussi d'ailleurs et puis on a une personne full time maintenant sur la
documentation parce que c'est quand même ultra important et une une d'Evrel qui s'occupe aujourd'hui
qui fait pas mal de support mais voilà qui s'occupe du twitter qui fait quelques confs une fois
en temps qui essaye de propager un peu le nom Melly's Search parce que c'est vrai que jusqu'à
maintenant on n'a pas investi énormément sur le je dirais sur la com autour de Melly's Search
très produit pour le moment. Excellent moi j'aimerais revenir sur donc le projet est open
source mais on avait eu Jim de Strapi qui nous expliquait que c'était pas facile de gagner de
l'argent avec de l'open source vous votre business model apparemment vous l'avez encore
vraiment défini mais ça va être quoi dans le futur le business model pour gagner de l'argent
et continuer. C'est ça le but du jeu c'est quand même de rendre le projet viable quand même à
terme je pense que le premier ce qu'on a en tête et ce sur quoi on commence à travailler nous c'est
offrir Melly's Search as a service c'est un peu l'option facile en quelque sorte parce qu'on a pas
mal finalement de dev qui nous demande où est ce qu'ils peuvent se procurer un Melly's Search qui
vont pas hoster eux même et donc il y a des gens comme Alex qui passent par la marketplace digital
océan le one click deploy et ça on se dit typiquement ça pourrait des gens qui sont qui
passent par notre site et juste qui lancent leur Melly's Search et c'est ultra facile et on
pouvait récupérer comme ça quelques premiers clients. Dans un deuxième temps il y aura un moment
j'imagine des futures en fait qui seront beaucoup plus intéressantes en fait pour des entreprises
pour des gens du product pour des gens du marketing que pour purement des devs donc c'est là où on
va commencer à rajouter peut-être des futures sous une licence peut-être un peu différente on
pense à la BSL c'est la business source license que fait Cochroach donc why not un jour mais là
ce sera vraiment des futures du type on va avoir un peu plus d'analytics et d'insights sur quels
sont les résultats qu'ont pas été retrouvés là c'est vraiment des besoins que pour avoir les
boîtes on sait que sur sur la partie open source on n'aura jamais des futures dont le dev
pour avoir envie qu'on va pas mettre dans l'open source ça fait pas de sens en fait donc donc voilà
ça c'est le plan et puis à long terme on a on a des ambitions quand même pour Melly's Search
qui peuvent paraître un peu grosse mais on rêve et donc c'est cool mais c'est vraiment de se dire
comment on devient un peu cette techno de référence tu vois comme aujourd'hui est élastique clairement
sur comment quand t'as besoin de faire de la search en open source la search tout court tu penses
forcément élastique et aujourd'hui c'est comment essayer de venir remplacer un peu ça dans la tête
des devs et dès que tu as besoin de faire de la search frontaine de la search pour apporter
user et tout comment on essaye de devenir moteur de recherche de référence en fait donc c'est
un peu comme ça qu'on aimerait se placer à terme quoi et donc créer tout un écosystème autour de
votre techno aussi ça passe par ça ou pas ouais carrément carrément bas là on commence on a je
pense qu'on a une quinzaine d'intégrations dans différents langages et c'est ça qui fait l'expérience
développeur c'est à dire que la pays elle est voilà elle est bien documentée elle est bien
faite mais il y a pas mal de devs quand même qui passent par les SDK les intégrations et ça c'est
ultra important et aujourd'hui encore une fois ben c'est principalement des devs qui peuvent l'utiliser
mais tu vois demain pourquoi pas avoir une intégration Shopify et se dire que c'est des gens qui sont
un peu moins d'oeuvres qui sont tout aussi techniques mais moins d'oeuvres qui veulent utiliser
Mellisert sur leur Shopify ben ça devrait être possible d'autre côté à développer ce sera pas
ce sera pas compliqué j'espère en tout cas c'est pas un truc ouf quoi c'est pas un truc monstre ouf
mais c'est en fait ouvrir l'assiette globale parce que aujourd'hui c'est quand même assez technique
donc c'est plutôt pour les devs et demain ça serait d'ouvrir sur du on va dire limite du plug plug
switcher et puis c'est bon quoi alors il y a ça ouais ça c'est clair ça c'est ça c'est vraiment
l'objectif et après au-delà de ça il y a une autre enfin comment dire il y a une espèce d'autre
opportunité qu'on a identifié qui est peut-être un peu plus technique mais il y a pas mal de boîtes
aujourd'hui je pense à Twitter à Slack qui eux leurs search elles est très enfin ils peuvent pas
peuvent pas aller chez Algolia pour des raisons de pricing pour des raisons de cycle source et donc
on est quand même limité dans ce que peut faire eux ils ont besoin d'avoir leur business logic dans
leur search et donc en fait ils se retrouvent va essayer de tue né en élastique ou en l'usine et
donc ils ont des équipes entières de développeurs qui essayent d'intégrer leur modèle et leur
truc dans un lucine ou en élastique et nous on a cet avantage on reviendra sûrement là-dessus
avec maintenant mais on est en reste et en fait on se dit qu'on est capable en fait de proposer
cette espèce de runtime wasm ou n'importe quel dev en fait pour réintégrer sa propre ranking
rule donc en quelque sorte c'est dire comment il vient rajouter sa propre pertinence qui sera
vraiment spécifique à son business ou à son métier et ça vraiment l'idée encore une fois
bah c'est c'est pouvoir d'avoir un truc qui est quand même ultra flexible mais à la fois qui est
relativement simple parce qu'il y aura il y aura toute une doc qui va t'expliquer qu'il faut
faire ci ça comme ça dans n'importe quel langage et que c'est comme ça que tu vas pouvoir tuner ta
search et avoir quelque chose d'ultra pertinente par rapport à ce que tu fais quoi ouais après vous
êtes clairement en frontale avec élastique search qui à la fois super puissant mais c'est une usine
à gaz à configurer quoi donc vous le but enfin si je résume c'est en fait vous voulez faire
un truc qui est à la fois hyper puissant rapide mais facile à configurer ouais carrément c'est le
challenge après on s'appuie quand même sur des techniques plus modernes quand même c'est à
dire que élastique minouin c'est basé sur l'usine l'usine ça a 20 ans donc ça fait des trucs de
ouf mais enfin nous on a la chance de pouvoir compter sur une stack quand même un peu plus
modernes après on n'a jamais l'ambition de faire tout ce que fait élastique c'est à dire qu'elle
si tu peux t'en servir pour pas mal de choses ta recherche dans tes logs tout ce qui est biya et
tout nous c'est vraiment frontaine search donc c'est vraiment ce truc de se dire comment on
vient se placer en tant que moteur de recherche mais vraiment frontale pour les pour les end users
donc pour tes utilisateurs à toi sur la recherche frontaine quoi ouais j'en ajoutais aussi à ce que
dit tomah ou en gros oui ouais élastique search c'est vraiment une usine à gaz parce que
quand tu prends le quand tu prends le élastique search de base et bah tu peux pas faire grand
chose avec et si tu passes pas des heures à configurer pour ton use case mais t'auras pas
quelque chose d'intéressant alors que nous on l'idée c'est d'avoir justement cette possibilité
de configurer le service de façon incrementale pour que le cas de base convienne à 90% des gens
mais que les 10 personnes les 10% qui restent et qu'ont un besoin très spécifique soit pas
qu'ils sont pas limités par l'utilisation de mes research en fait et développer un produit
comme ça qui convient à la fois genre l'utilisateur qu'un use case assez basique et qu'il y a juste
besoin quelque chose qui fonctionne jusqu'à des personnes qu'on peut être besoin d'intégrer
dans des modèles de nlp dans leur search engine ou alors vraiment d'injecter de la
business logic logic dedans et qui sont prêts ben à investir du temps dans le développement
de cette techno là de leur côté ok et du coup tu tout à l'heure tomas parlait du de la vieille
techno de elastic search même si c'est pas si vieux que ça mais mais par rapport par rapport
par rapport à vous vous avez fait le choix de rust pourquoi le choix de rust c'est que
quand tu veux développer un moteur de recherche comme comme mes research c'est des prix les choses
les plus importantes que tu cherches et c'est de la performance et obtenir de la performance
bah ça demande un certain un accès en fait assez bas au hardware des optimisations sur
sur la localité de la mémoire des optimisations sur sur sur tout un paquet de choses et donc
bah tout de suite ça restreint énormément les langages qui sont disponibles ok donc on va
voir c on va voir c plus plus voir go dans une certaine mesure et on va avoir bah rust aussi
qui est du coup une option qui a pas mal le vent en poube qui est très récent
et mais mais en fait qui a une proposition de valeur qui est super intéressante
et ce targre en gros d'avoir des performances comparables à du c c c plus plus qui est
ce qui est complètement vérifiable tout en proposant des des des abstractions de langages
de haut niveau et c'est fait c'était un peu genre un trade-off qui pendant longtemps on pensait
que c'était pas possible de d'avoir à la fois des d'un haut niveau d'abstraction à zéro
et des performances et des performances au niveau de c ou de c plus plus et donc en fait on a les
avantages d'un langage de programmation moderne avec les avantages d'un langage de programmation
performant et tout ce qui va avec donc donc si on doit décrir un peu la façon le plus paradigme
de rust ça serait ça serait un peu un peu amichement un langage de programmation fonctionnelle
à la skel ou ce qu'il y a là et et la programmation procédura à la c avec quelques concepts
pas mal de concepts de c plus plus l'idée c'est que ça reste et vraiment genre accès autour de son
type système ce qui va vraiment faire penser à skel et avec leur avec leur aussi leur leur
adage de si ça compile sa tourne ce qui est plutôt vrai en rust et en même temps de pouvoir
manipuler manipuler le directement la mémoire ce qui n'est pas possible en rascale et qui fait
plus plutôt penser à du c ou du c plus plus et tout ça en en donnant des des garanties de
de de de de de de safety en termes de mémoire en termes de concurrence qui sont assez dingues et
qu'on n'a que sur des langages de très haut niveau principalement principalement des langages à la
java ou il y a encore et encore et aujourd'hui russe c'est c'est open source c ou pas c'est un
langage ouais ouais c'est c'est porté par la communauté exactement c'est complètement
open source en fait faut savoir que russe un langage qui a été qui a été initié comme un
projet de recherche chez modzilla et au moment où en fait ils ont voulu réécrire leur moteur de
rendu css pour pour mes pour firefox et ils avaient tout fait en c plus plus et ils sont rendus compte
bah qu'ils n'y arrivaient pas que c'était ça c'était tellement énorme et tellement complexe
bah qui qui avait fait qu'ils avaient pas les outils dont ils avaient besoin à disposition pour
pour faire ça et donc ils ont commencé à développer en interne du cour rust et après genre une petite
période d'incubation du coup du cou chez modzilla ou il y a une équipe assez
conséquente qui commence à travailler dessus le projet était initié par gré de no where mais
il y a le créateur de javascript qui a aussi travaillé dessus au tout début et du coup ça a
été open source en 2015 dans les premières versions et depuis c'est complètement lidé par
la communauté et par un système de rfc donc tous les changements en fait sont son sujet à
des rfc ou la communauté peut discuter de la façon dont les nouvelles features vont être
implémentés et de comment elles vont être implémentées ok et pour le coup en fait le choix
le choix de s'appuyer de baser en fait mes research sur rust et de baser aussi la société sur
sur sur un langage comme ça qui est porté sur la par la communauté qui a de donc tu m'as dit
2015 donc 2016 ok qui a entre 4 et 5 ans c'est est ce que vous vous considérez que c'est un pari risqué
et pour le coup la question est à la fois pour toi marin mais aussi à la fois pour toi toma est ce
que c'est un pari qui est qui est risqué ou aujourd'hui en fait rust et arrivé à une certaine
maturité qui nous permet en fait de fin qui vous permet de dire ok c'est super solide et et
au final ça ça va pas bouger c'est la pourturée et ça ne peut que grossir parce que tous les
avantages que t'as cité marin alors alors vas-y tomas à l'ennemi toma explique et après on reviendra
ce format nous quand on commence il ya deux ans et demi effectivement la première iteration du
moteur chez vp on va faire en go parce que ben effectivement c'est porté par google il ya de
plus en plus de dev qui font du go donc c'est cool et nous quand on va quand on crée la boîte en
quelque sorte on se pose les questions quand même on se dit c'est quoi le bon choix et notre
cto quand même était contributeur rust à ce moment là et ça c'était c'était un pari risqué mais
c'était un pari qui s'il était payant c'était vraiment un avantage sur le long terme c'est à
aujourd'hui on se rend compte que voilà sur d'autres stack on aurait beaucoup galéré je pense à
maintenir à développer des nouvelles features le rust c'est quand même un écosystème ultra
ultra moderne c'est genre un package manager de base fin c'est que des trucs c'est genre c'était
sur du state of the art en termes de en termes de tout autour du langage en fait donc ça c'est
vraiment agréable aujourd'hui et autant il ya deux ans et demi j'aurais été moins confiant je
t'aurais dit ouais on t'atteint voie autant aujourd'hui non clairement c'est un peu le choix
évident quand même même si bah sur certains trucs et je pourrais revenir plus tard on sent
que voilà le peut-être que la comment dire la communauté ou en tout cas l'écosystème est
peut-être un peu jeune sur certains points marin tu partages la vie je partage complètement
complètement la victoire il ya il ya il ya il ya deux ans c'est ça ça ne vaut rien à voir mais
quand on voit en fait ce qui s'est passé en deux ans dans l'écosystème rust l'adoption qu'a eu
maintenant maintenant c'est c'est amazon microsoft facebook il se bat pour récupérer des défuteurs et
pour développer en interne leur propre techno qui participe tokyo qui est là qui est la l'alibrerie
principale de des synchrons en rust et principalement financé par amazon quand on te voit des géants
comme ça qui commence à prendre un énorme intérêt dont ce genre de techno qui commence à
dire que notamment pour microsoft que bah ils vont ils vont probablement réécrire des grandes
parties de leur code en rust pour pas justement pour les avantages que ça procure en termes de
sécurité et et demain demain de la mobilité quand on voit que les premiers drivers pour le pour
linux en rust commence à être accepté ce qui est ce qui était ce qu'est assez assez historique
parce qu'il n'y a pas beaucoup de langage qui sont entrés dans le kernel linux et c'est pas
facile de convaincre les nus normales non plus ça montit vraiment vraiment un énorme engouement
autour de la technologie et que ces qualités sont sont vraiment reconnues dans l'industrie et donc
ça devient de plus en plus un choix un choix sérieux et et très pertinent est-ce que j'ai
sous est-ce que tu est ce que vous conseillez au développeur qui nous écoute de tester rust
ou de mettre un peu les mains dedans pour ouais pour complètement ça ça dépend des ambitions
mais je dirais que l'intérêt de rust c'est justement il y a cet aspect genre langage au niveau
qui fait qu'en fait c'est principal c'est principal utilisé pour de la haute performance
mais c'est en fait c'est suffisamment au niveau pouvoir l'utiliser pour à peu près tout ce qu'on
veut et c'est probablement aussi un des un des langages à quel l'écosystème le plus mature
en termes de wasm avec plus d'intégration avec pas comme exemple wasm time et wasma qui permettent
de m'attendre faire du front facilement en rust qui permettent de déployer du code pour pour des
lambda des lambda sur sur le edge sur le edge assez facilement et plein d'autres choses en fait de
plus en plus intégration d'en peu près tout ce qu'en fait un langage vraiment super polyvalent
par contre faut vraiment être prêt c'est vraiment pas un langage facile je pense que ouais c'est
entendu souvent des développeurs se casser les dents en fait sur rust donc c'est vrai en fait c'est
exactement ouais faut être prêt à se battre avec le compiler enfin bat c'est un peu exagéré
parce que le compiler est vraiment exceptionnel en termes de de messages d'erreur en fait une
fois qu'on a habitué à rust revenir à n'importe quel autre langage bah en fait on a l'impression
que tous les messages d'erreur sont complètement cryptiques il est vraiment incroyablement
pertinent dans ce message d'erreur il envoie des références vers la doc c'est assez incroyable
comme tout le tout ce qui est autour cargo que le package manager est le build tool de rust et
est vraiment incroyable après peut-être enfin je sais pas je pose la question mais vu que c'est
un langage qui est plutôt récent en fait il prend en fait toutes toutes les erreurs de tous les
langages qu'ont été faits à posteriori et en fait comme il vient c'est un peu le dernier il dit
ok bah java c'était bien parce qu'il y avait ça qui était bien java script ils ont réussi à faire
ça eux ils ont réussi à faire ça à ce qu'elle ils ont réussi à faire ça bah nous si on prend
en fait les meilleurs ingrédients de tout ce qui a marché avant bah on peut faire un truc plutôt
stylé et donc en fait il a un peu la la primeur du dernier qui au final bah shop toutes les erreurs
et toute la maturité de tous les écosystèmes précédents non je me trouve super vrai c'est
super vrai mais c'est c'est c'est c'est c'est aussi c'est aussi en fait du très bon design
c'est faut faut pas faut pas oublier que c'est pas les langages fin il n'est pas beaucoup plus récent
go il n'est pas du tout construit pas du tout été construit dans les optiques et comme tu dis ils ont
choisi ils ont choisi toutes ces features un peu à travers l'écosystème en s'inspire en bas de ce
qui existait en s'espirant bas de de npm pour le package management en s'espirant bas de tout ce
qui se fait des idées pour pour pour cargo et pour et pour bah le lsp qui ont un très bon support
pour lutter le langage sert à protocoles donc les intégrations dans tous les tout tous les
environnement développement qui sont les touchés partout mais ils ont fait les bons choix ils
n'ont pas fait quelque chose de lourd et de compliqué au contraire ils ont réussi à vraiment
se focaliser sur sur une expérience utilisateur qui soit la plus la plus accessible possible ce
qui était nécessaire en fait pour contraster avec une certaine complexité inéhérente au
langage qui est une complexité qui est nécessaire mais qui existe d'un moment et pour le coup si
si je reviens sur sur mes research est ce que pour utiliser ou on va dire pour custom un petit
peu mes research est ce que je vais avoir besoin de mettre la naix le nez dans le reste ou pas du
tout pas du tout pour ce qu'il y a de l'utilisateur final c'est c'est complètement transparent
ça pourrait être écrit en n'importe quoi on expose pas directement genre de configuration en reste
ok et donc je peux c'est pour le coup c'est si je veux implémenter une feature un peu
spécifique à ma business logique à mon app à machin là pour le coup je peux en fait venir
augmenter mes research avec ma fonctionnalité qui pour le coup sera en ruste par contre comment
ça se passe si moi je vais implémenter une feature est ce que ça marche sous une fonctionnalité
de plug in où je dois la soumettre à la communauté comment ça se patch pour le moment c'est pas
quelque chose qu'on propose c'est quelque chose qu'on a en tête qui est vraiment sur un projet qu'on
a et qu'on aimerait vraiment vraiment mener à bout tout un système de plug in qui permet de
contrôler certaines parties du moteur et l'idée justement ce serait d'être complètement
agnostique du langage en proposant une interface wasm ce qui fait que ben n'importe qui qui
a qu'utilise un langage qui compile vers du wasm ce qui est beaucoup de langage maintenant en
réalité peut être capable de développer sa feature dans son propre langage et l'intégrer
à mes research et pourquoi pas une market place plus tard où des gens pour contribuer
peut être plus guine à ma research et vous avez aujourd'hui une sorte de roadmap on va dire
peut-être un petit peu plus tech mais une roadmap qui est établie sur qu'est ce que vous
allez implémenter c'est quoi les grosses pierres que vous allez implémenter chez chez melly search
maintenant ouais vas-y tomas peut-être on a une roadmap qui est publique en plus donc c'est
cool parce que on a les inputs des utilisateurs qui nous disent ça c'est important pour moi ou pas
et clairement ce qu'on a ce qu'on a en tête là dans les prochains mois et les prochaines années
déjà il y a une grosse réfacte du code que maraille en train de t'affait dessus avec avec avec la team
qui va nous rendre le code beaucoup plus accessible pour nous et au contributeur extérieur qui
nous permet de développer plus de features rapidement et d'avoir des gros gains en perte
donc ça c'est notre gros programme sur les deux prochains mois là ensuite après il ya la geo
search qui est quelque chose qui est vachement demandé donc est capable de rechercher donc et
donc de trier aussi en fonction des points latitude longitude on pense à la haute dispo donc là c'est
comment tu comment tu répliques ton melly search sur plusieurs noeuds et tu t'assures que bah si
y en a un qui tombe c'est bon tu es toujours up et tu peux écrire et lire dans ton melly search ça
c'est un gros sujet d'ailleurs c'est marin qui est dessus c'est un gros sujet et puis après ouais
ben il ya c'est comment après nous on va être capable derrière de proposer des features qui
n'a pas forcément mon élastique ou algalia mais que les gens en fait sont en train de build à côté
donc là on pense à tout ce qui est contextuel search donc être capable en fait côté frontaine
de d'envoyer finalement une espèce d'indie de qui est cette personne qui fait de la recherche
et en fonction de son historique de recherche d'être capable de lui proposer des choses un peu
plus pertinentes mais il ya aussi ben voilà tout ce runtime de configuration fin de rajouter vraiment
des la business logis dans ta search donc il ya ça il ya search on the edge aussi ça c'est
quelque chose dont on commence à parler aussi c'est on sait que notre moteur de recherche
potentiellement il peut être compilé totalement en wasm et donc on peut on est capable de le
run potentiellement sur des clottes faire workers des lampes date edge donc un jour on sera capable
d'avoir un mini search qui sera en fait déployé dans tous les cdn et ça c'est de la folie parce
qu'en fait en termes de latence sur le sur tes résultats et ben tu viens d'appeler dans ton cdn
donc tu as tout quoi vous écrasé et surtout et puis enfin je vois surtout à c'est la diminution
instantanée de la latence parce que et puis surtout t'as plus d'infra à gérer quoi c'est ça exactement
et ça c'est ouf ouais bien sûr et ça c'est un gros sujet qu'on aimera apporter dans voilà cette
année l'année prochaine quoi l'année prochaine plus ouais parce que il ya beaucoup beaucoup beaucoup
beaucoup de table je suppose et vous continuez à recruter ou pas ouais carrément carrément
carrément voilà c'est 2 ou 3 dernières semaines c'était un peu en pause parce que on a eu plein
de sujets et on a eu pas mal de gens qui sont arrivés ces derniers mois mais mais ouais clairement
dans les prochains mois on va recruter sur la partie rust corps forcément on va chercher des gens
avec un peu d'experts puis sinon qu'il y a intégration on a pareil une roadmap longue
comme le bras de qu'est ce qu'on est capable de proposer à la communauté ce qui est trop bien
en fait aussi enfin en fait ce qui est trop fin dans l'aspect open source du truc c'est que
finalement enfin tu m'arrêtes si je me trompe marins mais c'est pas juste un développeur sur
des tickets sur sur des features et des trucs mais tu es en permanence en fait en train de bulle dans
le public et donc il y a énormément de contraintes mais il y a vraiment cet aspect sympa de t'as des
gens qui vont intervenir sur ta paix te donner leur avis et c'est cool et ils vont sous soumettre
une idée ils vont te mettre une issue et tout et c'est trop bien en fait tu es en permanence en
train de discuter avec des gens qui vivent dans d'autres pays pour faire avancer ton projet et tout et
ça c'est moi je trouve ça incroyable comme comme expérience de développeur tu es obligé de tout
faire propre tout est documenté au maximum tu peux pas avoir d'aides techniques parce que tu
dois accueillir des contributeurs et en même temps t'as des gens là qui sont qui viennent td qui
viennent mettre la main à la patte pour te dire pour donner leur avis pour pour te reporte aussi
pas mal de bug pas mal de trucs et qui qui tête dans ta réflexion donc c'est c'est vraiment trop trop
cool de pouvoir t'affaire d'open source comme ça quoi je suis complètement d'accord avec avec
toi c'est c'est que au final on les dèvres mais on est tous aussi on est tous aussi un petit peu
p m c'est une façon on est tous en fait en contact direct avec nos utilisateurs et et ça c'est
super cool on a tout de suite un retour sur le travail qu'on fait et et et on a une compréhension
d'utilisateur ce qui fait que bah on a toujours ça en tête ou pour construire notre produit
ouais je comprends et et pour le coup alors commencer par parce que avant de contribuer à
Melly search il faut peut-être déjà l'utiliser vous nous aujourd'hui il y a quelqu'un qui nous
écoute et qui dit ok le le le search là ça a l'air cool comment on fait pour où est-ce qu'on
vous retrouve pour bah pour tester en fait est-ce que vous avez une sorte d'un boarding des choses
comme ça ouais carrément carrément bon mieux non on a alors le point d'entrée moi que je conseille
c'est vraiment la doc et très vite tu tombes dans un getting start qui te bac à plus que je
trouve qui est assez motivant parce que en calcul de code à la fois côté bac en des côtés front end
tu peux faire tourner une search donc soit avec un data set confondi pour l'exemple soit avec
ta propre db donc ça marche assez vite et c'est plutôt plaisant en fait de voir que très vite
tu arrives à atteindre un but après plus sur la partie contribution et ça c'est quelque chose
sur lequel on passe pas mal de temps ouais pareil on est ultra accueillant accueillant sur les
sur les nouvelles contribues et on passe pas mal de temps à on border en fait les gens c'est
toujours pareil en l'open source c'est tu en quelque sorte c'est pas ultra worse si ça
une one time contribution si c'est quelqu'un qui vient qui fixe un truc qui potentiellement passe
pas par le procès c'est tout c'est un peu chiant parce que on peut peut-être perdre un peu plus de
temps qu'on en gagne par contre sur le long terme si c'est quelqu'un qui vient contribuer une fois deux
fois trois fois voilà c'est vraiment trop trop bien parce que c'est des gens qui te connaissent
qui s'attendent aussi à un certain niveau de qualité donc faut pas du tout le prendre mal si tu
tu fais une paire et on te dit bah non on l'attendait pas forcément comme ça on préférerait que tu
fasses comme ça c'est le jeu de l'open source c'est à dire que nous côté maintainer forcément
on a des procès des trucs mais à côté de ça c'est ce qui nous assure une certaine qualité
aussi dans ce qu'on fait et finalement étonnamment c'est ce que les contribues apprécient quand
ils viennent quand ils viennent contribuer sur mes researchs ils disent bon ok ça a pas été
accepté direct mais par contre ouais on fait partie de l'équipe parce qu'on est passé par le procès
on nous a expliqué pourquoi et comment et maintenant c'est ça roule quoi et maintenant on
a des gens qui sont investis c'est incroyable on a sur la partie la ravelle nous c'est une
techno qu'on ne compétrisait pas forcément la ravelle et donc php et c'est deux ou trois
contribues qu'on portait le truc petit à petit sur l'année dernière et aujourd'hui ils sont
ils ont intégré en fait par défaut Mellisarch dans la ravelle scouts qui est le module de recherche
pour la ravelle et nous c'est un impact énorme en fait parce que la ravelle c'est une techno
genre de référence c'est genre énormément de monde qui utilise la ravelle et nous on est là
maintenant un peu en moteur de recherche pas par défaut mais presque en tout cas on est vraiment
dans les premiers toules de recherche sur lesquels les gens de la ravelle vont pouvoir tomber et
c'est un impact énorme parce qu'on a des gens qui viennent nous voir qui viennent nous utiliser
alors que bah à la base la ravelle c'est pas forcément notre environnement c'est pas forcément
que quelque chose qu'on maîtrise mais là la communauté fin c'est un truc qui est ouf parce
que ça t'apporte des gens que tu ne soucevais pas en fait et qui viennent t'affaire avec toi et c'est
génial. Ok donc ça c'est pour l'entrée un peu Mellisarch et si si il y a des gens qui nous écoutent
et qui veulent on va dire passer sur sur du rust et envie de goûter rust de voir un peu
quels sont les meilleurs points d'entrée pour s'initier tout simplement à rust. Il peut venir sur
notre Slack on est super accueillant on a une super communauté de contributeurs et d'utilisateurs
qui est super active donc ça c'est un bon point d'entrée on a un channel spécifique contributeurs
on peut retrouver du mentoring. Moi et le reste de l'équipe Core on est super ouvert
aux gens qui viennent nous voir on prendra toujours du temps pour expliquer certaines parties du moteur
qui sont très qui ou même si quelqu'un veut comprendre quelque chose on est toujours super
super chaud pour expliquer et si quelqu'un cherche des issues il peut aussi aller voir sur
nos repos GitHub on a tagué un certain nombre d'issues en Goode first et chose donc ça peut être
intéressant pour rentrer dans le projet et encore une fois faut pas être intimidé faut pas du tout
être intimidé si c'est quelque chose que qu'on comprend pas c'est normal c'est un projet qui
commence à venir assez conséquent et surtout pas hésiter à venir nous voir pour avoir du
mentoring on est super content d'aider. Souvent si c'est un truc pas clair c'est souvent notre faute
une petite question au niveau organisation l'équipe elle est répartie un petit peu partout
vous êtes tous sur paris comment ça se passe ? forcément quand tu commences à recruter tu prends
un peu les gens que tu connais donc historiquement je dirais qu'on est à paris après on se met pas
de contrainte plus que ça avec le confinement forcément tout le monde par la gauche et
je pense que c'est le modèle de toute façon qui va qui va convenir à tout le monde on n'a
aucun intérêt à force pour qu'il soit resté sur paris marin qui s'en va bientôt dans un autre
pays d'Europe mais voilà c'est cool en fait donc non je pense que historiquement voilà on est
quand même à paris et en france après il n'y a pas de limite plus que ça on a fait avec des canadiens
on a fait avec des suidois et on commence à on commence à prendre nos habitudes quand même en tant
que que pour être remote force quoi ok pour les embauches là vous avez parlé d'embauche
prochainement c'est les gens qui sont intéressés éventuellement vous faites les annonces sur le
site vous les mettez où ? oui on est sur welcome to the jungle qui est un peu la page d'accueil
côté carrière après effectivement faut nous envoyer un petit mail c'est bonjour à mes
prochains dans les prochains mois ce sera effectivement des dev sur pas mal de stacks
différentes pas forcément du rust alors pas forcément du rust parce qu'on a non non on a
pas mal de taf côté js aussi parce que finalement en termes d'intégration faut s'intégrer côté
front end aujourd'hui c'est toutes les technologies c'est et il y en a des frameworks et donc
faut être capable de passer de l'un à l'autre et sinon sinon ouais restent un petit peu pas
mal de langage à gauche à droite on est en train de construire le sas donc là c'est une stack un
peu plus classique rails, rails react avec du Kubernetes derrière pour gérer nos mini search
et puis après des dpm plus pour la partie organisationnelle parce que même quand on
commence à être beaucoup de développeur et à faire du travail qui était pas forcément naturel
pour nous et donc ça nous aide pas mal et pareil des designers aussi pour commencer à faire à penser
un peu les choses en amont et être capable de faire des trucs un peu plus pensé quoi super
excellent ouais et bah écoute merci merci à vous deux merci à pat marin on a bien on a enfin
je pense qu'on a brossé un petit peu tout tout on a effleuré au moins mili search on a parlé
de rust tout ça bah il reste plus qu'à aller visiter les sites et aller tester parce que
enfin toujours dans le podcast en parler c'est bien mais jouer avec et le faire des choses et les
implémenter c'est quand même vachement mieux donc donc ça c'est cool et un grand merci à vous et
à tout le monde merci d'avoir resté d'être encore là jusqu'au bout de l'épisode et pensez
à nous mettre un petit like un petit pouce ça fait toujours plaisir merci à tous merci beaucoup
merci merci merci merci au revoir on va trouver l'osage sur le plateforme de podcasts
préféré et sur le site internet du podcast 3w pour un flash tiré podcast sur le site
vous allez retrouver tous les épisodes des références évoquées durant les missions
Episode suivant:
Les infos glanées
DoubleSlashPodcast
Double Slash, un podcast sur le développement web. Retrouvez-nous régulièrement pour parler de sujets variés tels que la JAMStack, l’accessibilité, l’écoconception, React.js, Vue.js, Next.js, Nuxt.js, le CSS et des retours d’expériences sur des implémentations.
Tags
Card title
[{'term': 'Technology', 'label': None, 'scheme': None}, {'term': 'Technology', 'label': None, 'scheme': 'http://www.itunes.com/'}]
Go somewhere
Audit des Google core web vitals