Re[13]: Следующий язык программирования
От: Pavel Dvorkin Россия  
Дата: 27.09.05 10:25
Оценка:
Здравствуйте, Sinclair, Вы писали:

Рад видеть тебя и здесь .

S>Ты пытаешься сделать это очень странным методом. Ни по одному из вопросов, которые ты задаешь, не видно, что ты исследуешь эффективность дотнета.


А за каким богом мне тогда вопрос о memset задавать было ?

S>Ну какое отношение к эффективности имеет возможность декларировать вложенные структуры в методах?


Это — не имеет. Это просто был вопрос о том, можно или нет. Чтобы знать на случай портирования. Потому как написал я это по привычке, а компилятор ругается. И ответили мне сразу, и закрыть вопрос можно было, хоть и высказал я некоторое недовольство. А тут началась вселенская дискуссия

S>Угу. При этом ты почему-то вместо прямого вопроса типа "насколько дорого стоит A a = new A() для value-типов" начинаешь задавать совершенно другие вопросы, типа "как занулить все поля структуры, но по-другому, чем мне советуют".


Именно. Потому что (еще раз объясняю) я не знаю, где тут возможные проблемы имеются. И когда вижу нечто, мне подозрительное, спрашиваю. нельзя ли это сделать способом, который мне хорошо знаком и никаких сомнений не вызывает. А начни я спрашивать про все конструкции — тогда для меня отдельный форум придется создать

S>Ты подходишь к дотнету с плохо скрытым внутренним вопросом типа "не правда ли, это тормозной и прожорливый отстой?"


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

Если бы (допустим) я С++ не знал, а переходил на него с Паскаля (кстати, и не допустим — было такое в моей жизни), то я бы не сомневался в том, что смогу. Надо только конструкции новые понять, ругнуться несколько раз по поводу кошмарного синтаксиса (по сравнению с Паскалем , а вообще-то это средства примерно равномощные (не придирайся только к этим словам) и эффективность будет та же. И то подводные камни в этом плане есть, и не мешало бы их знать, прежде чем что-то серьезное делать. А тут мне предлагается инструмент, в котором эффективнсть бог знает какая, то ли компилятор, то ли интерпретатор, механизмы для меня непривычные, чему можно верить — не знаю, пробую элементарное (DirectoryInfo) — получаю кошмар. Где еще проблемы ТАКОГО рода скрыты? Не знаю. Подозреваю все. И new для value тоже.

>Это неправильный вопрос. Пока ты будешь им задаваться, никакого успеха ты не достигнешь. Надо ставить вопрос так: "Как писать эффективные приложения на дотнет?" Как ни странно, это возможно.


Вот это уже лучше. Я и хочу это понять, Я и недоволен тем, что то, что должно быть эффективным (потому что я очень даже хорошо знаю, что здесь делается хоть на уровне kernel32, хоть ntdll.dll, хоть даже ntoskrnl, вдруг 57 Мбайт требует. И что еще меня подобное здесь ждет ?



S>В общем и целом, этот вопрос уже поднимался не один раз. И в том числе на RSDN.

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

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


(Хотя я вот лично знаю людей, которые до сих пор с подозрением относятся к плюсам и искренне полагают, что могут порвать любой компилер своими ассемблерными вставками. Увы, я пока ни разу не видел реального примера, где бы рвался хотя бы VC7.1 в релизе, не говоря уже про Intel)

Ну это особая тема. Если хочешь, можно подискутировать как-нибудь.

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

S>После этого я начал понимать, что в очень широком классе приложений затраты на "управляемость" пренебрежимо малы по сравнению с простоями, вызванными неэффективными алгоритмами. А алгоритмические оптимизации более чем доступны и в дотнет.

Дело в том, что есть задачи разных классов. И трудно сказать, где и что может всплыть. Я же не спорю, что Java для апплетов хорошо подходит. Но да помилуй бог того, кто вздумает PhotoShop на Java написать.

S>Кроме того, если тебе захочется написать в форум что-то типа "вот на плюсах я банально вызывал вот такую функцию из kernel32 и был щаслив", то не пиши это в форум. Банально вызови вот такую функцию из kernel32 через PInvoke и будь щаслив. В плюсах ты получаешь некоторую экномию времени только благодаря тому, что для тебя уже написаны тонны хидеров, корректно импортирующих все что надо. Для С# аналогом является http://pinvoke.net/. Все, что ты захочешь запэинвокать в ближайший год, там уже декларировано.


Был там. Естественно, это хорошо, но проблему не решает. Я там могу Win32 функции вызывать, ну а свои собственные ? К примеру (банальный) решиться мне, скажем, на C# матричные операции производить или же С++ DLL для этого написать, а в Шарпе только вызывать ее. Только не подумай, что я тебе этот вопрос задаю. Их много, таких вопросов...

S>Удачи!


Спасибо!
With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.