|
|
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
2 c127 ГВ>Проблема в том, что разработчики часто поставлены в условия, когда им необходимо писать так, чтобы это было понятно даже... ммм... скажем так, не очень опытному коллеге. c127>Я такого не встречал, хотя наверное где-то есть и такое. Ну, мне доводилось видеть. И даже самому попадать под подобную критику. ГВ>Так что, вынуждают переходить на "стиль C" нередко конкретные люди, а не "скрытые проблемы" языка. c127>Очень хорошо, но причины-то в чем? Почему конкретные люди, для облегчения жизни которых придуман и C++, не используют его преимущества в полной мере. Ситуация ведь интересная: люди придумали вроде бы удобный и правильный язык, защищают его от нападок несознательных элементов, а сами же в большинстве (выделение моё - ГВ.) не используют его удобство. Именно что в большинстве . Но C++ придумало отнюдь не большинство программистов и тем более, людей себя ими называющих. Большинство не придумало даже паскаль. Отходя немного в сторону от дискуссии замечу, что большинство - суть стадо, а апелляция к большинству - суть некорректная аргументация. ;) Большинство вообще неспособно ничего придумать. Придумывают единицы. Большинство - поддерживает их или не поддерживает. И кстати, далеко не факт, что большинство всегда оказывается правым. Впрочем, ладно... Я вижу причины неприятия стиля C++ и неиспользования его возможностей всего лишь в его относительной необычности по сравнению с императивными языками. Ну, трудно переключиться сразу на стиль объектов с шаблонами. Тем более это трудно сделать, если сначала учиться C. Наверное, всё-таки, это правильно, что учиться нужно начинать с Pascal. c127>Всякая C++ программа, по крайней мере на этапе разработки, это постоянные проблемы с памятью, путанье типов и прочие прелести, свойственные C, от них же и пытались избавиться. Такие ошибки появляются, если выводить учёт ресурсов "за грань сознания", а это неверно. И, кстати, полный учёт совсем не мешает концентрации на прикладной функциональности. Заставляет делать её стройнее и предсказуемее - да, это есть... c127>Да и если посмотреть функции (методы), то там скорее всего будет последовательность new в начале и delete в конце. По большому счету оно ничем не лучше, чем malloc-free? Совершенно верно и это, кстати, и есть плохой стиль программирования на C++. "Хороший стиль", ИМХО, можно кратко сформулировать примерно так: всё есть объекты. Элементы жизненного цикла сущностей - в том числе. c127>Взял книжку "C++ programming with CORBA" ISBN 0-471-28306-1. Книга по практическому применению C++. Открыл наугад на 239 странице. Вижу: Ну дык! Книжка-то наверное больше о CORBA, чем о C++, т.е., в ней иллюстрируется в первую очередь использование CORBA и т.п. Её почти наверняка можно использовтаь для того, чтобы обучаться CORBA, но не стилю C++! c127>Чистый C, от C++ одно название. Книгу я специально не выбирал, это первая попавшаяся под руку. Ну, попробуй почитать что-нибудь именно по C++ без "разбавлений", вроде CORBA, Windows, Unix. Александреску, например. Просто хороший стиль C++ он не привязан к платформе, а проиллюстрировать одновременно стиль и аспекты конкретной библиотеки - сложная и, на мой взгляд, достаточно бессмысленная задача, чтобы её не решали. c127>Нет, при создании C++ говорились те же самые слова насчет командной работы. Причем упор делался именно на большие проекты и большие команды разработчиков. Это одна из причин введения инкапсуляции - закрыть доступ внутрь класса, чтоб пользователи библиотек не лазили куда не надо. Не только на большие команды. Делался упор ещё и на то, что один человек может контролировать больший объём исходного текста. Хотя в принципе, ты прав, я несколько загнул с оценками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2003, 05:19 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
pop-up. модераторам - не бить! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2004, 16:35 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
vdimas На большинство приходящих в обычной работе собощений Windows, в этих библиотеках происходит следующее: 1. reflection всех Notifications 2. PretranslateMessage вдоль по всей иерархии окон. 3. Поиск объекта в MAP-ах по хендлеру. 4. линейное "прочесывание" message maps классов в ответ на КАЖДОЕ ПРИХОДЯЩЕЕ СООБЩЕНИЕ Ура! Есть человек в мире осознающий наскоко MFC тяжёлая штука! alexey_1979 Ты же не будешь создавать массив обработчиков на несколько тысяч элементов для того, чтобы обработать пару сообщений. Ну MFC вообще-то так и делает.... vdimasБольшинство сообщений (99.99% из общего приходящего потока) в своей оконной процедуре просто достают адрес объекта из самомого экземляра МОЕГО класса окна (а не из многотысячного ATL/MFC MAP-а) ещё респект! тоже копался в механизме получения экзепляра в MFC - офигел от наворотов. идея таскания указателя на объект в самом классе - гораздо приятнее. Сам так делаю. Как мне рассказали люди, MFC сделало сбор всех хэндлов окон в массив из соображений безопасности. Кто объяснит, что они обезопасили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2004, 16:40 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
Siebentearbeitpop-up. модераторам - не бить! :) да не будут бить . блин башка раскалывается :( (не пил вчера) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2004, 09:15 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
Ну бывает. Я сёдня спать лёг в 3.45, а утром бежал за электричкой зимой 5км. в гору. Никакой сижу, спать охота. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2004, 10:19 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
Sieзимой 5км. в гору. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2004, 12:08 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
да, это из рассказа про смену поколений :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2004, 13:55 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
Sieда, это из рассказа про смену поколений :) угу помню :)) эхх прощай С++ ухожу работать на Delphi + MSSQL 2k ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2004, 14:50 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
Я не понял, что за наезды такие на MFC ваще а ? Причем абсолютно необоснованные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2004, 15:02 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
Геннадий Васильев Идея мне очень нравится, но вот похоже Степанов недоволен ее реализацией в C++. Я не очень понимаю почему, но ему виднее. Насколько я понимаю, к OOP-у шаблоны не имют отношения. Хотя я не большой знаток основ ООП и готов выслушать другие мнения. Как минимум, он недоволен отсутсвием consraints в шаблонах, насколько я помню. Ещё у него в интервью (где-то в сети есть) были замечательные слова (не дословно): "мне говорят, что надо идти туда, где большие деньги, но по-моему это дурно пахнет". вот это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2004, 22:04 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
На C++ можно написать любую программу, которую можно вообще написать. Но не за те же деньги )) В пользу этого утверждения есть следующие доводы 1 крутые сишники (срршники) за даром работать не будут 2 у некрутых сишников прога работать не будет В такой ситуации выбор не велик. А большую прикладу писать можно за дешево на более высоком уровне абстракции на урезанных языках. Тем более что этот уровень в них уже подготовлен (реализован и оттестирован). Имеются в виду либы, поддержка технологий и т.д. Поэтому многие менеджера скатываются в пользу java и т.д. И по деньгам они правы. Киньте в меня камень, если я неправ. Кроме того, если нужно во всех подобных языках можно подключать практически любые модули. Для узкого круга задач низкого уровня можно написать модуль на с++ и пользовать его. Я сам обожаю с++. И другие языки для меня они как тесная детская колыбелька. Мне в ней тесно. Только на c++ можно лаконично и без извратов писать на любом уровне абстракции при условии, что это уровень еще нужно реализовать и отладить. Если бы для с++ была нормально структурированная и отлаженная библиотека с исподниками хотя бы как в java и при надобности можно было бы возлагать контроль за ресурсами на язык. (Да… тогда получиться c# или java). Самое обидное, что c++ это позволяет, а этого до сих пор нет. А если нет то по кусочкам. Если вдруг эти кусочки попытаешься объеденить, то получишь как минимум длинный catch. Короче нужна крутая отлаженная и простая в использовании библиотека. Если она будет, то мы всем нос утрем как по красоте и лаконичности, так и по скорости и стоимости разработки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2004, 07:44 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
"Короче нужна крутая отлаженная и простая в использовании библиотека. Если она будет, то мы всем нос утрем как по красоте и лаконичности, так и по скорости и стоимости разработки." Не знаю как насчет "крутая", но помоему VCL от борланда, это как раз то о чем ты говоришь. Прибавь к этому STL и изобретать велосипед по второму разу не надо будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2004, 13:19 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
vcl от борланда не столь хороша, в частности портируемость ее оставляет желать лучшего. причем портируемость не только между операционныим системами, но и компиляторами. Много ли компиляторов могут использовать vcl? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2004, 14:12 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
VCL писана на паскале. Вот если перевести на С++ и сделать портируемой - цены ей не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2004, 21:52 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
Как сказал один мой знакомый нехилый (когда я тока начинал работать, его зазвали работать в MS) "С++ можно изучать всю жизнь" Это правда и явное отражение мощи языка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2004, 08:58 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
CEMb С++ можно изучать всю жизнь Главное найти тех парней что будут эту учебу финансировать :( Lepsik VCL написана на паскале. Вот если перевести на С++ и сделать портируемой - цены ей не будет. Перенести, перепроектировав, или просто переписав? imho VCL очень тяжелая и "сама в себе" - как будто другого ничего нет... STL - вот что должно было стать фундаментом - в VCL же все свое - и достаточно среднее. Для написания клиентов к БД на Delphi подходит - но и только ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2004, 12:56 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
funikovyuriГлавное найти тех парней что будут эту учебу финансировать :( Можно всё делать параллельно, работать на с++ и учится с++ работая на с++ :) funikovyuriSTL - вот что должно было стать фундаментом Ну, кстати, тут пробегал человек, недовольный STL по следующей причине: во, вроде, всех компиляторах нет заточки на архитектуру процессора. И я, кстати, на этом месте задумался... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2004, 16:30 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
а как связана конкретная шаблонная библиотека с заточками компилятора? компилятор должен вообще затачиваться, не заморачиваясь на конкретные библиотеки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2004, 17:32 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
2funikovyuri большая часть VCL никаким боком с STL непересекается. да и в области строковый функций stl::string слабоват - мне больше boost нравится - вот где сила. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2004, 19:13 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
funikovyuriа как связана конкретная шаблонная библиотека с заточками компилятора? Вроде как можно оптимизировать существенно под пень/амд 2 Lepsik char* - вот где сила :) (и вообще указатели - сила) Java и C# лишины этого счастья :) Хотя в Javе есть ссылки. Тока чё-та я стал забывать без практики... можно ли там делать вещи типа (сhar*)++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2004, 07:28 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
Нильзя. JAva ваапще атстой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2004, 12:08 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
И сла те восподи, шо низзя. Указатели ацтой. Жаба рулез. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2004, 13:17 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
Ни Java ни указатели не отстой - всё в природе нужно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2004, 14:15 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
Lepsik большая часть VCL никаким боком с STL непересекается. Да тот же AnsiString используемый всюду в VCL. А StringList? да и в области строковый функций stl::string слабоват - мне больше boost нравится - вот где сила. в смысле слабоват? В boost'e нет никаких string'ов - boost это расширение стандартной stl - такие базовые классы как string там не переписываются Sie Вроде как можно оптимизировать существенно под пень/амд Я этого не писал L) можно ли там делать вещи типа (сhar*)++ Вот из-за таких вещей С++ и помер... Из-за того что любой Вася П может такого понаписать что хоть стой хоть падай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2004, 15:06 |
|
||
|
Не дадим C++ в обиду
|
|||
|---|---|---|---|
|
#18+
2funikovyuri --большая часть VCL никаким боком с STL непересекается. Да тот же AnsiString используемый всюду в VCL. А StringList? я же сказал большая (ударение на O). оконные библиотека например и масса других --да и в области строковый функций stl::string слабоват - мне больше boost нравится - вот где сила. --в смысле слабоват? В boost'e нет никаких string'ов - boost это расширение стандартной stl - такие базовые классы как string там не переписываются ты чем читаешь ? "строковых функций", а не класс типа string Если конечно ты курсе что в бусте они есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2004, 19:13 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=32259262&tid=2034114]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
72ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 407ms |

| 0 / 0 |
