Пучина неуправляемости С++

Где-то в коментах недавно проскакивало что-то вроде "ни в коем случае не слезайте с .NET в пучину неуправляемого С++". Тогда это меня изрядно повеселило; сегодня в очередной раз столкнулся с прелестями проги накорябанной на "управляемом" языке, вспомнилось.

"Прога" -- это VTune. У него, начная с 7й версии гуй писался на какой-нить херне типа визуал-басика а потом и дот-нета. В итоге тормозит аццки, а теперь ещё и глючит -- постоянно валятся системные ошибки про "Runtime Error". Т.е. оно как бы работает, но стрёмненько :)

Кстати тем же страдал и гуй к АТИшному дриверу (а может и сейчас страдает).

Так вот, маразм в том, что 'managed' программа гораздо более неуправляема -- там "под капотом" происходит дофига вещей, про которые большиство даже не подозревает. Garbage collection неуправляем (это вообще отдельная тема, насколько неуправляема память в "managed" environment). C отменой local assemlies (c .NET 3.0 если правильно помню) нет даже никаких гарантий что твой собственный код он той версии, какой ты думаешь (это собственно началось с введением side-by-side assemblies, DLL Hell отдыхает).

Хуже того. Поскольку managed-языки типа безопаснее (типа нет указателей и всякое такое), то можно посадить за программирование даже безнадёжных идиотов, которых бы иначе пришлось выбросить в окно. Потом приходится пользоваться продуктами таких писателей. Куда катится мир...

Submitted by BLK Dragon on

Комментарии

Да я писал этот комент про неуправляемость С++ и от него не отказываюсь и считаю, что в этом плане С# и платформа .NET - прорыв, а для начинающих спасение.
Но и .NET надо уметь пользоваться. За тебя программировать никто не будет.

На счет Intel VTune - перешли сразу на Intel Parallel Studio там он немного по другому назван (мы пользовались до этого Compuware Bounds checker). И там есть разные режимы анализа кода и конечно скорость анализа не фонтан (20 раз замедление). Ты кстати посмотри свою демку с дракончикоом на нем многое чего раскажет, что не видно. у меня обычно показывает ошибки сторонних библиотек (QT) при работе с ресурсами для win. Ну не умеют почему-то разработчики корректно освобождать ресурсы системы ипа шрифтов курсора и т. д..

Для оптимального C# кода нужно следовать практикам (подходам). Согласен с панелью управления драйвера у ATI что-то не так и как всегда говорю в таких случаях заказали бы у нас все было бы нормуль. Не так там из-за 2 .NET предварительно а больше и нельзя им ведь панель управления как никак должна идти когда в системе только стандартный VGA драйвер.

P. S. Говорили о твоем проекте с Павлом Горбуновым привет тебе от него.

Submitted by Necro on
Но и .NET надо уметь пользоваться. За тебя программировать никто не будет. Чтобы _правильно_ пользоваться дот-нетом, нужно знать всего прилично. Но маркетинг-буллшит преподносит его (дот-нет) как волшебное средство решения проблем. Т.е. оно всегда так было, но всё же.. На счет Intel VTune - перешли сразу на Intel Parallel Studio там он немного по другому назван (мы пользовались до этого Compuware Bounds checker). И там есть разные режимы анализа кода и конечно скорость анализа не фонтан (20 раз замедление). Ты кстати посмотри свою демку с дракончикоом на нем многое чего раскажет, что не видно. Я вот и смотрю всё в Vtune Amplifier XE 2011 -- чуть не каждый клик пару мессаж-боксов с рантайм-еррорами, небыстро работается.
Сбор данных как раз не тормозит (игра почти на полной скорости работает), вот гуй -- это даже не тихий, это громкий ужас.
Submitted by BLK Dragon on

А профайлер разве не панацея от проблем managed-кода? Нашел узкие места, утечки памяти - и разбирайся с ними пока программа не начнет фонтанировать производительностью.

Безопасность - это что зло. Безопасность что-ли делается для идиотов?

И понятность тоже зло? Может обложится сложными системами и непонятными символами чтобы ни одному идиоту не взбрело в голову программированием заняться?

Наверное и с появлением медицины стало больше выживать неприспособленных людей, которые должны умереть по логике эволюции? Это всё абсурдные мысли.

Submitted by Hale_32bit on

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

Submitted by Necro on
А профайлер разве не панацея от проблем managed-кода? Нашел узкие места, утечки памяти - и разбирайся с ними пока программа не начнет фонтанировать производительностью. Очень смешно, ага :)

Очевидно ты никогда не видел такой вещи как "flat profile", т.е. когда всё равномерно тормозит.
Submitted by BLK Dragon on
Безопасность - это что зло. Безопасность что-ли делается для идиотов? По большей части да, недаром термин "защита от дурака" называется как называется.

И понятность тоже зло? Может обложится сложными системами и непонятными символами чтобы ни одному идиоту не взбрело в голову программированием заняться? Было бы неплохо -- меньше глючного софта и железа стало бы в мире.

Наверное и с появлением медицины стало больше выживать неприспособленных людей, которые должны умереть по логике эволюции? Конечно, я один из них -- по логике каких-нить спартанцев выбросили бы в пропасть сразу.
Submitted by BLK Dragon on
Ну значит тут спорить не о чём.

