Что я думаю о разных языках программирования
C — был бы неплох, если бы не представлял собой язык + приделанный к нему суперклеем странный, неудобный, концептуально непродуманный макропроцессор, без которого сам язык неюзабелен. Отсутствие модульности заставляет городить разнообразные малочитаемые конструкции. В каждом C-проекте — свои костыли и извращения, понятные и удобные только их авторам. Нагромождения #define’ов выглядят совершенно ужасно. C++ — то же самое, только с классами. Больше сказать нечего, ни хорошего, ни плохого. C++ точно так же застрял в 90-х, как и его предшественник — в 70-х.
Разные тулчейны C и C++ несовместимы между собой, что сильно затрудняет поддержку кроссплатформенных проектов. Сборка чужого кода — как правило, квест. Универсальной системы автоматизации сборки нет, есть лишь CMake, который сам не вызывает компилятор, а лишь генерирует конфиг под тот или иной тулчейн. Есть еще Make и GNU Autotools, которые безбожно устарели с точки зрения воркфлоу-дизайна, но под *nix безальтернативны.
С другой стороны, при всех недостатках и архаизмах, C до сих пор является важнейшим языком, так как его ABI — единственное, что позволяет программам и библиотекам, написанным на разных языках, худо-бедно взаимодействовать друг с другом. Другого универсального системного стандарта нет и, скорее всего, не предвидится.
Delphi — синтаксически крайне архаичный, но архитектурно неплохой. Основан на весьма толковой теоретической базе (на которую в реальном мире, к сожалению, всем плевать, ибо бизнес-логика). На Дельфях в свое время много чего классного было написано — жаль, что все это перестало развиваться и с годами сильно отстало от мейнстрима. Сейчас, конечно, признаваться, что пишешь на Delphi — только людей смешить. Всерьез писать на нем сложно из-за отсутствия реализаций всяческих нужных в быту стандартов, биндингов к актуальным библиотекам. Ну и это все-таки до сих пор платный язык со странно лицензируемой бесплатной версией, что неимоверно усложняет сопровождение своего кода и копание в чужом.
Python. Был раньше прекрасным языком, когда на нем просто писали скрипты и не замахивались на биг дату, нейросети, GPU-вычисления и прочие тяжеловесные штуки. Сейчас в него понапихали такого bloatware, таких костылищ… Плюс какая-то странная ситуация с управлением пакетами. Что-то там фундаментально сломано, иначе не стали бы придумывать всякий нонсенс вроде venv, conda и т.п. До сих пор не понимаю, зачем нужны какие-то изолированные окружения, почему нельзя просто ставить параллельно разные версии пакетов, поддерживать мультиверсионность на уровне языка? Pip, конечно, костыль, но conda — костыль в квадрате. Я из-за этого не пишу на Python ничего крупнее 5-10 модулей — поддерживать сложно.
JavaScript — вопреки распространенному мнению, архитектурно очень хорош (JS принято ругать именно за дизайн, но вы попробуйте написать свою виртуальную машину и скриптовый язык — сразу поймете, почему в JS сделали так, а не иначе). На практике, однако, писать на нем малоприятно из-за отсутствия нормальной стандартной библиотеки. JS не самостоятелен, он отражает сущность среды, в которую его встроили. А на мой вкус, что браузерный DOM — уродливый неповоротливый монстр, что стандартная либа Node.js — мерзость редкостная. И, опять же, странная и костыльная в языке модульность — вся эта многолетняя шизофрения с import и require. Но зато на JS тонны библиотек, которые отлично работают, десятилетиями не обновляясь — это, конечно, большое преимущество.
(продолжение следует)