Cómo Replit desarrolla mi proyecto de código abierto

“Creo que debería cerrar el proyecto y dejar de trabajar en él. Llamaré a nuestros abogados el lunes si no ha cumplido las condiciones para entonces. [...] Éramos una empresa pequeña cuando hiciste una pasantía con nosotros [...] Afortunadamente, ahora somos mucho más grandes y, lo que es más importante, tenemos mucho dinero para pagar a los mejores abogados si tenemos que ir camino. "

- de la correspondencia con el CEO Replit




imagen




UPD: Recibí una respuesta oficial de Replit y mi proyecto de código abierto volverá pronto; consulte la parte inferior de la publicación en la publicación para obtener actualizaciones. El resto del contenido permanecerá aquí como un artefacto histórico.



Hola, mi nombre es Radon. Me gradué de la universidad el año pasado y ahora trabajo como programador de infraestructura / DevOps. En mi tiempo libre, también mantengo varios proyectos de código abierto .



Cuando estaba en la universidad, hice una pasantía en una startup llamada Replit. Esta es la historia de cómo Replit utiliza las amenazas legales y su financiación de riesgo para que cierre un proyecto de código abierto que no les gusta.



Acerca de Replit



Replit crea una aplicación web que puede utilizar para ejecutar código en Internet en diferentes lenguajes de programación. Esto no es nada nuevo (Google "ejecuta Python en línea" como prueba), por lo que la propuesta de valor de Replit son características adicionales como colaboración, instalación de paquetes de terceros y alojamiento de aplicaciones web.



Estaba trabajando en Replit en el verano de 2019, donde me pidieron que rehaciera la pila de administración de paquetes de Replit y la convirtiera en código abierto. Si te gusta leer sobre temas técnicos, aquí está mi publicación para el blog Replit , y aquí está el código en GitHub .



En el verano de 2020, tomé un trabajo en otro lugar, pero aún les enviaba correos electrónicos de vez en cuando cuando me contactaban sobre algo genial que Replit había desarrollado.



Acerca de mi proyecto de código abierto



imagen

En Replit, me gustó mucho la compatibilidad con muchos lenguajes de programación diferentes. (Escribí otra publicación en el blog Replit sobre cómo lo hacen). Y me pregunté: ¿Cuántos lenguajes de programación puedes meter en un sitio web?



Para investigar esta pregunta, armé mi propia pequeña aplicación web que podría ejecutar código en Internet. Aproximadamente un día después, obtuve algo que funcionó. (Si se pregunta por qué fue tan rápido, ¡resulta que solo necesita 30 líneas de código para que la gente ejecute Python en una aplicación web! Esta puede ser la razón por la que hay tantos sitios web para ejecutar Python en Internet ... .)



Después de que esto funcionó, comencé a agregar tantos lenguajes de programación diferentes como pude encontrar. Como puede ver en este fragmento del historial de versiones de mi proyecto, me emocioné un poco:



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




Al final, agregué 216 idiomas, incluidos los 38 idiomas de Replit , los 100 idiomas de Quine Relay de Yusuke Endo y más. Puede preguntar: ¿por qué dediqué tanto tiempo a agregar lenguajes de programación oscuros a una aplicación web que nadie iba a usar? Bueno, déjame ponerlo de esta manera: ¿es este el pasatiempo más extraño que has visto en 2020?



¿Qué pasó cuando le conté a Replit sobre mi proyecto?



Una vez recibí un correo electrónico de ellos informándome de una nueva función que habían lanzado. Decidí que ahora es el mejor momento para compartir mi proyecto de código abierto con ellos, en caso de que quieran inspirarse en alguno de mis trabajos:



imagen



obtuve una respuesta positiva al principio. Pero luego, 30 minutos después, de la nada, Replit me acusó de comportamiento poco ético y de robar su diseño:



imagen



Ninguna de las ideas que utilicé en mi proyecto de código abierto fueron "decisiones de diseño interno": todas se publicaron públicamente en el blog Replit (lo sabía porque me pidieron que escribiera algunas de estas publicaciones en el blog durante mi pasantía). Y mi proyecto parecía un clon de Replit, no más que cualquier otro sitio web en los primeros SERP de Google para "ejecutar Python en línea", la mayoría de los cuales se ven exactamente iguales:



