>свидетельствует о недостатке в языке программирования
Ага. По кой ты, скотина, не сделал классы объектами первого класса? Ведь перед глазами был же пример из Smalltalk. И еще об ограничениях будет говорить. Про замыкания (хотя правильнее будет сказать лексические контексты) я вообще молчу. Ну был же перед глазами лисп. Про возможность вернуть указатель всего и вся — тоже.
Угу, еще можно не ругать тех кто сделал так, что в русской клавиатуре запятая набирается с шифтом...
Предвидение — крест любого дизайнера. Иначе — не берись. Сколько ошибок было только из-за того, что программеры намухоморили с глобальными переменными. Сколько ошибок было из-за того, что некоторые ущербные личности пытались возвращать во внешний мир указатели на объекты в стеке. Сколько ошибок из-за того, что постоянно разыменовываются нулевые указатели.
И самое главное, что у Страуструпа перед глазами были характерниейшие примеры. Нет, блин, мы пойдем своим путем.
О, я еще про «замечательную» модульную систему C++ забыл. По-настоящему абстрактные типы, ну это конечно не Страуструпа дело, класс-как-модуль — наше всиёё.
Точно так же Бьярн никого не заставлял использовать С++. Все к нему сами шли.
Ну понятно, что евреи сами были виноваты в том, что немцы на них озлобились, но вот эти концлагеря, Циклон-Б... Как-то некрасиво получилось... Неужто программисты девяностых/начала нулевых чем-то «заслужили» себе C++?
Ну-ну. Он, вообще-то, язык системного программирования делал (получилось или нет - вопрос другой). Мысль о Смоллтоке как языке системного программирования - это диагноз (и не надо о Lisaac).
> Даже с учетом тех задач можно было бы сделать и получше,
ИМХО, тем более с его-то знаниями.
Любую вещь можно сделать получше, чем сделали, однако мир не идеален. Бьярн хотел язык удобный как Simula и быстрый как C, и он его делал. Делал преодолевая массу припятский и заботясь в первую очередь о том, что бы это не было академической разработкой, т.е. приносило пользу немедленно. Можно сделать и получше, только никто не сделал.
Толстые рантаймы и динамическая типизация, неизвестны (на тот момент) эффективные техники реализации (и не надо про то, что уже в Lisp 1.5 был компилятор в натив - скорости это не гарантирует).
Ada
Огромный сложный язык, на ООП.
ML.
Вообще не из той оперы.
Кстати, Ada и ML на дизайн языка таки повлияли, но позже - когда основные ошибки уже были сделаны.
Ещё раз: тебя кто-то заставляет использовать С++? Никто не заставляет.
Ты хочешь всех заставить отказаться от использования С++? А кто ты такой, чтобы за других решать?
Не нравится - не пользуйся. Не работай на работах, связанных с С++. Забудь С++.
Подожди, были в лиспе того времени лексические контексты? Были. Какого хрена он их не взял? Теперь в новом стандарте есть, кстати.
Можно было хоть чуток подумать насчет того, что классы должны быть объектами (первого класса)? Можно. В качестве примера был Smalltalk. Нет же, сделали как в симуле. А она вообще для симуляции. Была.
Можно было чуток подумать, что хорошая модульная система — необходима для больших проектов? Можно. В качестве примеров были ML, Ada, Modula. Нет, мы же игрались с шаблонной системой.
И самый killer-аргумент: стоило подумать, что такой сложный язык будут использовать исключительно как «улучшенный» С? Стоило. Потому что так его использовали чуть ли не до конца 90-х.
> были в лиспе того времени лексические контексты? Были. Какого хрена он их не взял?
Потому что у него перед глазами был пример Си, в котором лексических контекстов не было.
Можно было хоть чуток подумать насчет того, что классы должны быть объектами (первого класса)?
Можно было чуток подумать, что хорошая модульная система — необходима для больших проектов?
«Hindsight is always 20/20» (c) У меня встречный вопрос: неужели нельзя подумать о том, что всё это сделает рантайм-сосуществование с Си затруднительным?
И самый killer-аргумент: стоило подумать, что такой сложный язык будут использовать исключительно как «улучшенный» С? Стоило.
И это killer-аргумент? :D Это невнятное хныкание. Ты бы хоть определил, что такое «улучшенный Си». Ну и откуда данные о том, как он используется. И, наконец, почему использование в роли «улучшенного Си» - это плохо.
Перестань ваять на крестах, найди нормальную работу, купи новый, современный, широкоформатный монитор. В твою пятнашку даже начинающий только по частям поместиться может.