Apakah mungkin untuk menulis ulang setiap baris proyek sumber terbuka dengan cara yang sedikit berbeda, dan menggunakannya dalam proyek sumber tertutup?


122

Ada beberapa kode yang merupakan GPL atau LGPL yang saya pertimbangkan untuk digunakan untuk proyek iPhone.

Jika saya mengambil kode itu (JavaScript) dan menulis ulang dalam bahasa yang berbeda untuk digunakan pada iPhone apakah itu akan menjadi masalah hukum?

Secara teori proses yang telah terjadi adalah bahwa saya telah melewati setiap baris proyek, mempelajari apa yang dilakukannya, dan kemudian menerapkan kembali ide-ide tersebut dalam bahasa baru.

Bagi saya sepertinya ini seperti belajar bagaimana mengimplementasikan sesuatu, tetapi kemudian mengimplementasikannya secara terpisah dari lisensi aslinya. Oleh karena itu Anda hanya menyalin algoritma, yang bisa dibilang Anda bisa pelajari dari tempat lain selain proyek asli.

Apakah lisensi juga mencakup implementasi spesifik atau algoritme?

SUNTING------

Sangat senang melihat topik ini membuat percakapan yang baik. Untuk memberi sedikit lebih banyak dukungan ke proyek, kode yang terlibat melakukan beberapa jenis analisis audio. Saya percaya itu bukan hal yang sepele untuk dipelajari atau diterapkan, walaupun saya siap untuk memulai tugas ini (saya berada pada level di mana saya dapat mengimplementasikan algoritma FFT , dan ini akan melampaui itu.) script LOC rendah , jadi saya tidak berpikir itu akan terlalu sulit untuk melakukan port langsung.

Saya sangat menyukai ide rereleasing port saya serta menggunakannya dalam aplikasi. Saya tidak melihat masalah dengan itu, dan itu akan menjadi cara yang bagus untuk memberikan sesuatu kepada komunitas.

Saya akan menambahkan garis tentang tidak ingin membahas masalah-masalah moral, tetapi saya cukup senang saya tidak melakukannya karena tampaknya telah sedikit memicu perdebatan.

Saya masih merasa agak aneh menggunakan kode sumber terbuka untuk belajar. Apakah ini berarti bahwa apa pun yang dipelajari dari proyek sumber terbuka tidak diizinkan untuk digunakan dalam proyek sumber tertutup? Dan berapa lama setelah atau berbeda suatu implementasi harus tidak dianggap pelanggaran lisensi? Suram!

EDIT 2 --------

Pertanyaan lanjutan


27
Saya benar-benar ingin membahas pertanyaan lain, "Jika Anda mempelajari suatu algoritma dari program open source dan mengimplementasikan kembali algoritma tersebut, apakah Anda telah melanggar lisensi?" Saya menanyakan hal ini dari sudut pandang hukum, bukan moral. Tetapi bahkan dari sudut pandang moral, bukankah itu bentuk pembelajaran yang sah? Apakah kita tidak diperbolehkan menggunakan pembelajaran apa pun yang dikumpulkan dari proyek sumber terbuka? Ini tampaknya bertentangan dengan titik GPL itu sendiri?
Chris Barry

8
@optician Masalahnya adalah Anda ingin menerjemahkannya baris demi baris, yang membuatnya menjadi karya turunan, seperti terjemahan antara bahasa manusia. Gagasan itu sendiri tidak dilindungi oleh hak cipta, tetapi mungkin dilindungi oleh paten. Tapi waspadalah, IANAL.
starblue

3
Komentator: komentar dimaksudkan untuk mencari klarifikasi, bukan untuk diskusi panjang. Jika Anda punya solusi, tinggalkan jawaban. Jika solusi Anda sudah diposting, harap perbarui. Jika Anda ingin mendiskusikan pertanyaan ini dengan orang lain, silakan gunakan obrolan . Lihat FAQ untuk informasi lebih lanjut.

2
@optician Sistem Stack Exchange bukan papan diskusi, di mana setiap posting adalah topik yang dapat mengubah arah dari waktu ke waktu: jika Anda memiliki pertanyaan lain yang ingin Anda bantu, ajukan pertanyaan lain. Kalau tidak, silakan mengedit pertanyaan Anda untuk mengklarifikasi jika jawaban yang Anda terima tidak sepenuhnya mengatasi masalah awal Anda.

2
Saya memberikan suara untuk menutup pertanyaan ini sebagai di luar topik karena ini tentang masalah hukum.
Robert Harvey

Jawaban:


257

Saya bukan pengacara. Ini bukan nasihat hukum.

Yang mengatakan, mengambil setiap baris aplikasi dan mengubahnya sedikit untuk tujuan tunggal menghindari hukum hak cipta secara terang-terangan, jelas, menciptakan karya yang diturunkan tanpa pertahanan yang masuk akal sama sekali. Bahkan hakim dan juri yang paling pasti akan melawan Anda jika Anda diseret ke pengadilan.

Sama seperti perbandingan: perusahaan yang memang perlu menulis ulang sesuatu untuk interoperabilitas biasanya mempekerjakan set orang yang berbeda untuk memahami sumbernya, dan untuk membuat port ("implementasi ruang bersih"), sehingga tidak ada yang dapat menuduh mereka membuat turunan kerja. Apa yang Anda usulkan adalah kebalikannya.


