Яка справа у розробці мови програмування? [зачинено]


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 існує тисячі мов, які нікуди не дійшли.

Однак мовний дизайн є цікавим, тому люди продовжують підключатися. А якщо вам вдасться вдарити, ви можете заробити зовсім небагато грошей. Наприклад, книга Stroustrup Мовою програмування на C ++ до моменту виходу 3-го видання було продано 500 тис. Примірників, а це означає, що я можу припустити, що продажів зараз має бути понад мільйон. Моє 3-е видання. коштував мені 27,95 фунтів стерлінгів, і навіть дозволяючи видавцям та роздрібним торговцям скорочувати, ви можете бачити, що він, напевно, змінив з цього приємного зміни!


Це як заробляти гроші, граючи в землетрусі або world of warcraft. Однак є кілька людей, які це роблять, і мільйони, які цього не роблять. Враховуючи величезні вкладення часу та близькість до 0 шансів, що це не справжній спосіб заробити гроші
Томас Боніні

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 має величезну базу користувачів, коду та інерції.
тайм

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. С: 400к
  3. Ява: 700к
  4. PHP: 400к
  5. Perl: 150k
  6. C #: 300k
  7. Пітон: 150k

Це повертає речі у сферу можливостей: якщо ви зробите мову, настільки популярну, як, скажімо, Python, то через 20 років у вас буде достатньо користувачів, щоб зробити розробку та підтримку (та маркетинг!) Цієї мови на ваш повний- час роботи.

Зробіть такий популярний, як C # , і ви можете це зробити за 10 . Класно!

… За винятком звичайно, що таким чином тривіалізує надзвичайно малоймовірне та важке починання, яке робить мову такою популярною. Але ей, якщо у вас є гарна ідея, і ви зможете самостійно дістатися до вершини, не роблячи жодних інших розробників, які б зрізали ваші гроші на пожертви, тоді ви геній, і ти це заслуговуєш.


3

Щоб детальніше зупинитися на тому, що сказав @Peter: програмне забезпечення дуже часто створюється для підтримки чогось іншого. Практично все, що дарується безкоштовно, використовується для просування чогось іншого, будь то реклама, платформа, пристрій чи послуга.

Що стосується мов програмування, то вся справа в просуванні платформи шляхом залучення розробників. Якщо ви залучаєте розробників, ви отримуєте більше програмного забезпечення, написаного для вашої платформи, і це робить платформу сильнішою. Те, як ви залучаєте розробників, - надаючи їм чудові інструменти, а мова - один із таких інструментів. Насправді, однією з найсильніших карток Майкрософт у горішній боротьбі за повернення свого місця на ринку смартфонів є інструменти для розробників. "Легко відтворити апси, зроблені для iPhone та Android для Windows Phone 7", "легко зробити додатки, написані для Windows Phone 7, готовими до інших екранів" тощо, тощо.

Крім того, іноді ви просто виготовляєте мову програмування для власного використання, тому що інструмент вам потрібен самостійно.


Я вважаю, що Microsoft робить велику справу від ліцензування ОС Windows Phone до виробників ... чи не так?
vemv

@Victor .... Я думаю ..... Не впевнений, що ти тут отримуєш.
EpsilonVector

3

Ви можете отримати трохи більше прибутку від розробки "маленьких" мов, що стосуються домену. Не від їх продажу, хоча. Є кілька DSL, які продаються з метою отримання прибутку, але набагато більше успіхів з відкритим кодом та ще більше відмов (як відкритих, так і закритих).

Там, де можна отримати прибуток, - це збільшення продуктивності, яку ви можете отримати від них. Навколо цієї ідеї існує певна парадигма розвитку.

Переваги та недоліки схожі на шаблонне програмування в C ++, але тим більше. Наприклад, DSL вимагає більшої попередньої роботи, ніж звичайна бібліотека, але може дати набагато більше гнучкості, стійкості та "спритності" після написання. Ви навряд чи зможете це зробити взагалі, якщо продуктивність не викликає особливих проблем, інакше, ймовірно, простіше затримати роботу, пов’язану з робочим часом, наприклад, замість генератора коду сканера скористайтеся системою сканування, заснованою на регулярному виразі, на час виконання.

"Спритність" отримує відлякуючі цитати, оскільки надмірно прагнути писати DSL - це явне порушення спритних принципів. Навіть у важких для DSL умовах навряд чи ви працюєте над розробкою DSL як частини вашої повсякденної рутини.

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

Крайньою версією цього може бути використання логічної мови на зразок Prolog для певної частини вашої системи, хоча це сенс є лише крайнім - це також лише вибір мови для коней для курсів, а не побудова DSL парадигма.


2

Розробка мови програмування та стандартизація їх насправді не робиться з однією людиною. Навіть Stroustrup - винахідник C ++, є багато інших промислових експертів, які беруть участь у всьому світі. Це більше схоже на службу волонтерів. Люди, котрі справді талановиті писати книги, як Скотт Майєрс, заробляючи на цьому гроші. Інші люди працюють незалежними консультантами або консультантами великих організацій.

Найкращий приклад - стандартизація C ++ 0x. Він затягується на роки. Причина тому, що члени комітету або зайняті своєю основною роботою, і важко зробити кворум для завершення технічних умов.

Такі компанії, як Microsoft Sun (Oracle), розробили свої власні мови програмування і заробляють гроші від IDE, а також надаючи безперебійну підтримку через свої платформи. Це більше схоже на закрите рішення проблем. Але добре, що ці мови програмування стандартизовані / затверджені ISO або подібними комітетами. Java, здається, продає свій IP для компаній за використання своєї мови програмування. Нещодавно Oracle подав позов до Google за порушення IP-адреси на Java.

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


1

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

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

Шанси невеликої компанії / особи, яка створює основну мову програмування, надзвичайно невеликі, можливо, простіше спробувати заповнити якийсь ніше. Знову ж таки, це точно не неможливо , і тих, хто каже, що я не можу зробити, часто перебивають ті, хто це робить :)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.