Большие проекты невозможно вообще оказывается писать на "полном" C++, без какой-то групповой дисциплины касательного того, что использовать, а что нет. Потому что это хоть и возможно, но только в коллективе, состоящем из хороших программистов. На практике большинство программистов оказываются в лучшем случае так себе, и ничего с этим не поделаешь.
Поэтому, кстати, после C++ мода пошла на упрощение языка (напр. Java и C#).
Вы хотите сказать - нельзя без документированой архитектуры, дизайна модулей, документации на API и прочее :-) Мы сейчас заделали костяк системы, который довольно сложен, зато теперь добавлять в него модели - довольно просто. По инструкции: выведи новый класс из такого-то. Добавь виртуальную функцию-hook doCalculate. Зарегистрируйся в factory таким-то способом. Добавь имя класса к списку типов для базового визитора. И так далее.
Да, кстати, а как в Java делается exceptiоn-safety? Все время finalize писать?
довольно интересный цикл усложнения языка, компатного и разумного при создании. Со временем все новые свойства и возможности утяжеляют язык, разнашивают его структуру, создавая в итоге неподьемную ad hoc смесь плохо-сочетаемых подходов. много примеров: Алгол к Алгол-68, Lisp to Common Lisp, Pascal to Delphi?, C to latest C++... Есть надежда, что C++ последует за предшественниками по эволюции.
Интересно, на чем будет основан "следующий" язык? Python снова показал важность компактного и чистого синтаксиса, но делать большие проекты без статической проверки стремно. В языках со статической проверкой типов и проч. приходится слишком много писать. Если бы кто-нибудь сумел сделать язык с выводимыми типами данных (в районе идей ML..Ocaml) и чистым, как в Питоне, синтаксисом...
Re:
Date: 2003-06-25 06:21 am (UTC)Поэтому, кстати, после C++ мода пошла на упрощение языка (напр. Java и C#).
no subject
Date: 2003-06-25 04:59 pm (UTC)Вы хотите сказать - нельзя без документированой архитектуры, дизайна модулей, документации на API и прочее :-)
Мы сейчас заделали костяк системы, который довольно сложен, зато теперь добавлять в него модели - довольно просто. По инструкции: выведи новый класс из такого-то. Добавь виртуальную функцию-hook doCalculate. Зарегистрируйся в factory таким-то способом. Добавь имя класса к списку типов для базового визитора. И так далее.
Да, кстати, а как в Java делается exceptiоn-safety? Все время finalize писать?
no subject
Date: 2003-06-25 05:30 pm (UTC)много примеров: Алгол к Алгол-68, Lisp to Common Lisp, Pascal to Delphi?, C to latest C++... Есть надежда, что C++ последует за предшественниками по эволюции.
Интересно, на чем будет основан "следующий" язык?
Python снова показал важность компактного и чистого синтаксиса, но делать большие проекты без статической проверки стремно. В языках со статической проверкой типов и проч. приходится слишком много писать. Если бы кто-нибудь сумел сделать язык с выводимыми типами данных (в районе идей ML..Ocaml) и чистым, как в Питоне, синтаксисом...
Re:
Date: 2003-06-25 05:47 pm (UTC)Я очень надеюсь на это, да.
Python снова показал важность компактного и чистого синтаксиса, но делать большие проекты без статической проверки стремно.
Или тогда уже надо идти к настоящей динамике (типа Smalltalk). Там стрёмность пропадает, хотя появляются другие проблемы, конечно.
С Питоном я всё никак не познакомлюсь, хотя давно хочу.