Защищены ли авторские права на интерфейсы и методы?

13

Например, является ли это нарушением авторских прав, если я напишу класс с именем Random с той же самой целью и сигнатурами методов, что и у класса Microsoft .Net System.Random? Имеет ли значение, на каком языке написано? В этом случае я хочу написать класс Random для использования в ActionScript, в котором отсутствует встроенный класс PRNG с затравкой.

Если у кого-то есть хорошие ссылки или рекомендации для понимания того, какие аспекты программного обеспечения защищены, это тоже замечательно. И да, я знаю, что это не место для «настоящих» юридических консультаций. Если кто-то обращается в суд, указывая на общедоступную доску объявлений в качестве приоритета - позор им.

Джошуа Хониг
источник
3
Скорее всего, подписи методов, интерфейсы, имена переменных и т. Д. Не защищены какими-либо авторскими правами или лицензиями.
Адам Лир

Ответы:

11

Я считаю, что рассмотрение отношений между Моно и Дотнет ответит на этот вопрос. Команда Mono может использовать определения методов или открытый интерфейс, но они должны переопределить внутренние компоненты. Однако случай Android v Oracle поднимает еще несколько моментов, которые делают это очевидное различие немного размытым. В случае с AvO большинство вопросов, переданных в суд, - это патенты, относящиеся к ВМ, интерфейсы библиотеки не были предметом спора. Единственный выделенный код - это примеры, в которых в некоторой степени похоже, что внутренности были скопированы.

MP01
источник
7
+1 За отличную оценку про Mono vs .Net. Я знаю, что в смежной концепции нельзя защищать авторские права на правила игры. Клоны тетриса являются законными, если они не называются тетрисом и не слишком похожи на официально лицензированные продукты тетриса.
Я думал, что главное существенное различие между .NET и Java заключается в том, что (большинство) .NET является стандартом ECMA.
Фул
@Foole: Java Script и ActionScript основаны на формальной спецификации ECMAScript (ECMA-262, -290, -327 и -357)
4

Был похожий вопрос о схемах базы данных: копирование схемы базы данных конкурента? Я ответил там, что копирование всей схемы, вероятно, будет нарушением авторских прав, в зависимости от масштаба копирования, оцененного судьей.

Даже если ваш вопрос похож, я отвечу совсем наоборот: вы можете копировать сигнатуры методов. Почему?

На самом деле сигнатуры методов основаны на здравом смысле.

  • Во-первых, если мы возьмем крайний пример, Microsoft не может охранять авторское имяRandom и подавать в суд на всех, кто будет использовать это слово Randomв любом приложении.

  • Во-вторых, что вы пытаетесь сделать именно? Реализовать .NET Framework? Почему? Нет необходимости изобретать велосипед . Если вы знаете, как сделать его лучше, интуитивно понятнее и т. Д., Скорее всего, у вас появятся лучшие имена классов и методов, лучшая организация и т. Д. Если вы попытаетесь скопировать структуру .NET Framework, чтобы перенести ее на другой языком , значит вы не прямой конкурент Microsoftпоэтому у них нет серьезных оснований предъявлять вам иск (при этом они будут предъявлять иск к вам, если вы скопируете сам исходный код). На самом деле, они даже выиграют от вас: копирование такой структуры в другие платформы не только продемонстрирует успех .NET Framework, но и облегчит разработчикам .NET работу с другими языками, а разработчикам других языков - изучение. .СЕТЬ.

  • В-третьих, у них есть более серьезные дела, чем подавать в суд на всех, кто будет копировать имена методов и классов .NET Framework.

Теперь, если вы хотите скопировать весь .NET Framework и создать продукт, который будет использоваться многими разработчиками, проконсультируйтесь с юристом, прежде чем рисковать.


Пример:

Я был совершенно недоволен ограничением 259 символов в путях к файлам в .NET Framework и невозможностью использовать транзакции кода на уровне файлов. Поэтому я реализовал свой собственный Fileкласс с методами, которые будут работать, как ожидается, для любого пути, а не только для крошечных коротких, и реализовывать транзакции. В первой версии я решил клонировать имена методов Fileи Directoryклассов . Microsoft подаст в суд на меня за это? Я в этом сомневаюсь.

Во всех случаях во второй версии у меня появился новый синтаксис new File(string fileName), который я считаю гораздо более интуитивным для меня . Клонирование имен методов иногда полезно, но у вас должна быть веская причина для этого.

Арсений Мурзенко
источник
если вы намереваетесь скопировать весь .NET Framework ... Так точно, нет! Я действительно просто хочу PRNG, который я могу посеять для использования во флэш-играх. Мне нравятся методы в классе .Net Random, и я собирался написать быструю оболочку с теми же сигнатурами, когда мне задавался этот вопрос. Было бы ужасно потерять свой дом из-за иска архитектора по проекту дверного звонка ... чтобы сделать неловкую аналогию.
System.Randomсодержит 8 методов (5 методов и 3 перегрузки, один метод protected). Я думаю, что вы вполне можете клонировать эти имена, и вам будет трудно доказать, что вы действительно скопировали эти имена из Microsoft.
Арсений Мурзенко
4

Защита авторских прав защищает «художественное выражение» произведения, а не техническую форму (цитируя Википедию ).

Защита авторских прав не защищает факты .

Таким образом, возникает вопрос, является ли API или интерфейс «фактом» или художественным выражением? Для простых API, которые являются просто списком способов получения случайных чисел и различных видов случайных чисел, API, вероятно, больше похоже на факт. Но я мог видеть, что очень сложный интерфейс (вы знаете, на те, на которые вы смотрите в течение минуты, а затем говорите «Ааа! Это впечатляет».) Можно считать «художественным выражением», достойным защиты.

Вот недавняя статья о Oracle и Google, борющихся за авторское право API, об этой самой проблеме, обсуждаемой в (США) судах.

Я не юрист, и этот пост не должен рассматриваться как юридическая консультация. Я даже не могу написать отказ от ответственности очень хорошо.

PT
источник
0

Вы можете принять чисто функциональные аспекты, но вы не можете принять выразительные аспекты. Имя класса, имена методов и подписи являются чисто функциональными. Вам нужно, чтобы они взаимодействовали. Имена параметров и макросы заголовков можно считать выразительными. Например, в своем антимонопольном деле Windows Microsoft утверждала, что ничто не мешает конкуренту реплицировать API-интерфейсы Windows и создавать собственную платформу, на которой будут работать приложения Windows.

Дэвид Шварц
источник
Хороший вопрос относительно Windows API. Введите ВИНО.
На платформах, таких как Java или .NET, которые включают Reflection (или другие аналогичные средства для определения того, что называется), я думаю, что имена параметров также могут рассматриваться как функциональные аспекты.
суперкат