프로그래밍 언어의 구성 요소는 무엇이며 프로그래밍 언어의 저작권은 어떻게됩니까?


12

나는 단지 재미를 위해 내 자신의 프로그래밍 언어를 만들기로 결정했다. 그러나 나는 그것의 법적 측면에 관심이있었습니다.

예를 들어 특정 조건에 따라 특정 프로그램에 라이센스를 부여 할 수 있습니다. 그러나 언어 라이센스는 어떻게 사용 합니까? 또한 언어 (컴파일러 및 VM)의 구현이 아니라 표준 자체를 의미합니다. 내가 놓친 프로그래밍 언어에 다른 것이 있습니까?

이러한 라이센스로 달성하고자하는 것 :

  1. 그것을 완전히 FOSS로 만드십시오 (언어조차 FOSS 일 수 있습니까, 아니면 FOSS 일 수있는 구현입니까?)
  2. 저 자신을 저자로 설정하십시오 (법적으로 언어의 저자가 될 수 있습니까? 아니면 다시 구현입니까?).
  3. 내 언어를 구현하는 사람이 나를 귀속시켜야하도록 만드십시오 (MIT 스타일. 실제로 그렇게하는 사람에게는 희망이 없습니다. 다만 배우는 중입니다).

해결책은 "공식 구현"으로 내 언어에 대한 VM과 컴파일러를 별도로 라이센스 한 다음 디자인 문서 를 언어 자체로 라이센스하는 입니다.

여기서 정확히 무엇을 놓치고 있습니까?


10
다시 (1) : 언어 사양은 소프트웨어가 아니므로 FOSS가 적용되지 않습니다. 또한, 저자가 그런 것을 시도한 언어를 보았을 때 어떤 목적 으로든 매우 조심해야합니다 (즉, 아마 전혀 사용하지 않을 것입니다). 통제 중독, 불신, 법적인 문제에 대한 지식이 부족합니다.

나는 당신의 최종 목표가 무엇인지에 대해 조금 잃어 버렸습니다. 우리가 그것을 알고 있다면 그것을 달성하는 방법에 대한 격차를 메울 수 있습니다. 또한 귀하의 목표 시장이 누구인지 아는 것이 유용 할 것입니다.
pdr December

잠깐만 요, 라벨링은 어떻게 통제 중독과 관련이 있습니까, @delnan? 아니면 사양을 저작권으로 언급 했습니까? AFAIK, 저작권은 본질적으로 악한 것이 아니며 제한적일 필요는 없습니다.
jcora

1
그런 다음 사양을 공개 도메인에 유지할 것입니다.
jcora

1
저는 변호사가 아니지만 문서를 저작권으로 지정하더라도 (언어를 지정하더라도) 언어를 저작권으로 보호하지는 않습니다. 예를 들어, 저작권이있는 사전을 사용하고 있으며 위반하지 않고 프랑스어를 사용합니다.
Basile Starynkevitch

답변:


15

면책 조항 IANAL ();

귀하는 구어를 저작권으로 할 수있는 것보다 더 이상 프로그래밍 언어에 저작권을 부여 할 수 없습니다. 언어의 특정 구현에 라이센스를 부여하고 Borland가 몇 년 동안 Delphi를 사용하여 수행 한 방식을 컴파일러에 판매 할 수도 있습니다.

오늘날 많은 언어에는 언어에 들어가는 것과 그렇지 않은 것을 결정하는 BDFL (Benevolent Dictator for Life)이 있습니다. Python, Ruby 및 Perl이 모두 그 예입니다.

다른 언어는 공식적으로 ANSI, ECMA 또는 ISO와 같은 여러 표준 보드 중 하나에 의해 표준을 설계했습니다. 예를 들어 C, C ++ 및 Javascript가 있습니다.

일부 언어는 회사 간의 정치로 인해 더 어두운 지역에 속합니다. Microsoft는 일부 표준 보드에 앉아 있기 때문에 Java가 그 예입니다.

일부 언어는 한 언어에서 다른 언어로, 일반적으로 BDFL에서 표준화로 이동합니다. C가 좋은 예입니다.

언어 사양에 따라 일부 컴파일러 작성자는 다른 방식으로 다른 기능을 구현하거나 (예 : CPython vs PyPy) 기능을 추가하거나 (Microsoft C ++ vs GNU C ++ 또는 MySQL vs PostGreSQL vs SQL Server)


