Каков бизнес в разработке языка программирования? [закрыто]


24

Мне было интересно, есть ли большой прямой доход от выпуска языка программирования, такого как Java или C #?

Продажа IDE, лицензирование вашего бренда для книг или получение престижа предприятия кажутся мне незначительным преимуществом по сравнению с усилиями, которые, несомненно, потребовались для разработки (хотя, конечно, я могу ошибаться).


Язык D приходит на ум. Digital Mars даже выпускает свои компиляторы бесплатно.
Maxpm

Sun заработала на Java, продавая аппаратное обеспечение для запуска.
Гай

Ответы:


17

Вообще говоря, нет денег на разработку языков программирования.

C #, безусловно, зарабатывает деньги Microsoft, но по сути косвенно зарабатывает деньги, продвигая среду .NET и другие технологии Microsoft.


1
... и это приводит к вопросу - есть ли деньги в рамках / платформе тогда?
vemv

6
@Victor Деньги в платформе приходят от продажи лицензий. Тот, кто хочет запустить программу .Net, часто покупает Windows. (Моно доступно, но широко не используется.)
chrisaycock

10
@svick: Это не обязательно верно в корпоративном мире. Без .NET гораздо меньше компаний использовали бы Windows для серверов.
Петр Александр

2
@svick .Net была довольно оборонительной игрой против Java. Если бы компании перешли на платформу Sun, на предприятии было бы меньше необходимости в Windows.
chrisaycock

2
@ Svick: В этом все дело. Пока Microsoft удерживает вас в своей экосистеме, не имеет значения, покупаете ли вы ее новой или уже имеете.
Ричард

17

Маловероятно, что кто-то заработает на языках программирования по той простой причине, что большинство проектов на языках программирования терпят неудачу - язык в конечном итоге используется его разработчиком (а иногда и даже ими) и никем другим. Для каждого C # или Java существуют тысячи языков, которые никуда не делись.

Тем не менее, языковой дизайн - это весело, поэтому люди продолжают подключаться. И если вам повезет, вы сможете заработать немало денег. Например, книга Страуструпа «Язык программирования C ++» была продана в количестве 500 тыс. Копий к моменту выхода 3-го издания, а это значит, что продажи должны превысить миллион. Мое 3-е изд. обошлось мне в 27,95 фунтов стерлингов, и даже с учетом сокращений для издателей и розничных продавцов, вы можете заметить, что он, по-видимому, внес немало изменений!


Это все равно, что зарабатывать деньги, играя в Quake или World of Warcraft профессионально. Хотя есть несколько людей, которые делают это, и миллионы, которые этого не делают. Учитывая огромные временные вложения и шансы, близкие к нулю, на самом деле это нереальный способ заработать деньги
Томас Бонини

11

Некоторые проприетарные языки, нацеленные на конкретные домены, в конечном итоге превращаются в крупные компании, работающие с образом жизни, такие как MATLAB ( MathWorks ) и Mathematica ( Wolfram Research ). Можно также продавать язык как промежуточное программное обеспечение, как Kx Systems сделала с q / kdb + (они продают его как базу данных, а не как язык).

Альтернативной бизнес-моделью является предоставление хостинга, как это делает Heroku для Ruby on Rails . ( Сигналы 37 фактически уступили этот бизнес, не преследуя его.)

И, как уже говорили другие, язык может быть использован в качестве лидера потерь для привязки разработчиков приложений к конкретной платформе, как C # сделал для .NET.

Что касается консалтинга или книг, это довольно ограниченные модели дохода; Консалтинг требует большой рабочей силы для масштабирования, а книги имеют точку насыщения. Лучшими моделями являются хостинг или корпоративные лицензии.


3
Лучший ответ здесь ИМХО. MATLAB и Mathematica являются отличными примерами; это, безусловно, модель, которой я бы попытался следовать, если бы мне пришлось «зарабатывать деньги на языке»: выбрать нишу и разработать для нее что-то, что явно лучше (для целевых пользователей во время введения), чем существующее, более универсальные инструменты. Имейте в виду, что Matlab конкурировал с FORTRAN & C, когда он впервые появился; Numpy / Scipy может быть гораздо более «современным», но у Matlab огромная база пользователей, кода и явной инерции.
Timday

4