25
Saya berharap saya bisa memberi Anda +10 ...
Marjan Venema

5
Itu "jika" itu pernah sampai ke pengadilan.
QueueHammer

5
Jika perangkat lunak berhasil sama sekali, kemungkinan besar akan berakhir di pengadilan di beberapa titik.
Justin C

4
@optician: Bergantung pada seberapa dekat Anda membuat kembali yang asli, sebenarnya, dan itulah jenis pertanyaan yang Anda perlukan pengacara untuk menjawab.
David Thornley

5
@ Davidvidone Anda memilikinya mundur. Anda harus memahami bahwa algoritma logis dan ekspresi tertentu dari suatu algoritma dalam kode terpisah secara hukum; hanya ungkapan yang berhak cipta. Grup yang melakukan implementasi ulang tidak memiliki kontak dengan ekspresi asli dari algoritma (mereka hanya melihat dokumentasi internal tentang algoritma logis) dan ekspresi tertulis mereka kemungkinan akan berbeda dari ekspresi asli, sehingga sangat tidak mungkin mereka bisa melanggar hak cipta. Namun, mereka dapat dengan mudah melanggar paten, karena algoritma logis mereka identik dengan yang asli.
apsillers

72

Menurut Betsy Rosenblatt dari Dasar-Dasar Hak Cipta Harvard Law School :

Apa yang merupakan pelanggaran hak cipta?

Tunduk pada pembelaan tertentu, itu merupakan pelanggaran hak cipta untuk orang lain selain dari penulis untuk melakukan hal berikut tanpa izin penulis:

  1. menyalin atau mereproduksi karya
  2. buat karya baru yang berasal dari karya asli (misalnya, dengan menerjemahkan karya ke dalam bahasa baru, dengan menyalin dan mengubah gambar, atau dengan memindahkan karya ke media ekspresi baru)
  3. menjual atau memberikan karya, atau salinan dari karya itu, untuk pertama kalinya (tetapi begitu penulis melakukannya, hak untuk menjual atau memberikan barang tersebut ditransfer ke pemilik baru. Ini dikenal sebagai "pertama doktrin penjualan ": begitu pemilik hak cipta telah menjual atau menyerahkan karya atau salinannya, penerima atau pembeli dapat melakukan apa yang diinginkannya dengan apa yang dia miliki.) 17 USC §109 (a).
  4. melakukan atau menampilkan karya di depan umum (hak ini tidak berlaku untuk seni visual) tanpa izin dari pemilik hak cipta. 17 USC §106. Ini juga merupakan pelanggaran hak cipta untuk melanggar "hak moral" seorang penulis sebagaimana didefinisikan oleh 17 USC 106A. Hak moral dibahas di lokasi ini.

Sepertinya saya melanggar item # 2 di atas.

Namun, saya pikir terminologi adalah masalah besar di sini. Anda berkata, "Jika saya mengambil kode itu (javascript) dan menulis ulang dalam bahasa yang berbeda untuk digunakan pada iPhone apakah itu akan menjadi masalah hukum?" (penekanan milikku). Menulis ulang sesuatu mungkin berbeda atau tidak sama dengan menyalin. Misalnya, jika Anda melihat Mona Lisa, kemudian pergi ke studio Anda sendiri, dan melukis apa yang Anda ingat tentangnya, maka bagi saya tampaknya Anda sedang menciptakan karya orisinal yang merupakan ekspresi Anda tentang bagaimana Anda memandang yang asli. Namun, jika Anda memiliki salinan Mona Lisa di studio Anda, dan Anda melukisnya, bukan apa yang Anda ingat, maka saya pikir Anda pasti menyalinnya.

Dengan cara yang sama, jika Anda menggunakan MS Word, dan mungkin bahkan jika Anda melihat beberapa kode, dan kemudian Anda pergi dan menulis pengolah kata Anda sendiri yang memiliki kesamaan fungsional, saya percaya ada kasus di mana diputuskan bahwa "lihat & feel "tidak dapat memiliki hak cipta. (Ini tidak mengatakan paten, tentu saja.)

Anda mungkin harus bertanya kepada pengacara (karena saya bukan pengacara).

Pendapat pribadi saya adalah bahwa "port" adalah karya turunan dan karenanya Anda harus merilis kode porting dalam lisensi yang sama.


1
ada juga masalah membuktikannya. Jika Anda melihat kode sumber Word, maka tulislah pengolah kata Anda sendiri ... Anda akan kesulitan membuktikan bahwa Anda tidak menyalin apa pun.
gbjbaanb

6
@ gbjbaanb: Terserah Microsoft untuk membuktikan bahwa Anda melakukannya , bukan sebaliknya, di sebagian besar negara. Bukan itu penting, karena jika Microsoft menuntut Anda, Anda kacau kecuali Anda bisa mendapatkan perusahaan besar untuk membawa Anda pada pro bono. :-) Dan jika Anda memiliki akses ke kode sumber Word, kemungkinan besar Anda sudah menandatangani sesuatu yang mengatakan bahwa Anda tidak akan menulis apa pun untuk bersaing dengannya ...
TJ Crowder

