Re[25]: Предложения по улучшению
От: WolfHound  
Дата: 15.06.05 13:25
Оценка:
Здравствуйте, 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) А. Эйнштейн
Re[27]: Предложения по улучшению
От: Cyberax Марс  
Дата: 15.06.05 13:27
Оценка:
FDSC wrote:

> ЧУШЬ. ЧУШь. ЧУшь. Чушь. чушь....

> Умные указатели в Delphi есть, прада только в строковых типах.

Шутка дня.

Читать здесь: http://en.wikipedia.org/wiki/Smart_pointer и по ссылкам.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[10]: Частота ошибок в зависимости от языка: что делать?
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 15.06.05 13:45
Оценка: -2 :))) :))
Здравствуйте, FDSC, Вы писали:

FDS>Здравствуйте, Cyberax, Вы писали:


C>>Сергей Губанов wrote:


>>> C>Когда же прекратят издеваться над школьниками....

>>> Что Вы имеете в виду?

C>>Использовать мертвые, неудобные и никому ненужные языки.


Это Вы про устаревший Turbo Pascal? Согласен, не надо больше так издеваться. Пора учить современный живой удобный нужный Component Pascal.
Re[28]: Предложения по улучшению
От: Трурль  
Дата: 15.06.05 13:57
Оценка: +2 :))
Здравствуйте, WolfHound, Вы писали:

FDS>>Умные указатели в Delphi есть, прада только в строковых типах.

WH>А толку? Умные указатели нужны везде. Только строки меня не устраивают.
А мне умные указатели не нужны нигде.
Re[4]: Частота ошибок в зависимости от языка: что делать?
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 15.06.05 13:59
Оценка: :))) :)
Здравствуйте, FDSC, Вы писали:

FDS> ...или, вообще, придумать другой язык... Чтоб ошибок в 100 раз меньше было, ведь от средства разработки то же многое зависит.


Такой язык есть — Оберон
Автор: Сергей Губанов
Дата: 14.06.05
Re[29]: Предложения по улучшению
От: WolfHound  
Дата: 15.06.05 14:08
Оценка: 1 (1)
Здравствуйте, Трурль, Вы писали:

FDS>>>Умные указатели в Delphi есть, прада только в строковых типах.

WH>>А толку? Умные указатели нужны везде. Только строки меня не устраивают.
Т>А мне умные указатели не нужны нигде.
Есть всего 3 врианта
1)ГЦ. В дельфе нет.
2)Умные указатели. В дельфе нет.
3)Озвереешь ловить утечки памяти. В дельфе...
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[11]: Частота ошибок в зависимости от языка: что делать?
От: Cyberax Марс  
Дата: 15.06.05 14:45
Оценка: :)
Сергей Губанов wrote:

> C>>Использовать мертвые, неудобные и никому ненужные языки.

> Это Вы про устаревший Turbo Pascal? Согласен, не надо больше так
> издеваться. Пора учить современный живой удобный нужный Component Pascal.

К сожалению, он не живой, ни удобный, ни современный.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[5]: Частота ошибок в зависимости от языка: что делать?
От: Cyberax Марс  
Дата: 15.06.05 14:46
Оценка: :)))
Сергей Губанов wrote:

> FDS> ...или, вообще, придумать другой язык... Чтоб ошибок в 100 раз

> меньше было, ведь от средства разработки то же многое зависит.
> Такой язык есть — Оберон
> <http://rsdn.ru/Forum/Message.aspx?mid=1221310&amp;only=1&gt;
Автор: Сергей Губанов
Дата: 14.06.05


Let the flame begin!



--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[11]: Частота ошибок в зависимости от языка: что делать?
От: GlebZ Россия  
Дата: 15.06.05 15:50
Оценка: +1 :)
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Это Вы про устаревший Turbo Pascal? Согласен, не надо больше так издеваться. Пора учить современный живой удобный нужный Component Pascal.


А у меня мелькнула мысль: а зачем их учить какому-то языку? Им бы русский выучить, и то хорошо.

С уважением, Gleb.
... << RSDN@Home 1.1.4 beta 4 rev. 358>>
Re[16]: Частота ошибок в зависимости от языка: что делать?
От: GlebZ Россия  
Дата: 15.06.05 15:50
Оценка:
Здравствуйте, Denis2005, Вы писали:

