Здравствуйте, Cyberax, Вы писали:
C>AndreiF wrote: >> C>Это НЕ оптимизации. Это примитивы, которых нет в C#/... Они могут, в том >> C>числе, быть использованы и для оптимизации. >> А помимо этого? Приведи реальный пример, плиз. Что (кроме оптимизаций) >> можно сделать на С++, чего нельзя сделать на C#? C>Написать Q4. В теории это возможно хоть на Brainf**k, но на C>практике только С++.
Где-то я видел ссылки на порты Doom-а написанные на Java-е...
вполне играбельные...
Здравствуйте, konsoletyper, Вы писали:
K>Здравствуйте, Шахтер, Вы писали:
Ш>>С++, кстати, замечательно подходит для написания компиляторов, учитывая, что хороший компилятор содержит массу алгоритмически нетривиальных вещей.
K>Нет, как раз на ФЯ вроде Nemerle псать компиляторы проще. Вообще, алгоритмически нетривиальные вещи на C++ неудобно решать.
Здравствуйте, Шахтер, Вы писали:
Ш>Идеи давно есть, проблема в претворении их на практике.
Вот-вот. И, боюсь, реализуют их уже после того, как я перестану программировать
Ш>Ну, кстати, пресловутый экспорт шаблонов будучи должным образом реализованный мог бы помочь делу.
Или же какая-то более продвинутая форма precompiled headers.
Помнится в Turbo Pascal была система unit-ов, которые компилировались и записывались в tpu-файлы.
Для C/C++, в принципе, можно кроме объектных файлов для каждого исходника еще какой-то прекомпилированный файл строить -- объемы винчестеров и их сейчас это позволяют.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, CreatorCray, Вы писали:
CC>Здравствуйте, Gajdalager, Вы писали:
G>>В теории .Нет кроссплатформенный, а моноплатформенность .Нета происходит не от каких-либо просчетов в архитектуре или спецификации, а из-за политики МС. CC>Ну, то что в теории можно выбросить сразу — интересует только практика. Какой смысл от того что он в теории кроссплатформенный когда на практике это использовать нельзя? Когда в этом плане что либо изменится — тогда можно говорить о кроссплатформенности. А покуда — .NET НЕ кроссплатформенный.
Вообще-то я на дотНете не работаю, но, насколько я знаю, под Линукс есть Моно и дотГну. Как говорят на РСДНе, в Моно есть все, что есть в 1.1 кроме ВинФорм. Т.о. .Нет 1.1 все-таки кросплатформенный за небольшим исключением.. Более того, переносимость тут обеспечена на уровне бинарного кода, в отличие от плюсов.
Думаю, если бы МС вложила в развитие Моно (или даже своего собственного порта .Нета под Линукс) хотя бы половину денег, которые вложила в разработку платформы под винду, то можно было бы говорить о реальной кросплатформенности без исключений. Почему не делают? А невыгодно им... С другой стороны, в Жавы есть реальная кросплатформенность, с этим, думаю, не поспоришь. Кроме Жавы и .Нета, есть еще языки, которые используют виртуальную машину и сборщика мусора, к примеру Перл и Руби. Они тоже реально кросплатформенные, причем опять таки, разработчик не применяет особых усилий к сохранению переносимости.. В плюсах же ВМ и ГЦ нет, и переносимость сохраняеться ценой усилий(больших или нет — говорить не буду, т.к. реального опыта у меня тут нет).
На засыпочку. Сколько времени тебе нужно убить, чтобы скомпилировать и запустить код, отлично портируемый между Win-32 и Linux, на 64-битную архитектуру?
Здравствуйте, Gajdalager, Вы писали:
G>Кроме Жавы и .Нета, есть еще языки, которые используют виртуальную машину и сборщика мусора, к примеру Перл и Руби. Они тоже реально кросплатформенные, причем опять таки, разработчик не применяет особых усилий к сохранению переносимости..
Ну-ну. Попробуй к примеру поюзать popen3 одновременно под Windows и Unix
G>В плюсах же ВМ и ГЦ нет, и переносимость сохраняеться ценой усилий(больших или нет — говорить не буду, т.к. реального опыта у меня тут нет).
Наличие VM и GC к переносимости имеет очень косвенное отношение.
Гораздо важнее соответствие компилятора и библиотек стандартам. А наличие библиотек еще важнее.
G>На засыпочку. Сколько времени тебе нужно убить, чтобы скомпилировать и запустить код, отлично портируемый между Win-32 и Linux, на 64-битную архитектуру?
Здравствуйте, VladD2, Вы писали:
VD>Люди меняюстя. Меняюстя их привычки и привязанности. Откровенно говоря после занкомства с Nemerle смысл в использовании C# я вижу исключительн из-за того, что у него лучше поддержка в разного рода визардах, технологиях и IDE.
А как же пачка багов, которые nikov обнаружил в компиляторе только-только начав с ним работать?
Страшно подумать, что выплыло бы, если бы он попытался использовать его в продакшн-е.
Здравствуйте, Константин Л., Вы писали:
КЛ>Однако корреляция м/у сложность ю мощность все же существует. Имхо.
в смысле с ростом сложности растет и мощность языка? Не уверен. Вспомним статью Путеводитель автостопщика по потаенным знаниям
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, jazzer, Вы писали:
J>>А метапрограммирование — штука сравнительно новая.
VD>
Ты не согласен? Старая? И когда же метапрограммирование начало рассматриваться и применяться как полноценный метод программирования наряду с другими? До рождения С++?
Только не надо говорить, что метапрограммирование появилось, как только появился первый интерпретатор с командой eval (вообще говоря, тут и eval не нужен — ты можешь просто сгенерить из своего скрипта рядом файл с новым кодом и позвать его — чем не метапрограммирование).
Здравствуйте, remark, Вы писали:
R>Здравствуйте, MasterZiv, Вы писали:
MZ>>jazzer пишет: >>> The whole committee expressed a strong desire to deliver the next C++ >>> Standard in 2009.
MZ>>Зачем догружать и без того уже офигенно сложный язык ? MZ>>Может уже пора делать из него новый ?
R>Вот здесь Страуструп очень интересно пишет на этот счёт. Дядька хоть уже и старый, но всё ещё умный
<...> R>Я с ним согласен. То, что появится какой-то _простой_ язык, на котором можно будет научиться профессионально программировать на двух недельных курсах, и после этого создавать какие-то реальные приложения — это полная утопия и миф, который поддерживают компании, которые хотят впаривать якобы такие языки, и их поддерживают тупые менеждеры, которые верят, что они смогут понанимать дешёвых, неопытных программистов и таким образом достигнут высокой эффективности вложений.
<...>
Да ладно уж!
Этот изобретатель ничего другого не изобрёл, кроме монструозного и неоднозначного C++.
Зачем с ним соглашаться, если обычные офисные работники изучают VBA на двухнедельных курсах и прекрасно автоматизируют свои дела (в США)?
Кто скажет, что знает C++ "от и до", пусть кинет в меня камень.
"Тупые" менеджеры не разбираются в языках программирования, но они двигают дело наилучшим образом, на какое только способны только они, а не программисты. Они видят перспективу развития, принимают судьбоносные решения для своего бизнеса, управляют людьми.
И то, что сложный язык не нашёл горячей поддержки о "тупых" менеджеров, а остался в той нише, где он, скорее всего, останется навсегда, говорит о многом: за двадцать три года язык C++ не стал доминирующим языком высокого уровня, поскольку универсальность ведёт к сложности, а людям нужно решать конкретные узкоспециализированные задачи с быстрым обучением и быстрой отдачей. И они решают их не на C++.
Здравствуйте, iZEN, Вы писали:
ZEN>И то, что сложный язык не нашёл горячей поддержки о "тупых" менеджеров, а остался в той нише, где он, скорее всего, останется навсегда, говорит о многом: за двадцать три года язык C++ не стал доминирующим языком высокого уровня, поскольку универсальность ведёт к сложности, а людям нужно решать конкретные узкоспециализированные задачи с быстрым обучением и быстрой отдачей. И они решают их не на C++.
А не напомните, какой язык был доминирующим языком высокого уровня десять лет назад? Хотя бы на x86 платформе?
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, jazzer, Вы писали:
J>Ты не согласен? Старая? И когда же метапрограммирование начало рассматриваться и применяться как полноценный метод программирования наряду с другими? До рождения С++?
Думаю, что где-то в района рождения Lisp-а, а может и раньше
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, jazzer, Вы писали:
J>>Ты не согласен? Старая? И когда же метапрограммирование начало рассматриваться и применяться как полноценный метод программирования наряду с другими? До рождения С++?
E>Думаю, что где-то в района рождения Lisp-а, а может и раньше
Ага, для программирования искуственного интеллекта в университетах
В то время рулили всякие алголы и фортраны и прочие PL/1
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, VladD2, Вы писали:
VD>>Люди меняюстя. Меняюстя их привычки и привязанности. Откровенно говоря после занкомства с Nemerle смысл в использовании C# я вижу исключительн из-за того, что у него лучше поддержка в разного рода визардах, технологиях и IDE.
L>А как же пачка багов, которые nikov обнаружил в компиляторе только-только начав с ним работать?
Там не столько баги (хотя они тоже есть), сколько тонкие неопределенные моменты.
L>Страшно подумать, что выплыло бы, если бы он попытался использовать его в продакшн-е.
Ну если многие использовали (и используют) VC++ 6.0 который абсолютно не соответствует стандарту C++, имеет реализацию STL, в которой течет память, и частенько ICEится, то чему удивляться.
Я пописал на Nemerle и реальных showstopperов не заметил.
Здравствуйте, jazzer, Вы писали:
J>>>Ты не согласен? Старая? И когда же метапрограммирование начало рассматриваться и применяться как полноценный метод программирования наряду с другими? До рождения С++?
E>>Думаю, что где-то в района рождения Lisp-а, а может и раньше
J>Ага, для программирования искуственного интеллекта в университетах
J>В то время рулили всякие алголы и фортраны и прочие PL/1
Понятие "рулили" очень абстрактное. То, что большинство программистов в то время выполняли свою работу не на Lisp-е вовсе не означает, что на лиспе вообще не делалось важных и ответственных проектов. Думаю, что таки делались и метапрограммирование при этом использовалось на полную катушку.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, iZEN, Вы писали:
ZEN>>И то, что сложный язык не нашёл горячей поддержки о "тупых" менеджеров, а остался в той нише, где он, скорее всего, останется навсегда, говорит о многом: за двадцать три года язык C++ не стал доминирующим языком высокого уровня, поскольку универсальность ведёт к сложности, а людям нужно решать конкретные узкоспециализированные задачи с быстрым обучением и быстрой отдачей. И они решают их не на C++.
E>А не напомните, какой язык был доминирующим языком высокого уровня десять лет назад? Хотя бы на x86 платформе?
Здравствуйте, remark, Вы писали:
R>Вот, что из он заключает из этого:
We need relatively complex language to deal with absolutely complex problems.
Вообще-то аналогичная фраза (что-то вроде: "сложные задачи требуют сложных решений") была сказана задолго до Страуструпа одним из создателей языка Ада в ответ на вопрос Никлауса Вирта зачем же его понадобилось делать таким сложным.
По моему, за одну такую фразу программисту надо руки отрывать или, по крайней мере, увольнять ибо "СЛОЖНОСТЬ = УЯЗВИМОСТЬ".