Так скажем , вы хотите зарабатывать на жизнь от написания популярного языка. Предполагается, что «зарабатывать на жизнь» означает эквивалент разумной заработной платы при работе на полную ставку (любая работа - не обязательно техническая). Если вам действительно нравится то, что вы делаете, вы, вероятно, согласитесь на это чуть меньше, поэтому, скажем, 12,50 долл. В час или 2000 долл. В месяц .

Работая стабильно, вы выпускаете свою первую версию и настраиваете средства для пожертвований. Затем вы участвуете в постоянном развитии и маркетинге, пропорционально количеству пользователей вашего языка. Предположим, что 1% ваших пользователей пожертвуют , и каждый из них пожертвует в среднем 1 доллар в год .

Это означает, что для того, чтобы получать зарплату в 2000 долларов в месяц , вам необходимо иметь 2000 пользователей-жертвователей на каждый из 12 месяцев в году. Это 2,4 миллиона пользователей . Давайте теперь предположим, что для того, чтобы язык стал настолько популярным, требуется 10 лет : следовательно, вы должны приобретать в среднем 240 000 пользователей в год или 20 000 пользователей в месяц .

Если вы работаете в эквиваленте полной занятости ( 160 часов в месяц ), ваша стратегия продвижения и качество реализации должны быть достаточными, чтобы набрать в среднем 125 пользователей в час . И это, конечно, повторные пользователи: если 20% людей, которые пробуют ваш язык, становятся повторными пользователями, вам нужен коэффициент конверсии 625 человек / час .

Даже если каждый из людей вы убедите непосредственно убеждает больше четырех людей , чтобы попробовать свой язык, и для простоты, при условии , что они не идут, чтобы попытаться убедить другие, то вы все еще вниз к 125 число пользователей / час .

Теперь, это может показаться совершенно необоснованным, но, верите или нет, оно все еще может работать: скажем, ваша маркетинговая стратегия дает примерно линейный рост в течение 10-летнего периода, в течение которого ваш язык набирает силу, а затем и плато. Это означает, что в начале вы будете конвертировать в среднем 0 пользователей / час , а через 10 лет вы получите 250 пользователей . (Опять же, почасово . Перспектива здесь.)

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

Итак, давайте вернемся к этому 2,4 млн. Пользователей : возможно ли получить такое количество пользователей за 10 лет ? Если мы примем (изначально ошибочные, но, тем не менее, пригодные для использования) статистические данные, предлагаемые Langpop, как точные, мы получим следующую информацию о 7 основных языках, которые в настоящее время находятся в процессе поиска, посредством поиска Yahoo. Если один результат будет принят в качестве представителя одного пользователя (я знаю, потерпите меня), эти цифры указывают приблизительное округленное среднее число пользователей, полученных за год с момента появления языка.

  1. C ++: 500 тыс.
  2. C: 400 КБ
  3. Java: 700 КБ
  4. PHP: 400 КБ
  5. Perl: 150 тыс.
  6. C #: 300 КБ
  7. Python: 150 тыс.

Это возвращает вещи в область возможного: если вы сделаете такой популярный язык, как, скажем, Python, то через 20 лет у вас будет достаточно пользователей, чтобы сделать разработку и поддержку (и маркетинг!) Этого языка в полной мере. время работы.

Сделайте такой же популярный как C # , и вы сможете сделать это за 10 . Круто!

... За исключением, конечно, того, что это так упрощает крайне маловероятное и трудное дело, делающее язык таким популярным. Но, эй, если у вас есть хорошая идея, и вы можете достичь вершины самостоятельно, без участия других разработчиков, которые бы взяли часть ваших пожертвований, тогда вы гений, и ты это заслужил.


3

Чтобы пояснить, что сказал @Peter: очень часто программное обеспечение создается для поддержки чего-то другого. Практически все, что отдается бесплатно, используется для рекламы чего-то другого, будь то реклама, платформа, устройство или услуга.

В случае языков программирования это все о продвижении платформы путем привлечения разработчиков. Если вы привлекаете разработчиков, вы получаете больше программного обеспечения, написанного для вашей платформы, и это делает платформу более сильной. Вы привлекаете разработчиков, предлагая им отличные инструменты, и язык является одним из таких инструментов. Фактически, одна из самых сильных карт Microsoft в их нелегкой борьбе за восстановление своего места на рынке смартфонов - это инструменты для разработчиков. «Легко воссоздать приложения, которые вы сделали для iPhone и Android для Windows Phone 7», «легко сделать приложения, написанные для Windows Phone 7, готовыми для других экранов» и т. Д. И т. Д. И т. Д.

