Comment Replit fait tourner mon projet open source

« Je pense que vous devriez fermer le projet et arrêter de travailler dessus. J'appellerai nos avocats lundi si vous n'avez pas rempli les conditions d'ici là. [...] Nous étions une toute petite entreprise lorsque vous avez effectué votre stage chez nous [...] Heureusement, nous sommes beaucoup plus gros maintenant et, ce qui est très important, nous avons beaucoup d'argent pour payer les meilleurs avocats si nous devons aller de l'avant chemin. "

- de la correspondance avec le PDG de Replit




image




UPD : J'ai reçu une réponse officielle de Replit et mon projet open source sera bientôt de retour ; s'il vous plaît voir le bas du post dans le post pour les mises à jour. Le reste du contenu restera ici en tant qu'artefact historique.



Bonjour, je m'appelle Radon. J'ai obtenu mon diplôme universitaire l'année dernière et je travaille maintenant en tant que programmeur DevOps / infrastructure. Pendant mon temps libre, je gère également un certain nombre de projets open source .



Quand j'étais à l'université, j'ai fait un stage dans une startup appelée Replit. C'est l'histoire de la façon dont Replit utilise des menaces juridiques et son financement par capital-risque pour me faire fermer un projet open source qu'ils n'aiment pas.



À propos de la réplication



Replit crée une application Web que vous pouvez utiliser pour exécuter du code sur Internet dans différents langages de programmation. Ce n'est pas nouveau (google "exécuter python en ligne" pour preuve), donc la proposition de valeur de Replit consiste en des fonctionnalités supplémentaires telles que la collaboration, l'installation de packages tiers et l'hébergement d'applications Web.



Je travaillais chez Replit à l'été 2019, où on m'a demandé de refaire la pile de gestion des packages Replit et de la rendre open source. Si vous aimez lire des trucs techniques, voici mon article pour le blog Replit , et voici le code sur GitHub .



À l'été 2020, j'ai pris un emploi ailleurs, mais je leur ai quand même envoyé des e-mails de temps en temps lorsqu'ils m'ont contacté à propos de quelque chose de cool que Replit avait développé.



Ă€ propos de mon projet open source



image

Dans Replit, j'ai vraiment aimĂ© la prise en charge de nombreux langages de programmation diffĂ©rents. (J'ai Ă©crit un autre article sur le blog Replit sur la façon dont ils le font.) Et je me suis demandĂ© : combien de langages de programmation pouvez-vous entasser dans un seul site ?



Pour étudier cette question, j'ai créé ma propre petite application Web capable d'exécuter du code sur Internet. Environ un jour plus tard, j'ai eu quelque chose qui a fonctionné. (Si vous vous demandez pourquoi c'était si rapide - il s'avère que vous n'avez besoin que de 30 lignes de code pour amener les gens à exécuter Python dans une application Web ! C'est peut-être pourquoi il y a tant de sites Web pour exécuter Python sur Internet .. .)



Après que cela ait fonctionnĂ©, j'ai commencĂ© Ă  ajouter autant de langages de programmation diffĂ©rents que j'ai pu trouver. Comme vous pouvez le voir sur cet extrait de l'historique des versions de mon projet, j'Ă©tais un peu surexcitĂ© :



2020-06-05 df9ba38 Initial commit — 0 ( )

2020-06-05 5e3a4a4 Install some packages into a Docker image — 0

2020-06-05 e937c8f Simple Express server with «Hello world» — 0

2020-06-06 0961498 Embed terminal on frontend app — 0

2020-06-06 c66cf63 Embed Monaco editor on frontend — 0

2020-06-06 27ab1f7 Add «run» button — 0

2020-06-06 f417858 You can run Python code now — 1

2020-06-07 d543081 You can run many languages now — 8

2020-06-07 e2a3e71 All languages 17 working now — 17

2020-06-07 473c50c ALL THE LANGUAGES — 25

2020-06-08 3718315 even more languages — 33

2020-06-08 548c1c1 repl.it superiority!!! — 38

2020-06-08 1ae424f More languages, we need all the languages — 48

2020-06-09 c34ccf2 A lot more languages — 77

2020-06-09 846caf2 At this point the number of languages is absurd — 79




Au final, j'ai ajoutĂ© 216 langues, dont les 38 langues de Replit , les 100 langues de Yusuke Endo's Quine Relay, et plus encore. Vous vous demandez peut-ĂŞtre : pourquoi ai-je passĂ© autant de temps Ă  ajouter des langages de programmation obscurs Ă  une application Web que personne n'allait utiliser ? Eh bien, laissez-moi le dire ainsi : est-ce le passe-temps le plus Ă©trange de 2020 que vous ayez vu ?



Que s'est-il passé quand j'ai parlé de mon projet à Replit



Une fois, j'ai reçu un e-mail de leur part m'informant d'une nouvelle fonctionnalité qu'ils avaient publiée. J'ai décidé que c'était maintenant le meilleur moment pour partager mon projet open source avec eux, au cas où ils voudraient s'inspirer de l'un de mes travaux :



image



