Re[2]: Спор бесполезен!
От: Аноним  
Дата: 17.09.03 07:08
Оценка:
Здравствуйте, centurn, Вы писали:

C> Ага. Осторожно, WolfHound, а то эти Delphi-поклонники и сжечь могут.


Идельфопоклонники!
Re[32]: По просьбам трудящихся: Delphi vs C++(VS)
От: mihailik Украина  
Дата: 17.09.03 07:22
Оценка:
WH>Мне нужен типизированый, автоматический массив созданный КОМовским аллокатором с возможностью вернуть его из функции.
WH>А тепер скажи какой такой базовый класс может быть у массива?

Ага, ну тогда понял.

function CreateMyStructArray(count : integer) : PMyStructArray;
begin
  Result := (PMyStructArray) КакТамПолучитьПамять( count*sizeof(TMyStruct) )
end;


Конечно, в отличие от шаблона тут придётся писать функцию CreateMyStructArray. Это, ясное дело, преимущество C++. Но считать такое мелкое преимущество чем-то гениальным и крутым — какой-то явный перекос.

M>>Бедные сишники! А как же они с WinAPI работают без try/finally? Сделали CreateFile, поковырялись, получили Exception — и файл остался висеть?


WH>Вот только жалеть нас не надо. Ибо с WinAPI без враперов работают только [censured]. А враперы уже и человеческий интерфейс предоставят и ресурс отдать не забудут.


Серьёзно? И что, на все тысячи функций WinAPI есть врапперы? И что, точно отражают семантику, не суживая способов применения? К примеру, есть такая утомительная область, как NT ACL. Наваляли на неё уже врапперы, или по старинке try/finally пишут?

Что-то не верится. Сдаётся мне, что подобные врапперы приходится писать самому программеру время от времени, когда оказывается, что поблизости нет готового.

А если вызвать-то нужно на всю программу два раза какой-нибудь "DeviceIOControlEx"? Тоже садишься и аккуратно пишешь враппер? О, это крутое преимущество C++. Избавление от ручного труда называется

Да, а ещё бывают сторонние библиотеки со своей дурацкой семантикой. На них что, тоже врапперы писать, если нужно некий try/finally — подход?
... << RSDN@Home 1.1 beta 1 >>
Re[35]: По просьбам трудящихся: Delphi vs C++(VS)
От: _Obelisk_ Россия http://www.ibm.com
Дата: 17.09.03 07:47
Оценка:
Здравствуйте, mihailik, Вы писали:


M>Ага. Компилятор Java написали. Интерпретатор и JIT'тер написали. А шаблоны — нет, тут сложность невероятно высока.


Вы когда-нибудь пробовали писать type checking и name analysis для кого-нибудь языка ?
Это само по себе не так просто, если язык поддерживает неявные преобразования и позволяет пользователю специфицировать дополнительные неявные преобразования. Добавление шаблонов увеличивает сложность реализации на порядок, а то и больше.



Душа обязана трудиться! (с) Н.Заболоцкий.
Re[37]: По просьбам трудящихся: Delphi vs C++(VS)
От: ArtDenis Россия  
Дата: 17.09.03 07:48
Оценка:
Здравствуйте, mihailik, Вы писали:

WH>> Разговорные языки по функциональности практически равноценны. Но С++ и

WH>> делфи... ой не смешите мои тапочки.

m> Мне кажется, твоя обувь слишком много на себя берёт.

m> По функциональности C++ опережает Дельфи только в возможности
m> компилировать драйвера.



2mihailik: большая просьба, обдумывать свои ответы собеседнику, иначе есть
вероятность того, что модератор перенесёт эту ветку в "Коллеги, улыбнитесь"


---------------------------------------------------------
СНП, Artyomov Denis. E-mail: artyomov <at> inbox.ru
Posted via RSDN NNTP Server 1.7 beta
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re[4]: Спор бесполезен!
От: Miem Россия  
Дата: 17.09.03 07:48
Оценка:
Здравствуйте, WolfHound, Вы писали:

M>>Просто нужно всегда понимать что язык — инструмент, шаблоны,строгая типизация — это тоже инструменты. Это то, с помощью чего решают задачи. Дык вот правильным набор инструментов будет тот, который по возможностям максимально сверху приближен к достаточным условиям задачи. И цитата в твоей подписи об этом говорит:


