История изменений
Исправление quiet_readonly, (текущая версия) :
Спасибо, читал с интересом. Но не соглашусь - потому что плюсы развиваются и мне как раз нравятся последние веяния, которые могут исправить большинство проблем без необходимости менять легаси код.
а) Язык как система, как метод должен облегчать все эти этапы
В c++11 есть новые синтаксические плюшки и никуда не делись старые - т.е. можно постепенно обновлять код.
б) язык «три в одном»: плоский си, классы, шаблоны. [...] вместо того, чтобы заниматься смыслом программы (семантикой), он борется с синтаксисом
Я с C++ начал изучать программирование - первый код написал на паскале, но посмотрел на плюсы в visual studio 2005 и бросил паскаль. Код работал не хуже, чем до этого на паскале, с синтаксическими граблями не встречался т.к. не брал сложных задач, почитывал статьи на разных cyberforum и Страуструпа. Но если человек писал на php/C#/C и вдруг срочно надо написать проект на C++, и заказчик давит - можно огрести, я не спорю. Что касается борьбы с синтаксисом - её уже нет, потому что есть clang. А ещё есть XCode, в котором clang используется как движок и любую ошибку тут же показывает подчёркиванием (иногда дописывая исправление серым шрифтом, которое можно применить в 1 клик). XCode работает абсолютно точно - анализатор вызывается с теми же флагами, что и собирающий проект компилятор. Другие среды и редакторы пока не используют clang по-нормальному, но я пишу патчи для ветки wip/clang в QtCreator и к весне, думаю, выйдет что-то юзабельное.
Clang хорош в диагноситке ошибок и в этом спотыкается только на boost, но может быть улучшен.
в) отсутствует модульность
планируется в стандарте 2017 года и есть в clang в порядке эксперимента.
г) язык слишком низкоуровневый.
неправда, у него библиотечный дизайн и разделение «низкоуровневый/высокоуровневый» для него не очень верно.
д) велика фрагментация.
И всё же лучше, чем наличие нескольких языков. В конце концов, код на ObjectiveC и код, использующий последние фичи c++11, одинаково хорошо идут на последнем XCode, а вот на другие платформы реальный код на ObjectiveC не перенести из-за отсутствия рантайма. GNUstep не идёт в ногу с изменениями языка ObjectiveC.
Исходная версия quiet_readonly, :
Спасибо, читал с интересом. Но не соглашусь - потому что плюсы развиваются и мне как раз нравятся последние веяния, которые могут исправить большинство проблем без необходимости менять легаси код.
а) Язык как система, как метод должен облегчать все эти этапы
В c++11 есть новые синтаксические плюшки и никуда не делись старые - т.е. можно постепенно обновлять код.
б) язык «три в одном»: плоский си, классы, шаблоны. [...] вместо того, чтобы заниматься смыслом программы (семантикой), он борется с синтаксисом
Я с C++ начал изучать программирование - первый код написал на паскале, но посмотрел на плюсы в visual studio 2005 и бросил паскаль. Код работал не хуже, чем до этого на паскале, с синтаксическими граблями не встречался т.к. не брал сложных задач, почитывал статьи на разных cyberforum и Страуструпа. Но если человек писал на php/C#/C и вдруг срочно надо написать проект на C++, и заказчик давит - можно огрести, я не спорю. Что касается борьбы с синтаксисом - её уже нет, потому что есть clang. А ещё есть XCode, в котором clang используется как движок и любую ошибку тут же показывает подчёркиванием (иногда дописывая исправление серым шрифтом, которое можно применить в 1 клик). XCode работает абсолютно точно - анализатор вызывается с теми же флагами, что и собирающий проект компилятор. Другие среды и редакторы пока не используют clang по-нормальному, но я пишу патчи для ветки wip/clang в QtCreator и к весне, думаю, выйдет что-то юзабельное.
Clang хорош и уже сейчас спотыкается только на boost, но и это исправимо.
в) отсутствует модульность
планируется в стандарте 2017 года и есть в clang в порядке эксперимента.
г) язык слишком низкоуровневый.
неправда, у него библиотечный дизайн и разделение «низкоуровневый/высокоуровневый» для него не очень верно.
д) велика фрагментация.
И всё же лучше, чем наличие нескольких языков. В конце концов, код на ObjectiveC и код, использующий последние фичи c++11, одинаково хорошо идут на последнем XCode, а вот на другие платформы реальный код на ObjectiveC не перенести из-за отсутствия рантайма. GNUstep не идёт в ногу с изменениями языка ObjectiveC.