Кроме того, иногда вы просто создаете язык программирования для собственного использования, потому что вам нужен инструмент самостоятельно.


Я считаю, что Microsoft многое делает от лицензирования ОС Windows Phone до производителей ... не так ли?
vemv

@ Виктор .... Я полагаю ..... Не уверен, что ты здесь делаешь.
EpsilonVector

3

Вы можете получить немного больше прибыли от разработки «маленьких» языков, специфичных для предметной области. Не продавать их, хотя. Есть несколько DSL, которые продаются с прибылью, но гораздо больше успехов с открытым исходным кодом и даже больше неудач (как открытых, так и закрытых).

Вы можете получить прибыль за счет повышения производительности, которое вы можете получить от них. Существует некая парадигма развития, основанная на этой идее.

Преимущества и недостатки аналогичны программированию на основе шаблонов в C ++, но в большей степени. Например, DSL требует больше предварительной работы, чем обычная библиотека, но может дать гораздо большую гибкость, надежность и «ловкость» после написания. Вы вряд ли сделаете это вообще, если производительность не является большой проблемой, иначе, вероятно, легче отложить выполнение работы до времени выполнения - например, используйте модуль сканирования на основе регулярных выражений во время выполнения вместо генератора кода сканера.

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

Одной из причин использования DSL может быть кодирование некоторых бизнес-правил (своего рода спецификация экспертной системы) и генерация кода, который работает с этими правилами. Поскольку перевод декларативных бизнес-правил в результирующий код может быть довольно сложным, огромные изменения в сгенерированном коде могут быть выполнены путем внесения довольно простых изменений в спецификацию бизнес-правил. Например, DSL может генерировать деревья решений или может отслеживать зависимости с помощью орграфа, чтобы автоматически гарантировать, что все, что требует переоценки, переоценивается и что нет циклов (скомпилированная «электронная таблица»).

Экстремальной версией этого может быть использование логического языка, такого как Prolog, для какой-то части вашей системы, хотя это в некотором смысле только крайность - это также просто выбор языка для лошадей на курсах, а не сборка, созданная вами самостоятельно. парадигма.


2

Разработка языка программирования и стандартизация его на самом деле не делается с одним человеком. Даже Страуструп является изобретателем C ++, в нем участвует множество других экспертов по всему миру. Это больше похоже на волонтерскую службу. Люди, которые действительно талантливы, чтобы писать книги, такие как Скотт Майерс, зарабатывая на этом деньги Другие люди работают в качестве независимых консультантов или консультантов для крупных организаций.

Лучший пример - стандартизация C ++ 0x. Это задерживается на годы. Причина в том, что члены комитета либо заняты своей основной работой и затрудняются составлением кворума для доработки спецификаций.

Такие компании, как Microsoft Sun (Oracle), разработали свои собственные языки программирования и зарабатывали деньги на IDE, а также предоставляли бесперебойную поддержку через свои платформы. Это больше похоже на закрытое решение проблем. Но хорошо то, что эти языки программирования стандартизированы / одобрены ISO или аналогичными комитетами. Кажется, Java продает свои IP-адреса компаниям за использование их языка программирования. Недавно Oracle подала в суд на Google за нарушения прав интеллектуальной собственности на Java.

В одном предложении это больше похоже на добровольное обслуживание, чем на бизнес для тех, кто работает по открытым стандартам.


1

Если вам удастся (я предполагаю, что вы имеете в виду отдельное лицо, а не компанию) создать успешный язык программирования, то, безусловно, вы сможете зарабатывать себе на жизнь, продавая книги, выступая на конференциях, не говоря уже о консультировании, приобретении или найме. , Вы можете даже заработать деньги, лицензируя свой язык программирования для разных компаний, что, однако, сделает его менее успешным.

С другой стороны, есть гораздо более простые способы заработать деньги, и большинство людей (за исключением таких корпораций, как Sun и Microsoft) делают это больше для решения проблемы и, возможно, для получения кредита.

Шансы небольшой компании / отдельного лица на создание основного языка программирования чрезвычайно малы, вероятно, легче попытаться заполнить нишу какого-то рода. Опять же, это, конечно, не невозможно сделать, и те, кто говорит, что я не могу сделать, часто прерываются теми, кто делает это :)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.