Існувало подібне питання щодо схем баз даних: Скопіювати схему баз даних конкурента? Я відповів там, що копіювання всієї схеми, ймовірно, буде порушенням авторських прав, залежно від масштабу копіювання, оціненого суддею.
Навіть якщо ваше запитання схоже, я відповім зовсім протилежне: ви можете скопіювати підписи методів. Чому?
Насправді підписи методів виходять із здорового глузду.
По-перше, якщо ми беремо крайній приклад, Microsoft не можеRandom
захистити авторське право на ім’я та подати до суду на всіх, хто використовуватиме слово Random
в будь-якій програмі.
По-друге, що ви намагаєтеся робити саме? Повторне впровадження .NET Framework? Чому? Не потрібно винаходити колесо . Якщо ви знаєте, як зробити це краще, інтуїтивніше і т. Д., Швидше за все, ви отримаєте кращі назви класів та методів, кращу організацію тощо. Якщо ви спробуєте скопіювати структуру .NET Framework, щоб перенести її на інший мови , то ви не є прямим конкурентом Microsoft, тому у них немає серйозних причин подати до суду (якщо це сказано, вони подадуть до суду, якщо ви скопіюєте сам вихідний код). Насправді вони вам навіть виграють: копіювання такої структури в інші рамки не лише покаже успіх .NET Framework, але й полегшить розробникам .NET роботу з іншими мовами, а розробникам з інших мов - навчитися .NET.
По-третє, у них є більш серйозні справи, ніж подавати позов до всіх, хто скопіює назви методів та класів .NET Framework.
Тепер, якщо ваш намір полягає в тому, щоб скопіювати весь .NET Framework і зробити продукт, який буде використовуватися багатьма розробниками, проконсультуйтеся з юристом, перш ніж ризикувати.
Приклад:
Я був абсолютно незадоволений обмежуючим обмеженням 259 символів у файлових шляхах у .NET Framework та неможливістю використання транзакцій з кодом на рівні файлів. Тож я реалізував власний File
клас із методами, які працювали б, як очікувалося, для будь-якого шляху, не лише крихітних коротких, та здійснювали транзакції. У першій версії я вирішив клонувати назви методів у File
та Directory
класах . Буде Microsoft позов до мене за це? Я сумніваюся в цьому.
У всіх випадках, у другій версії я прийшов з новим синтаксисом new File(string fileName)
, який я знаходжу набагато зрозумілішим для мене . Клонування назв методів іноді корисно, але для цього потрібно мати вагомий привід.