1
Loglan 은 제작 가능한 언어의 저작권이없는 상태에 대한 선례입니다. Lojban 은 사실상 Loglan을 공개적으로 다시 구현 한 것입니다. 반면에 썬 은 자바 의 Visual J ++ 구현에 대해 Microsoft를 고소했습니다 .
Jon Purdy

2
@JonPurdy : Java의 경우 저작권 문제가 아니라 상표 문제입니다. LiveScript가 Sun / Netscape의 공동 관심사 인 동안 어떻게 JavaScript가되었는지 살펴보고, 나중에 Microsoft는 상표 문제를 피하면서 유사성을 보여주기 위해 JScript를 릴리스 한 다음, 모두가 공통 이름으로 ECMAScript에 동의했습니다.
pdr December

1
@ JonPurdy, @ pdr 썬과 마이크로 소프트 사이의 분쟁에서 계약법 문제도 있다고 생각합니다. 마이크로 소프트는 썬으로부터 JVM 기술을 라이센스했으며 라이센스의 일부는 비표준 Java 구현을 생성하지 않기로 동의했다.
Charles E. Grant

1
@pdr 내가 기억할 수있는 한, 자바 구현이 제공해야하는 정확한 사양 (구현이 통과해야하는 수천 가지 테스트 포함)이 있었다. 마이크로 소프트는 비표준 구현 (아마도 Internet Explorer에서만 작동하는 애플릿을 배포하여 사용자를 잠그는 것)으로 인해 고소당했습니다. 비표준 Java 구현 배포 전략이 실패한 후 Microsoft는 C #을 계속 만들었습니다.
Giorgio

3
@Giorgio-정확하게. 썬이 거부 한 것은 MSFT가 언어를 자바라고 부르면서 (대량으로 MSFT 플랫폼에 고정시키기 위해) 본질적으로 위조 Java를 생산하는 것이 었습니다
Martin Beckett

8

언어를 제한 / 통제 / 소유하려는 시도는 실패로 끝납니다. 언어가 널리 사용 되려면 사람들이 a) 기존의 기존 언어보다 문제를 더 잘 해결한다는 느낌을 받고 b) 갑자기 라이센스 / 법의 잘못된 끝에 있지 않을 것이라는 편안한 느낌을 가져야합니다. 소송. 그들이 가능하다고 생각하면 다른 곳으로 갈 것입니다.

Larry Ellison (AKA Oracle)과 Google이 수행 한 Java의 절대 비극을 제공합니다. 엘리슨은 다음 두 가지를 달성 한 세계적인 규모의 법정 안면 공장 을 수행했습니다.

  1. 그는 자신이 돈을 벌 수 있다고 생각한 사람을 고소하겠다고 세상에 보여주었습니다.
  2. 그는되지 않은 미래의 발전을 보장 절대적으로 이미 선택할 것 자바에 묶여 아무것도 자바 이외.

구글은 그냥이 소송을 이기지 않았다, 그들은 내장을 특허와 저작권의 오라클의 한심한 주장을. 그 후에 는 Oracle의 지문이있는 "오픈 소스 기술"에 대해 어떠한 믿음 지지 않을 것입니다 (MySQL).

당신이 원한다면, 당신은 Java 뒤의 개발자 세기를 건너 뛰고 무시 당할 수 있습니다 ... 모든 개발자의 계약서에 새 언어를 사용하기 전에하십시오.


1
완벽하게 명확하게하기 위해 +1 당신은 Java에 대한 두 번째 요점으로 손톱을 쳤다. 이것은 Java를 계속 사용할 것인지 아니면 비슷한 언어를 직접 만들 것인지를 결정하는 주요 요인이었습니다. 나는 사람들이 그것을 사용하기를 기대하지는 않지만 개인적으로나 교육적 목적으로 사용됩니다. 그러나 옵션을 열어두고 싶습니다.
jcora

1
업데이트 : 2014 년 5 월 연방 순회 법원은 이러한 결정을 취소하고 API에 저작권이있을 수 있다고 말했습니다. eff.org/deeplinks/2014/05/…
nobody