3
Daripada menulis 'di sini' Anda lebih baik menyebutkan nama penulisnya: 'Betsy Rosenblatt, Harvard Law School'.
Nicolai Reuschling

3
@Nicolai Reuschling: lol :)
Scott Whitlock

4
@TRiG: "Saya tidak tahu mengapa Anda berpikir itu lucu." - Mungkin itu karena Anda tidak memiliki rasa Irony. ;)
Scott Whitlock

55

Saya bukan pengacara, ini bukan nasihat hukum, dan jika Anda mengandalkan apa yang saya katakan dalam segala bentuk usaha yang meragukan (1) Anda idiot, dan (2) saya melepaskan semua tanggung jawab. Inilah yang saya dengar dan baca selama bertahun-tahun dari orang-orang yang sepertinya tahu.

Juri tidak memainkan game "secara teori". Mereka tidak menyukai orang-orang yang membuat cara untuk memutarbalikkan hukum yang mungkin dapat diterima dalam hal analisis logis tetapi yang bertentangan dengan maksud yang jelas dan bagaimana hakim telah memerintah di masa lalu. Jangan pernah mencoba menjadi terlalu pintar tentang hukum jika ada kemungkinan Anda akan berakhir di ruang sidang membela interpretasi Anda.

Secara umum diterima bahwa mengambil novel dan membuat film dari film itu atau menerjemahkannya ke bahasa lain menciptakan karya turunan, dan itu adalah transformasi yang jauh lebih besar daripada yang Anda bicarakan, dan membutuhkan kreativitas yang jauh lebih besar. Lihatlah itu sebagai contoh; seorang hakim pasti akan melakukannya.

Di AS, ada beberapa kasus di mana penyalinan program secara lebih longgar daripada yang Anda bicarakan telah dianggap sebagai pelanggaran. Di AS, perkirakan itu akan digunakan sebagai preseden.

Dengan kata lain, Anda akan memulai perusahaan komersial atas dasar yang akan dianggap ilegal jika ada yang mengganggu. Bukan ide yang bagus.

Selain itu, jika Anda menghormati gagasan hak cipta, atau kontrol apa pun yang mungkin dimiliki penulis atas apa yang dia terbitkan, Anda bersikap munafik. Kode sumber tersedia untuk Anda gunakan dalam kondisi tertentu. Anda melanggar hukum dan maksud tersurat dari penulis.

Sekarang, algoritma tidak dapat dilindungi hak cipta. Di AS, pengadilan telah memutuskan bahwa tidak mungkin untuk hak cipta suatu ide, dan segala sesuatu yang biasanya dapat dilindungi hak cipta yang merupakan satu-satunya cara untuk mengekspresikan sesuatu tidak dapat dilindungi hak cipta. Karena itu, Anda tentu dapat menggunakan algoritma.

Ada cara untuk menyalin algoritma yang tahan hak cipta: pendekatan "ruang bersih", di mana satu orang atau kelompok mempelajari kode sumber dan membuat deskripsi algoritme (dengan sesedikit mungkin detail implementasi), dan orang lain atau grup menulis kode baru tanpa referensi ke sumber aslinya. Semakin dekat Anda dengan itu, semakin aman Anda.

Anda juga mungkin ingin mempertimbangkan bahwa, dengan memposting pertanyaan di sini, Anda telah mempublikasikan maksud yang mungkin melanggar hak cipta, dalam bentuk yang kemungkinan dapat ditelusuri kembali kepada Anda jika ada yang memiliki hak hukum untuk melakukannya (seperti penemuan di kasus perdata, atau investigasi polisi biasa jika ini ternyata merupakan kasus pidana).


18
+1 Untuk "Anda juga mungkin ingin mempertimbangkan bahwa, dengan memposting pertanyaan di sini, Anda telah menerbitkan maksud yang mungkin melanggar hak cipta".

6
+1 Untuk pendekatan "kamar bersih" - Saya selalu bertanya-tanya bagaimana cara kerjanya.
DMan

Saya baru saja diposting di forum penulis dengan apa situasinya, dan akan memposting hasilnya di sini.
Chris Barry

Bagaimana suatu algoritma ide dan program bukan ide? Atau, bagaimana program bukan kumpulan algoritma?
Scooter

16

Mengapa Anda tidak hanya membuka sumber port Anda dan membiarkan sisa proyek Anda menjadi sumber tertutup?

Mengutip jawaban saya yang lain:

Sumber terbuka berfungsi, karena itu adalah komunitas. Karena itu saling menguntungkan. Anda tidak mendapatkan uang dengan menulis kode sumber terbuka. Anda mendapatkan uang dengan mengonsumsi kode sumber terbuka. Jadi mengapa Anda menulis kode sumber terbuka? Untuk mengembalikan sesuatu.

Tetapi dari sudut pandang yang lebih pragmatis:
Jika kode yang Anda porting sangat berguna sehingga Anda pikir Anda harus melindunginya untuk mempertahankan keuntungan (yang tidak Anda miliki, karena orang yang menggunakan Appcelerator dapat langsung menggunakannya), akan ada menjadi porta sumber terbuka cepat atau lambat. Ini akan dikelola oleh sejumlah orang, itu akan digunakan dan dengan demikian diuji oleh lebih banyak orang dan akan disempurnakan lebih lanjut untuk memasukkan prinsip-prinsip yang dipromosikan oleh bahasa target dan untuk antarmuka yang lebih baik dengan kerangka kerja yang lazim pada platform Anda. Cepat atau lambat kode Anda akan terlihat seperti sampah dibandingkan dengan itu.
Open sourcing sebenarnya adalah kesempatan Anda untuk tetap di atas peringatan. Ini menang-menang. Jika Anda beruntung, Anda bahkan akan mendapatkan pengelola kode tersebut dan dapat fokus pada logika aplikasi Anda, yang sebenarnya membuat produk Anda unik.


1
+1 Beberapa kode terbaik di luar sana adalah Open Source. Tapi saya bisa melihat bagaimana menambahkan kode GPL ke proyek komersial bisa lebih menjadi penghalang ketika itu berarti membuka sumber seluruh produk.
Alex Jasmin

2
Kode GPL dilarang di aplikasi iOS oleh persyaratan lisensi Apple, sejauh yang saya mengerti.
Andrey Tarantsov

2
Ya, sepertinya satu klausa di Apple ToS bertentangan dengan satu klausa di GPL, jadi walaupun tidak dilarang, mereka sepertinya tidak cocok.
Vatine

1
Jika ToS Apple bertentangan dengan GPL, memiliki hak cipta sendiri akan memungkinkan Anda untuk melepaskannya di bawah lisensi lebih banyak, sekali di bawah lisensi yang kompatibel dengan Apple ToS tetapi juga di bawah GPL.
Pieter B

8

Saya bukan pengacara, saya bahkan tidak memainkannya di TV.

Tapi saya pikir masalah di sini adalah derivasi. Jika pekerjaan baru Anda berasal dari pekerjaan GPL atau LGPL, maka pekerjaan itu harus mematuhi persyaratan GPL atau LGPL. Pekerjaan Anda jelas akan turunan, bahkan jika Anda benar-benar menulis ulangnya baris demi baris dalam bahasa lain.


Ya, tetapi apakah karena itu berarti Anda tidak lagi diperbolehkan menggunakan algorthim itu? Apakah fakta bahwa Anda telah melihatnya diimplementasikan dalam proyek lain melarang Anda menggunakan algoritma itu sendiri, kecuali jika Anda dapat membuktikan bahwa Anda memiliki pengetahuan untuk membuat algoritma sendiri melalui jalur pembelajaran lain?
Chris Barry

4
Saya juga bukan pengacara jadi saya hanya menebak-nebak. Saya tidak akan menggunakan kata-kata "berasal dari" jika Anda menulis implementasi algoritma Anda sendiri dalam bahasa lain. Saya tidak berpikir GPL diciptakan sebagai sistem paten rahasia.
Kapten Sensible

1
@ Ketujuh - Anda harus merek dagang istilah "Sistem Paten Terselubung" dan mematenkan konsep.
Mayo

2
Algoritma tidak dapat dilindungi hak cipta. Untuk tujuan hukum hak cipta, pengulangan suatu algoritma tidak dapat ditindaklanjuti. Intinya adalah apakah program Anda secara tekstual berasal dari aslinya atau tidak; itu berarti nama variabel, tata letak kode dll. (Hukum paten, bagaimanapun, mungkin atau mungkin tidak berlaku bahkan untuk algoritma.)
Kilian Foth

1
Lisensi mencakup implementasi, bukan algoritme itu sendiri. Porting implementasi ke bahasa lain adalah karya turunan dengan cara yang sama porting Harry Potter ke Spanyol. Anda bebas menerapkan algoritma dengan cara Anda sendiri. Saya akan merekomendasikan tidak ada salinan / pucat dan pelajari algoritma yang ingin Anda terapkan dan tulis versi Anda sendiri dari awal. IANAL.
Dave Rager

5

Seperti yang orang lain katakan, ini kemungkinan merupakan karya turunan dan dengan demikian secara langsung melanggar ketentuan GPL jika Anda memilih untuk melakukannya "terpisah dari lisensi asli" (Saya berasumsi itu berarti Anda akan menghapus GPL dan menggunakan sesuatu yang lain, bahkan sumber tertutup) .

Bahkan jika itu tergelincir sebagai "legal", itu jelas tidak bermoral . Penulis perangkat lunak GPL memilih lisensi yang memperluas kebebasan ke karya turunan. Baik itu hal yang baik atau buruk, itu adalah niat penulis , dan Anda harus menghargai itu . Mereka memberi Anda kode untuk membaca dan memodifikasi, garpu dan apa pun, hanya meminta sebagai balasan bahwa Anda tidak mengubah ketentuan. Kemungkinan Anda juga tidak diharapkan untuk membayar perangkat lunak itu sendiri.

Saya tahu uang itu sulit, tetapi dalam bentuk ini ketika Anda melukis ide Anda, itu mencuri. Tentu, Anda bisa mempelajari algoritma itu atau detail implementasi apa pun dari sumber lain, tetapi Anda tidak melakukannya, seperti yang Anda katakan sendiri.

