Re[57]: C+ vs C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.02.06 21:11
Оценка: +1 -3
Здравствуйте, Cyberax, Вы писали:

VD>>Одного достаточно? Тогда RSDN@Home.

C>Слово "имена" — множественное число

Хм. Имена конечно можно назвать. Вопрос толко зачем?
Ты утверждал:

Но серьезных десктопных систем на C# я пока не вижу

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

C>>> И цифры распространенности.

VD>>1, 2, 3.. 295. Подойдут?
C>Маловато будет.

ОК, 1452345. Это не мало?

C>>>Во-первых, у меня обычно утиллиты работают очень быстро.

VD>>У меня тоже. И что?
C>Потому что на .NET они НЕ написаны.

Они как раз все как одна написаны на дотнете, так как у меня нет желания убивать время на написание их на С++. Мне их нужно было быстро сделать и забыть.

VD>>Используй ngen если уж тебе не втерпежь. К тому же после первого запуска ты вряд ли замешь склько запускается любое дотнетное приложение.

C>Замечаю, когда .NET не висит в памяти.

Ну, так один запуск и он весь "повиснит" в памяти. Ведь это просто набор ДЛЛ-ек.

VD>>И чем же тебя не удовлетворяет удобство использования? И вообще причем тут оно?

C>В удобство входит скорость запуска и объем занимаемой памяти. А с этим что у .NET, что у Java — проблемы.

Хм. Мы уже выяснили, что скорость запуска более чем приемлемая. Не говорить же о том, что раз в день приходится подождать пол секунды на перый запуск?

Теперь на счет памяти. Утебя проблемы с ее обхемом? Я вот ни разу не видел, чтобы реальное дотнет-приложение имело какие-то проблемы с ней связанные. Пусть таскменеджер показывает большие цифры на управляемые процессы, но в итоге то какая разница? Особоенно для утилит.

Еще раз могу тынуть на утилиту diff на нашем сервере. Она работает с файлами объемом в несколько гигабайт. И никаких проблем с памятью.

ЖЦ банально эффективнее работает если жрет больше памяти. Таковы алгоритмы.

VD>>И это доказательство? Это скорее доказательство того, что ты не умешь делать элементарные выводы. Если пользоваться твоей "логикой", то можно сделать вывод, что С++ дерьмо, ведь Дум портирован на С, а не на нем.

C>Давайте я изменю у файлов расширение с "c" на "cpp" — специально для вас. Ну еще могу где-нибудь добавить std::vector.

Опять треп. Портировать большую С-программу на С++ очень не просто. Если не пробовл, так не трепись почем зря. Да и смысл в таком "портировнии"? Программа все равно останется С-шной. Только увеличатс проблемы с переносимостью.

VD>> А у меня на телефоне есть куча игр на Яве которые отнюдь не тормозят, а на С вообще нет. Так что и С дерьмо ведь у меня на телефоне на них игр нет.

C>У вас нет BREW на телефоне? Отстойный телефон.

Значит если на моем телефоне хорошо работает Ява, то он отстойный.

VD>>В общем, это несерьезно. Если мы говорим о Яве в кофеварках, то нужно о ней и говорить. У тебя есть претензии по потребительским свойствам кофеварок в которых встроена Ява? Нет? Тогда приходится признать, что твои слова являются мягко говоря голословными.

C>Я сравнивал быстродействие. При прочих равных С/C++ позволяет достичь на встраиваемых устройсвах значительно больших результатов.

Ты сказал, что Ява плохо работает в кофеварках:

> Кстати... а то что жаба работает в кофевырках это нормально? А ведь она
> по прожорлевей...
Плохо оно работает.


Вот и потрудись привести тому подтверждение. Или не трепаться по чем зря.

Что касается прочих равных. Недавно был случай. На КПК АВК нужно было копировать с 256-метровой КомпактФлэш-краты, на SD. Попробывали копировать идущей в поставке (WinCE) утилитой написанной на С++. Получилось ОООЧЕНЬ медленно. Один файл размером около 2.5 метров копировался 3 часа. Ну, что же... Я взял VS 2005 и написал на Компакт Фрэймворке 2.0 утилиту копирующую файлы. Копирование стало занимать пару минут (все флэйшки).

Теперь внимание вопрос, так как после тэтого смотреть на твои голословные утверждения?

VD>>Он на прктике есть на куче девайсов. Не надо говорить заведомую неправду.

C>.NET? Не CF, а полный .NET и не в Windows (CE — это тоже Windows)?

А какая разница полный он или CF? В CF точно такой же рантайм как у любого друго фрэймворка. Разница тольк в том, что расходывание памяти в нем производится более экономно и библотеки по скуднее. Первое тебе вообще не должно колыхать. Это просто оптимизация на область применения. А второе... Да что правда, то прада. Библиотека гораздо скуднее. Вот только она в сто раз богаче чем у С++. В его стандартную библиотеку нихрена не входит. Библиотека контейнеров и изумительный набор функций для копирования и сравнения памяти. Ну, а любая программа для CF запускается на полном дотете без проблем. Причем даже без перекомпиляции.

