Czy interfejsy i podpisy metod są chronione prawem autorskim?

13

Na przykład, czy to naruszenie praw autorskich, jeśli napiszę klasę o nazwie Losowo z dokładnie tym samym celem i tą samą sygnaturą metody, co klasa Microsoft .Net System.Random? Czy robi to różnicę w jakim języku jest napisany? W tym przypadku chcę napisać klasę Random do użytku w ActionScript, która nie ma wbudowanej rozstawionej klasy PRNG.

Jeśli ktoś ma dobre linki lub sugestie dotyczące zrozumienia, jakie aspekty oprogramowania są chronione, to też świetnie. I tak, wiem, że nie jest to miejsce na „prawdziwą” poradę prawną. Jeśli ktokolwiek pójdzie do sądu, wskazując publiczną tablicę wiadomości jako wstęp - wstydź się.

Joshua Honig
źródło
3
Dość pewne, że podpisy metod, interfejsy, nazwy zmiennych itp. Nie są chronione jakimkolwiek prawem autorskim lub licencją.
Adam Lear

Odpowiedzi:

11

Uważam, że spojrzenie na związek między Mono a Dotnet odpowiada na to pytanie. Zespół Mono może korzystać z definicji metod lub interfejsu publicznego, ale musi ponownie wdrożyć elementy wewnętrzne. Jednak sprawa Android v Oracle przywołuje kilka innych kwestii, które sprawiają, że to oczywiste rozróżnienie jest nieco bardziej rozmyte. W sprawie AvO większość punktów rozpatrywanych przez sąd dotyczy patentów związanych z maszyną wirtualną, interfejsy biblioteczne nie były przedmiotem sporu. Jedynym wyróżnionym kodem są przykłady, w których wygląda na to, że elementy wewnętrzne zostały skopiowane.

MP01
źródło
7
+1 Za doskonały punkt o mono kontra .Net. Wiem, że w pokrewnej koncepcji nie można praw autorskich do reguł gry. Klony Tetris są legalne, o ile nie są nazywane Tetris i nie przypominają zbytnio oficjalnie licencjonowanych produktów Tetris.
Myślałem, że główną istotną różnicą między .NET a Javą jest to, że (większość) .NET jest standardem ECMA.
Foole 30.09.11
@Foole: Zarówno Java Script, jak i ActionScript są oparte na formalnej specyfikacji ECMAScript (ECMA-262, -290, -327 i -357)
4

Podobne pytanie dotyczyło schematów baz danych: Skopiować schemat bazy danych konkurenta? Odpowiedziałem tam, że skopiowanie całego schematu byłoby prawdopodobnie naruszeniem praw autorskich, w zależności od skali kopiowania, docenionej przez sędziego.

Nawet jeśli pytanie jest podobna, odpowiem wręcz przeciwnie: Państwo może skopiować podpisy metod. Dlaczego?

W rzeczywistości sygnatury metod pochodzą ze zdrowego rozsądku.

  • Po pierwsze, jeśli weźmiemy ekstremalny przykład, Microsoft nie może opatentować nazwyRandom i pozywać wszystkich, którzy będą używać tego słowa Randomw dowolnej aplikacji.

  • Po drugie, co dokładnie robisz? Reimplementujesz .NET Framework? Dlaczego? Nie ma potrzeby wymyślania nowego koła . Jeśli wiesz, jak uczynić go lepszym, bardziej intuicyjnym itp., Prawdopodobnie znajdziesz lepsze nazwy klas i metod, lepszą organizację itp. Jeśli spróbujesz skopiować strukturę .NET Framework, aby przenieść go na inny język , nie jesteś bezpośrednim konkurentem Microsoft, więc nie mają poważnych powodów, aby cię pozwać (powiedziano to, pozwie cię, jeśli skopiujesz sam kod źródłowy). W rzeczywistości skorzystają nawet na tobie: kopiowanie takiej struktury do innych frameworków nie tylko pokaże sukces .NET Framework, ale także ułatwi programistom .NET pracę z innymi językami, a programiści z innych języków nauczą się .NETTO.

  • Po trzecie, mają poważniejsze rzeczy do roboty niż pozywanie wszystkich, którzy skopiują nazwy metod i klas .NET Framework.

