Нет, конечно, на Delphi писать качественный код проще, чем на С++, но при хорошем знании этих языков корелляция будет достаточно слабой.
Т.е. добавим дополнительные сложности, чтобы было, что преодолевать?
При хорошем знании и спагетти с goto даст результаты. Но кому это нужно и кто это выдержит?
Если вы говорите про уязвимости, то это едва ли относится к языку. К библиотекам и компиляторам - да.
Ранее я уже отметил:
можно вспомнить, что еще в прошлом веке В.Ш.Кауфман опубликовал статью в журнале Программирование, где показал, что любой универсальный язык программирования высокого уровня содержит так называемые "темные места", ведущие к неоднозначностям. Про неоднозначности такого модного языка, как С++, ленивый только не писал. Но и более строгие языки невозможны, по Кауфману, без неоднозначностей.
качество софта, я уверен, достаточно слабо зависит от языка, на котором этот софт сделан, если говорить о промышленных масштабах.
Упомянутый выше Б.Гейтс искренне верит, что все можно делать на Васике
этот язык устарел, инструменты и библиотеки под этот язык не поддерживают и не выпускают.
Что не выпускают достаточно спец.библиотек, не значит, что язык устарел. А значит, в частности, то что недальновидные начальники бегут за модой.
Поворотливы гибридные языки.
Как насчет ДРАКОНа (Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность)? У меня был печальный опыт создания IDE на двух языках (одни модули на одном, другие на другом) - пока не уговорил перейти на один язык, постоянно буксовали. Это только в теории многоязычная разработка (и всяческая гибридизация) выглядит беспроблемно. Иногда гибридность нужна. Не спорю. Но только ИМХО в особых случаях.
Сейчас нешуточную популярность, а можно сказать и вторую жизнь получило функциональное программирование. Используя его практики, можно экономить не только в количестве кода, но и поднимать его качество, снижать риск ошибок.
Цитата:
Недостатки функционального программирования вытекают из тех же самых его особенностей. Отсутствие присваиваний и замена их на порождение новых данных приводят к необходимости постоянного выделения и автоматического освобождения памяти, поэтому в системе исполнения функциональной программы обязательным компонентом становится высокоэффективный сборщик мусора. Нестрогая модель вычислений приводит к непредсказуемому порядку вызова функций, что создает проблемы при вводе-выводе, где порядок выполнения операций важен. Кроме того, очевидно, функции ввода в своем естественном виде (например, getchar из стандартной библиотеки языка C) не являются чистыми, поскольку способны возвращать различные значения для одних и тех же аргументов, и для устранения этого требуются определенные ухищрения.
Для преодоления недостатков функциональных программ уже первые языки функционального программирования включали не только чисто функциональные средства, но и механизмы императивного программирования (присваивание, цикл, «неявный PROGN» были уже в LISPе). Использование таких средств позволяет решить некоторые практические проблемы, но означает отход от идей (и преимуществ) функционального программирования и написание императивных программ на функциональных языках. (Википедия:Функциональное программирование)
Во-вторых - на одном компиляторе далеко не уедешь. В Сишарпе у меня есть супер IDE с плагинами и свежими фрейморками. А что у меня есть в Паскале?
В Паскале есть IDE Delphi с плагинами и т.д.
Вообще говоря, мы, похоже, ушли от темы. Может быть, выделить все это в отдельное производство?
В принципе, очевидное предложение. Однако данная подтема - дает хорошую иллюстрацию для основной темы - насколько непростая ситуация сложилась в современном программинге и насколько в нем нужен творческий подход. А если говорить в общем, без конкретики, то можно договориться до того, что программинг не сложнее рядовой сантехнической работы по замене текущего бачка известного воднобачкового инструмента