j'ai d'abord eu une rĂ©ponse positive. Mais ensuite, 30 minutes plus tard, de nulle part, Replit m'a accusĂ© de comportement contraire Ă  l'Ă©thique et de vol de leur conception :



image



Aucune des idĂ©es que j'ai utilisĂ©es dans mon projet open source n'Ă©tait des "dĂ©cisions de conception interne": elles ont toutes Ă©tĂ© publiĂ©es publiquement sur le blog Replit (je le savais parce qu'on m'a demandĂ© d'Ă©crire certains de ces articles de blog pendant mon stage). Et mon projet ressemblait Ă  un clone de Replit, pas plus que n'importe quel autre site Web sur les premiers SERP de Google pour "exĂ©cuter python en ligne", dont la plupart se ressemblent exactement :



image



mais je pensais qu'il me manquait quelque chose. J'ai donc demandĂ© des dĂ©tails :



image



( Le reste de cet e-mail reprend essentiellement le paragraphe précédent de cet article, mais avec beaucoup plus de détails techniques. Vous pouvez lire l'intégralité de la correspondance sur Imgur . ou archive en ligne .)



Malheureusement, ils ont refusĂ© de fournir des dĂ©tails spĂ©cifiques sur ce qu'ils disaient que j'avais mal fait, ont rĂ©itĂ©rĂ© leurs dĂ©clarations prĂ©cĂ©dentes et m'ont menacĂ© de poursuites judiciaires :



image



Et puis, cerise sur le gâteau, Replit m'a envoyĂ© un autre e-mail me rappelant qu'ils viennent de levĂ© 20 millions de dollars auprès de leurs investisseurs le mois dernier et ils n'ont pas eu peur de l'utiliser contre moi. Le « vous Â» en question est l'un de leurs anciens stagiaires qui vient d'obtenir son diplĂ´me universitaire il y a un an et qui n'est impliquĂ© dans aucune activitĂ© commerciale.



image



Je voudrais souligner deux choses Ă  propos de cette lettre :



  • «commits like this» — . , Replit, , , , 38 , Replit, 178 , .
  • , «demanding» — , , , Replit (. ). , .




, Replit



Naturellement, j'ai immĂ©diatement cachĂ© mon projet, j'ai attendu un moment que mes sentiments se refroidissent et j'ai envoyĂ© des excuses Ă  Replit. J'ai pensĂ© que quelque chose avait peut-ĂŞtre Ă©tĂ© perdu par e-mail, alors j'ai demandĂ© Ă  appeler :



image



HĂ©las, Replit a ignorĂ© cet e-mail, alors je leur ai envoyĂ© un autre. Ă€ cela, j'ai obtenu une rĂ©ponse, mais pas celle que j'espĂ©rais :



image



juste au cas où Replit ne se rendrait pas compte que j'étais satisfait de la situation, j'ai envoyé trois e-mails de suivi avec des explications au cours des prochaines semaines, tous qui ont été ignorés.



En d'autres termes, la position de Replit est la même : si je republie mon projet open source, ils me poursuivront avec les « meilleurs avocats ».



La réplication est-elle correcte



Replit a affirmĂ© que mon projet open source Ă©tait :



  1. cloner la réplication
  2. sur la base de leur secret commercial (décision de conception interne)
  3. immoral




Analysons ces affirmations pièce par pièce :



  1. Lors du développement de mon projet, ai-je réalisé un clone Replit ?
  2. Lors du développement de mon projet, ai-je utilisé des secrets commerciaux de Replit ?
  3. Était-ce contraire à l'éthique pour moi de développer un projet open source comme Replit après avoir travaillé dessus ?




Les questions 1 et 2 contiennent beaucoup de dĂ©tails techniques, je les ai donc mis dans un article sĂ©parĂ© . Voici le TL ; DR sur ces questions :



  1. Mon projet ne ressemble pas plus Ă  Replit qu'Ă  15 autres projets (commerciaux !) que vous pouvez trouver sur Google en tapant "run python online" ou "online programming environment".
  2. Toute similitude entre mon projet et Replit peut être expliquée en ne regardant que les dépôts GitHub et les articles de blog qui ont été publiés en ligne par Replit lui-même, ce qui les rend évidemment non secrets.




Répondons à la question 3 ici :



Question : Était-ce contraire Ă  l'Ă©thique pour moi de dĂ©velopper un projet open source similaire Ă  Replit après avoir travaillĂ© dessus ?




À mon avis, la réponse à cette question est « non », pour plusieurs raisons :



  • Riju est une organisation entièrement Ă  but non lucratif. Contrairement Ă  Replit, je n'ai pas cherchĂ© de financement d'aucune source, publicitĂ©, don, collecte de fonds, abonnement, peu importe. Je ne suis pas intĂ©ressĂ© par la gestion d'une entreprise et je n'ai jamais voulu que Riju devienne trop populaire puisque c'est moi qui ai payĂ© la facture du serveur.
  • Riju Replit. , Riju 38 . ( , , .) , Replit 7 . , Riju Replit.
  • Riju Replit. , , fork bomb — , , . ( .) , Replit, , , , .
  • Replit — ( ). — , . Riju , : , , , -, , , GitHub .
  • Replit, Riju, . , GitHub. , Replit , , .
  • Riju . , . , , Hexagony SNOBOL, , (!).




Je ne suis pas un homme d'affaires. Je ne suis qu'un développeur open source qui aime créer des choses étranges pour le plaisir. (Si vous avez des doutes sur mon expérience de fabrication de choses qui ne rapportent pas d'argent, consultez simplement la liste sur mon site Web et notez l'absence flagrante de tout ce qui a déjà fait un centime de revenu.)



Je n'essaierais jamais de voler quelqu'un. entreprise après avoir travaillé avec eux. Nuire à Replit n'était pas mon intention en travaillant sur Riju, et m'accuser du contraire, surtout sans poser une seule question de clarification et refuser toutes les offres de tenir une discussion, à mon avis, indique une grande mauvaise foi de la part de Replit.



Si vous voulez décider par vous-même qui a raison, je mettrais volontiers toutes les preuves à l'air libre (à l'exception du code, car Replit promet toujours de me poursuivre si je le fais). Encore une fois, j'ai un post séparé avec tous les détails techniques . Et vous pouvez également lire toute la correspondance entre moi et Replit, en version intégrale et abrégée, sur Imgur , un miroir sur Internet Archive ). (Les détails techniques sur Replit ont été modifiés, ainsi que toutes les déclarations qui pourraient implicitement divulguer ces détails.)



Pourquoi Replit a-t-il fait cela ?



Replit Ă©nonce les idĂ©aux suivants :







Cependant, les actions de Replit dans ce cas indiquent de l'hypocrisie :



  • ils disent qu'ils encouragent le dĂ©veloppement open source, mais quand mon projet open source les a offensĂ©s, ils l'ont fermĂ©, tombant dans les prĂ©jugĂ©s
  • ils prĂ©tendent avoir aidĂ© la communautĂ© open source, publiĂ© des articles de blog, mais quand j'ai essayĂ© d'utiliser ces idĂ©es dans un projet communautaire, ils ont menacĂ© de me poursuivre
  • ils disent qu'ils facilitent la distribution, le recyclage, la rĂ©paration de mes crĂ©ations, mais lorsque j'ai essayĂ© de remixer le Replit pour moi-mĂŞme, je suis devenu persona non grata




Dans les lettres que Replit m'a adressĂ©es, leurs menaces Ă©taient basĂ©es sur le fait que j'avais travaillĂ© pour eux dans le passĂ©. Cependant, je crois que ce raisonnement est un Ă©cran. Pour comprendre pourquoi, jetons un coup d'Ĺ“il Ă  certains des tweets que le PDG de Replit, Amjad, a publiĂ©s juste après m'avoir menacĂ© par e-mail :



image




image




Amjad a ensuite supprimĂ© ces tweets car ils se sont avĂ©rĂ©s contradictoires :



image




Dans ces tweets, Amjad souligne qu'Athens Research s'est clairement inspiré d'une autre entreprise et fait valoir qu'elle devrait donc être « ridiculisée » et interdite de financement. De plus, il dit : « Je m'en tiens à ce que j'ai dit sur les imitateurs en général », ce qui signifie qu'il méprise toutes les personnes qui, à son avis, « copient » des projets existants, pas seulement une entreprise spécifique dans son tweet.



Il y a des similitudes claires entre les commentaires d'Amjad sur Athens Research et ses menaces juridiques contre mon propre projet. Il a même utilisé le même mot dans les deux cas - "copieur"... Dans le cas d'Athens Research, Amjad n'a rien pu faire pour exprimer son mépris si ce n'est de les vilipender sur Twitter. Mais dans mon cas, depuis que je travaillais chez Replit, Amjad avait une raison de me lancer des accusations - des accusations qui, si vous n'êtes pas au courant des faits, semblent légitimes.



Je voudrais également réitérer que la personne que Replit menace de « meilleurs avocats » et de « gros sous » est un diplômé fraîchement sorti du four, sans entreprise, sans financement et sans ambition commerciale . Si quelqu'un avec une vraie société commerciale offensait Replit, je frissonne à l'idée du type de réponse qu'il pourrait obtenir.



Comment Replit a réagi à mon hackerNews Post



Après avoir publié l'article dans la matinée, il a suscité de nombreuses discussions sur Hacker News. Vers 17h00, Amjad a publié des excuses sur Hacker News.



image




Il a également demandé de programmer un appel, ce que j'ai naturellement accepté : au



image



cours de l'appel, Amjad s'est excusé pour les menaces légales, mais a répété qu'à son avis, j'avais fait un clone Replit et agi de manière contraire à l'éthique. Au final, nous avons accepté de ne pas être d'accord, et il a promis par écrit que cela ne le dérangerait pas si je ramenais mon projet :



image



je suis heureux que nous ayons pu régler cette situation à l'amiable, et j'ai hâte de continuer ma vie - y compris la récupération Riju, après je peux reconstruire les choses :) La



paix.



All Articles