WH>По мне так чем меньше РУЧНОЙ работы тем лучше.

Всегда приветствуется!

WH> В С++ ручками надо работать один раз при написании шаблона, а потом в сотне мест с различными типами использую.

согласен, но это только если задача подразумевает эту "сотню мест".

WH>Вот именно нельзя делать проще чем можно.

А про проще чем можно никто и не говорил.

Вот видишь, однобокий взгляд Я тебе про набор инструментов для решении задачи, а ты про шаблоны и про ручную работу. Согласен с тем, что все вот эти вещи: язык, шаблоны, строгая типизация, RTTI(Reflection), макросы и тд. — это иструменты? Так я о том, что без необходимости все мешать не надо. Задачу можно решить разными способами в контексте разных инструментов. Именно в контексте, поэтому нужно четко представлять пути решения с помощью разных наборов инструментов, и не пытаться применить методы из одного набора к другому! Решения могут быть совершенно разные, но итог — удовлетворение конечным требованиям, готовый продукт одинаковым по функционалу. Вот где творчество!
... << RSDN@Home 1.1 beta 2 >>
ICQ: 446240
Re[41]: По просьбам трудящихся: Delphi vs C++(VS)
От: _Obelisk_ Россия http://www.ibm.com
Дата: 17.09.03 07:56
Оценка:
Здравствуйте, WolfHound, Вы писали:

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


A>>Нет, ну как же тебе не понятно, с помощью буста можно C++ назвать другим языком, потому что он легко самостоятельно превращается во что ... нужно? ... угодно? ... в Дельфи? ... другой С++. Во что он САМ превращается, кстати?

WH>Во что хотим в то и превращаем хотим EBNF грамматики пишим, хотим FSM задаем...
WH>
WH> ...
WH>

WH>Причем используя туже систему FSM может быть задан динамически. Ну это я так для развлечения писал.


Ужас! FSM надо генерить из чего-нибудь более наглядного, например из UML statechart диаграмм.
В данном случае можно не заботиться о том, как оно все будет выглядить в генеренном коде, а сосредоточиться на эффективности сего генеренного кода.
Если необходима возможность reuse-а (например отнаследоваться от конкретной FSM), то можно предусмотреть возможность генерации FSM в ОО-виде, где transition суть виртуальная функция. (В UML 2.0 transition-ы могут быть виртуальными и переопределяться в наследниках FSM-а).
Если возможность reuse-а не нужна, то генерим простой double-switch (по state-ам и incoming events), такой подход даст максимальную эффективность.

Писать реализацию FSM-а ручками — это не правильно.



Душа обязана трудиться! (с) Н.Заболоцкий.
Re[36]: По просьбам трудящихся: Delphi vs C++(VS)
От: mihailik Украина  
Дата: 17.09.03 08:09
Оценка:
FWP>>Насчет многим это ты погорячился. Я к примеру 90% своих программ пишу для конечного пользователя (весьма далекого от программирования и компьютеров). Поэтому хороший GUI ОБЯЗАТЕЛЕН.
WH>А слабо на дельфях нарисовать ГУЙ в ХР стиле?

Ты чего? Вообще без проблем делается.

В стиле Office XP, правда есть неурядицы. Borland'овское меню в из Delphi7 стиле Office XP глючит иногда.

WH>>>Конкретно пожалуйста. Ни разу не встречал.

FWP>>Посмотри весь топик. Я приводил цитату вашего любимого папочки Страуструпа. Повторять лень.
WH>Это про забытый сопиконструктор чтоли? Дык они нужны только помошникам. Классы логики в 99.99% случаев имеют правильный.

Чего-то я не пойму. Такое впечатление, что для тебя просто не существует процесса написания помощников и связанных с этим трудозатрат.
... << RSDN@Home 1.1 beta 1 >>
Re[36]: По просьбам трудящихся: Delphi vs C++(VS)
От: mihailik Украина  
Дата: 17.09.03 08:09
Оценка: -1
WH>>>Вот только шаблоны сводят ручную работу практически на нет.
M>>Ну да, конечно. Найди-ка хоть одно приложеньице на C++ и COM, в котором нет ручной работы.
WH>А что далеко ходить. Мой OPC server. Всю работу по поддержке COM сделали ATL'ные шаблоны.