Это уже вопрос убеждений.

Submitted by Hale_32bit on
Quote:
Hale_32bit писал(а):
Ну значит тут спорить не о чём.Это уже вопрос убеждений.
Каких ещё убеждений? Факты, простые конкретные факты.

Т.е. можно сколько угодно бла-блы разводить про лёгкость/безопасность/полезность дот-нета, но имеем фактический факт -- гуй Vtune валит эксепшны на каждый клик (ну почти).
Vtune 5-6 так себя не вёл, т.к. если там гуй валил эксепшн, то валился весь Vtune и QA ***ил разработчиков пока ничего не валилось. В итоге юзер эксепшнов не наблюдал (ну в ТАКИХ количествах по крайней мере).

Т.е. само наличие возможности игнорить ошибки в дот-нет коде примело к тому что тупо забили на это совсем (или не успевали, или индусы совсем плохие стали). Это в-общем неудивительно (path of least resistance), но удручает до кррайности...

Submitted by BLK Dragon on

Убеждения в том, что именно безопасность виновата, а не индусы.

Submitted by Hale_32bit on
Quote:
Hale_32bit писал(а):
Убеждения в том, что именно безопасность виновата, а не индусы.
Читать будем что написано? Причём тут безопасность?

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

Submitted by BLK Dragon on

А почему я должен просто читать и верить написанному - твоему убеждению.

Конкретный факт? Вот конкретный факт: чем больше людей живёт на земле тем больше глобальных экологических проблем. Поэтому нужно убить себя?

Чем лучше технологии тем больше загрязнение и т.п. - поэтому не нужно развиваться?

А почему бы не продолжить цепочку? Индусы написали плохой код потому что появился .NET он появился потому-что microsoft захотело себе платформу, она захотела платформу потому, что это пристижно и выгодно - выгодно потому что кто-то в древности придумал деньги ...

Где остановиться зависит от убеждений человека.

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

Вот моё убеждение - .NET это эффективный инструмент. Если появляется новый эффективный инструмент, то конечно это возможность делать больше зла в плохих руках.

Но всё равно это хороший эффективный инструмент.

Submitted by Hale_32bit on
Quote:
Hale_32bit писал(а):
А почему я должен просто читать и верить написанному - твоему убеждению.
А не надо мне верить -- достаточно запустить Vtune XE :)

[измышления про убеждения поскпипаны]

Submitted by BLK Dragon on
Ну вот. Как раз этому то я искренне верил. Тому что каждый клик в VTune Amplifire XE 2011 выбрасывает эксепшн.

А теперь я его скачал и установил и вижу что всё работает нормально, кроме конечно ошибки:

Unable to find a version of runtime to run this application.

Это конечно косяк не маленький, что версия одной из библиотек не совпадает. Пришлось установить .NET Framework 3.5 и ошибка ушла.

Но главное, что причина этого косяка не в низкой квалификации программистов. Просто все либы конвертнули в новую версию, а одну забыли (что-то вроде того).

Submitted by Hale_32bit on
Quote:
Hale_32bit писал(а):
Ну вот. Как раз этому то я искренне верил. Тому что каждый клик в VTune Amplifire XE 2011 выбрасывает эксепшн.А теперь я его скачал и установил и вижу что всё работает нормально, кроме конечно ошибки:Unable to find a version of runtime to run this application.Это конечно косяк не маленький, что версия одной из библиотек не совпадает. Пришлось установить .NET Framework 3.5 и ошибка ушла.


А если поставить ещё десяток версий дот-нета и всяких их сервис-паков (нет от нечего делать, а потому что всяким прогам нужно), ошибки появятся, но поинтереснее Smile В том и проблема: сосуществование многих версий системных библиотек в дот-нете — это более запутанный вариат DLL Hell, когда разобраться кто кому как мешает не сильно просто.

Если тебе хочется верить что дот-нет замечателен и путь в ветлое будущее -- на здоровье; я предпочитаю на вещи реалистичнее смотреть.

Submitted by BLK Dragon on

Я не спорю, что существуют реальные веские аргументы против .NET

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

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

Submitted by Hale_32bit on
Просто то, что заглавном посте выделено как самый главный аргумент словами "Хуже того", меня напрягло т.к. это эмоции или убеждения или предмет веры, но не то чем можно аргументировать.
Так это мой личный блог (который обычно пишется во время особо долгих билдов), тут вообше нету смысла что-то кому-то доказывать. И выражает он мою точку зрения -- не моей компании, не всего человечества, не абсолютную истину, а мою точку зрения.





Конкретно про "идиотов дотнетчиков/джавистов" -- это тупо опыт, я видел их за работой десятки а то и сотни.



Никогда не видел зависший банкомат? Это один из результатов работы таких деятелей (да, зато быстро и дёшево получилось, ага -- студики из (цензоред) местной мегакорпорации накорябали).
Submitted by BLK Dragon on
Так это личный блог!? А я думал это специальная тема для холивара.

Тогда прошу меня извинить.

Submitted by Hale_32bit on
Так это личный блог!? А я думал это специальная тема для холивара. Там вроде как и пометка слева есть "запись в блоге", а так да -- записи в блоге это узаконеный холивар (не путать с троллингом) :)
Submitted by BLK Dragon on

GameDev.by