Teraz, jeśli zamierzasz skopiować całą platformę .NET Framework i stworzyć produkt, który będzie używany przez wielu programistów, skonsultuj się z prawnikiem przed podjęciem ryzyka.


Przykład:

Byłem całkowicie niezadowolony z powodu zawstydzającego ograniczenia 259 znaków w ścieżkach plików w .NET Framework oraz niemożności korzystania z transakcji kodowych na poziomie plików. Zaimplementowałem więc własną Fileklasę metodami, które działałyby zgodnie z oczekiwaniami dla każdej ścieżki, nie tylko tych małych, krótkich i realizowały transakcje. W pierwszej wersji postanowiłem sklonować nazwy metod Filei Directoryklas . Czy Microsoft pozwałby mnie za to? Wątpię.

We wszystkich przypadkach w drugiej wersji pojawiłem się z nową składnią new File(string fileName), która jest dla mnie znacznie bardziej intuicyjna . Klonowanie nazw metod jest czasem przydatne, ale musisz mieć dobry powód, aby to zrobić.

Arseni Mourzenko
źródło
jeśli masz zamiar skopiować cały .NET Framework ... Uff, zdecydowanie nie! Naprawdę chcę tylko PRNG, który mogę wysłać do gry Flash. Lubię metody z klasy .Net Random i miałem zamiar napisać szybkie opakowanie z tymi samymi podpisami, gdy przyszło mi do głowy to pytanie. Trudno byłoby stracić dom ze względu na pozew architekta o projekt dzwonka do drzwi ... robiąc dziwną analogię.
System.Randomzawiera 8 metod (5 metod i 3 przeciążenia, jedna metoda protected). Myślę, że możesz w pełni sklonować te nazwy, a ciężko będzie ci udowodnić, że naprawdę złośliwie skopiowałeś te nazwy z Microsoft.
Arseni Mourzenko
4

Ochrona praw autorskich chroni „ekspresję artystyczną” dzieła, a nie formę techniczną (cytując wikipedię ).

Ochrona praw autorskich nie chroni faktów .

Powstaje więc pytanie, czy interfejs API lub interfejs jest „faktem” czy wyrazem artystycznym? W przypadku prostych interfejsów API, które są tylko listą sposobów uzyskiwania liczb losowych i różnego rodzaju liczb losowych, interfejs API jest prawdopodobnie bardziej podobny do faktu. Ale widziałem, że istnieje bardzo wyrafinowany interfejs (wiesz, na który wpatrujesz się przez minutę, a potem mówi „Ach! To imponujące.”) Można uznać za „wyraz artystyczny” warty ochrony.

Oto najnowszy artykuł o Oracle i Google walczących o prawa autorskie do API na temat tego właśnie problemu dyskutowanego w sądach (USA).

Nie jestem prawnikiem i tego postu nie należy interpretować jako porady prawnej. Nie umiem nawet bardzo dobrze pisać zastrzeżeń.

PT
źródło
0

Możesz wziąć aspekty czysto funkcjonalne, ale nie możesz wziąć aspektów ekspresyjnych. Nazwa klasy, nazwy metod i podpisy są czysto funkcjonalne. Potrzebujesz ich do współpracy. Nazwy parametrów i makra nagłówków można uznać za ekspresyjne. Na przykład w sprawie antymonopolowej dla systemu Windows Microsoft argumentował, że nic nie stoi na przeszkodzie, aby konkurent replikował interfejsy API systemu Windows i tworzył własną platformę, na której działałyby aplikacje Windows.

David Schwartz
źródło
Dobra uwaga dotycząca Windows API. Wpisz WINE.
Na platformach takich jak Java lub .NET, które zawierają Reflection (lub inne podobne sposoby sprawdzania, jak się nazywają), pomyślałem, że nazwy parametrów można również uznać za aspekty funkcjonalne.
supercat