Здравствуйте, FDSC, Вы писали:
WH>>В проекте на 10 метров кода будет тАкой граф... FDS>Чушь. Это смотря как его представить.
Да хоть как ты его представляй. Всеравно утонешь в тысячах классов.
WH>>На дельфе хорошо только формочки клепать. А как язык дельфи отстает от С++ по всем параметрам. FDS>Нет.
Поработай с мое на разных языках и платвормах...
WH>>В принципе есть тандартная связка формочки на VB6 + inproc COM cerver на С++. WH>>В место VB6 можно взять дельфи. FDS>Жуть. Что ты предлагаешь, !
Во многих приложениях гуи это просто куча несложных формочек. VB и дельфя с формочками хорошо справляются, а вот с написанием кода лучше справляется С++.
А для тех приложений где нужен действительно сложный ГУИ то тут C++ с WTL рулят со страшной силой. Никакая дельфя с ее убогим VCL рядом не валялась ибо VCL это шаг в право, шаг в лево расстрел без права переписки.
Вот например я сейчас создаю собственную систему ГУИ ибо WInForm который очень сильно похож на VCL с задачами не справляется.
WH>>А сейчас в недрах мелкософта создается очень интересный оптимизатор который можно будет расширять своими правилами. FDS>Откуда знаешь? http://research.microsoft.com/phoenix/
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, FDSC, Вы писали:
FDS>Здравствуйте, Cyberax, Вы писали:
C>>Сергей Губанов wrote:
>>> C>Когда же прекратят издеваться над школьниками.... >>> Что Вы имеете в виду?
C>>Использовать мертвые, неудобные и никому ненужные языки.
Это Вы про устаревший Turbo Pascal? Согласен, не надо больше так издеваться. Пора учить современный живой удобный нужный Component Pascal.
Здравствуйте, WolfHound, Вы писали:
FDS>>Умные указатели в Delphi есть, прада только в строковых типах. WH>А толку? Умные указатели нужны везде. Только строки меня не устраивают.
А мне умные указатели не нужны нигде.
Re[4]: Частота ошибок в зависимости от языка: что делать?
Здравствуйте, FDSC, Вы писали:
FDS> ...или, вообще, придумать другой язык... Чтоб ошибок в 100 раз меньше было, ведь от средства разработки то же многое зависит.
Здравствуйте, Трурль, Вы писали:
FDS>>>Умные указатели в Delphi есть, прада только в строковых типах. WH>>А толку? Умные указатели нужны везде. Только строки меня не устраивают. Т>А мне умные указатели не нужны нигде.
Есть всего 3 врианта
1)ГЦ. В дельфе нет.
2)Умные указатели. В дельфе нет.
3)Озвереешь ловить утечки памяти. В дельфе...
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[11]: Частота ошибок в зависимости от языка: что делать?
Сергей Губанов wrote:
> C>>Использовать мертвые, неудобные и никому ненужные языки. > Это Вы про устаревший Turbo Pascal? Согласен, не надо больше так > издеваться. Пора учить современный живой удобный нужный Component Pascal.
К сожалению, он не живой, ни удобный, ни современный.
--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[5]: Частота ошибок в зависимости от языка: что делать?
Сергей Губанов wrote:
> FDS> ...или, вообще, придумать другой язык... Чтоб ошибок в 100 раз > меньше было, ведь от средства разработки то же многое зависит. > Такой язык есть — Оберон > <http://rsdn.ru/Forum/Message.aspx?mid=1221310&only=1>
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Это Вы про устаревший Turbo Pascal? Согласен, не надо больше так издеваться. Пора учить современный живой удобный нужный Component Pascal.
А у меня мелькнула мысль: а зачем их учить какому-то языку? Им бы русский выучить, и то хорошо.
С уважением, Gleb.
... << RSDN@Home 1.1.4 beta 4 rev. 358>>
Re[16]: Частота ошибок в зависимости от языка: что делать?
Здравствуйте, Denis2005, Вы писали:
D>P.S. Явный вызов деструктора это клиника, я бы не назвал это корректным кодом.
И будем хранить большие коллекции объектов в стеке?
С уважением, Gleb.
... << RSDN@Home 1.1.4 beta 4 rev. 358>>
Re[15]: Частота ошибок в зависимости от языка: что делать?
Здравствуйте, WolfHound, Вы писали:
VD>>Там компилятор был не причем. Там были махинации со своим пулом памяти и вручную вызывались деструкторы. Конструктор же вызывался дважды из-за прохода по памяти в одном из деструкторов (или еще где... уже не помню). WH>Те наплевал на все защиты С++, что-то наворотил шаловливыми ручками, а С++ виноват? Прэлесно!
Все в рамках правил языка. В общем, не фига — не фига. Это у вас, доктор, картиночки такие...
Если эти возможности в языке не нужны, тогда что они в нем делают? И зачем были включены?
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Частота ошибок в зависимости от языка: что делать?
Здравствуйте, WolfHound, Вы писали:
WH>И что это доказывает? В C# тоже можно написать unsafe и натворить тАкое
Ну, справидливости ради в C#, да и в любом дотнетом языке тот же диспоз можно вызывать хоть до посинения. Но его и проектируют так чтобы это проблем не вызвало.
А главное, что если то, то тебя остановит контроль типов. Что же до ансэйва, то лично я его не применяю. Думаю ты тоже. Он очень хорошо выделен. Прибегая к нему ты идешь на обдуманный риск и всячески это демонстрируешь... в отличии от...
WH>Если начал приводить что попало к чему попало, вызывать деструкторы руками так сам себе злобный буратино.
Не, не. Не надо грязи. Я в начале сказал о совершенно реальной ситуаци где меня привлекли для поиска "очень странной ошибки". Причем те кто ее реально создал отнюдь не выпендривались и не ламерили по чем зря.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Частота ошибок в зависимости от языка: что делать?
Здравствуйте, Denis2005, Вы писали:
D>Страуструп говорит про такие случаи приблизительно так: C++ (в отличии от C89/-) защищает от случайного допущения ошибки, но не от преднамеренного жульничества.
Это С++ то защищаеть от случайных ошибок?
D>P.S. Явный вызов деструктора это клиника, я бы не назвал это корректным кодом.
Клиника это язык в котором такое море граблей. По сему добрую половину (а то и больше) С++-ного кода не удается назвать корректным кодом.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Частота ошибок в зависимости от языка: что делать?
Здравствуйте, vdimas, Вы писали:
V>Да, использование С-подобных приведений типов позволяет произвольно интерпретировать память.
В моем примере приведение типов нужно постольку по скольку. Дело не в нем.
Я демонстрировал опревержение утверждения, что мол в С++ деструкторы вызваются когда надо и так как надо. В С++ все может быть когда не надо и так как ты себе и представить не мог.
V>Поэтому в С++ ввели дополнительные "почти безопасные" static_cast<>. Если в твоем примере использовать его, то пример не скомпилируется.
Очень верно, что слова "почти безопасные" ты взял в ковычки. Потому как это тоже самое что "чуть-чуть беременная". Нет никаких проблем натварить любого бреда и со static_cast-ами:
for (int i = 0; i < 10; i++)
static_cast<A*>(static_cast<void*>(&i))->~A();
Этот код скопилируется без броблем. А по стути он аналогичен предыдущему.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Частота ошибок в зависимости от языка: что делать?
Здравствуйте, VladD2, Вы писали:
VD>Все в рамках правил языка. В общем, не фига — не фига. Это у вас, доктор, картиночки такие...
Хочешь я сейчас в шарпе напишу unsafe и все уроню? Короче завязывай с демогогией. Та ЯВНО обошол защиту, ты ЯВНО вызвал деструктор. VD>Если эти возможности в языке не нужны, тогда что они в нем делают? И зачем были включены?
Они иногда нужны. Например подобные фокусы используются при реализации контейнеров в STL.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[17]: Частота ошибок в зависимости от языка: что делать?
Здравствуйте, VladD2, Вы писали:
VD>Ну, справидливости ради в C#, да и в любом дотнетом языке тот же диспоз можно вызывать хоть до посинения. Но его и проектируют так чтобы это проблем не вызвало.
А если его спроектируют по другому?
К томуже диспос работает несколько иначе чем деструктор. VD>А главное, что если то, то тебя остановит контроль типов. Что же до ансэйва, то лично я его не применяю. Думаю ты тоже. Он очень хорошо выделен. Прибегая к нему ты идешь на обдуманный риск и всячески это демонстрируешь... в отличии от...
Тут ты тоже явно обошол защиту. Так что...
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[17]: Частота ошибок в зависимости от языка: что делать?
Здравствуйте, WolfHound, Вы писали:
WH>Хочешь я сейчас в шарпе напишу unsafe и все уроню? Короче завязывай с демогогией. Та ЯВНО обошол защиту, ты ЯВНО вызвал деструктор.
Ты оп осторожнее с ярлычками вроде демоггии. Прочитай еще раз ветку. Я заранее сказал, что "в безопасном режиме Шарпа и Яве (где другого режима нет)...".
Ансэйф режим для хаков и введен. Но это не означает, что весь язык должен быть одним большим ансэйвом (хаком).
VD>>Если эти возможности в языке не нужны, тогда что они в нем делают? И зачем были включены? WH>Они иногда нужны. Например подобные фокусы используются при реализации контейнеров в STL.
Думаю ты представляшь как на том же Шарпе в безопасном режиме написать очень даже эффективный контейнер. Значит таки можно жить без хаков на каждом шагу? А ведь чем человек не опытнее, тем его больше тянет на подвиги. И без разумного контроля — это приводит к очень неприятным резултатам.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[18]: Частота ошибок в зависимости от языка: что делать?
Здравствуйте, WolfHound, Вы писали:
VD>>Ну, справидливости ради в C#, да и в любом дотнетом языке тот же диспоз можно вызывать хоть до посинения. Но его и проектируют так чтобы это проблем не вызвало. WH>А если его спроектируют по другому?
То будут проблемы. Но это будет нарушение паттерна, а не хитрое использование возможностей языка. Да и проблемы будут куда более просто локализуемы.
WH>К томуже диспос работает несколько иначе чем деструктор.
Да зачастую смысло то их существования один и тот же.
VD>>А главное, что если то, то тебя остановит контроль типов. Что же до ансэйва, то лично я его не применяю. Думаю ты тоже. Он очень хорошо выделен. Прибегая к нему ты идешь на обдуманный риск и всячески это демонстрируешь... в отличии от... WH>Тут ты тоже явно обошол защиту. Так что...
Какую? Я просто пользовался штатными возможностями языка. Более того, так как язык не позволяет автоматически управлять памятью, я буду вынужден писать подобный код реализуя свои контейнеры. И мест для ошибок приводящих к очень неприятным последствиям тут хоть отбавляй. И все в следствии дизайна языка.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, Трурль, Вы писали:
FDS>>>>Умные указатели в Delphi есть, прада только в строковых типах. WH>>>А толку? Умные указатели нужны везде. Только строки меня не устраивают. Т>>А мне умные указатели не нужны нигде. WH>Есть всего 3 врианта WH>1)ГЦ. В дельфе нет. WH>2)Умные указатели. В дельфе нет. WH>3)Озвереешь ловить утечки памяти. В дельфе...
Не бывает в Delphi утечек памяти. Там всё равно всё освобождается.
А вот деструктор можно и забыть вызвать.