WH> почему постоянно появляется какойнибудь "куул программер" который знает дельфю хуже меня(а я ее уже почти забыл и не желею)и начинает вопить С++ сакс?
Наверное, потому же, почему постоянно появляется какойнибудь "куул программер" который начинает вопить Дельфи сакс.
Дельфи — отличный инструмент. Примерно, как хороший складной нож. Кому-то нравятся швейцарские ножи, на шестьдесят четыре лезвия, кому-то добротные одинарные.
И всем-то этот C++ хорош, только постоянно из него какое-нибудь лишнее лезвие выскакивает. А чтобы открыть некоторые лезвия, нужно вначале сбоку куда-то нажать. Короче, инструмент для фанатов.
A>Но насчёт полезности этого Net для программирования и применения компьютеров можно долго рассуждать. Это же чёртов новый взгляд на интерпретаторы при ощутимом росте мощностей и производительности компьютеров...
WH> Разговорные языки по функциональности практически равноценны. Но С++ и делфи... ой не смешите мои тапочки.
Мне кажется, твоя обувь слишком много на себя берёт.
По функциональности C++ опережает Дельфи только в возможности компилировать драйвера.
WH>>>С++ это язык для создания других языков. Причем при наличии определенных знаний и воображения это делается очень легко.
Для создания других языков? Вот придурки, а они на нём операционки пишут! Дикий народ, наверное. Скорее всего, дети гор.
A>>Я тоже могу написать библиотеку для создания других языков по тому или иному принципу. WH>А ну-ну. Напиши boost::spirit на дельфе. Можешь даже не пытаться. Не выдет.
Какой-то дыбильный boost::spirit. На Дельфи он попросту не нужен никому. Ты бы ещё попросил на C# Hashtable написать.
А ты вот напиши на C++ доступ к COM-объектам по позднему связыванию. Хоть поприкалываемся над небывалой простотой C++
WH>Ни фига ты не понял. С++ САМ превращается в другие язаки. boost::spirit превращает его в язык для записи EBNF грамматики. Дельфя на такое не спасобна.
А на фиг это надо?
Если вам нужна ножовка, вы берёте в руки ножовку. Если вым нужен утюг, вы берёте утюг. Но кому нужа пила с дополнительными функциями утюга?
WH>Ну на эти шаблоны еще посмотреть надо. Еще надо подключение реализации. Короче я жду .NET 2 там будет видно.
WH>А сейчас все очень убого. Почти на уровне дельфи.
Полностью согласен. Сейчас всё почти на уровне дельфи/Java. А если кому нужны выкрутасы — пройдёмте в С++/MC++. В поликлинику, для опытов, как говорил Печкин.
S>> В Net есть возможность детерминированого управления жизнью объекта. WH>Ну знаю я по using жутко не удобно.
Ну мало ли. Главное, что всем удобно. Ради одного человека менять не будут.
WH>К томуже Dispose может бросать исключения
В отличие от деструкторов C++, как я понимаю?
S>>Кроме всего прочего полно вариантов, где должны хранится ссылки на различные объекты и здесь премущество шаблонов как корова языком слизала.
WH>Что ты тут нагнал вобще не понятно. Если ты про хранение потомков какого либо класса в одном контейнере то в С++ это делается на раз. Вот только генерацию такого контейнера берут на себя шаблоны.
В Delphi есть готовый контейнер для потомков какого-либо класса. TObjectList.
FWP>>C# и Delphi — это близнецы братья (или сестры?) WH>Общего у них только то что редактор форм немного похож.
Редактор форм? По-моему, ты не очень хорошо рассмотрел эти редакторы форм. С таким сравнением все редакторы форм похожими покажутся.
FWP>>А хотя бы задумался с чего бы это в Java уже почти 8 лет нет шаблонов. WH>Ибо реализовать их нАмного сложнее чем кажется.
Ага. Компилятор Java написали. Интерпретатор и JIT'тер написали. А шаблоны — нет, тут сложность невероятно высока.
FWP>>>>C# и Delphi — это близнецы братья (или сестры?) WH>>>Общего у них только то что редактор форм немного похож. FWP>>Ну если ты так говоришь, то видимо Delphi ты и вправду забыл или не знал или знал какую-либо древнюю версию. WH>Ну и что же у них общего? Если заглянешь шарпу под капот то сам увидишь что ни чего общего.
Редакторы форм действительно совсем не похожи.
А вот главные, архитектурные части — очень похожи. В трёх ключевых точках:
RTTI (aka Reflection)
Свойства
Упор на простоту синтаксиса
Значительная часть преимуществ как Делфи, так и C# коренится в этих трёх пунктах.
А>1) Каждый раз при создании объекта надо проверять поддержку IDisposable = лезть в MSDN.
Это разве что в первые пару месяцев.
Классы, которые поддерживают IDisposable, видны невооружённым глазом: это те классы, которые инкапсулируют вненшние ресурсы.
А>2) Попытки систематически использовать using приводят к конструкциям вида:
Бред какой-то. У меня почему-то такого не встречается. Если у тебя поползновения использовать using систематически, то возникают подозрения в архитектуре приложения..
А>3) Dispose() может выбрасывать исключения
А деструкторы C++, очевидно, не выбрасывают исключений? То-то прикольно, когда какой-нибудь Flush в деструкторе не вызовется и твоё приложение скромно об этом умолчит.
Правильно, а фиг ли что файл не сохранился. Нужно было почаще Backup делать
А>4) Рекомендательный характер вызова Dispose(). Поубивал бы за это
Ага, не поняли они в Редмонде твоей таинственной русской души.
DOO>>Кстати, а много ли люди видали драйверов написанных на С++, а не на С? DOO>>MS сами рекомендуют невыеживаться и писать не на асмах и С++ дрова, а на обычном С. Да и хороший пример ОС разработанной на языке высокого уровня это *nix — между прочим тоже С, а не C++.
VDZ>Э... типа... опаньки... VDZ>Если Вы не видели критичного ко времени софта, написанного на С++, не надо говорить, что его нет :] VDZ>почитайте Страуструпта — Дизай и эволюция С++ — если найдёте, и тогда поймёте многое, а вот такие высказывания — это полная чушь.
Короче, хотите программировать под Windows — читайте Страуструпа. Там всё написано. MSDN — для лохов. А если ваша программа заглючила, это всё бредни и чушь. Всё равно Страуструп круче в сто раз!
DOO>И еще. Очень часто в потверждение превосходства С++(а именно VC++), над Дельфи люди начинают сравнивать его(С++) с BCB. Я этим BCB в жизни не пользовался и насколько понял не зря
Во-во, правильно. Задолбали уж тут специалисты по Билдеру.
S>А что, ты можешь предложить хоть один широко распространенный скриптовый язык со строгой статической типизацией? Если нет, то ты нифига не понял из того, что тебе говорил Wolfhound.
Статическая типизация — не панацея, как её старается представить Wolfhound.
Hello, mihailik!
You wrote on Tue, 16 Sep 2003 13:52:29 GMT:
S>> А что, ты можешь предложить хоть один широко распространенный S>> скриптовый язык со строгой статической типизацией? Если нет, то S>> ты нифига не понял из того, что тебе говорил Wolfhound.
m> Статическая типизация — не панацея, как её старается представить m> Wolfhound.
Однако, ему, как не сложно заметить, нужна именно она. Ну и нафиг тогда скрипты советовать, если они ее не умеют?
Best regards,
Sergey.
Posted via RSDN NNTP Server 1.7 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Здравствуйте, mihailik, Вы писали:
WH>>Нет типизированиесть нежна для повышения надежности, удобства и корости разработки. M>Вот именно. В случае с TList надёжность, удобство и скорость разработки уже есть, и никакой типизированности, слава богу, не нужно. Ну-ну. Такой контейнер на С++ будут долго высмеевать и ни когда не станут использовать.
WH>>http://www.rsdn.ru/forum/Message.aspx?mid=383399&only=1
M>Чего?
Чего чего co_array_t смотри.
WH>>ХА. Я же сказал это ПОМОШНИК он делает грязную работу. M>ТЫ делаешь эту грязную работу, когда пишешь помощника. А в Дельфи я напишу базовый класс и грязную работа будет в базовом классе..
Мне нужен типизированый, автоматический массив созданный КОМовским аллокатором с возможностью вернуть его из функции.
А тепер скажи какой такой базовый класс может быть у массива?
WH>>Сам факт его существования достает. Зачем он нужен? Я не понимаю. (вернее зачем это надо в дельфе я знаю) В С++ этого нет вобще и никто не жалеет об этом. M>Бедные сишники! А как же они с WinAPI работают без try/finally? Сделали CreateFile, поковырялись, получили Exception — и файл остался висеть?
Вот только жалеть нас не надо. Ибо с WinAPI без враперов работают только [censured]. А враперы уже и человеческий интерфейс предоставят и ресурс отдать не забудут.
... << RSDN@Home 1.1 beta 2 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, mihailik, Вы писали:
WH>>Вот только шаблоны сводят ручную работу практически на нет. M>Ну да, конечно. Найди-ка хоть одно приложеньице на C++ и COM, в котором нет ручной работы.
А что далеко ходить. Мой OPC server. Всю работу по поддержке COM сделали ATL'ные шаблоны.
WH>>А если учесть что очень многим приложениям не нужно куча диалогов... M>Ага. Многим. Давай посчитаем. Для строгости будем считать "приложением" только то, что устанавливается с помощью какого-нибудь инсталлера. Какой процент таких "приложений" на твоём компьютере использует меньше 4 окон?
Ну есть парачка. А большинство вобще собственные контролы используют.
WH>> и написать интерфейс при помощи WTL не состовляет большого труда... M>Да и на Дельфи написать интерфейс не составляет труда. И на C# можно интерфейсы писать. Только почему-то все их рисуют в дизайнере. M>Видимо, есть всё-таки разница между "не составляет труда" и "имеет смысл". Писать интерфейс вручную — такая дурь, которая практически не имеет смысла.
А ты попрубуй нарисуй на дельфе интерфейс как в седьмой студии...
WH>>Конкретно пожалуйста. Ни разу не встречал. M>Примерно так (псеводкод):
хъ M>Объект file1 не освобождается до конца метода. Если файлы открываются в блокирующем режиме и str1==str2, на строке со звёздочкой получим ошибку.
Просто гениальный пример. И что тебе мешает наступить на теже грабли в другом языке? Это уже ошибка ЛОГИКИ и на сколько мне извесно еще не создан язык который может поймать ВСЕ логические ошибки.
... << RSDN@Home 1.1 beta 2 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, mihailik, Вы писали:
WH>>Именно. Оно реально бывает нужно раз в два года. M>Что вообще стоит писать на C++, если не низкоуровневый код, с использованием WinAPI и т.п.? А во всех этих WinAPI union'ы кругом торчат.
КОМ серверы например. И вобще все что нужно. С++ дает неизмеримо больше возможностей и контроля чем дельфи.
... << RSDN@Home 1.1 beta 2 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, mihailik, Вы писали:
M>Дельфи — отличный инструмент. Примерно, как хороший складной нож. Кому-то нравятся швейцарские ножи, на шестьдесят четыре лезвия, кому-то добротные одинарные.
M>И всем-то этот C++ хорош, только постоянно из него какое-нибудь лишнее лезвие выскакивает. А чтобы открыть некоторые лезвия, нужно вначале сбоку куда-то нажать. Короче, инструмент для фанатов.
Интересно когда это доказательства по аналогии чегото стоили?
... << RSDN@Home 1.1 beta 2 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, mihailik, Вы писали:
M>Мне кажется, твоя обувь слишком много на себя берёт.
Нда? M>По функциональности C++ опережает Дельфи только в возможности компилировать драйвера. Ржут даже мои носки у которых вобще нет чувства юмора.
Хотя что еще можно ждать от человека который не понимает зачем нужны и чем отличяются классы помошники от базовых классов. Но это и не удивительно в дельфе нет помошников.
WH>>А ну-ну. Напиши boost::spirit на дельфе. Можешь даже не пытаться. Не выдет. M>Какой-то дыбильный boost::spirit. На Дельфи он попросту не нужен никому. Ты бы ещё попросил на C# Hashtable написать.
Вот когда тебе будет нужен парсер низкой или средней сложности я посмотрю как ты на дельфе будешь корячиться...
M>А ты вот напиши на C++ доступ к COM-объектам по позднему связыванию. Хоть поприкалываемся над небывалой простотой C++
Чаво?
... << RSDN@Home 1.1 beta 2 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, mihailik, Вы писали:
WH>>Ну знаю я по using жутко не удобно. M>Ну мало ли. Главное, что всем удобно. Ради одного человека менять не будут.
ОДНОГО? Да все мои знакомые С++ники плюются на этот изврат.
WH>>К томуже Dispose может бросать исключения M>В отличие от деструкторов C++, как я понимаю?
Да. Или хочешь сказать не понимаешь по чему это плохо?
WH>>Что ты тут нагнал вобще не понятно. Если ты про хранение потомков какого либо класса в одном контейнере то в С++ это делается на раз. Вот только генерацию такого контейнера берут на себя шаблоны. M>В Delphi есть готовый контейнер для потомков какого-либо класса. TObjectList.
А в STL их 7 штук с разными свойствами. Массив, список...
Плюс смартпоинтер с множественным владением.
M>Для объектов с подсчётом ссылок TInterfaceList.
Все теже самые 7 штук плюс смартпоинтер который делает AddRef/Release.
И это только стандартные.
... << RSDN@Home 1.1 beta 2 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн