Sebagai contoh, apakah ini merupakan pelanggaran hak cipta jika saya menulis kelas yang disebut Acak dengan tujuan dan metode yang sama persis dengan tanda tangan Microsoft .Net System. Kelas acak? Apakah ada bedanya bahasa apa itu ditulis? Dalam hal ini saya ingin menulis kelas acak untuk digunakan dalam ActionScript, yang tidak memiliki kelas PRNG yang diunggulkan.
Jika ada yang memiliki tautan atau saran referensi yang bagus untuk memahami aspek-aspek perangkat lunak apa yang dilindungi, itu bagus juga. Dan ya saya tahu ini bukan tempat untuk nasihat hukum "nyata". Jika ada yang pergi ke pengadilan menunjuk papan pesan publik sebagai prioritas - malu pada mereka.
interfaces
copyright
Joshua Honig
sumber
sumber
Jawaban:
Saya percaya melihat hubungan antara Mono dan Dotnet menjawab pertanyaan ini. Tim Mono dapat menggunakan definisi metode atau antarmuka publik tetapi mereka harus mengimplementasikan kembali internal. Namun Android v Oracle case memunculkan beberapa poin lain yang membuat perbedaan yang jelas ini sedikit kabur. Dalam kasus AvO sebagian besar poin yang dibawa ke pengadilan adalah paten terkait VM, antarmuka perpustakaan belum menjadi titik pertikaian. Satu-satunya kode yang telah disorot adalah contoh di mana sepertinya beberapa perluasan bahwa internal disalin.
sumber
Ada pertanyaan serupa tentang skema basis data: Menyalin skema basis data pesaing? Saya menjawab di sana bahwa menyalin seluruh skema mungkin merupakan pelanggaran hak cipta, tergantung pada skala penyalinan, yang dihargai oleh seorang hakim.
Bahkan jika pertanyaan Anda serupa, saya akan menjawab sebaliknya: Anda dapat menyalin tanda tangan metode. Mengapa?
Bahkan, tanda tangan metode datang dari akal sehat.
Pertama, jika kita mengambil contoh ekstrem, Microsoft tidak dapat hak cipta nama
Random
dan menuntut semua orang yang akan menggunakan kataRandom
dalam aplikasi apa pun.Kedua, apa yang sebenarnya ingin Anda lakukan? Reimplementing .NET Framework? Mengapa? Tidak perlu menemukan kembali roda . Jika Anda tahu cara menjadikannya lebih baik, lebih intuitif, dll., Kemungkinan Anda akan datang dengan nama kelas dan metode yang lebih baik, organisasi yang lebih baik, dll. Jika Anda mencoba menyalin struktur .NET Framework untuk mengirimnya ke yang lain bahasa , maka Anda bukan pesaing langsung dari Microsoft, sehingga mereka tidak memiliki alasan serius untuk menuntut Anda (ini dikatakan, mereka akan menuntut Anda jika Anda menyalin kode sumber itu sendiri). Sebenarnya, mereka bahkan akan mendapat manfaat dari Anda: menyalin struktur seperti itu ke kerangka kerja lain tidak hanya akan menunjukkan keberhasilan .NET Framework, tetapi juga akan membuatnya lebih mudah bagi pengembang .NET untuk bekerja dengan bahasa lain, dan pengembang dari bahasa lain untuk belajar .BERSIH.
Ketiga, mereka memiliki hal-hal yang lebih serius untuk dilakukan daripada menuntut setiap orang yang akan menyalin nama metode dan kelas .NET Framework.
Sekarang, jika maksud Anda adalah menyalin keseluruhan .NET Framework dan membuat produk yang akan digunakan oleh banyak pengembang, konsultasikan dengan pengacara sebelum mengambil risiko.
Sebuah contoh:
Saya benar - benar tidak senang dengan batasan 259 karakter yang memalukan dalam jalur file di .NET Framework dan ketidakmampuan untuk menggunakan transaksi kode pada tingkat file. Jadi saya menerapkan
File
kelas saya sendiri dengan metode yang akan bekerja seperti yang diharapkan untuk jalur apa pun, tidak hanya yang kecil, dan menerapkan transaksi. Pada versi pertama, saya memutuskan untuk mengkloning nama metodeFile
danDirectory
kelas . Apakah Microsoft akan menuntut saya karena melakukan itu? Aku meragukan itu.Dalam semua kasus, dalam versi kedua saya datang dengan sintaks baru
new File(string fileName)
,, yang saya temukan jauh lebih intuitif bagi saya . Mengkloning nama metode terkadang bermanfaat, tetapi Anda harus memiliki alasan yang kuat untuk melakukannya.sumber
System.Random
berisi 8 metode (5 metode dan 3 kelebihan, satu metode sedangprotected
). Saya pikir Anda benar-benar baik-baik saja untuk mengkloning nama-nama itu, dan orang akan kesulitan untuk membuktikan bahwa Anda benar-benar menyalin nama-nama jahat dari Microsoft.Perlindungan hak cipta melindungi "ekspresi artistik" dari sebuah karya, bukan bentuk teknis (mengutip wikipedia ).
Perlindungan hak cipta tidak melindungi fakta .
Jadi pertanyaannya menjadi, apakah API atau antarmuka adalah "fakta" atau ekspresi artistik? Untuk API sederhana yang hanya daftar cara untuk mendapatkan angka acak dan berbagai jenis angka acak, API mungkin lebih seperti fakta. Tapi, saya bisa melihat ada antarmuka yang sangat canggih (Anda tahu, yang Anda tatap sebentar, dan kemudian berkata "Ahh! Itu mengesankan.") Dapat dianggap sebagai "ekspresi artistik" yang layak dilindungi.
Inilah artikel terbaru tentang Oracle dan Google yang memperebutkan hak cipta API tentang masalah ini yang sedang diperdebatkan di pengadilan (AS).
Saya bukan pengacara, dan posting ini tidak boleh ditafsirkan sebagai nasihat hukum. Saya bahkan tidak bisa menulis disclaimer dengan baik.
sumber
Anda dapat mengambil aspek yang murni fungsional, tetapi Anda tidak dapat mengambil aspek ekspresif. Nama kelas, nama metode, dan tanda tangan sepenuhnya fungsional. Anda membutuhkan mereka untuk beroperasi. Nama parameter dan makro header dapat dianggap ekspresif. Sebagai contoh, dalam kasus antitrust Windows, Microsoft berpendapat bahwa tidak ada yang mencegah pesaing untuk mereplikasi Windows API dan membuat platform mereka sendiri di mana aplikasi Windows akan berjalan.
sumber