Я вижу некоторую ценную информацию в других ответах и комментариях, но также и некоторую дезинформацию, поэтому я пытаюсь дать резюме и добавить некоторые дополнительные вещи.
Будет ли у меня какое-то преимущество, если я использую алгоритм с открытым исходным кодом (GPL и т. Д.) С открытым исходным кодом?
Публикуя исходный код реализации вашего алгоритма под лицензией GPL (я полагаю, это то, что вы имели в виду), вы получаете преимущество демонстрации того, что ваш алгоритм работает, как задумано, и каждый может проверить ваш исходный код, чтобы убедиться, что он не содержит ничего «необычные», такие как серьезные ошибки или вредоносные программы. Возможно, вы получите несколько участников для дальнейших улучшений. А поскольку вы являетесь владельцем авторских прав, вы по-прежнему можете публиковать или продавать свою реализацию другим лицам под другой лицензией.
Другой вопрос в том, принесет ли вам какое-либо преимущество быть первым, кто публикует этот алгоритм. Будучи первым, вы можете попытаться помешать кому-то другому получить патент на этот алгоритм, поскольку ваша реализация послужит своего рода доказательством того, что вы являетесь изобретателем. Но, как правильно заметил @Snowman в комментарии, из-за политики « первым в файл» (в отличие от «изобретателя первым») многих европейских патентных норм это может не сработать.
Из того, что я знаю о лицензировании, это должно блокировать людей от использования точно такого же кода, что и с закрытым исходным кодом, но смогут ли они «переписать» алгоритм как закрытый исходный код?
Вы не позволяете людям публиковать ваш исходный код или его модификации в закрытом коде, а не использовать его внутри коммерческой организации. Вы не позволяете людям публиковать его как открытый или закрытый источник по лицензии, отличной от лицензии GPL. Однако вы не блокируете людей от публикации новой реализации «чистого помещения» вашего алгоритма под произвольной лицензией, которая является реализацией, сделанной только из вашего описания алгоритма, без фактического изучения исходного кода.
Так как я из Европейского Союза, мне нужно искать патенты на программное обеспечение, если я хочу скопировать его?
Хотя законы многих европейских стран формально запрещают патенты на чистые алгоритмы, многие компании обходили эти законы в прошлом, объявляя конкретные алгоритмы «изобретениями, реализованными на компьютере». AFAIK, европейские патентные ведомства не принимали столько алгоритмических патентов, сколько патентные ведомства США в прошлом, и тем не менее они приняли тысячи патентов в течение многих лет, что можно интерпретировать как патенты на алгоритмы. Если эти патенты действительно будут храниться в суде, это другой вопрос, но тот, кто хочет это выяснить, обычно должен будет поставить это перед судом со всеми связанными рисками. В комментариях были упомянуты две наиболее популярные группы примеров: патенты, касающиеся сжатия изображений GIF, и патенты, касающиеся сжатия / распаковки MP3, см. Здесь. для большего количества примеров.
Поэтому, если вы хотите снизить риск получения иска, перед публикацией программного обеспечения, содержащего определенный алгоритм, вам, вероятно, следует поискать кого-то, кто имеет патент на него, даже в ЕС.