Это хорошо.

WH>>>А если учесть что очень многим приложениям не нужно куча диалогов...

M>>Ага. Многим. Давай посчитаем. Для строгости будем считать "приложением" только то, что устанавливается с помощью какого-нибудь инсталлера. Какой процент таких "приложений" на твоём компьютере использует меньше 4 окон?
WH>Ну есть парачка. А большинство вобще собственные контролы используют.

Таким образом, большинству приложений нужна куча диалогов.

WH>>> и написать интерфейс при помощи WTL не состовляет большого труда...

M>>Да и на Дельфи написать интерфейс не составляет труда. И на C# можно интерфейсы писать. Только почему-то все их рисуют в дизайнере.
M>>Видимо, есть всё-таки разница между "не составляет труда" и "имеет смысл". Писать интерфейс вручную — такая дурь, которая практически не имеет смысла.
WH>А ты попрубуй нарисуй на дельфе интерфейс как в седьмой студии...

Docking в Дельфи встроенный есть. Менюшки в стиле Ofice XP есть. Закладки есть, правда чуть другой формы. Даже редактор для тулбаров есть. Всё вроде, или ты ещё каких-нибудь рюшечек хочешь?

M>>Примерно так (псеводкод):

WH>хъ
M>>Объект file1 не освобождается до конца метода. Если файлы открываются в блокирующем режиме и str1==str2, на строке со звёздочкой получим ошибку.

WH>Просто гениальный пример. И что тебе мешает наступить на теже грабли в другом языке? Это уже ошибка ЛОГИКИ и на сколько мне извесно еще не создан язык который может поймать ВСЕ логические ошибки.


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

Или всё-таки нужно?
... << RSDN@Home 1.1 beta 1 >>
Re[34]: По просьбам трудящихся: Delphi vs C++(VS)
От: mihailik Украина  
Дата: 17.09.03 08:09
Оценка:
WH>>>Именно. Оно реально бывает нужно раз в два года.

M>>Что вообще стоит писать на C++, если не низкоуровневый код, с использованием WinAPI и т.п.? А во всех этих WinAPI union'ы кругом торчат.


WH>КОМ серверы например. И вобще все что нужно. С++ дает неизмеримо больше возможностей и контроля чем дельфи.


Ага. А Delphi, Java и C# избавляют программиста от необходимости контроля. Контроль берёт на себя среда.

Возможностей и мощностей в C++, конечно, много. Но в метро и общественном транспорте не нужны альпинистские крючья и верёвки. Они там мешают.
... << RSDN@Home 1.1 beta 1 >>
Re[38]: По просьбам трудящихся: Delphi vs C++(VS)
От: mihailik Украина  
Дата: 17.09.03 08:09
Оценка:
M>>Мне кажется, твоя обувь слишком много на себя берёт.
WH>Нда?
M>>По функциональности C++ опережает Дельфи только в возможности компилировать драйвера.
WH> Ржут даже мои носки у которых вобще нет чувства юмора.
WH>Хотя что еще можно ждать от человека который не понимает зачем нужны и чем отличяются классы помошники от базовых классов. Но это и не удивительно в дельфе нет помошников.

Ага. Значит ты готов конкретно и чётко сравнить функциональность C++ и Дельфи? Без отвлечённых рассуждений?

Если ты считаешь, что шаблоны или множественное наследование — функциональностью языка, то я с тобой не соглашусь. Функция — это то, что можно применить наружу, а не внутриязыковые приколы.

Чем C++ может уделать Дельфи с позиций внешнего наблюдателя?

WH>>>А ну-ну. Напиши boost::spirit на дельфе. Можешь даже не пытаться. Не выдет.

M>>Какой-то дыбильный boost::spirit. На Дельфи он попросту не нужен никому. Ты бы ещё попросил на C# Hashtable написать.
WH>Вот когда тебе будет нужен парсер низкой или средней сложности я посмотрю как ты на дельфе будешь корячиться...