Так что еще раз повторюсь. Преестать говорить откровенную не првду и начни проверять свои утверждения.


VD>>Для особо уперты повторяю. Скачай Моно. Там реализована базовая часть ВыньФормс. ВыньФормс платформно зависимая библиотека. Чтобы реализовать ВыньФормс на платформе отличной от Выньдовс прийдется эмулировать систему сообщений Виндовс. Но это не явлется непредолоимой проблемой. Например, есть порты MFC на Линукс. К тому же, даже невозможность портирования одной библотеки на другую платформу не говорит о том, что не возможно портировать рантайм.

C>Ну так наличие огромной стандартной библиотеки является плюсом C#.

Одним из плюсов. К тому же размер библиотеки даже без ВыньФормс поражующи велик по сравнению с тем, что идет в стандартной поставке любого С++-компилятора. Особенно если рассматривать только лекго портируемые библиотеки. Переносимые же библиотеки обычно имеют кучу своих проблем и зависимостей. Тот же GTK большой в принципе, а те только в версии для дотнета.

C> А тут оказывается, что интерфейсная либа не совсем портируема. И ADO.NET тоже имеет досадные несовместимости, а Web.Forms совсем почти не работают.


ADO.NET полностью реализован в Моно. Более того лющи занимающиеся БД зачастую берут их провайдеры для использования под дотнетом.

Мне вот хотелось бы услышать о библиотеки для С++ которая была бы доступна на всех платформах где есть С++ и не имела бы проблем. Из стандартов для доступа к БД на С++ я знаю только ODBC — библиотеку созданную МС. И она имет массу проблем.

C>Так и пропадает радужная картина кросс-платформенности.


Я уж не знаю нафиг тебе лично унжна кросплатформность. Но что то я сомневаюсь, что испльзование КОМ, МФЦ или любой другой библиотеки увеличит кросплатформность. А без непереносимых библиотек разницы нет. Даже дотнетыный код более переносим, так как не имет такой сильной зависимости кода от ОС как это часто бывает в С++-коде. И может переноситься без перекомпиляции.

C>Зато есть wxWidgets, QT, GTK, FLTK. С разными степенями оверхеда (от минимального в случае wxWidgets до максимального в GTK/QT).


Да, ты что? Првда? Тогда зайди сюда http://wxnet.sourceforge.net/

VD>>Да. Я сохраняю их как файлы и вставляю в Ворд уже готовые файлы. И делаю я это по сображениям надежности и удобста.

C>И эти люди не дают мне копатсья в носу...

Кто же тебе не дает копаться в носу? Просто козявки после этого не нужно по столу раскладывать.

C>Про функцию "Convert" у OLE-объектов слышали? Советую посмотреть.


Про качество слышал? И вообще, забавно слышать как человек не имеющий отношения к DTP учит того кто этим занимается последние 15 лет.

VD>>Кого нет? OLE 2 — это COM-спецификация! Каждый может реализовать ее.

C>Не может. Точнее может, но в C# будет требоваться unsafe.

1. Можно обойтись и без ансэйва.
2. А какая разница? В классе string море ансэйфа, но что то никто не слышит воплей по этому поводу.

C>>> Нет фундаментальных проблем написать

C>>>Word на brainf**k.
VD>>Очередной пример передергивания. Если ты проводишь некие аналогии между Брэйнфак и C#, то потрудись вырзить их явно.
C>Это я к тому, что в теории можно одной левой переписать Word на C#. А вот на практике что-то не сростается.

Покажи мне кто и где тут говорил о том, что написать Ворд — это раз плюнуть? Или ты будешь утверждать, что реализовать поддержку OLE 2 задача по слдожности сопоставимая с созданием полного аналога Ворда?

Еще рез. OLE 2 — это COM-спецификация. Нет никакой разницы на чем ее реализовывать. И она не реализована на 100% на C# только потому, что это никому не нужно. Хотел бы я поглядеть как кто-то реализует OLE 2 без MFC.

VD>>Пока что я вижу, что ты в очередной раз пользушся весьма странной логикой.

C>Есть такой литературный прием — называется "гипербола"...

Ага. Он же утрирование или передергивание.

VD>>OLE2? Можно ссылкочку? Они как минимум не законны.

C>Законны. Так как по лицензии от MS. Вот тут DCOM http://www.softwareag.com/corporate/products/entirex/downloads/download_exxdcom.asp .

А зачем мне DCOM? DCOM в дотнете поддерживается намного лучше чем в любом линукс-приложении.

