Postanowiłem stworzyć własny język programowania, głównie dla zabawy. Jednak zainteresowałem się aspektem prawnym tego wszystkiego.
Możesz na przykład licencjonować określone programy na określonych warunkach. Jak jednak radzisz sobie z licencjonowaniem języka ? Poza tym mam na myśli nie tylko implementację języka (kompilatora i VM), ale sam standard. Czy brakuje mi czegoś innego do języka programowania?
Co chciałbym osiągnąć dzięki takim licencjom:
- Zrób to całkowicie FOSS (czy językiem może być FOSS, czy może to implementacja, która może być FOSS?)
- Ustanowić siebie jako autora (czy możesz być legalnie autorem języka? Lub, po prostu, wdrożenie?)
- Spraw, aby każdy, kto wdrożyłby mój język, musiałby mnie przypisać (w stylu MIT. Pamiętaj, że nie mam nadziei, że ktokolwiek kiedykolwiek to zrobi, po prostu się uczę).
Myślę, że rozwiązaniem byłoby osobne licencjonowanie maszyny wirtualnej i kompilatora dla mojego języka jako „oficjalnej implementacji”, a następnie licencjonowanie dokumentu projektowego jako samego języka .
Czego dokładnie tu brakuje?
Odpowiedzi:
Disclaimer.IANAL ();
Nie możesz posiadać praw autorskich do języka programowania, tak jak nie możesz mieć prawa autorskiego do języka mówionego. Możesz licencjonować określoną implementację języka, a nawet sprzedawać ten kompilator tak, jak Borland robił z Delphi przez wiele lat.
Wiele języków ma dziś BDFL (Benevolent Dictator for Life), który określa, co wchodzi w język, a co nie. Python, Ruby i Perl są tego przykładem.
Inne języki oficjalnie opracowały normy przez jedną z kilku płyt normalizacyjnych, zazwyczaj ANSI, ECMA lub ISO. Przykłady obejmują C, C ++ i JavaScript.
Niektóre języki mieszczą się w bardziej mętnych obszarach z powodu polityki między firmami. Java jest przykładem, ponieważ Microsoft znajduje się na niektórych standardowych kartach.
Niektóre języki zmieniają się między sobą, zwykle z BDFL na Standardowy, C jest dobrym przykładem.
W zależności od specyfikacji języka niektórzy autorzy kompilatorów mogą implementować różne funkcje na różne sposoby (na przykład CPython vs PyPy) lub dodawać funkcje (Microsoft C ++ vs GNU C ++ lub MySQL vs PostGreSQL vs SQL Server)
źródło
Każda próba ograniczenia / kontroli / posiadania języka jest skazana na niepowodzenie. Aby język był powszechnie używany, ludzie muszą czuć, że: a) rozwiązuje problem lepiej niż jakiś istniejący, ustalony język, oraz b) czują się komfortowo, że nagle nie znajdą się na niewłaściwym końcu prawa jazdy / prawa garnitur. Jeśli uważają, że to w ogóle możliwe, pójdą gdzie indziej.
Oferuję absolutną tragedię Java, którą wykonują Larry Ellison (AKA Oracle) i Google. Ellison przeprowadził globalną operację prawną, która osiągnęła 2 rzeczy:
Google nie tylko wygrało ten proces, ale wypatrzyło żałosne roszczenia Oracle dotyczące patentów i praw autorskich. Po tym, nikt, kogo znam, nie uwierzy w jakąkolwiek „technologię open source”, na której są odciski palców Oracle (pomyśl: MySQL).
Jeśli chcesz, możesz pominąć stulecia programowania za Javą i przejść od razu do ignorowania ... po prostu poproś wszystkich deweloperów o podpisanie umowy, zanim będą mogli używać Twojego nowego języka.
źródło
Możesz napisać gramatykę dla swojego języka i dochodzić swoich praw autorskich. Oczywiście nie uchroniłoby cię to przed napisaniem innej gramatyki opisującej ten sam język.
Moim największym pytaniem byłoby „dlaczego chcesz”. W końcu prawdopodobnie chcesz, żeby ludzie przyjęli twój język. Jeśli ktoś twierdzi, że go stworzył, wystarczy dobra obecność w sieci, byś mógł nazwać go kłamcą.
Jak zauważyli inni, jeśli Twoim głównym celem jest zapobieganie kradzieży
name
twojego języka przez innych, bardziej przydatny byłby znak towarowy.źródło
Z czasem pojawiły się różne odpowiedzi na to pytanie:
W 2012 r. Na podobne pytanie udzielono odpowiedzi „nie możesz” w sprawie Oracle vs Google w odniesieniu do korzystania z Java API w Androidzie, a podobnej odpowiedzi udzielono w przypadku implementacji przez WPL języka programowania SAS we własnym produkcie. Uzasadnieniem tej odpowiedzi było to, że interoperacyjność między różnymi implementacjami języka wymaga kopiowania składni języka programowania, a zatem powinno to być dozwolone na zasadach „dozwolonego użytku”.
Jednak w 2014 r. Amerykański sąd apelacyjny uznał, że słuszna odpowiedź prawna brzmi „tak, możesz”, uzasadniając to tym, że aby zapewnić interoperacyjność (lub nie), i na jakich zasadach, według własnego uznania, oryginalne prawo autorskie uchwyt. W tej najnowszej interpretacji, jeśli ktoś nie chce, abyś był zgodny z jego językiem programowania, interfejsem API lub inną specyfikacją interfejsu, ma wszelkie prawo cię zatrzymać.
W skrócie, od 2014 r. Można prawdopodobnie słusznie założyć: tak, język programowania (jego składnia, struktura i sekwencja konstrukcji językowych) może być chroniony prawem autorskim
Pamiętaj, że prawo autorskie podlega lokalnej interpretacji i że przepisy w twoim kraju mogą się różnić. W razie wątpliwości skonsultuj się z prawnikiem ...
(usunięto resztę argumentu, zobacz historię)
Zastrzeżenie: IANAL
źródło