Re[9]: Пописал на С++... долго думал :)
От: vdimas Россия  
Дата: 26.10.05 09:12
Оценка: 31 (2)
Здравствуйте, srggal, Вы писали:

GZ>>С++ был действительно мощный язык, такой, что заложенного в него хватило на 15-20 лет существования. Но существует одна проблема. Дальнейшее улучшение языка возможно только с помощью таких уродцев типа boost.


S>Много Вы уважемый ( без иронии ) знаете языков, пускай даже модных, новых, которые так можно тюнинговать, пусть при промощи уродцев типа буста ?


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

И если посмотреть на конкретные меры по safe-изации C++, которые я предложил, то они никак не повлияют ни на буст, ни на сам менталитет С++.

Основная проблема С++ — это возможность "безнаказанной" реинтерпретации памяти в произвольной строчке программы. Эта возможность идет вразрез с понятием Язык Высокого Уровня. Большинство UB, падений и вообще сниженная надежность программ на С++ имеют корни как раз из-за этой спорной вещи. Я вижу необходимость реинтерпретации памяти только в собственных аллокаторах памяти. Поэтому и предложил оставить НЕЯВНУЮ ту самую реинтерпретацию только в операторах new и в его inplace варианте в т.ч.

Грамотные С++ программисты стараются избегать приемов С++, связанных с реинтерпретацией памяти, так же как с ее разновидностью — побайтным копированием.

Все остальное, перечисленное мною выше (да, я забыл еще об детерминированном вызове деструкторов) позволяет писать точно такие же эффективные и надежные приложения.


GZ>>И невозможно построить эффективный GC не теряя совместимости.

S>А зачем козе баян ? (Народная мулрость)

Правильно, не надо его встраивать в язык. Вполне можно обойтись чем-то вроде GC Handle и смарт-поинтером на его основе.

GZ>>Он начинает терять позиции на рынке бизнес-приложений. Но есть рынки где его позиции останутся такими же еще лет 10 точно.


S>Спорно, ну лучше мне с Вами согласиться, за неимением желания расскладывать Бизнесс Приложения на винтики и показывать в них нишу С/С++.


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

Так же, на фомирование ниш в современном раскладе инструментов для разработки ПО немалое влияние оказывает и весь тот фреймворк, что окружает рассматриваемый инструмент. Для С++ мы имеет ну просто тонны готовых библиотек, начиная от GUI, и заканчивая сетевыми и даже прочими низкоуровневыми. Однако, все эти билиотеки совершенно не совместимы м/у собой. Пусть бросит в меня камень тот, кто ни разу не совмещал всякие роперы над тредами или мютексами от разных библиотек.

ACE — неплохая была попытка, но она элементарно морально устарела и требовала рефакторинга еще 5 лет назад, т.к. выполнена ммм... не совсем в духе С++.

Boost — очень неплохой почин, и я ожидаю от него многого. Жаль, что его разработка и стандартизация идут не так быстро как хотелось бы. Утопическое желание — чтобы какой-нить гигант вложил в него денег, типа как Sun и IBM в Java-направление.

S>>> Если он начнет идти в сторону Safe то это уже будет "дрессированный" язык, и совсем не тот, который мне нравится.


Я повторяю предложение дать ЛЮБОЙ код, требующий хаков с памятью или приведением указателей/ссылок вниз по иерархии наследования, и переделаю его без этих хаков. Нравится/не нравится — это слишком субъективный фактор, в то время как обеспечиваемая языком надежность — конкретный.

GZ>>Это точно. Меня пугает вообще политика улучшения языка.


S>


Возьмите глыбу мрамора и отсекие лишнее. Красота — она в простоте. ( (С) Пикассо из 9-й роты )
Я предлагаю именно отсечь лишнее.

GZ>>Полезнее придумать новый. Если красивой девушке навесить ну очень большие уши, она лучше слышать. Но вот в остальном, она потеряет.


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

S>Вы меня правильно поняли, я тоже за то, чтобы GC не было в С++, я против радикального изменения языка, но я только один, ртдельно взятый программист


Ну да, удаление потенциально опасных инструкций можно назвать "радикальным" изменениям языка. Тебя это смущает? Например STL и Boost их практичеки не используют (или не используют вообще), так что мы немного потеряем.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.