imagen



Pero pensé que me faltaba algo. Por lo tanto, pedí detalles:



imagen



( El resto de este correo básicamente repite el párrafo anterior de este artículo, pero con muchos más detalles técnicos.Puedes leer toda la correspondencia en Imgur . o archivo en línea ).



Desafortunadamente, se negaron a proporcionar detalles específicos sobre lo que dijeron que hice mal, reiteraron sus declaraciones anteriores y me amenazaron con emprender acciones legales:



imagen



Y luego, la guinda del pastel, Replit me envió otro correo electrónico recordándome que simplemente recaudó $ 20 millones de sus inversionistas el mes pasado y no tenían miedo de usarlos en mi contra. El "tú" en cuestión es uno de sus pasantes anteriores que se acaba de graduar de la universidad hace un año y que no está involucrado en ninguna actividad comercial.



imagen



Me gustaría señalar dos cosas sobre esta carta:



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




, Replit



Naturalmente, inmediatamente oculté mi proyecto, esperé un rato a que mis sentimientos se calmaran y envié una disculpa a Replit. Pensé que tal vez se había perdido algo por correo electrónico, así que pedí llamar: Por



imagen



desgracia, Replit ignoró este correo electrónico, así que les envié otro. A esto obtuve una respuesta, pero no la que esperaba:



imagen



en caso de que Replit no se diera cuenta de que estaba contento con la situación, envié tres correos electrónicos de seguimiento con explicaciones durante las próximas semanas, todos que fueron ignorados.



En otras palabras, la posición de Replit es la misma: si vuelvo a publicar mi proyecto de código abierto, me demandarán con los "mejores abogados".



¿Es correcto Replit?



Replit afirmó que mi proyecto de código abierto era:



  1. clonar Replit
  2. basado en su secreto comercial (decisión de diseño interno)
  3. poco ético




Analicemos estas afirmaciones pieza por pieza:



  1. Mientras desarrollaba mi proyecto, ¿hice un clon de Replit?
  2. Mientras desarrollaba mi proyecto, ¿utilicé algún secreto comercial de Replit?
  3. ¿No fue ético para mí desarrollar un proyecto de código abierto como Replit después de trabajar en ellos?




Las preguntas 1 y 2 contienen bastantes detalles técnicos, así que las he puesto en una publicación separada . Aquí está el TL; DR sobre estos temas:



  1. Mi proyecto no se parece más a Replit que otros 15 proyectos (¡comerciales!) Que puede encontrar en Google escribiendo "ejecutar Python en línea" o "entorno de programación en línea".
  2. Cualquier similitud entre mi proyecto y Replit se puede explicar mirando solo los repositorios de GitHub y las publicaciones de blog que fueron publicadas en línea por Replit, lo que obviamente no las hace secretas.




Respondamos la pregunta 3 aquí:



Pregunta: ¿No fue ético para mí desarrollar un proyecto de código abierto similar a Replit después de trabajar en ellos?




En mi opinión, la respuesta a esta pregunta es "no", por varias razones:



  • Riju es una organización completamente sin fines de lucro. A diferencia de Replit, no he buscado financiación de ninguna fuente, publicidad, donación, recaudación de fondos, suscripción, lo que sea. No estoy interesado en administrar un negocio y nunca quise que Riju se volviera demasiado popular, ya que fui yo quien pagó la factura del servidor.
  • Riju Replit. , Riju 38 . ( , , .) , Replit 7 . , Riju Replit.
  • Riju Replit. , , fork bomb — , , . ( .) , Replit, , , , .
  • Replit — ( ). — , . Riju , : , , , -, , , GitHub .
  • Replit, Riju, . , GitHub. , Replit , , .
  • Riju . , . , , Hexagony SNOBOL, , (!).




No soy una persona de negocios. Solo soy un desarrollador de código abierto al que le encanta crear cosas raras para divertirse. (Si tiene dudas acerca de mi experiencia de hacer cosas que no generan dinero, simplemente revise la lista en mi sitio web y observe la notoria ausencia de cualquier cosa que haya generado un centavo de ingresos).