D>P.S. Явный вызов деструктора это клиника, я бы не назвал это корректным кодом.

И будем хранить большие коллекции объектов в стеке?

С уважением, Gleb.
... << RSDN@Home 1.1.4 beta 4 rev. 358>>
Re[15]: Частота ошибок в зависимости от языка: что делать?
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.06.05 16:30
Оценка:
Здравствуйте, WolfHound, Вы писали:

VD>>Там компилятор был не причем. Там были махинации со своим пулом памяти и вручную вызывались деструкторы. Конструктор же вызывался дважды из-за прохода по памяти в одном из деструкторов (или еще где... уже не помню).

WH>Те наплевал на все защиты С++, что-то наворотил шаловливыми ручками, а С++ виноват? Прэлесно!

Все в рамках правил языка. В общем, не фига — не фига. Это у вас, доктор, картиночки такие...

Если эти возможности в языке не нужны, тогда что они в нем делают? И зачем были включены?
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Частота ошибок в зависимости от языка: что делать?
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.06.05 16:30
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>И что это доказывает? В C# тоже можно написать unsafe и натворить тАкое


Ну, справидливости ради в C#, да и в любом дотнетом языке тот же диспоз можно вызывать хоть до посинения. Но его и проектируют так чтобы это проблем не вызвало.

А главное, что если то, то тебя остановит контроль типов. Что же до ансэйва, то лично я его не применяю. Думаю ты тоже. Он очень хорошо выделен. Прибегая к нему ты идешь на обдуманный риск и всячески это демонстрируешь... в отличии от...

WH>Если начал приводить что попало к чему попало, вызывать деструкторы руками так сам себе злобный буратино.


Не, не. Не надо грязи. Я в начале сказал о совершенно реальной ситуаци где меня привлекли для поиска "очень странной ошибки". Причем те кто ее реально создал отнюдь не выпендривались и не ламерили по чем зря.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Частота ошибок в зависимости от языка: что делать?
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.06.05 16:30
Оценка:
Здравствуйте, Denis2005, Вы писали:

D>Страуструп говорит про такие случаи приблизительно так: C++ (в отличии от C89/-) защищает от случайного допущения ошибки, но не от преднамеренного жульничества.


Это С++ то защищаеть от случайных ошибок?

D>P.S. Явный вызов деструктора это клиника, я бы не назвал это корректным кодом.


Клиника это язык в котором такое море граблей. По сему добрую половину (а то и больше) С++-ного кода не удается назвать корректным кодом.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Частота ошибок в зависимости от языка: что делать?
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.06.05 16:30
Оценка:
Здравствуйте, 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]: Частота ошибок в зависимости от языка: что делать?
От: WolfHound  
Дата: 15.06.05 16:48
Оценка: +1 -2
Здравствуйте, VladD2, Вы писали:

VD>Все в рамках правил языка. В общем, не фига — не фига. Это у вас, доктор, картиночки такие...

Хочешь я сейчас в шарпе напишу unsafe и все уроню? Короче завязывай с демогогией. Та ЯВНО обошол защиту, ты ЯВНО вызвал деструктор.
VD>Если эти возможности в языке не нужны, тогда что они в нем делают? И зачем были включены?
Они иногда нужны. Например подобные фокусы используются при реализации контейнеров в STL.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[17]: Частота ошибок в зависимости от языка: что делать?
От: WolfHound  
Дата: 15.06.05 16:48
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Ну, справидливости ради в C#, да и в любом дотнетом языке тот же диспоз можно вызывать хоть до посинения. Но его и проектируют так чтобы это проблем не вызвало.

А если его спроектируют по другому?
К томуже диспос работает несколько иначе чем деструктор.
VD>А главное, что если то, то тебя остановит контроль типов. Что же до ансэйва, то лично я его не применяю. Думаю ты тоже. Он очень хорошо выделен. Прибегая к нему ты идешь на обдуманный риск и всячески это демонстрируешь... в отличии от...
Тут ты тоже явно обошол защиту. Так что...
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[17]: Частота ошибок в зависимости от языка: что делать?
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.06.05 17:15
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Хочешь я сейчас в шарпе напишу unsafe и все уроню? Короче завязывай с демогогией. Та ЯВНО обошол защиту, ты ЯВНО вызвал деструктор.


Ты оп осторожнее с ярлычками вроде демоггии. Прочитай еще раз ветку. Я заранее сказал, что "в безопасном режиме Шарпа и Яве (где другого режима нет)...".