Jika moralitas tidak menjadi perhatian Anda, maka ingatlah bahwa mengingat sifat legalitas abu-abu dari apa yang Anda lakukan (atau akan lakukan), sangat mungkin bahwa penulis asli akan menghubungi Apple karena pelanggaran hak cipta. Sejauh ini, Apple dengan cepat menghapus perangkat lunak yang melanggar GPL. Kemungkinan lain adalah gugatan.

Jika saya jadi Anda, saya akan mempertimbangkan GPL-ing pekerjaan saya sendiri (itu bukan hal yang buruk!) Atau mendapatkan pengetahuan dengan cara lain.


Sepertinya ada aplikasi yang GPL (aplikasi wordpress?). Apakah Anda mengatakan bahwa tidak apa-apa menggunakan proyek open source untuk mempelajari suatu algoritma?
Chris Barry

Tidak, saya tidak mengatakan itu. Saya merujuk pada ide OP untuk menerjemahkan baris yang sama ke bahasa pemrograman yang berbeda. Sekarang, di mana derivasi berakhir dan di mana karya asli dimulai? Ini bukan pertanyaan yang mudah, tapi saya cukup yakin bahwa hanya mengimplementasikan ulang algoritma yang sama tanpa modifikasi adalah pekerjaan turunan.
Tamás Szelei

Ya itu bukan pertanyaan yang mudah. Menarik juga untuk mengetahui berapa banyak perubahan yang cukup untuk tidak menjadi ilegal. Mengubah nama yang layak, spasi putih? Rasanya konyol karena hal-hal itu akan sangat mudah diubah, terutama jika Anda memahami kode dan dapat membuat nama alternatif yang baik.
Chris Barry

Kode BTW dikomentari dengan baik, jadi sangat mudah untuk mengambil apa yang dilakukannya.
Chris Barry

Yah cukup gunakan akal sehat saja. Apakah Anda, sebagai seorang programmer, berpikir bahwa mengubah spasi putih dan nama variabel adalah perubahan yang cukup? Pada akhirnya (dalam kasus tepi yang realistis) pengadilan akan memutuskan tentang legalitas.
Tamás Szelei

5

Bagaimana kalau mencoba melakukan hal yang benar dan tidak mencuri ide seseorang? Anda cukup mengirim email ke pembuat kode dan bertanya apakah Anda dapat mendasarkan bagian dari proyek Anda dari mereka. Banyak orang tidak akan memiliki masalah dengan itu. Jika mereka memiliki masalah dengan itu, maka bahkan mengesampingkan masalah hukum, mengapa Anda ingin menodai reputasi Anda sebagai seorang profesional di komunitas? Fakta bahwa pertanyaan ini kurang lebih diutarakan sebagai "Apa yang bisa saya dapatkan?", Berbeda dengan "Apa yang harus saya lakukan?" agak mengganggu.

Intinya, tanyakan pada orang (atau orang-orang) yang menulis kode .


2
Penulis telah ditanya dan saya akan memposting hasilnya di sini.
Chris Barry

5

Saya juga bukan pengacara. Jika Anda khawatir apakah ini merupakan masalah hukum maka Anda mungkin tidak seharusnya mengajukan pertanyaan ini dan hanya menulis sendiri.

Pendapat pribadi saya tentang masalah ini:

Jika Anda mengambil kode javascript dan menulis ulang dalam bahasa yang berbeda, itu disebut porting dan dianggap sebagai karya turunan. Jika Anda menulis versi perangkat lunak Anda sendiri dan menggunakan kode javascript sebagai referensi untuk mempelajari bagaimana algoritma tertentu bekerja, maka Anda mungkin baik-baik saja.

Saya akan keliru meminta pengacara.

Sebagai tambahan , undang-undang hak cipta pada dasarnya memungkinkan Anda melakukan TIDAK ADA [*] dengan kode sumber yang diterbitkan selain membacanya. Lisensi yang dilepaskan oleh pemilik hak cipta memungkinkan Anda mendapatkan hak istimewa tambahan tertentu yang tidak disediakan oleh hukum hak cipta. Mengambil dan menggunakan kode dengan cara selain yang diizinkan dalam lisensi tidak berbeda dengan mengambil dan menggunakan karya berhak cipta apa pun yang dilindungi oleh undang-undang hak cipta tanpa mendapatkan izin dari penulis.

[*] Dengan pengecualian untuk penggunaan wajar.


1
Jika itu GPL, Anda dapat melakukan lebih dari sekadar membacanya. Anda dapat membuat karya turunan selama turunannya juga GPL.
Zhehao Mao

Ya itu benar.
Dave Rager

4

Tidak. Itu tidak etis. Ini hampir pasti ilegal. Dan jika saya pernah meninjau lamaran pekerjaan dari seseorang yang telah melakukan itu, itu akan bulat dengan prasangka ekstrem.


Jadi, apakah Anda mengatakan itu tidak etis untuk belajar bagaimana menerapkan sesuatu dari proyek open source?
Chris Barry

4
@ Chris: Tidak etis untuk membuat karya turunan dari proyek open source dan melepaskannya untuk dijual, bertentangan dengan maksud penulis seperti yang ditunjukkan oleh lisensi. Jika Anda tidak dapat mematuhi lisensi, dan sebaliknya menyelinap di sekitarnya ... ew.
Paul Nathan

