Здравствуйте, _d_m_, Вы писали:
___>Все эти ваши лекарства (хоть в прямом, хоть в переносном смысле) лечат следствия, а не причину.
Естесвенно. Одной и той-же рукой можно и поэмы писать и бить. Давайте отрубим нафиг руку ввиду потенциальной опасности Причины вызывающее проблемы в нативном коде мне просто абсолютно необходимы в работе, от них я избавиться не могу. Я уже устал от подобного рода споров. Еще раз для всех опонентов : я не призываю писать все на свете на плюсях( хотя я в принципе и не против , я всего лишь утверждаю что есть реальные задачи, за которые платят деньги, где без нейтива не обойтись. Ну самый тупой пример : Нужен плагин для оперы, фокса и хрома задействующий некие возможности npapi . Очевидный выбор иструмента — с, поскольку сам api сишный насквозь, и достаточно универсальный чтобы написать один код для всех трех браузеров разом.
Здравствуйте, Sheridan, Вы писали:
S>Здравствуйте, Ikemefula, Вы писали:
I>>Нативный код дискредетировал себя проблемами со стабильностью и безопасностью. Единственное на чем он сейчас держится это низкоуровневый контроль ресурсов.
S>То есть на прочих шарпах легче и бустрее писать, да плюс еще сразу без ошибок?
В менеджед отсутствует целый класс ошибок связаных с указателями. А благодаря возможностям самого менеджед, есть вагон инструментов которые очень хорошо страхуют программиста или помогают локализовать ошибку максимально быстро.
Здравствуйте, Sheridan, Вы писали:
I>>Ссылка и указатель это две большие разницы. Указатель включает в себя ссылки. А вот адреса и всякой всячины с этим связаной в ссылках нет и быть не может. Есть идентити — т.е. ответ на вопрос, две ссылки это один и тот же объект или разные. Все.
S>Это не автобус. Это просто большая машина, а внутри сидения и окна по бокам.
Указатель и ссылка это две большие разницы. Указатель == номер байта в АП + адресная арифметика. Ссылка это просто возможность работать с конкретным объектом.
Здравствуйте, Banned by IT, Вы писали:
I>>Чисто между прочим, ты в курсе, что старого кода на порядки больше чем нового и от него никто не собирается отказываться ? BBI>Я вижу что старый код постоянно устаревает и выбрасывается. А глючный старый код — в первую очередь.
Выбрасывать старый код — слишком дорогое удовольствие. Выбрасывать нужно только рудименты всякие, т.е. код который уже не используется но сидит в репе.
I>>Это следует из того, что одни и те же люди не могут заставить взлететь проект на С++ хотя менеджед версия летает. BBI>Это лишь говорит об их квалификации.
Нет, это говорит о том, что для продукта критично не понимание указателей, а умение решать проблемы.
Здравствуйте, Ikemefula, Вы писали:
S>>То есть на прочих шарпах легче и бустрее писать, да плюс еще сразу без ошибок?
I>В менеджед отсутствует целый класс ошибок связаных с указателями. А благодаря возможностям самого менеджед, есть вагон инструментов которые очень хорошо страхуют программиста или помогают локализовать ошибку максимально быстро.
Тоесть по большому счету все ништяки не в языке, а в инструментах?
Здравствуйте, Ikemefula, Вы писали:
S>>То есть на прочих шарпах легче и бустрее писать, да плюс еще сразу без ошибок?
I>В менеджед отсутствует целый класс ошибок связаных с указателями. А благодаря возможностям самого менеджед, есть вагон инструментов которые очень хорошо страхуют программиста или помогают локализовать ошибку максимально быстро.
Читаем "в менеджед отсутствует целый класс ошибок, которых в принципе нигде нет". Ты ведь так и не показал нам, что это за ошибки, связанные с указателями.
Здравствуйте, Ikemefula, Вы писали:
I>>>Ссылка и указатель это две большие разницы. Указатель включает в себя ссылки. А вот адреса и всякой всячины с этим связаной в ссылках нет и быть не может. Есть идентити — т.е. ответ на вопрос, две ссылки это один и тот же объект или разные. Все.
S>>Это не автобус. Это просто большая машина, а внутри сидения и окна по бокам.
I>Указатель и ссылка это две большие разницы. Указатель == номер байта в АП + адресная арифметика. Ссылка это просто возможность работать с конкретным объектом.
Это не звезда. Просто большой шар из преимущественно водорода. Настолько большой, что внутрях, изза гравитации, запустились и идут термоядерные реакции.
Здравствуйте, Banned by IT, Вы писали:
I>>такое ощущение что большинство адептов С++ в этом топике не в курсе про legacy код. BBI>Мы не юзаем древний и кривой legacy код. Ибо хватает не такого древнего и кривого.
Про что я и говорю.
I>>Куда деть такой код? BBI>Зависит от качества кода. Хороший в реюз. Плохой или чинить или выкинуть.
Выкинуть как правило слишком дорого. Например потому, что код писал некото с большим матбеграундом и большими способностями запоминать неструктурированый код. Ему было легко работать с простынями в 100кб и более . Этот код работает, более того, является ключевым.
Что бы его переписать, нужен точно такой же специалист, а это как правило всегда проблема.
Здравствуйте, landerhigh, Вы писали:
L>Здравствуйте, Ikemefula, Вы писали:
I>>Здравствуйте, landerhigh, Вы писали:
I>>>>Начнем сначала. Сколько нужно времени что бы старом проекте на 50-100мб кода заменить указатели на смартпоинтеры и тд.
L>>>Нисколько, потому что это не нужно.
I>>тогда нужно бороться с указателями, ибо контора подписалась, что выкатит версию.
L>Да пусть борется хоть с ветряными мельницами. Если в конторе половина сотрудников по ночам вскакивает в холодном поту от одной мысли об указателях, а другая допускает существование глючного кода годами, то пусть подписывается на что угодно. Результат, впрочем, будет предсказуемым.
I>>>>такое ощущение что большинство адептов С++ в этом топике не в курсе про legacy код. раньше на с++ писалось очень много того, что сейчас пишется на менеджед средствах. Куда деть такой код ? Может назвать его несиплюсным ? это резко снимет проблему указателей
L>>>Я не могу, он нам сейчас еще и про легаси код рассказывать будет. Давай уже, жги!
I>>А есть что сказать более внятного ?
L>Внятного? Мы с тобой на разных язаках разговариваем, как я посмотрю. Вообще-то приличные люди легаси кодом называют модули, хоть и написанные во времена царя горооха, но при этом стабильные, как Египетские пирамиды.
Легаси это просто код, который достался тебе по наследтсву от другой тимы. Всё.
>Единственная причина, по которой его трогают — это когда расширение или изменение функциональности становится неизбежным. Но даже тогда с бОльшей вероятностью функциональность просто заменяют новым кодом из соображений однородности и простоты поддержки. Юнит-тесты, опять же.
Есть такие страшные люди, математики. Могут писать простыни по 100кб и более и им там все понятно. Кроме них этот код никто не понимает.
L>Говнокод, в котором есть "проблемы с указателями" (сиречь падает на ровном месте) шансов стать легаси кодом не имеет. Разве что в какой-нить внутренней тулзе в какой-нить ООО "Рога и копыта"
Здравствуйте, landerhigh, Вы писали:
I>>И так во всех отраслях, правильно я тебя понимаю ?
L>Назови одну, в которой можно продавать глюкало, падающее на ровном месте и при этом не растерять всех клиентов.
Любая отрасль, где цена ошибки не равняется потере бизнеса или, скажем, человеческой жизни. Всех клиентов не нужно терять, достаточно потерять долю рынка, например перейти из лидеров в аутсайдеры.
I>>>>Стало быть про убитый проект на лялих++ возражений нет. На том и закончим.
L>>>А откуда им взяться? Что тако лялих++ я не знаю, кто твой знакомый не ведаю и кто и зачем убивал этот проект понятия тоже не имею. Да и в чем вопрос, собственно, тоже не совсем понимаю.
I>>лялих++ это я так обозвал проект под лялих на с++. Знакомый — тимлид на аутсорсинговой конторе. Проект пришел по тендеру. У меня, кстати говоря, случай был похожий. наша контора выросла в самостоятельную из нескольких убитых проектов, которые перед тем как попасть к нам были трижды завалены в разных странах. Java что характерно осталась в строю. С++ умер окончательно.
L>Что такое лялих, я не знаю. Ну а то, что проект "был завален в разных странах" и в итоге переписан на жабе,
Ты или читай внимательно, или спрашивай, что непонятно. Я не говорил, что "переписали на жабе". Была кучка проектов, часть плюсовых, часть — джава. Плюсовые вымерли. Джава осталась в строю. Плюсовые вымерли из за обилия проблем внутри кода — утечки, указатели, исключения.
>говрит лишь о том, что инструмент был изначально выбран неверно, а проект писали криворучки. Как говорится, дело было не в бобине.
"проект писали криворучки" — не ты ли чуть не пеной брызгал и доказывал что все плюсовики суть мега-продвинутые девелоперы у которых годами не бывает багов с указателями ?
Здравствуйте, Sheridan, Вы писали:
S>Здравствуйте, Ikemefula, Вы писали:
S>>>То есть на прочих шарпах легче и бустрее писать, да плюс еще сразу без ошибок?
I>>В менеджед отсутствует целый класс ошибок связаных с указателями. А благодаря возможностям самого менеджед, есть вагон инструментов которые очень хорошо страхуют программиста или помогают локализовать ошибку максимально быстро.
S>Тоесть по большому счету все ништяки не в языке, а в инструментах?
Конечно. Зато эти ништяки становятся возможными благодаря поддержке в языке. Например такая вещь как рефлексия позволяет создавать инструменты без необходимости наворачивать тонны кода или использовать какой парсер для простых вещей.
А в сиплюсе тебе надо уже парсер использовать, а поскольку это тяжкое дело, то парсер или работает медленно, или возможности ограничины, или же инструмент будет часто промахиваься. Ну и такой парсер делает задачу на порядок сложнее, т.е. люди будут тратить больше времени а стало быть выхлоп будет меньше.
Здравствуйте, landerhigh, Вы писали:
L>Здравствуйте, Ikemefula, Вы писали:
S>>>То есть на прочих шарпах легче и бустрее писать, да плюс еще сразу без ошибок?
I>>В менеджед отсутствует целый класс ошибок связаных с указателями. А благодаря возможностям самого менеджед, есть вагон инструментов которые очень хорошо страхуют программиста или помогают локализовать ошибку максимально быстро.
L>Читаем "в менеджед отсутствует целый класс ошибок, которых в принципе нигде нет". Ты ведь так и не показал нам, что это за ошибки, связанные с указателями.
Показал. вам, сиплюсникам, надо определиться. Или проблем с указателями нет, тогда не ясно зачем вам valgrind, или...
Здравствуйте, Privalov, Вы писали:
I>>Что бы его переписать, нужен точно такой же специалист, а это как правило всегда проблема.
P>На самом деле проблема в том, что этот специалист перепишет код такими же 100-километровыму простынями.
С этим сложно чтото поделать Матаматичи часто пишут код который никто кроме них понять не может.
Здравствуйте, Ikemefula, Вы писали:
L>>Внятного? Мы с тобой на разных язаках разговариваем, как я посмотрю. Вообще-то приличные люди легаси кодом называют модули, хоть и написанные во времена царя горооха, но при этом стабильные, как Египетские пирамиды.
I>Легаси это просто код, который достался тебе по наследтсву от другой тимы. Всё.
На этой оптимистичной ноте разговор можно завершать. Мы с тобой с разных весовых категориях, все равно не поймешь.
>>Единственная причина, по которой его трогают — это когда расширение или изменение функциональности становится неизбежным. Но даже тогда с бОльшей вероятностью функциональность просто заменяют новым кодом из соображений однородности и простоты поддержки. Юнит-тесты, опять же.
I>Есть такие страшные люди, математики. Могут писать простыни по 100кб и более и им там все понятно. Кроме них этот код никто не понимает.
Математики пусть алгоритмы на доске мелком рисуют. писать программы должны программисты.
L>>Говнокод, в котором есть "проблемы с указателями" (сиречь падает на ровном месте) шансов стать легаси кодом не имеет. Разве что в какой-нить внутренней тулзе в какой-нить ООО "Рога и копыта"
I>Это по малолетству так кажется.
Здравствуйте, landerhigh, Вы писали:
I>>Есть такие страшные люди, математики. Могут писать простыни по 100кб и более и им там все понятно. Кроме них этот код никто не понимает.
L>Математики пусть алгоритмы на доске мелком рисуют. писать программы должны программисты.
Многи ли ты можешь назвать специалистов по теории доминирования которые занимаются этим лет 15-20 ? Выбирать, как видишь, не из чего.
I>>Это по малолетству так кажется.
L>Слив защитан.
Здравствуйте, Mamut, Вы писали:
M>>>Ну дык. Указатели старательно упаковывают в GC для бедных — auto_ptr, shared_ptr и прочая *_ptr BBI>>Это не GC ни разу. Это RAII.
M>Выделено.
M>>> чтобы не дай бог кто-то не использовал голые указатели. BBI>>Отнюдь. Основная причина: упрощение управления времени жизни объекта. Уменьшение рукопашной.
M>А что GC, по-твоему, делает с точки зрения программиста? ВНЕЗАПНО упрощает управление временем жизни объекта. Уменьшает рукопашную. Но GC — это зло, а вот все остальное — это добро, агаага
Люди, ни разу не писавшие на языках с деструкторами и RAII, под временем жизни объекта понимают несколько другое, нежели люди, активно использующие RAII. Поэтому им не понятно, что GC НЕ упрощает управление временем жизни объекта в понимании С++. В плюсовой программе удаление одного объекта-хозяина часто приводит к целому каскаду событий, как-то закрытие файлов, сокетов, изменение имперсонации (логаут пользователя с точки зрения операционной системы, например) и .т.п. В языках с GC все эти действия приходится продумывать отдельно от управления памятью. Сложно назвать это упрощением.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
L>>Читаем "в менеджед отсутствует целый класс ошибок, которых в принципе нигде нет". Ты ведь так и не показал нам, что это за ошибки, связанные с указателями.
I>Показал. вам, сиплюсникам, надо определиться. Или проблем с указателями нет, тогда не ясно зачем вам valgrind, или...
Уже определились Вопрос о оценке этих проблем. Мы не считаем их столь значительными и пугающими как нам об этом рассказывают, а когда с ними сталкиваемся используем соответствующие инструменты.
Здравствуйте, Ikemefula, Вы писали:
I>>>И так во всех отраслях, правильно я тебя понимаю ?
L>>Назови одну, в которой можно продавать глюкало, падающее на ровном месте и при этом не растерять всех клиентов.
I>Любая отрасль, где цена ошибки не равняется потере бизнеса или, скажем, человеческой жизни. Всех клиентов не нужно терять, достаточно потерять долю рынка, например перейти из лидеров в аутсайдеры.
ну если для бизнеса потеря доли рынка — фигня, то у меня вопросов нет. Только название конторы назови, штоб случайно не вляпаться.
I>Ты или читай внимательно, или спрашивай, что непонятно. Я не говорил, что "переписали на жабе". Была кучка проектов, часть плюсовых, часть — джава. Плюсовые вымерли. Джава осталась в строю. Плюсовые вымерли из за обилия проблем внутри кода — утечки, указатели, исключения.
Так а я то говорю? плюсы ниасилили, там же указатели и исключения, а от них утечки. Руки кривые, что поделать?
>>говрит лишь о том, что инструмент был изначально выбран неверно, а проект писали криворучки. Как говорится, дело было не в бобине.
I>"проект писали криворучки" — не ты ли чуть не пеной брызгал и доказывал что все плюсовики суть мега-продвинутые девелоперы у которых годами не бывает багов с указателями ?
Все плюсовики, с которыми мне приходится работать, именно такие. Вы там можете хоть на клавиатуре плясать, но заявлять про "проблемы с указателями", когда на самом деле вы просто ниасилили плюсы несколько самонадеянно. Много на себя берете.
L>>Читаем "в менеджед отсутствует целый класс ошибок, которых в принципе нигде нет". Ты ведь так и не показал нам, что это за ошибки, связанные с указателями.
I>Показал. вам, сиплюсникам, надо определиться. Или проблем с указателями нет, тогда не ясно зачем вам valgrind, или...
Если ты не сиплюсплюсник, то что ты к указателям прицепился? Все уже поняли, что ты их ниасилил, ну прошел бы дальше, так нет, и зудит и зудит. Чего тебе плохого указатели сделали?
Валгринд удобен тем, что позволяет ткнуть ниасиливших работу с памятью в их собственное дерьмо. А также полезен тем, что помогает выявить наиболее охочие до памяти участки с целью их оптимизации. Экономии памяти для.