Чисто умозрительные утверждения. В интернете куча парсеров, написанных на Паскале. Дельфи-компилятор, насколько я помню, тоже на Паскале.

M>>А ты вот напиши на C++ доступ к COM-объектам по позднему связыванию. Хоть поприкалываемся над небывалой простотой C++


WH>Чаво?


Есть COM-объект. Необходимо вызывать какие-то его методы, использовать свойства при помощи позднего связывания, т.е. методов IDispatch. В скриптовых языках, в VB, в Дельфи это очень просто.

var Excel : Variant;

begin
  Excel := CreateOleObject('Excel.Application');
  Excel.OpenFile('sdfsdfsdfsd.xls');
  Excel.Range("A1").Value=294;
end.
... << RSDN@Home 1.1 beta 1 >>
Re[36]: По просьбам трудящихся: Delphi vs C++(VS)
От: mihailik Украина  
Дата: 17.09.03 08:09
Оценка:
WH>>>Ну знаю я по using жутко не удобно.
M>>Ну мало ли. Главное, что всем удобно. Ради одного человека менять не будут.
WH>ОДНОГО? Да все мои знакомые С++ники плюются на этот изврат.

Ёжики плакали, кололись, но продолжали есть кактус. Чего вам на C++ не пишется?

WH>>>К томуже Dispose может бросать исключения

M>>В отличие от деструкторов C++, как я понимаю?
WH>Да. Или хочешь сказать не понимаешь по чему это плохо?

Да не понимаю. Если возникла ошибочная ситуация, почему не выбрасывается исключение?

WH>>>Что ты тут нагнал вобще не понятно. Если ты про хранение потомков какого либо класса в одном контейнере то в С++ это делается на раз. Вот только генерацию такого контейнера берут на себя шаблоны.

M>>В Delphi есть готовый контейнер для потомков какого-либо класса. TObjectList.
WH>А в STL их 7 штук с разными свойствами. Массив, список...

Круто! Семь штук! Кстати, а при чём здесь Дельфи vs C++?

Ну напишу я на Дельфи не 7, а 97 таких контейнеров — Дельфи станет от этого круче?
... << RSDN@Home 1.1 beta 1 >>
Re[35]: По просьбам трудящихся: Delphi vs C++(VS)
От: mihailik Украина  
Дата: 17.09.03 08:09
Оценка:
S> а учитывая кроме всего прочего что SQL еще и интерпретатор то....

В MS SQL точно компилятор, а не интерпретатор.

Думаю, и в других "больших" серверах то же самое.
... << RSDN@Home 1.1 beta 1 >>
Re[33]: По просьбам трудящихся: Delphi vs C++(VS)
От: _Obelisk_ Россия http://www.ibm.com
Дата: 17.09.03 08:10
Оценка: 5 (1)
Здравствуйте, mihailik, Вы писали:


M>Что вообще стоит писать на C++, если не низкоуровневый код, с использованием WinAPI и т.п.? А во всех этих WinAPI union'ы кругом торчат.


Гм. У нас на нем (C++/C) написан CASE тул, который включает: GUI, внутренние представление для модели, парсеры, кодогенераторы, Debugger, run-time библиотеки, импорт из других языков, storage в XML и все остальное. И все это хозяйство работает и под Win и под Solaris и под Linux. Помимо всего прочего, мы имеем COM Api, просто Api и Tcl Api. Все немеряно расширяемо.


С Delphi-ями мы бы зависли на реализации эффективного и удобного внутреннего представления по причине отсутствия множественного наследования и шаблонов.



Душа обязана трудиться! (с) Н.Заболоцкий.
Re[34]: По просьбам трудящихся: Delphi vs C++(VS)
От: Miem Россия  
Дата: 17.09.03 08:19
Оценка:
Здравствуйте, _Obelisk_, Вы писали:

_O_>Гм. У нас на нем (C++/C) написан CASE тул, который включает: GUI, внутренние представление для модели, парсеры, кодогенераторы, Debugger, run-time библиотеки, импорт из других языков, storage в XML и все остальное. И все это хозяйство работает и под Win и под Solaris и под Linux. Помимо всего прочего, мы имеем COM Api, просто Api и Tcl Api. Все немеряно расширяемо.


