2014/05/01 10:54:57
Пристально посмотрел на код компилятора C и список «фич» языка и, кажется, только сейчас осознал как всё грустно.

Бóльшая часть языка заключается в декларациях, типах и хитромудрых выражениях. Из полезного, не связанного с ними, остаётся крохотный кусочек, образующий костяк логики любой программы: if, else, switch, while, do, for, break, continue, goto, return. Или, если убрать функциональные дубликаты, то, всего лишь if и goto. Как-то не густо. Но тем не менее, более-менее всё на виду (если не считать плохочитаемые декларации типов и хитрости в вычислениях выражений).

С++ серьёзно расширяет и усложняет систему примитивных типов классами/объектами и наследованием, расширяет примитивную систему текстовой подстановки (макросов) пространствами имён, шаблонами и лямбдами, расширяет концепцию goto исключениями и привносит массу полускрытых от глаза действий (конструкторы, деструкторы, выбор подходящего метода, хождения по иерархии классов/объектов, исключения). Ещё кой-какая мелочовка появляется в языке. Стандартная библиотека уже заметно мощнее. Однако, синтаксис, разбор и понимаемость мозгом и программными инструментами C++ кода при этом усложняются. Тоже как-то не густо на мой взгляд. Тут дали, там забрали. Честно скажу, не люблю читать код C++. И не умею. ОЗУ мозга не хватает на иерархии, вложенности и отклонения от прямолинейного исполнения. C не подарок (из-за своего тяжёлого детства), а C++ — и подавно (со всем тем же детством, кстати, и с новыми приколами).


Это какие-то неправильные языки. Первому не хватает нормальной стандартной библиотеки. Второму — понятности. Может, в этом и есть плюс чего-нибудь функционального прикрученного к мощной библиотеке, доступной более чем в одной ОС (JVM + etc или что там ещё есть)?
 
0 посетителей, 30 комментариев, 0 ссылок, за 24 часа