1
Saya tidak mencoba untuk menghindari lisensi (mengapa saya mengajukan pertanyaan), tetapi saya bertanya-tanya apa situasinya mengenai masalah seperti ini. Apakah ada batasan waktu atau jumlah perbedaan antara dua karya yang akan menghentikannya menjadi karya turunan? Kalau tidak, tampaknya orang tidak dapat menggunakan pengetahuan yang dipelajari dari mempelajari kode sumber terbuka?
Chris Barry

tidak ada yang menghentikan Anda dari menjual aplikasi berdasarkan kode sumber terbuka. Faktanya, definisi open source (diberikan oleh Open Source Initiative) secara eksplisit memungkinkan hal ini. Tetapi Anda harus mematuhi lisensi, yang merupakan dilema OP. Persyaratan App Store dan konflik GPL, yang merupakan masalah di sini.
Martin Vilcans

2

Selalu kode seolah-olah orang yang akhirnya mempertahankan kode Anda akan menjadi psikopat kejam yang tahu di mana Anda tinggal. ~ Martin Golding

Saya bukan pengacara, jadi saya tidak akan menjawab seperti itu. Selain itu, banyak orang non-pengacara telah menawarkan pemikiran mereka tentang konsekuensi hukum dari ide Anda. Dan saya akan melewatkan debat moralisasi / etika.

Jika saya jadi Anda, saya akan lebih peduli dengan konsekuensi sebagai pengembang. Itu hal yang terhormat. Harga diri, terutama.

Tentu, kita semua mencari "Bagaimana {implementasi} dalam {spesifikasi}?" dari waktu ke waktu. Dari situlah Stack berasal, amirite? Dan itulah yang kita semua temukan ada di sini, bukan? Bukan itu yang saya bicarakan karena itu bukan yang Anda bicarakan.

Jika saya menggabungkan langkah jenius + upaya heroik = hasil yang layak disajikan kepada komunitas pengembang sebagai tawaran sumber terbuka, dan orang-orang cukup menyukainya untuk menggunakannya, saya akan mati-matian karena sanjungan. Saya akan menjadi waktu yang tepat. Seperti John Reisig, atau Mark Story. Sedikit untukku. Dan kemudian beberapa orang bodoh datang dan memasukkan kontribusi saya sehingga mereka dapat menawarkannya secara komersial atau asli ke dalam aplikasi komersial mereka? Jatuh mati.

Kode seperti tulisan tangan. Anda tidak dapat mengubah aplikasi yang lebih besar dari kotak korek api secara cukup signifikan sehingga pengembang sah lainnya tidak dapat membedakan keduanya secara bersamaan dan mengatakan "Tunggu sebentar ..." Sebagai pengembang, saya akan terlalu malu dengan kemungkinan rekan-rekan saya , kolega-kolega saya, orang-orang yang saya hormati dan yang saya hargai rasa hormatnya, akan mengetahui bahwa saya membongkar kode seseorang. Saya akan menjadi bahan tertawaan. Karena itu adalah beberapa naskah naskah salinan epik kiddie bs. Apakah Anda benar-benar ingin mendelegitimasi diri Anda di mata rekan-rekan Anda? Kode jacking adalah cara yang baik untuk memulai.