그러나 그것은 내 게시물의 진정한 요점이 아닙니다. Java에 대한 오라클의 강력한 플레이가 완전히 파괴 된 후에는 올바른 마음을 가진 사람이없고 역사에 대한 지식이 없어도 이러한 종류의 올가미를 고의로 회사 나 프로젝트 목에 두게됩니다. 어쨌든 항소 법원에 의한 반전은 OSS 도구와 언어 만 사용한다는 주장에 더 큰 비중을 두는 것입니다. Larry Ellison과 같은 홀이 리버 / 프리 소프트웨어의 진정한 가치를 가장 어려운 자본 가나 사업가에게 집으로 몰아 넣는 사람이되어야한다는 것은 놀랍고도 아이러니합니다.
피터 로웰

2

언어에 대한 문법을 ​​작성하고 그에 대한 저작권을 주장 할 수 있습니다. 물론, 그것은 같은 언어를 묘사 한 다른 문법을 쓰는 누군가로부터 당신을 보호하지 못할 것입니다.

나의 가장 큰 질문은 "왜 당신이 원하는가"입니다. 결국, 사람들이 당신의 언어를 채택하기를 원할 것입니다. 다른 사람이 웹 사이트를 만들었다 고 주장하는 경우 단순히 웹 존재가 양호하면 거짓말 쟁이라고 부를 수 있습니다.

다른 사람들이 지적했듯이, 주요 목표가 다른 사람들 name이 귀하의 언어 를 훔치지 못하게 하는 것이라면 상표가 더 유용 할 것입니다.


언어에 대한 문법을 ​​쓰면 여전히 언어를 보호 할 수 없습니다. 그것이 할 유일한 일은 다른 사람이 당신과 비슷한 방식으로 문법을 다시 쓰지 못하게하는 것입니다. 나는 영어에 대한 문법을 ​​쓸 수 있는데, 그래도 SE에 글을 올리는 것을 막을 수는 없습니다.
Gavin Coates

개빈-나는 썼다.… "그것은 같은 언어를 묘사 한 다른 문법을 쓰는 누군가로부터 당신을 보호하지 못할 것이다." 나는 그러한 저작권이 언어를 보호하지 않고 언어를 묘사하는 방식 만 보호 할 수 있기를 바란다. 여전히-그것은 사람을 기분 좋게 만들 수 있습니다.
Dominic Cronin

1

시간이 지남에 따라이 질문에 대한 다른 답변이있었습니다.

2012 년 에 Android에서 Java API를 사용하는 것에 대해 Oracle과 Google의 경우 비슷한 질문이 "당신은 할 수 없습니다"라는 대답이 나 왔으며 WPL이 자체 제품으로 SAS 프로그래밍 언어를 구현 한 경우에도 비슷한 대답 이 나왔습니다. 이 답변의 이론적 근거는 서로 다른 언어 구현 간의 상호 운용성을 위해서는 프로그래밍 언어의 구문을 복사해야하므로 "공정 사용"규칙에 따라 허용해야한다는 것입니다.

2014 년, 그러나, 미국 항소 법원은 결정 정당한 법적 대답은 참이었다 "예, 할 수 있습니다"원래 저작권의 단독 재량에 따라 어떤 규칙의 상호 운용성을 제공 (여부), 세 이하의 이유로 보유자. 이 가장 최근의 해석에서 누군가가 프로그래밍 언어, API 또는 기타 인터페이스 사양과 호환되기를 원하지 않으면 사용자를 막을 권리가 있습니다.

간단히 말해서, 2014 년 기준으로 가정하는 것이 공정 할 것입니다.

저작권법은 현지 통역의 적용을받으며 해당 국가의 규칙이 다를 수 있습니다. 의심스러운 경우 변호사와 상담하십시오 ...

(논쟁의 나머지 부분을 제거, 역사를 참조하십시오)

면책 조항 : IANAL


Annnddd ...이 판결은 방금 전복되었습니다. 오라클은 항소했으며 이번에는 판사가 프로그래머가 아니었다.
jmoreno

@jmoreno 이것을 지적 해 주셔서 감사합니다. 이 새로운 개발을 반영하여 답변을 업데이트했습니다 ...
miraculixx

변호사 나 정신과 의사가 아닌 프로그래머 만 말하고 싶지만 2014 년 판결은 제게 미친 듯이 보입니다. 많은 명령입니다!
jmoreno
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.