C>Точную ссылку на OLE лень искать, но у них оно было.


А, ну, тогда пока ссылки не будет будем считать, что ты снова сказал не подумав.

VD>>А DCOM никакого отношения к OLE2 не имеет. И его без каких либо трудов можно использовать из C#.

C>Это я сказал просто чтобы показать, что все COM-технологии есть под Linux.

А об этом тебя никто не просл. Я попросил дать подтверждение твоим словам про OLE2 под Линукс, так как никогда не слышал о таком. Единственное что мне извесно — это что по Линкус есть набор кастрированной поддержки для запуска Виндовс приложений. Но я даже не уверен, что в них действительно поддерживмется OLE2.

VD>>Да его вообще нет нигде кроме Виндовс. Если есть клоны, то уверен, что они кривые и уж точно есть не везде. А знаешь почему его нет? На фиг не упал.

C>Ну да, ведь в C# его нет

Тут связь обратная. Его нет в C# так как не сильно нужно. Нельзя объять необъятное.

C>>>То что на C# достаточно сложно писать портируемо.

VD>>Очередная громкие заявления не подтвержденные ничем. Говоря по простоу — треп.
C>Давайте сравним количество распространенного портируемого софта на С++ и C#?

Сколько лет С++? Вот через 25 лет и сравним. Можно еще задаться вопросмо почему Ворд и Виндовс приемущественно написаны на С, а не на С++. Тоже позновательно.

C> Вот почему такой замечательный RSDN@Home не работает под Линуксом?


Потому, что Линкус на фиг никому не упал. И потому, что Хоум использует С++-ный JET не портируемый на Линукс, и С++-ный же MS IE опять же отсуствующий на Линукс. В остальном портировать было бы можно.

У меня вот есть приложения которые дейсвтвильно без пробелм можно было бы портировать на Линукс, только зачем? Кому они там нужны? Точнее кому этот Линукс нужен? Фанатики обойдутся и тем, что на нем уже есть.

VD>>Ну, то есть ты согласен, что не везде? Ваши же любимые аргументы про голимые встраиваемые платформы.

C>Там где есть .NET — С++ точно есть. Обратное неверно.

Хм. И что? Это имеет отношение к обсуждаемым вопросам? Опять же тот же аргумент применим к С/С++. Что же теперь не писать на С?

C>С++ нет только на самых скромных платформах (типа микроконтроллеров с килобайтами памяти) — там он просто не нужен, все часто на ассемблерах пишут.


О. С++ нет очень много где, так как людям просто влом портировать его туда где он на фиг не уперся. А есть даже платформы где он в принципе быть не может. Например, он физически не пригоден в системах с программной изоляцией процесса вроде Сингулярити, Оберон ОС и т.п.

C>Ну вот на HP-UX есть .NET?


Я балдею. Что только не придумашь лиш бы доказать себе какю нибудь глупость.
Есть он на HP-UX http://www.mono-project.com/Supported_Platforms
В виде интерпретатора.
Сразу отвечу почему нет джтита. Нафиг не упал. Портирование компилтора — это работа которую делают только если оно действительно нужно.

VD>>Во всех остальных случаях C# не просто принципиально применим но и реально применяется.

C>Только практических результатов не видно. А 5 лет уже прошло.

Значит вопрос о невозможности уже снят? Уже не плохо. Что до результатов... Достаточно того, что их уже не мало. Объем софта создаваемого на пуравляемых языках постоянно растет. Ява уже давно занимает первое места на сорсфордже. Шарп тоже не последнее. У многих на машине по несколько управляемых приложений. Со временим его процент явно будет расти.

Все очевидно. В чем ты тут кого-то хочешь убедить?

VD>>Откровенно говоря тратить время на дисксси по столь очевидным вещам бессмысленно. Это вера. Бороться с верой бессмысленно. Так что счасливо оставаться со своей верой на едене.

C>Почему же, я вот вам привожу пример: нет распространенных end-user'ских настольных приложений на .NET. Хотите доказать обратное? Давайте примеры.

Я не хочу тебе что-то даказывать. Тысячи человек пользуются такими продктами как RSDN@Home, RSS/News Reader-ами написанными на C#, VS 2005 и HTML Help 2.0. Все эти продукты используют внутри себя фрэймворк или написаны целиком на дотнете.

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

Я уже говрил. Ровно одного приложения достаточно чтобы понять можно создавать на чем-то этот класс приложений или нет. Между тем приложений не одно, а десятки. И казалось бы вопрос даже не стоит утверждать, но постяно находятся вот такие как ты упертые личности которые пытаются опровергать казалось бы очевидные вещи.

Что же счастливо продолжать это плодотворное занятие. А мы тем временм посмемся отвечая тебе их тех самых "end-user'ских настольных приложений" кторые по твоим словам вообще невозможно написать на дотнете.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.