Dan sebagai pengembang, pertimbangkan ini: jika itu adalah aplikasi saya, dan saya tahu Anda mendongkraknya sehingga Anda akan khawatir akan dituntut, bagaimana jika saya memutuskan untuk menggugat Anda, Anda menghasilkan setumpuk uang terima kasih untuk kode saya jadi mengapa saya tidak memukul Anda di tempat yang sakit, mungkin mendapatkan kembali? Bagaimana Anda TAHU saya bukan seorang remaja atau yang memiliki temperamen dan keterampilan yang menakutkan? Pergi keluar dari cara saya untuk pwn r00 [pada ur b0xen, sehingga untuk berbicara. Karena mendongkrak aplikasi saya akan menunjukkan kepada saya bahwa Anda (dasar: Saya bisa menulis apa yang hanya bisa Anda dongkrak). Ini bukan pertama kalinya.


2
Saya sangat suka jawaban ini. Saya pikir masalahnya adalah jika Anda dapat menggunakan kode sebagai titik pembelajaran, dan kemudian menerapkannya kembali. Saya pikir ini tentang 200 ~ LOC script, jadi tidak begitu rumit. Saya hanya benar-benar ingin memulai dari contoh yang berhasil untuk pembelajaran saya, dan sepertinya masuk akal untuk memulai dari sana. Jika saya menulis semuanya dalam kode psudo dan GPL port saya apakah itu akan menempatkan saya pada posisi yang masuk akal? Saya benar-benar berpikir judul posting telah memicu perdebatan lebih dari yang saya harapkan.
Chris Barry

Re: memicu perdebatan, pertimbangkan sifat pertanyaan: seorang profesional dev menuangkan hati dan jiwanya ke dalam keahliannya apakah dia mau atau tidak. Berjam-jam waktu saya, ember darah keringat dan air mata karena sifat perangkat lunak adalah menjadi binatang buas. Dan di atas itu, kerajinan kami sangat sulit sehingga kontribusi yang sangat bagus untuk open source (js libs, kerangka kerja php, dll) - pada saat ini, siapa di antara kita yang tidak bergantung pada sumber terbuka untuk menjaga kepala kita tetap di atas air, secara profesional ? Jadi pertanyaan seperti ini sangat pribadi bagi kita semua apakah kita menyadarinya atau tidak.
OpenSorceress

Yang menyatakan, saya belajar sebagian besar dari apa yang saya ketahui dari penyihir open source seperti John Reisig dan Mark Story dan geng anak-anak jagoan mereka. JQuery adalah teman kecilku. CakePHP adalah roti dan mentega saya. Sama sekali tidak ada yang salah dengan ini. Oleh karena itu perbedaan antara jacking dan porting. Inilah yang kita bicarakan ketika kita berkata, kita berdiri di atas pundak para raksasa.
OpenSorceress

0

Anda tidak dapat membuat karya turunan dari karya turunan ... dan berharap itu bukan karya turunan. Itu bisa menjadi tidak dikenali, tapi itu sesuatu yang lain. Dan Anda dapat mulai dari teks apa pun dan dengan serie perubahan dapatkan teks apa pun (misalnya, hapus teks pertama, masukkan teks kedua), sehingga kemungkinan itu tidak berarti dilakukan. Jadi tidak penting apakah sesuatu itu mungkin, tetapi apakah itu benar-benar terjadi (hanya yang mustahil jelas tidak terjadi)

Moraly berbicara: Belajar dari apa pun yang Anda dapat (legaly) dapatkan adalah OK, tetapi Anda harus mengakui sumber. sisanya adalah legalitas.

IANAL, tetapi saya tidak akan berpikir saya membuat kesalahan, jika: 1) Saya belajar dari implementasi open source 2) Menerapkan algoritma yang sama (bahkan dalam bahasa yang sama) dengan melakukan hal ini, sebagian besar secara alami akan menjadi totaly berbeda, dan beberapa akan benar-benar mirip. Jika bagian-bagian yang serupa adalah hal-hal di mana kedua belah pihak mengikuti praktik pengkodean yang sama dan dengan demikian tidak dapat berbeda, maka bagian-bagian ini juga tidak berhak cipta. Misalnya. jika kelas memiliki dua bidang String pribadi dan mereka memiliki getter dan setter, satu-satunya hal yang menarik adalah kelas ini memiliki dua properti baca / tulis, bukan implementasi getter dan setter.


0

Jika Anda menulis ulang setiap baris secara terpisah, Anda mungkin atau mungkin tidak "menyalin" baris tersebut.

Tetapi Anda menyalin kata demi kata urutan, penataan keseluruhan dan penyertaan garis. Dengan kata lain, jenis barang yang membuat pekerjaan itu "utuh".

Anda sedang menyalin bagian yang mengatakan "baris ini harus pergi di sini, baris ini harus pergi ke sana". Ini adalah sebagian besar dari keseluruhan algoritma.

Selain itu, ketika sebuah proyek dimulai, tidak ada yang tahu apa yang harus dimasukkan, hal-hal apa yang dianggap lebih atau kurang penting, bagaimana menyusun dan menyusun algoritma. Informasi ini perlu diproduksi dan dirancang pada beberapa titik. Tetapi Anda tidak perlu melakukannya, karena Anda akan "menyalinnya".


Sebagai contoh:

Jika saya memiliki set {a, b, c, d, e, f}.

Saya dapat membuat daftar urutan mereka, [f, e, c, b, d, a]. Anda harus mengatakan bahwa saya telah menambahkan beberapa informasi ke dalam daftar, yang dikenal sebagai pemesanan , yang tidak ada di set unordered. Bergantung pada ukuran daftar, informasi ini mungkin sangat spesifik dan sulit didapat.


-1

Ini seperti hal lain - Anda tidak dapat berhenti mempelajari apa yang telah Anda pelajari, lihat, baca ... tetapi yang dapat Anda kendalikan adalah bagaimana Anda menggunakannya ...

Dua hal tentang hal ini -

  1. Seperti sebagian besar ketentuan lisensi untuk Kode Sumber Terbuka ... membuat sepeser pun itu benar-benar keren, menjadikannya "semu" - tertutup itu keren - tetapi masalahnya adalah 'kredit'. Saya telah membeli banyak skrip yang memiliki 'kredit' yang diberikan (url blog, kode OS yang digunakan ..., dll.) Tetapi masalahnya adalah apakah Anda secara terbuka (tidak menyembunyikan) memberikan kredit / pujian kepada kreasi seseorang (sekali lagi, orang tidak keberatan jika Anda melakukannya ... sering kali orang TIDAK memberikan kredit (sehingga melanggar ketentuan jenis GPL) karena takut orang menyadari bahwa mereka bisa mendapatkannya di tempat lain ... tetapi jika kode Anda secara terbuka memberikan kredit dan masih dapat berdiri sendiri (apakah kontribusi kode ANDA ditutup / terbuka) - maka orang tidak akan peduli.

Apa yang saya temukan sebagai pengembang adalah orang ingin tidak memberikan kredit, menutupnya untuk meniru pengembang / pembuat kode yang hebat, dengan kedok untuk menghasilkan uang dari upaya orang lain ....

jadi saya ngelantur ke # 2 ...

  1. "niat" hampir selalu terjadi ... bisakah Anda berdiri di depan seorang hakim (misalnya Anda digugat, dibawa ke pengadilan, atau diminta menjelaskan tindakan Anda untuk hal itu) dan menyatakan dengan jelas tanpa bergumam, dan dengan jelas posisi pada masalah - mengapa Anda membuat keputusan untuk menyembunyikan / menutup bagian 'open source' dari kode Anda, maka ini seharusnya tidak menjadi masalah.

2 pence saya. :)

Yang lucu - kebanyakan orang berpikir mereka telah menciptakan "ide spesifik" - padahal, "ide" itu mungkin (kemungkinan sangat tinggi) telah dilemparkan dalam bentuk serbet, kertas, pengkodean, internet, blog, dll ...

Jadi, walaupun ini mungkin baru bagi Anda, terutama karena Anda telah melihatnya di karya OS orang lain, itu mungkin digunakan dalam karya OS lain yang mereka gunakan untuk pekerjaan OS mereka ... dan pada akhirnya mungkin digunakan di tempat lain secara online .. itu bahkan tidak dengan masalah lisensi / hak cipta yang dinyatakan sama sekali ... dalam hal ini Anda dapat menyalin dari sumber itu ... memodifikasi, mengubah, menghapus, menambahkan ... (saya akan menyalin / url untuk melacak kembali di mana Anda mendapatkannya untuk menunjukkan bahwa Anda mendapatkannya secara sah) ke kode sesuka Anda.

Saya pikir itu luar biasa di 'kode-tanah' terutama berapa kali saya datang untuk menemukan bahwa kode 'licik' saya sudah ditulis (tho tidak juga .. ingatkan Anda - lol) pada tahun 2003 di geeky seseorang, pencarian google peringkat # 1.239, situs web yang mereka buat ketika mereka masih di sekolah pascasarjana, hanya menciptakan fungsi untuk kesenangan dan penggunaan gratis. :)

Intinya adalah .. berikan kredit, jangan mengecilkan masalah, dan ketika semuanya gagal ... atau jika ragu - TANYAKAN OS'r asli untuk hak pakai ... ya! kapan kita menjadi begitu sombong sehingga kita tidak bisa begitu saja meminta seseorang untuk menggunakan pemotong rumput, gunting, mesin pemotong rumput, ... dan - oh yeah - fungsi keren yang mereka buat!

Oke itu 3 pence ...


1
masalahnya adalah dia berusaha menghindari persyaratan lisensi asli.
Paul Nathan

-4

Berikan pria itu istirahat!

  1. jika pengaduan hukum diajukan kepadanya, itu berarti seseorang harus benar-benar memiliki akses ke kode dan BACA. Bagaimana jika perangkat lunak dikompilasi?

  2. Dia akan selalu bisa memanggil ketidaktahuannya saat ini pada saat fakta. Bukankah seharusnya seseorang memiliki itikad baik sebelum mereka diadili?

  3. Belajar bukan menyalin. Menemukan inspirasi dalam beberapa karya yang ada pasti juga tidak bisa disalin. Jadi bagaimana jika dia belajar dari perangkat lunak fungsi dari setiap baris kode dan memutuskan dia akan menggunakan prinsip hasil untuk meningkatkan itu dan membuat perangkat lunak yang lebih baik, lebih sederhana, lebih ramping. Tidak menyalin IMHO.

Itu adalah 2 sen saya. Sekarang giliran orang pertama yang tidak berdosa untuk melempar batu ...;)


3
Untuk # 1: Sampai kode sumber Anda dipanggil oleh hakim dan Anda dengan malu-malu tersenyum pada juri karena mereka melihat "menulis ulang" Anda.
Jarrod Nettles

2
Untuk # 2: Pelanggaran hak cipta biasanya merupakan masalah perdata, jadi tidak ada yang namanya "bersalah". Jika dominan bukti menunjukkan bahwa OP dilanggar, itu saja yang diperlukan. Untuk # 3: Bukan itu yang dikatakan pertanyaan aslinya.
David Thornley

1
(1) Tidak sulit untuk menemukan plagiarisme terang-terangan tanpa melihat kode sumber. Selain itu, kita tidak terbiasa menasihati orang tentang cara melepaskan diri dari tindakan ilegal dan sangat tidak etis. (2) Ignorantia juris non excusat ( ketidaktahuan bukanlah pembelaan ) (3) Menulis ulang baris per baris bukanlah pembelajaran. Menulis ulang baris per baris jelas bukan hanya mencari inspirasi. Ini plagiarisme terang-terangan, sederhana dan sederhana. Saya tidak akan mengulangi semuanya di sini, tetapi ada banyak sekali dokumen hukum dan preseden yang mendukung ini.
Greg Jackson

OK, jadi jika saya tidak menulis ulang baris demi baris, tetapi memahami algoritma, dan kemudian mengimplementasikannya dengan cara saya sendiri. Yaitu operasi satu kamar bersih satu orang. Apakah itu berbeda? Jika tidak, apakah saya karenanya tidak diizinkan untuk belajar dari proyek open source apa pun?
Chris Barry

4
@ Chris Inti dari operasi kamar bersih adalah bahwa orang yang mengimplementasikan algoritma belum melihat kode sumber yang asli sama sekali. Tidak ada yang namanya "kamar bersih satu orang".
Adam Lear
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.