“Saya pikir Anda harus menutup proyek dan berhenti mengerjakannya. Saya akan mendapatkan pengacara kami pada hari Senin jika Anda belum memenuhi persyaratan saat itu. [...] Kami adalah perusahaan kecil ketika Anda magang dengan kami [...] Untungnya, kami jauh lebih besar sekarang dan, yang sangat penting, kami memiliki banyak uang untuk membayar pengacara terbaik jika kami harus pergi ini cara. "
- dari korespondensi dengan CEO Replit
UPD: Saya mendapat tanggapan resmi dari Replit dan proyek open source saya akan segera kembali; silakan lihat bagian bawah posting di posting untuk pembaruan. Sisa konten akan tetap di sini sebagai artefak sejarah.
Hai, nama saya Radon. Saya lulus kuliah tahun lalu dan sekarang bekerja sebagai programmer DevOps / infrastruktur. Di waktu luang saya, saya juga mengelola sejumlah proyek open source .
Ketika saya masih kuliah, saya magang di sebuah startup bernama Replit. Ini adalah kisah tentang bagaimana Replit menggunakan ancaman hukum dan pendanaan venturanya untuk membuat saya menutup proyek sumber terbuka yang tidak mereka sukai.
Tentang Replit
Replit membuat aplikasi web yang dapat Anda gunakan untuk menjalankan kode di Internet dalam berbagai bahasa pemrograman. Ini bukan hal baru (google "run python online" sebagai bukti), jadi proposisi nilai Replit adalah fitur tambahan seperti kolaborasi, menginstal paket pihak ketiga, dan menghosting aplikasi web.
Saya bekerja di Replit pada musim panas 2019, di mana saya diminta untuk mengulang tumpukan manajemen paket Replit dan menjadikannya open-source. Jika Anda suka membaca tentang hal-hal teknis, inilah posting saya untuk blog Replit , dan inilah kodenya di GitHub .
Pada musim panas 2020, saya mengambil pekerjaan di tempat lain, tetapi masih mengirim email kepada mereka dari waktu ke waktu ketika mereka menghubungi saya tentang sesuatu yang keren yang telah dikembangkan Replit.
Tentang proyek sumber terbuka saya
Di Replit, saya sangat menyukai dukungan untuk banyak bahasa pemrograman yang berbeda. (Saya menulis posting lain di blog Replit tentang bagaimana mereka melakukannya.) Dan saya bertanya-tanya: Berapa banyak bahasa pemrograman yang dapat Anda masukkan ke dalam satu situs web?
Untuk menyelidiki pertanyaan ini, saya mengumpulkan aplikasi web kecil saya sendiri yang dapat menjalankan kode di Internet. Sekitar sehari kemudian, saya mendapatkan sesuatu yang berhasil. (Jika Anda bertanya-tanya mengapa begitu cepat - ternyata Anda hanya membutuhkan 30 baris kode untuk membuat orang menjalankan Python dalam aplikasi web! Ini mungkin mengapa ada begitu banyak situs web yang menjalankan Python di Internet .. .)
Setelah ini berhasil, saya mulai menambahkan sebanyak mungkin bahasa pemrograman berbeda yang dapat saya temukan. Seperti yang Anda lihat dari cuplikan riwayat versi proyek saya ini, saya menjadi sedikit terlalu bersemangat:
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
Pada akhirnya, saya menambahkan 216 bahasa, termasuk semua 38 bahasa dari Replit , 100 bahasa dari Quine Relay Yusuke Endo, dan banyak lagi. Anda mungkin bertanya: mengapa saya menghabiskan begitu banyak waktu untuk menambahkan bahasa pemrograman yang tidak jelas ke aplikasi web yang tidak akan digunakan oleh siapa pun? Nah, begini: apakah ini hobi paling aneh di tahun 2020 yang pernah Anda lihat?
Apa yang terjadi ketika saya memberi tahu Replit tentang proyek saya?
Saya pernah menerima email dari mereka yang memberi tahu saya tentang fitur baru yang telah mereka rilis. Saya memutuskan bahwa sekarang adalah waktu terbaik untuk berbagi proyek open source saya dengan mereka, jika mereka ingin mengambil inspirasi dari salah satu pekerjaan saya:
Saya mendapat tanggapan positif pada awalnya. Tapi kemudian, 30 menit kemudian, entah dari mana, Replit menuduh saya berperilaku tidak etis dan mencuri desain mereka:
Tak satu pun dari ide yang saya gunakan dalam proyek open source saya adalah "keputusan desain internal": semuanya diposting secara publik di blog Replit (saya tahu ini karena saya diminta untuk menulis beberapa posting blog ini selama magang). Dan proyek saya tampak seperti clone Replit, tidak lebih dari website lain pada pertama beberapa Google SERPs untuk "run python secara online", sebagian besar yang terlihat persis sama:
Tapi saya pikir saya kehilangan sesuatu karena itu meminta rincian:.
( Sisa email ini pada dasarnya mengulangi paragraf sebelumnya dari artikel ini, tetapi dengan lebih banyak detail teknis, Anda dapat membaca seluruh korespondensi di Imgur . atau arsip online .)
Sayangnya, mereka menolak untuk memberikan rincian spesifik tentang apa yang mereka katakan saya lakukan salah, mengulangi pernyataan mereka sebelumnya dan mengancam saya dengan tindakan hukum:
Dan kemudian, ceri di atas, Replit mengirimi saya email lain yang mengingatkan saya bahwa mereka hanya mengumpulkan $20 juta dari investor mereka bulan lalu dan mereka tidak takut menggunakannya untuk melawan saya. "Anda" yang dimaksud adalah salah satu magang mereka sebelumnya yang baru saja lulus dari perguruan tinggi setahun yang lalu dan yang tidak terlibat dalam kegiatan komersial sama sekali.
Saya ingin menunjukkan dua hal tentang surat ini:
- «commits like this» — . , Replit, , , , 38 , Replit, 178 , .
- , «demanding» — , , , Replit (. ). , .
, Replit
Secara alami, saya segera menyembunyikan proyek saya, menunggu beberapa saat hingga perasaan saya tenang, dan mengirim permintaan maaf ke Replit. Saya pikir mungkin ada sesuatu yang hilang melalui email, jadi saya meminta untuk menelepon:
Sayangnya, Replit mengabaikan email ini, jadi saya mengirimi mereka yang lain. Untuk ini saya mendapat jawaban, tetapi bukan yang saya harapkan:
Untuk berjaga-jaga jika Replit tidak menyadari bahwa saya senang dengan situasinya, saya mengirim tiga email tindak lanjut dengan penjelasan selama beberapa minggu ke depan, semuanya yang diabaikan.
Dengan kata lain, posisi Replit adalah sama: jika saya menerbitkan ulang proyek open source saya, mereka akan menuntut saya dengan "pengacara top."
Apakah Replitnya benar?
Replit mengklaim bahwa proyek open source saya adalah:
- klon Replit
- berdasarkan rahasia dagang mereka (keputusan desain internal)
- tidak etis
Mari kita menganalisis pernyataan ini sepotong demi sepotong:
- Saat mengembangkan proyek saya, apakah saya membuat klon Replit?
- Saat mengembangkan proyek saya, apakah saya menggunakan rahasia dagang Replit?
- Apakah tidak etis bagi saya untuk mengembangkan proyek sumber terbuka seperti Replit setelah mengerjakannya?
Pertanyaan 1 dan 2 berisi cukup banyak detail teknis, jadi saya telah menempatkannya di posting terpisah . Inilah TL; DR tentang masalah ini:
- Proyek saya tidak lebih seperti Replit daripada 15 proyek (komersial!) lainnya yang dapat Anda temukan di Google dengan mengetikkan "jalankan python online" atau "lingkungan pemrograman online".
- Kesamaan antara proyek saya dan Replit dapat dijelaskan dengan hanya melihat repo GitHub dan posting blog yang diposting online oleh Replit itu sendiri, yang jelas membuatnya tidak rahasia.
Mari kita jawab pertanyaan 3 di sini:
Pertanyaan: Apakah tidak etis bagi saya untuk mengembangkan proyek open source yang mirip dengan Replit setelah mengerjakannya?
Menurut pendapat saya, jawaban untuk pertanyaan ini adalah "tidak", karena beberapa alasan:
- Riju adalah organisasi yang sepenuhnya nirlaba. Tidak seperti Replit, saya tidak mencari pendanaan dari sumber manapun, iklan, donasi, penggalangan dana, langganan, apapun. Saya tidak tertarik menjalankan bisnis dan tidak pernah ingin Riju menjadi terlalu populer karena sayalah yang membayar tagihan server.
- Riju Replit. , Riju 38 . ( , , .) , Replit 7 . , Riju Replit.
- Riju Replit. , , fork bomb — , , . ( .) , Replit, , , , .
- Replit — ( ). — , . Riju , : , , , -, , , GitHub .
- Replit, Riju, . , GitHub. , Replit , , .
- Riju . , . , , Hexagony SNOBOL, , (!).
Saya bukan orang bisnis. Saya hanya seorang pengembang open source yang suka membuat hal-hal aneh untuk bersenang-senang. (Jika Anda ragu tentang pengalaman saya menghasilkan sesuatu yang tidak menghasilkan uang, cukup periksa daftar di situs web saya dan perhatikan tidak adanya apa pun yang pernah menghasilkan satu sen pun pendapatan.)
Saya tidak akan pernah mencoba mencuri milik seseorang bisnis setelah bekerja dengan mereka. Merugikan Replit bukanlah niat saya saat mengerjakan Riju, dan menuduh saya sebaliknya, terutama tanpa mengajukan satu pertanyaan klarifikasi pun dan menolak semua tawaran untuk mengadakan diskusi, menurut saya, menunjukkan itikad buruk yang besar dari pihak Replit.
Jika Anda ingin memutuskan sendiri siapa yang benar, saya akan dengan senang hati membuka semua bukti (kecuali kodenya, karena Replit masih berjanji akan menuntut saya jika saya melakukannya). Sekali lagi, saya memiliki posting terpisah dengan semua detail teknis . Dan Anda juga dapat membaca semua korespondensi antara saya dan Replit, dalam bentuk lengkap dan ringkas, di Imgur , cermin di Arsip Internet ). (Detail teknis tentang Replit telah diedit, serta pernyataan apa pun yang mungkin secara implisit mengungkapkan detail tersebut.)
Mengapa Replit melakukan ini?
Replit menyatakan cita-cita berikut:
- (, , GitHub Replit; CEO Replit: "I owe my entire career to open-source")
- ( Replit, : « [… ], »; « . -- GitHub»)
- lebih mudah untuk berbagi dan me-remix kreasi Anda (misalnya, CEO Replit menulis tentang belajar memprogram: "Saya akan mengunggah proyek yang terkait dengan apa yang ingin saya bangun [...], memodifikasi dan mengotak-atiknya dan mendapatkan inspirasi" ; sarannya yang lain juga melakukan fork dan remix , dan menjual filosofi itu sebagai ciri khas Replit )
Namun, tindakan Replit dalam hal ini menunjukkan kemunafikan:
- mereka mengatakan mereka mendorong pengembangan sumber terbuka, tetapi ketika proyek sumber terbuka saya menyinggung mereka, mereka menutupnya, jatuh ke dalam prasangka
- mereka mengklaim telah membantu komunitas open-source, memposting posting blog, tetapi ketika saya mencoba menggunakan ide-ide ini dalam proyek komunitas, mereka mengancam akan menuntut saya
- mereka bilang mereka memudahkan untuk mendistribusikan, mendaur ulang, memperbaiki kreasi saya, tetapi ketika saya mencoba me-remix Replit untuk diri saya sendiri, saya menjadi persona non grata
Dalam surat Replit kepada saya, ancaman mereka didasarkan pada fakta bahwa saya pernah bekerja untuk mereka di masa lalu. Namun, saya percaya bahwa alasan ini adalah layar. Untuk memahami alasannya, mari kita lihat beberapa tweet yang diposting oleh CEO Replit, Amjad, tepat setelah dia mengancam saya dengan email:
Amjad kemudian menghapus tweet-tweet tersebut karena ternyata kontradiktif:
Dalam tweet ini, Amjad menunjukkan bahwa Athens Research jelas-jelas terinspirasi oleh perusahaan lain dan berpendapat bahwa mereka harus "ditertawakan" dan dilarang menerima dana. Selain itu, dia berkata, "Saya tetap dengan apa yang saya katakan tentang peniru secara umum," yang berarti dia membenci semua orang yang, menurut pendapatnya, "meniru" proyek yang ada, bukan hanya perusahaan tertentu dalam tweetnya.
Ada kesamaan yang jelas antara komentar Amjad tentang Athens Research dan ancaman hukumnya terhadap proyek saya sendiri. Dia bahkan menggunakan kata yang sama dalam kedua kasus - "peniru"... Dalam kasus Penelitian Athena, Amjad tidak bisa berbuat apa-apa untuk mengungkapkan penghinaannya selain memfitnah mereka di Twitter. Tapi dalam kasus saya, karena saya dulu bekerja di Replit, Amjad punya alasan untuk menuduh saya - tuduhan yang, jika Anda tidak mengetahui faktanya, terdengar seperti sah.
Saya juga ingin menegaskan kembali bahwa orang yang diancam Replit dengan "pengacara yang lebih baik" dan "uang besar" adalah lulusan baru tanpa perusahaan, tanpa dana, dan tanpa ambisi komersial . Jika seseorang dengan perusahaan komersial yang nyata menyinggung Replit, saya bergidik memikirkan tanggapan seperti apa yang mungkin mereka dapatkan.
Bagaimana Reaksi Replit terhadap Postingan HackerNews Saya
Setelah saya menerbitkan artikel di pagi hari, itu mendapat banyak diskusi tentang Hacker News. Sekitar pukul 17.00, Amjad memposting permintaan maaf kepada Hacker News.
Dia juga meminta untuk menjadwalkan panggilan, yang secara alami saya setujui:
Selama panggilan, Amjad meminta maaf atas ancaman hukum, tetapi mengulangi bahwa, menurut pendapatnya, saya membuat tiruan Replit dan bertindak tidak etis. Pada akhirnya, kami setuju untuk tidak setuju, dan dia berjanji secara tertulis bahwa dia tidak keberatan jika saya membawa proyek saya kembali:
Saya senang bahwa kami dapat menyelesaikan situasi ini dengan cara yang damai, dan saya berharap untuk melanjutkan hidup saya. - termasuk pemulihan Riju, setelah saya dapat membangun sesuatu lagi :)
Damai.