Ансэйф режим для хаков и введен. Но это не означает, что весь язык должен быть одним большим ансэйвом (хаком).

VD>>Если эти возможности в языке не нужны, тогда что они в нем делают? И зачем были включены?

WH>Они иногда нужны. Например подобные фокусы используются при реализации контейнеров в STL.

Думаю ты представляшь как на том же Шарпе в безопасном режиме написать очень даже эффективный контейнер. Значит таки можно жить без хаков на каждом шагу? А ведь чем человек не опытнее, тем его больше тянет на подвиги. И без разумного контроля — это приводит к очень неприятным резултатам.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[18]: Частота ошибок в зависимости от языка: что делать?
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.06.05 17:15
Оценка: +1
Здравствуйте, WolfHound, Вы писали:

VD>>Ну, справидливости ради в C#, да и в любом дотнетом языке тот же диспоз можно вызывать хоть до посинения. Но его и проектируют так чтобы это проблем не вызвало.

WH>А если его спроектируют по другому?

То будут проблемы. Но это будет нарушение паттерна, а не хитрое использование возможностей языка. Да и проблемы будут куда более просто локализуемы.

WH>К томуже диспос работает несколько иначе чем деструктор.


Да зачастую смысло то их существования один и тот же.

VD>>А главное, что если то, то тебя остановит контроль типов. Что же до ансэйва, то лично я его не применяю. Думаю ты тоже. Он очень хорошо выделен. Прибегая к нему ты идешь на обдуманный риск и всячески это демонстрируешь... в отличии от...

WH>Тут ты тоже явно обошол защиту. Так что...

Какую? Я просто пользовался штатными возможностями языка. Более того, так как язык не позволяет автоматически управлять памятью, я буду вынужден писать подобный код реализуя свои контейнеры. И мест для ошибок приводящих к очень неприятным последствиям тут хоть отбавляй. И все в следствии дизайна языка.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[28]: Предложения по улучшению
От: FDSC Россия consp11.github.io блог
Дата: 15.06.05 17:34
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>FDSC wrote:


>>00401070 xor eax,eax

>> while (C[A++] != B && A < K);
>>00401072 mov edx,dword ptr [esi+eax*4]
>>00401075 inc eax
>>00401076 cmp edx,7
>>00401079 je main+82h (401082h)
>>0040107B cmp eax,2000000h
>>00401080 jl main+72h (401072h)
>>
>> Стандартный код: хуже трудно сделать. Может настройки не те:
>> «/O2 /Ot /G6 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /EHsc
>> /ML /GS /Yu"stdafx.h" /Fp"Release/TestAsm.pch" /Fo"Release/"
>> /Fd"Release/vc70.pdb" /W3 /nologo /c /Wp64 /Zi /TP»?

C>

C>C:\temp\test\release>test.exe
C>1: VC compiler: 1253 (33554431); asm: 1001 (33554431)
C>2: VC compiler: 1002 (33554431); asm: 1012 (33554431)
C>3: VC compiler: 1008 (33554431); asm: 1002 (33554431)
C>4: VC compiler: 1002 (33554431); asm: 1012 (33554431)
C>5: VC compiler: 1055 (33554431); asm: 1041 (33554431)
C>E = 0

C>Ассемблерный код писать не буду — они там циклы раскатал. Компилятор:
C>Intel 8.1, процессор: Intel Pentium M 1.8GHz.

Не понял, что за результаты? asm должен показывать худшие результаты, если ты хочешь показать, как хорошо всё компилируется.
Re[30]: Предложения по улучшению
От: FDSC Россия consp11.github.io блог
Дата: 15.06.05 17:41
Оценка: -2 :))) :))
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, Трурль, Вы писали:


FDS>>>>Умные указатели в Delphi есть, прада только в строковых типах.

WH>>>А толку? Умные указатели нужны везде. Только строки меня не устраивают.
Т>>А мне умные указатели не нужны нигде.
WH>Есть всего 3 врианта
WH>1)ГЦ. В дельфе нет.
WH>2)Умные указатели. В дельфе нет.
WH>3)Озвереешь ловить утечки памяти. В дельфе...

Не бывает в Delphi утечек памяти. Там всё равно всё освобождается.
А вот деструктор можно и забыть вызвать.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.