Nunca trataría de robarle a alguien negocio después de trabajar con ellos. Dañar a Replit no era mi intención cuando trabajaba en Riju, y acusarme de lo contrario, especialmente sin hacer una sola pregunta aclaratoria y rechazar todas las ofertas para mantener una discusión, en mi opinión, indica una gran mala fe por parte de Replit.



Si quiere decidir por sí mismo quién tiene la razón, con mucho gusto pondría todas las pruebas a la vista (excepto el código, porque Replit todavía promete demandarme si lo hago). Nuevamente, tengo una publicación separada con todos los detalles técnicos . Y también puede leer toda la correspondencia entre Replit y yo, en forma completa y resumida, en Imgur , un espejo en el Archivo de Internet ). (Los detalles técnicos sobre Replit se han editado, así como cualquier declaración que pueda revelar implícitamente tales detalles).



¿Por qué Replit hizo esto?



Replit afirma los siguientes ideales:







Sin embargo, las acciones de Replit en este caso indican hipocresía:



  • dicen que fomentan el desarrollo de código abierto, pero cuando mi proyecto de código abierto los ofendió, lo cerraron, cayendo en prejuicios
  • afirman haber ayudado a la comunidad de código abierto, publicaron publicaciones en blogs, pero cuando intenté usar estas ideas en un proyecto comunitario, amenazaron con demandarme
  • dicen que facilitan la distribución, el reciclaje y la reparación de mis creaciones, pero cuando traté de remezclar el Replit para mí, me convertí en persona non grata.




En las cartas que me envió Replit, sus amenazas se basaban en el hecho de que yo había trabajado para ellos en el pasado. Sin embargo, creo que este razonamiento es una pantalla. Para entender por qué, echemos un vistazo a algunos de los tweets que el CEO de Replit, Amjad, publicó justo después de que me amenazó con un correo electrónico:



imagen




imagen




Amjad luego eliminó estos tweets porque resultaron ser contradictorios:



imagen




En estos tweets, Amjad señala que Athens Research se inspiró claramente en otra empresa y argumenta que, por lo tanto, deberían ser "ridiculizados" y prohibirles recibir financiación. Además, dice, "me quedo con lo que dije sobre los imitadores en general", lo que significa que desprecia a todas las personas que, en su opinión, "imitan" proyectos existentes, no solo una empresa específica en su tweet.



Hay claras similitudes entre los comentarios de Amjad sobre Athens Research y sus amenazas legales contra mi propio proyecto. Incluso usó la misma palabra en ambos casos: "imitador".... En el caso de Athens Research, Amjad no pudo hacer nada para expresar su desprecio más que vilipendiarlos en Twitter. Pero en mi caso, como solía trabajar en Replit, Amjad tenía una razón para lanzarme acusaciones, acusaciones que, si no estás familiarizado con los hechos, parecen legítimas.



También me gustaría reiterar que la persona a la que Replit amenaza con "mejores abogados" y "mucho dinero" es un recién graduado sin compañía, sin financiación y sin ambición comercial . Si alguien de una empresa comercial real ofendió a Replit, me estremezco al pensar en qué tipo de respuesta podría obtener.



Cómo reaccionó Replit a mi hackerNews Post



Después de que publiqué el artículo por la mañana, se debatió mucho en Hacker News. Alrededor de las 5:00 pm, Amjad publicó una disculpa en Hacker News.



imagen




También pidió programar una llamada, a lo que naturalmente acepté:



imagen



durante la llamada, Amjad se disculpó por las amenazas legales, pero repitió que, en su opinión, hice un clon de Replit y actué de manera poco ética. Al final, acordamos estar en desacuerdo, y él prometió por escrito que no le importaba si le devolvía mi proyecto:



imagen



estoy feliz de que hayamos podido resolver esta situación de manera amistosa y espero continuar con mi vida. - incluida la recuperación de Riju, después de que pueda construir cosas de nuevo :)



Paz.



All Articles