а если серьезно, то универсальных языков нет и не может быть, ибо в разных нишах требования разные.
на форте, например, код очень компактный и легкорасширяемый. Для какого-нибудь затейливого управления телескопом (или зарядником) - самое то, если не делать встроенные функции в мс-стиле с стопицот NULL параметров (см. например экспорты из ntdll предназначенные для работы с виндовым аналогом /procfs).
На ладдере код мутноватый, но если аккуратно комментировать, то для событийно-управляемых целей оно самое то.
покажи мне, что ли, энкодер видео на хаскеле :) или стример того же видео / аудио на эрланге видел, на хаскеле - нет еще пусть даже он будет что-то стороннее из libav* подключать
Я думаю, написать можно и даже оптимизировать, но ничего хорошего с этого не выйдет. Оптимизированный под производительность хаскелевый код выглядит чудовищно. Интерор с сторонним тоже печален, впрочем.
Вот и основная разница. Плюсы - высокопроизводительный кроссплатформенный язык, синтаксис которого /местами/ ужасен, оброс всякими всякостями за годы. Все что он умеет можно писать и на чистых сях, но неудобно получается для больших проектов (или код выглядит как внутренности того же ffmpeg). Альтернативы я ему пока не вижу. Тут проскакивали попытки впихнуть в него гэрбедж-коллектинг, но при наличии shared_ptr оно и не сильно нужно (оверхед в случае наличия множества мелких объектов убирается аллокаторами памяти, типа гуглового или jemalloc, что позволяет избавляться от излишней фрагментированности кучи при активной работе с памятью).
начальство не всегда вникает (и иногда не обязано вникать) в такую мелкую конкретику, часты случаи "вот у нас есть это говно, надо его поддерживать". Мой подход позволит уменьшить количество говна и говённых вакансий/требований. Подход "договариваться с начальством" меняет только локальную ситуацию, да и то, не всегда.
И в связи с этим приподнимается вопрос: как будет выглядет тот же хаскель лет через тридцать сверхинтенсивного индустриального использования где надо и не надо - и пары-тройки ревизий с учётом накопившегося опыта. ;)
ребе. с const все очень просто: его надо использовать с фанатизмом, либо не использовать вовсе. такой даётся совет юным подаванам. сидетьНаСтуле(const Стул(ПривинченныйКПолу)& c) const сидетьНа(Простом)Стуле((ПростоРаскладной)Стул& c).
Ну, Степанов всё заметал под ковёр, наружу торчали только интерфейсы вполне внятного вида (не считая сообщений об ошибках). А Александреску _учит_ людей, как сделать бяку.
в этом случае -- толку мало. Разве что можно поискать другую работу. Например, между работой плюсовиком и работой каким-нибудь пчеловодом -- я бы долго думал, что выбрать.
Если возвратиться к исходному вопросу -- бывает, спрашивают. Или вообще дают свободу.
Page 3 of 7