Раньше мне как-то с таким продуктом как .NET иметь дело не приходилось.
И вот, в связи с появлением у меня 3 дисков с Delphi 2005 Architect Edition, возник вопрос - зачем городилась эта городушка? Работают приложения на дотнете в разы медленнее, это заметно даже на глаз, без измерения производительности к примеру, в тиках. Сама дельфя тормозит как черт знает что (это на Athlon 64 2800+/512RAM/WinXPSP1 дома, Athlon XP 1800+/512RAM на работе). Никак не могу увидеть достоинств этой системы. Может, подскажет кто?
Не "зачем", а "почему" Потому что так сказал Microsoft.
[Ответ]
shader 10:37 27.12.2004
тогда сразу возникает другой вопрос - зачем это нужно Microsoft'у? =)
[Ответ]
axel 11:46 27.12.2004
shader Насколько я это представляю -Мультиплатформенность. Когда под НЕТ компилишь - получается что-то вроде набора команд высокого уровня. Сам код по объему получается малым. На разных машинах могут выполняться - если есть интерпретатор.
[Ответ]
Ну да, типа там есть клевый Microsoft Independent Language (MSIL), в который все и переводится. А потом есть JIT-compiler, который это все и транслирует. В результате простой тест работает в 2 раза медленнее и грузится чуть ли не минуту.
Кроссплатформенность - хмм... между чем и чем? Linux и без дотнета прекрасно себя чувствует. Мобильные платформы - так это ж какие процы в телефоны втыкать придется?
Managed DirectX - вообще очень загадочная вещь. На кой тогда D3DX под SIMD всякие оптимизили? Как без указателей ВБ заполнять??? Я когда в дотнете QueryPerfCounter'а не нашел - удивился сильно. А сколько там еще таких чудес?...
SHKiN во-во. А еще там (в линуксе) оборудование поддерживается на уровне ядра, соответственно при компиляции все это оптимизируется по тот проц, который ты в конфигураторе выберешь. Я что-то не знаю таких линуксоидов, которые компилили бы kernel под i386. Да и в дистрибутивах сейчас ядра под i686 по дефолту скомпилены. Так чта... вывод очевиден. Но непопулярен и невыгоден.
[Ответ]
umka 19:03 27.12.2004
Сообщение от :
Мобильные платформы - так это ж какие процы в телефоны втыкать придется?
А как же Windows CE - на КПК? Скоро КПК и смартфоны - будет одно и тоже.
[Ответ]
Alex__G 14:19 31.12.2004
shader
А есть какие нибудь другие характеристики кроме скорости, которые вы считаете важными?
[Ответ]
shader 16:30 01.01.2005
Alex__G Для меня, как для программиста, работающего в игровой индустрии, другие характеристики при низкой скорости теряют всякое значение.
Речь не об этом. В дотнете, насколько я понял, по части именно функциональности нет ничего такого, чего не хватало бы в win32. Зачем городится эта городушка, да еще и с обещанной отменой нативного win32 в Longhorn (там он будет работать на эмуляторе в том же дотнете) - вот в чем вопрос.
[Ответ]
Alex__G 11:59 02.01.2005
Handle
Все правильно. В Longhorn нативной средой будет виртуальная машина NET.
shader
Ясно Тогда тебе .NET пока будет малополезна. Новая среда предназначена в первую, и в пятую очередь для программирования информационных систем - распределенными приложениями работающими с базами данными, для прграммирования веб сайтов итд
Виртуальная мащина здесь дает целый ряд преимуществ, ранее доступных только в мире ява
например
- GC, незаменимая вещь для программирования постоянно работающих приложений
- богатый набор библиотек
- встроенные механизмы работы с распределенными объектами и веб-сервисами
- простая работа с COM
итд
Все эти преимущества важны в первую очередь для прикладных программистов. Тебе .NET пока что мало что даст
[Ответ]
shader 20:15 02.01.2005
Alex__G я боюсь, в будущем тоже. Виртуальная машина в принципе не может работать быстрее нативной среды.
Хотя... Managed DirectX - возможно, для создания игр а-ля TimeZero и пр., то есть работающих через обыкновенный браузер... =)
[Ответ]
Alex__G 13:57 03.01.2005
shader
Вообще то может. В сети есть куча тестов где ява обгоняет C по производительности (за достоверность их не поручусь).
в конечном итоге выполняется все тот же машинный код. А засчет динамической оптимизации производительность может быть поднята.
[Ответ]
aerin 12:25 04.01.2005
shader
Сообщение от :
Раньше мне как-то с таким продуктом как .NET иметь дело не приходилось.И вот, в связи с появлением у меня 3 дисков с Delphi 2005 Architect Edition, возник вопрос - зачем городилась эта городушка?
Можно задать встречный вопрос: а зачем городилась городушка - VCL, ведь есть же API? Не в последнюю очередь потому, что удобно. В .net MS сподобилась упорядочить API: даже переход от кривых и нелогичных имен функций к стройным именам методов есть огромный прогресс. Но, например для меня, все перечеркивается тем, что это исполняемая среда, а значит по многим причинам для меня эта система не пригодна :-( SHKiN
Сообщение от :
Ну да, типа там есть клевый Microsoft Independent Language (MSIL), в который все и переводится.
От кого независимый? :-) Фактическая ошибка - Microsoft intermediate language (MSIL).
Сообщение от :
Managed DirectX - вообще очень загадочная вещь. На кой тогда D3DX под SIMD всякие оптимизили? Как без указателей ВБ заполнять??? Я когда в дотнете QueryPerfCounter'а не нашел - удивился сильно. А сколько там еще таких чудес?...
Уйду под *никсы на старости лет...
Сообщение от :
Для меня, как для программиста, работающего в игровой индустрии, другие характеристики при низкой скорости теряют всякое значение.
Сорри, возможно я чего-то пропустил, рискуя нарваться на холивар: вы на Deplhi пишете игры и говорите о скорости? Alex__G
Сообщение от :
Виртуальная мащина здесь дает целый ряд преимуществ, ранее доступных только в мире ява.- GC, незаменимая вещь для программирования постоянно работающих приложений
- богатый набор библиотек
- встроенные механизмы работы с распределенными объектами и веб-сервисами
- простая работа с COM
итд
По пунктам: в сфере телекоммуникаций, например, львиная часть софта пишется в расчете на непрерывную работу и никаких джав там и рядом нет. Подозреваю, что и не будет никогда, т.к. там очень часто софт привязывается непосредственно к конкретному железу.
Библиотек навалом любых. Как платных, так и бесплатных. IMHO, это надуманная проблема.
Про веб сервисы и иже с ними, а также COM согласен.
Сообщение от :
Вообще то может. В сети есть куча тестов где ява обгоняет C по производительности (за достоверность их не поручусь).
А вы читали как проводится большинство этих тестов? Замер времени производится прямо из кода, т.е. берем два приложения: одно нативное, второе .net. Один и тот же алгоритм, вроде все честно. Дальше, следите за руками, запускаем нативный экзешник, пара секунд и у нас есть результат. Запускаем оппонента, система на некислом компе, несколько минут шелестит винтом и мигает окошком в пенли задач и наконец выдает результат. Смотрим выходные файлы и, о чудо, видим, что преобразование Фурье на API выполнялось 10 секунд, а в .net - 5! А что же происходило те 10 минут, что мы ходили курить? Правильно, производилась аггресивная оптимизация под конкретный проц. Вопрос, а оно нам нада?
ЗЫ. Ну никак не работается после праздников :-(
[Ответ]
shader 13:46 04.01.2005
aerin На дельфи мы пишем, потому что во многом это НЕИЗМЕРИМО удобнее, чем на С/С++. А потери скорости... с чего ты взял, что они вообще имеют место?
Зато скорость разработки тех же утилит с использованием VCL намного быстрее.
По поводу VCL - это, по-твоему, виртуальная машина? =) я это без наездов, просто это несколько несравнимые вещи.
Да, кстати, преобразование фурье на _API_ - это круто. Подскажи винапишную функцию для преобразований Фурье ))
[Ответ]
aerin 14:02 04.01.2005
shader По поводу первых трех строчек, давай замнем для ясности, а? Меньше всего хочется 4-го января участвовать в холиваре Pas vs C/C++ :-)
VLC я привел в качестве примера надстройки, существенно облегчающей жизнь разработчика. Разумеется, я представляю разницу между VM и runtime библиотекой. :-)
Сообщение от :
Да, кстати, преобразование фурье на _API_ - это круто. Подскажи винапишную функцию для преобразований Фурье ))
Запросто, QuickFourierCalc(...) :-)
А если серьезно, конечно же, имелось в виду нативное приложение, использующее сишный рантайм.
ЗЫ. Много смайликов... значит, настроение поднимается :-)
[Ответ]
Alex__G 13:30 05.01.2005
aerin
Про телекоммуникации правда. Но это специфическая отрасль.
В бизнес приложениях (это может быть портал корпоративный, может быть одб, может быть распределеная географически но с единым центром информационная система предприятия ) работающих в непрерывном режиме с трехзвенной архитектурой утечка памяти в среднем звене является очень большой проблемой
Ненадо "навала любых библиотек". Всего много, а выбрать не из чего.
Нужна одна хорошая стандартная библиотека, разработанная мощным вендором. Как библиотеки java sdk или net sdk. С понятными перспективами и динамично развивающаяся. По котрым есть масса литературы и хелпов. Которая регулярно исправляются и оптимизируются.
Сообщение от :
Вопрос, а оно нам нада?
Один раз подумает, зато потом 100 раз выполнит быстро.
[Ответ]
andr 09:04 06.01.2005
Сообщение от :
зачем городилась эта городушка?
всё очень просто.... MS хочет еще и еще рубить бабки и поэтому придумала свое собственное "колесо" в этом сегменте рынка.
[Ответ]
B. 17:23 06.01.2005
Мда, MS сильно рискует задерживая выпуск Longhorn. И все задуманные фишечки она вряд ли успеет реализовать.
Это при том, что Linux уже начинает отвоевывать рынок десктопов.
Возможно вся эта возня с NEt и longhorn - начало конца microsoft.
Уж больно сильно они размахнулись. Имея такого конкурента.
[Ответ]
Alex__G 17:45 06.01.2005
Сообщение от :
что Linux уже начинает отвоевывать рынок десктопов
Пятый год уже это слышу. Со словом "начинает".
[Ответ]
andr 16:11 10.01.2005
Alex__G это потому-что "начинает" - понятие рястяжимое. [Ответ]
relusion 08:30 11.01.2005
1. Самое главное, что это не вещь в себе, как Java, а дальнейшее развитие Win платформы. Можно спокойно использовать в одном проекте, как старый код написанный на C/C++, так и даже при написании новых проектов критические части кода можно написать на C++/ассемблере.
2. Аттрибуты
3. Конкуренция. У Java появился достойный приемник, так что Sun может зашевелится и родит что-нибудь новое.
relusion добавил [date]1105428185[/date]:
а давай те сравнивать в языках программирования. Java — это "Java, Sun Java". К .NET только от MS прилагаются C#, VB, MC++, JScript, Java (!!!). Плюс уже есть с полтора десятка языков от всяких левых производителей. Поэтому, я запросто стогу писать под .NET на Java, а вот сможешь ли ты писать под Java на C#?
[Ответ]
Alex__G 10:35 11.01.2005
relusion
А зачем этот зоопарк - огромное количество похожих языков?
Тем более что каждый из них переносится с учетом возможностей виртуальной машины. Например, VB.NET были внесены большие изменения, чтобы он мог работать в CLR. То же самое касается и других языков - отображается фича на MSIL - хорошо, не отображается - фича отсекается либо реализуется обходными путями.
J++ соответствует jdk 1.1.2 если я не ошибаюсь. С ява общий один синтаксис. Поэтому нельзя сказать что можно писать под .NET на ява.
Мне кажется, этим самым шагом "платформа для всех языков" Microsoft пытается монополизовать спектр рынка ПО для разработчиков. И свидетельством тому есть то, что язык Java уже "подгребли" под свою .NET платформу...
Если Sun выстоит и начнет антимонополистическую программу разработки мультиязыковой платформы (кстати, это сделать можно было ого-го когда) только тогда все будет хорошо, а если не выстоит, даже не хочется думать и гадать об этом...
Ничего принципиально нового в принципе нету в мультиплатформенности. Об этом задумывались еще раньше,... гораздо раньше,... уж простите меня, не могу назвать примерные даты.
Ты забываешь, что в отличии от Java, .NET != C# и в нём есть место любым языкам. В частности C++, на котором написано всё о чём ты говоришь. Соответственно остаются все доступные методы отпимизации и пр.
Кстати, в рамках виртуальных машин (.Net, JVM и т.д.), если их код это
поддерживает, можно автоматически использовать разные SIMD: MMx, 3DNow, SSE,
SSE3, AltiVec — все что на конкретном железе найдется.
Так что это не факт что VM и вычисления друг другу противопоказаны — когда
как.
Вот интересно что такое "мультиязыковая платформа" - среда разработки что ли??? (кстати, мультиплатформенность - это другое)
[Ответ]
viper 12:13 15.01.2005
Нуу... заявление, что Java подгребли под .NET - это сильно и чересчур смело. Никогда этого не было и не произойдет. Та пародия на Java которая присутствует в .NET - полное фуфло и в принципе не совместима с JVM. К тому же, смешно заявлять, что .NET - кросплатформенная. С единственной реализацией под теже Windows в то время как JVM реализована для более чем 20 ОС...
[Ответ]