6

Нужно ли платить за используемые мною языки программирования? Слышал что в С++ не нужно платить за то, что не используешь, вот и возник вопрос.

На данный момент у меня такое представление : "Платить за инструмент нужно тогда, когда ты с его помощью делаешь продукт или используешь для бизнеса (За исключением отрытого ПО). В частности интересует JS PHP nodeJS python SQL etc. Скажите где я ошибаюсь, или напишите как оно есть.

Kromster
  • 13,809
SirGrey
  • 97
  • Это написано в лицензионном соглашении на каждый отдельный продукт. – Mike Dec 23 '17 at 20:11
  • 6
    «в С++ не нужно платить за то, что не используешь» это про плату используемыми ресурсами компа (память, процессор и т. п.), а не про деньги – andreymal Dec 23 '17 at 20:11

1 Answers1

12

Платите вы обычно за программное обеспечение (ПО). Возможно, для вас это станет открытием, но язык программирования сам по себе не является ПО. Язык это спецификация того, как преобразовывать описания (обычно в текстовом виде) в поведение. А вот его реализация (компилятор, транслятор, интерпретатор) – очень даже.

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


Соответственно, ваш вопрос заключается в том, нужно ли платить за использование реализации языка. И тут как с ПО в целом – на разные вещи разные цены.

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

  • JS – язык. Если вы про реализацию в браузерах... Браузеры вы покупаете?
  • Референсная (она же самая популярная) реализация PHP – бесплатна. HHVM от Facebook тоже бесплатен.
  • NodeJS бесплатен.
  • Все известные мне реализации Python бесплатны.
  • SQL есть в довольно большом ассортименте, практически в каждой СУБД свой диалект, и ситуация с ними разнится. Смотрите на конкретные СУБД и их бесплатность.

Коммерческие реализации тоже встречаются. Но они обычно очень нишевые и потому редки. Видел коммерческие JVM, один компилятор C++. И бывают языки, реализации которых существуют лишь в коммерческих продуктах, они "де-факто платные", но тоже редки.

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


Фраза о С++ "можно не платить за то, что не используешь" относится вовсе не к деньгам, а к потребляемым программой вычислительным ресурсам. Это один из принципов чуть ли не в основе С++, сильно влияющий на его развитие.

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

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

  • Спасибо за ваш ответ, многое прояснилось. – SirGrey Dec 23 '17 at 20:58
  • 3
    Ответ хорош. Можно было бы пару строк черкнуть про IDE, которые не являются языком, компилятором, но очень много важных функций выполняют. – A K Dec 25 '17 at 05:31
  • @AK я втихаря добавил. Всё отразил, что было необходимо? –  Dec 28 '17 at 17:57
  • @D-side Да, теперь раскрыты все три основных аспекта. Не зря ответ заплюсован. – A K Dec 28 '17 at 21:17