Здравствуйте, Зверёк Харьковский, Вы писали:
ЗХ>avvaпишет
ЗХ>
ЗХ>Следующие рассуждения в принципе мне кажутся очень простыми, но ни разу их не встречал.
ЗХ>[...]
C — хороший язык, потому что портабельный ассемблер.
C++ — не хороший язык, потому что имеет кучу фич, не похожих на ассемблер.
Вывод? Автор неправомерно относится к C++ как к "C с расширениями". Ерунда, короче.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Programmierer AG, Вы писали:
PA>Это диверсанты-функциональщики на самом деле .
Я бы даже сказал девирсанты метопрограммщики вынужденно ставшие функциональщиками так как Страуструп хитрюга незаметно для основного мира и комитета по стандартизации таки умудрился запихнуть в С++ ФЯ.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Зверёк Харьковский, Вы писали:
ЗХ>avvaпишет
Он все перепутал. Между тем все куда банальнее и проще.
С очень прос в реализации (не на С просто писать, а написать С-компилятор просто). При этом С будучи статически типизированным языком позволяет порождать быстрый код. По сему код написанный на этом языке проще всего перенести на другую платформу.
А что до побочных эффектов. Фигня все это. Любой язык в итоге позволяет сделать так, чтобы казалось бы невинная строка кода приводила к совершенно несуразным действиям.
Что до переносимого ассемблера, то они созданны. Это байтод Явы и МСИЛ. Вот только создать VM для Явы и дотнета ой как не просто. Потому С будет жить еще очень долго.
А вот то, что жить будет С, а не аналогичный типобезопасный безопасный язык — это нонсенс который ничем кроме как глупости и косности человечества я объяснить не могу. По-моему — это привычка/стериотип возабладвшая над разумом. Насколько я знаю Ричи давно изобрел такой язык. И не только он (тот же Оберон из этой оперы). Но ежики жрут кактуся с упорством достойным лучшего применения.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, alex_ez, Вы писали:
_>Здравствуйте, Зверёк Харьковский, Вы писали:
_>Не поняв ДАО — нельзя понять язык. _>Пойди и пойми ДАО, потом поговорим.
Здравствуйте, VladD2, Вы писали:
VD>Комунисты — это скорее С++-ники.
Нет уж, такой хаос не может быть коммунизмом, разве что на этапе революции. Коммунизм это например одна-единственная большая-на-все-случаи-жизни библиотека. И никаких там reinterpret_cast.
Здравствуйте, igna, Вы писали:
I>Нет уж, такой хаос не может быть коммунизмом, разве что на этапе революции. Коммунизм это например одна-единственная большая-на-все-случаи-жизни библиотека.
Здравствуйте, igna, Вы писали:
I>0 баллов. В boost'е отсутствуют предметы первой необходимости. 2-я попытка, пожалуйста.
Что такое предмет первой необходимости? Вот небольшой список, того что есть в Boost (многое из этого в C++ оказывается необходимым):
Smart pointers that provide automatic lifetime management of objects and simplify resource sharing
Consistent, best-practice solutions for performing type conversions and lexical conversions
Utility classes that make programming simpler and clearer
Flexible container libraries that solve common problems not covered by the C++ Standard Library
Powerful support for regular expressions with Boost.Regex
Function objects defined at the call site with Boost.Bind and Boost.Lambda
More flexible callbacks with Boost.Function
Managed signals and slots (a.k.a. the Observer pattern) with Boost.Signals
Beyond the C++ Standard Library: An Introduction to Boost
Все гораздо проще…
С++ ориентрован на сильных умом (experts only), и надо заметить, что в программировании далеко не все этим качеством обладают.
Перед программистом стоит достаточно трудоемкая задача, по сути нахождение оптимального решения по следующим критериям (первое что пришло на ум):
1. Расход памяти
2. Расход выч. ресурсов
3. Локаничность кода
4. Удобочитаемость
5. Сопровождаемость
6. Переносимость
(Список можно продолжать).
Так вот найти то самое оптимальное решение можно, и реализовать его можно только на C++ (std98), пока в него еще не напихали консервативных GC (уверен, что нас ждут новые проблемы переносимости кода ), виртуальных деструкторов по умолчанию и т.п.
(Кстати, наверное как многие заметили, код Александреску не дружит с 4 и 6 пунктом)
Действительно бытует такое мнение, что C++ язык плохой , но это только по тому, на нем пишет народ, которому лучше писать на чём нибудь вроде VB, а еще лучше вообще не писать.
Лично я уже 4-й год по большей части пишу под .NET (C#) (если конечно задача позволяет), ибо почувствовал, что голова уже в большой спешке не справляеться, с горами шаблонов а-ля BOOST.
Зверёк Харьковский,
ЗХ>avvaпишет
ИМХО, зря были выделены следующие фразы. Выделение жирным не способствует внимательному прочтению текста. ЗХ>
эффект любой строки кода локален и очевиден. ... то, что это последовательно — хорошо.
По реакции публики видно, что автора приняли за сишника-старовера, который боится перегрузки операторов, деструкторов и прочей автоматизации. Все уверены, что для avv'ы C++ чересчур сложный, а оттого непонятный => плохой. Никто не удосужился сходить по ссылке и убедиться, что для него на самом деле и монады Хаскеля не проблема. А основная мысль автора, как я ее понял, заключалась не в критике излишней сложности C++, а в критике отсутствия единой концепции языка, объединяющих принципов, из которых нет исключений.
igna wrote: > — GUI > — GUI > — GUI
Не предмет первой необходимости.
> — Database access
_Далеко_ не предмет первой необходимости.
> — XML
Было обсуждение по включению XML-библиотеки в Boost, но пока завязло
(уже и так куча либ есть).
Здравствуйте, Programmierer AG, Вы писали:
PA>А основная мысль автора, как я ее понял, заключалась не в критике излишней сложности C++, а в критике отсутствия единой концепции языка, объединяющих принципов, из которых нет исключений.
Просто в качестве мысли вслух. Интересно, какому-нибудь столь же распространенному языку, как C++, удалось сохранить единую концепцию и стройность языка за двадцать лет своего развития и после столько кардинальных доработок, как в C++ (исключения и шаблоны ведь в C++ не сразу появились)?
SObjectizer: <микро>Агентно-ориентированное программирование на C++.