Как называеться? Можно посмотреть?
... << RSDN@Home 1.1 beta 2 >>
ICQ: 446240
Re[35]: По просьбам трудящихся: Delphi vs C++(VS)
От: _Obelisk_ Россия http://www.ibm.com
Дата: 17.09.03 08:30
Оценка:
Здравствуйте, Miem, Вы писали:

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



M>Как называеться? Можно посмотреть?


http://www.taug2.com. Называется Tau/Developer, стоит $20 000, на сайте вроде бы была демо-версия, но она малость старая (версия 2.0, а сейчас уже выпустили 2.2.20 ) и сильно урезанная.

http://www.telelogic.com/campaigns/2003/americas/sd_taug2/index.cfm?source=homepage
мнение SD Magazine-а о версии 2.0 .



Душа обязана трудиться! (с) Н.Заболоцкий.
Re[42]: По просьбам трудящихся: Delphi vs C++(VS)
От: WolfHound  
Дата: 17.09.03 08:32
Оценка:
Здравствуйте, _Obelisk_, Вы писали:

WH>>Причем используя туже систему FSM может быть задан динамически. Ну это я так для развлечения писал.

хъ
_O_>Писать реализацию FSM-а ручками — это не правильно.
Ы?
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[37]: По просьбам трудящихся: Delphi vs C++(VS)
От: WolfHound  
Дата: 17.09.03 08:37
Оценка:
Здравствуйте, mihailik, Вы писали:

WH>>>>Конкретно пожалуйста. Ни разу не встречал.

FWP>>>Посмотри весь топик. Я приводил цитату вашего любимого папочки Страуструпа. Повторять лень.
WH>>Это про забытый сопиконструктор чтоли? Дык они нужны только помошникам. Классы логики в 99.99% случаев имеют правильный.

M>Чего-то я не пойму. Такое впечатление, что для тебя просто не существует процесса написания помощников и связанных с этим трудозатрат.

Один раз забить все необходимое в помошник и пользоваться не задумываясь об освобождении ресурсов или постоянно писать try/finally для освобождения ресурсов.
Как ты думаешь в каком случае трудозатраты больше?
Причем практика показывает что написать помошник выгодней даже если используешь его один раз ибо логика работы с ресурсом не смешивается с основной логикой программы.
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[37]: По просьбам трудящихся: Delphi vs C++(VS)
От: WolfHound  
Дата: 17.09.03 08:43
Оценка:
Здравствуйте, mihailik, Вы писали:

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


M>Или всё-таки нужно?

Если тебя волнует будет ли освобожден ресурс до выхода из функции то не нужно. Но если есть какято очень хитрая логика которая случается раз в год...
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[35]: По просьбам трудящихся: Delphi vs C++(VS)
От: WolfHound  
Дата: 17.09.03 08:45
Оценка:
Здравствуйте, mihailik, Вы писали:

WH>>КОМ серверы например. И вобще все что нужно. С++ дает неизмеримо больше возможностей и контроля чем дельфи.

M>Ага. А Delphi, Java и C# избавляют программиста от необходимости контроля. Контроль берёт на себя среда.
Где ты среду в дельфе нашол? Дельфи это unmanaged компилятор с произвольным доступом к памяти. Ни какого контроля.
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[39]: По просьбам трудящихся: Delphi vs C++(VS)
От: WolfHound  
Дата: 17.09.03 08:53
Оценка:
Здравствуйте, mihailik, Вы писали:

M>Ага. Значит ты готов конкретно и чётко сравнить функциональность C++ и Дельфи? Без отвлечённых рассуждений?

Да.

M>Если ты считаешь, что шаблоны или множественное наследование — функциональностью языка, то я с тобой не соглашусь.

M>Функция — это то, что можно применить наружу, а не внутриязыковые приколы.

M>Чем C++ может уделать Дельфи с позиций внешнего наблюдателя?
Ни чем. С точки зрения пользователя пофигу как написано приложение на дельфе, С++, асме или в машинных кодах.
А вот с точки зрения ПРОГРАММИСТА не первый план выходят "внутриязыковые приколы".
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.