Здравствуйте, srggal, Вы писали:
S>Внимание вопрос: S> Сколько вы знаете языков, в которых сообщество находило новые возможности использования яхыка, о которых авторы языка не задумывались и более того не подозревали ?
Вопросом на вопрос , а ты считаешь что это преимущество ???
Здравствуйте, minorlogic, Вы писали:
M>Здравствуйте, srggal, Вы писали:
S>>Внимание вопрос: S>> Сколько вы знаете языков, в которых сообщество находило новые возможности использования яхыка, о которых авторы языка не задумывались и более того не подозревали ?
M>Вопросом на вопрос , а ты считаешь что это преимущество ???
Я считаю, что это хороший пример свободы предоставляемой языком, о которой я говорил здесь
Здравствуйте, srggal, Вы писали:
S> Какое кол-во из участников форума бреется опасной бритвой ? S> Какое безопасной ?
S>Рискну предположить чот первые в меньшинстве.
Я бы сказал, количество таких людей равняется числу программистов на Коболе. О них слышали, но их не видели. S>Почему бы вторым не брится опасной бритвой ? Скажите — больше времени занимает бритьё ? Нет, не больше, просто ей надо уметь бриться, причем чтобы научиться — прийдется пройти через порезы ( иногда болезненные ). Следовательно понимая ( сознательно/подсознательно ), что Вы не совладаете с опасной бритвой — Вы выбираете безпасную ( осознанно или нет — другое дело ).
Чего-то я не понял. Ты хочешь отказаться от C++? Тебя многие не поймут.
S>Так и с макросами, если не умеешь, можешь порезаться, почему бы тогда апологетам других языков, которые не в состоянии справиться с макросами просто не выбрать для себя безопасную бритву ?
А, это о макросах. Вообще-то в С++ можно многим порезаться. Только вот макросы настолько мощная штука, что я думаю, отказаться от них практически невозможно. (шаблоны как замену макросам, а такое здесь проходило, не признаю ).
S>Нет же, сначала надо допустить глупую ошибку, потом завести тему, и сношать сообщество С++ программистов очередными претензиями, которые кратко можно выразить так: S> Неужели компилятор С\С++ такой тупой, что — не понимает что я тупой ?
Нет. Почему компилятор не помогает моим великим мыслям. Есть задачи, для которых важно как я делаю. И в этом случае С++ неоценим. Но есть задачи где важнее что я делаю. И тут С# значительно продуктивнее чем С++. Потому как о многих вещах и не надо задумываться.
Здравствуйте, GlebZ, Вы писали:
GZ>Здравствуйте, srggal, Вы писали:
S>> Какое кол-во из участников форума бреется опасной бритвой ? S>> Какое безопасной ?
S>>Рискну предположить чот первые в меньшинстве. GZ>Я бы сказал, количество таких людей равняется числу программистов на Коболе. О них слышали, но их не видели.
Рискну сказать, что я пытался научиться, и ремень есть у меня для правки и бритва жилетт.., но колво порезов перерасло в стойкое нежпалание преодолевать трудности
S>>Почему бы вторым не брится опасной бритвой ? Скажите — больше времени занимает бритьё ? Нет, не больше, просто ей надо уметь бриться, причем чтобы научиться — прийдется пройти через порезы ( иногда болезненные ). Следовательно понимая ( сознательно/подсознательно ), что Вы не совладаете с опасной бритвой — Вы выбираете безпасную ( осознанно или нет — другое дело ).
GZ>Чего-то я не понял. Ты хочешь отказаться от C++? Тебя многие не поймут.
Речь идет об инструментах языка С++, и тем более не о моих предпочтениях.
GZ>А, это о макросах. Вообще-то в С++ можно многим порезаться. Только вот макросы настолько мощная штука, что я думаю, отказаться от них практически невозможно. (шаблоны как замену макросам, а такое здесь проходило, не признаю ).
Макросы зачастую хорошо использовать в связке с шаблонами, так сказать для упращения инстанцирования, и не только.
S>> Неужели компилятор С\С++ такой тупой, что — не понимает что я тупой ? GZ>Нет. Почему компилятор не помогает моим великим мыслям.
Для помощи свои великим мыслям — пишите свой препроцессор Темв поднимаtncz с завидной переодичностью.
GZ>Есть задачи, для которых важно как я делаю. И в этом случае С++ неоценим. Но есть задачи где важнее что я делаю. И тут С# значительно продуктивнее чем С++. Потому как о многих вещах и не надо задумываться.
В ЯБЛОЧКО, т.е. одни решаем на одном языке вторые на втором, причем эти предпочтения субъективны. Ибо в силу того, что С++ я знаю лучше СШарп, то многие вещи мне проще сделать на С++, но могут быть люди у которых все наоборот.
От себя еще добалю, что при выборе предпочтительного языка реализации следует учитывать собственный уровень знания языка, а при самой реализации на выбраном языке писаьт надо острожно, если не чуствуешь себя НэтивСпикером
Здравствуйте, srggal, Вы писали:
S>Рискну сказать, что я пытался научиться, и ремень есть у меня для правки и бритва жилетт.., но колво порезов перерасло в стойкое нежпалание преодолевать трудности
У некоторых это возникло и в языках.
Если в жизни любишь риск,
Сформатируй жесткий диск
S>Для помощи свои великим мыслям — пишите свой препроцессор Темв поднимаtncz с завидной переодичностью.
В большинстве случаев это изничтожение воробьев на крыше конкретного дома №16 с помощью запуска баллистической ракеты с подводной лодки. Да и к тому же, кто даст гарантию, что я сам не допущу ошибок.
Вобщем, я не понимаю общего фанатизма в метапрограммировании.
GZ>>Есть задачи, для которых важно как я делаю. И в этом случае С++ неоценим. Но есть задачи где важнее что я делаю. И тут С# значительно продуктивнее чем С++. Потому как о многих вещах и не надо задумываться.
S>В ЯБЛОЧКО, т.е. одни решаем на одном языке вторые на втором, причем эти предпочтения субъективны. Ибо в силу того, что С++ я знаю лучше СШарп, то многие вещи мне проще сделать на С++, но могут быть люди у которых все наоборот.
Эээ, нет. Тут проблема такая. В семантике каждый может ошибиться. Но ошибки синтаксические компилятор должен находить. И в С# большинство находит. За счет этого можно больше времени уделять семантике чем синтаксису. Поверь мне, после того как попишешь в обоих языка, твое мнение станет объективным и доказуемым.
S>От себя еще добалю, что при выборе предпочтительного языка реализации следует учитывать собственный уровень знания языка, а при самой реализации на выбраном языке писаьт надо острожно, если не чуствуешь себя НэтивСпикером
Скажу от себя, лучше знать больше языков разных и хороших. Тогда новый язык не станет для тебя каким-то непонятным, и сможешь сходу пользоваться всеми его фичами. А в результате сможешь выбирать оптимальный путь для решения конкретной задачи.
Здравствуйте, GlebZ, Вы писали:
GZ>>>Есть задачи, для которых важно как я делаю. И в этом случае С++ неоценим. Но есть задачи где важнее что я делаю. И тут С# значительно продуктивнее чем С++. Потому как о многих вещах и не надо задумываться.
S>>В ЯБЛОЧКО, т.е. одни решаем на одном языке вторые на втором, причем эти предпочтения субъективны. Ибо в силу того, что С++ я знаю лучше СШарп, то многие вещи мне проще сделать на С++, но могут быть люди у которых все наоборот. GZ>Эээ, нет. Тут проблема такая. В семантике каждый может ошибиться. Но ошибки синтаксические компилятор должен находить. И в С# большинство находит.
Должен заметить, что синтаксические ошибки компиляторы С\С++ тоже нахоодят крайне надежно.
Если речь идет о конкретной ошибке в макросе с которой начался тред, то приплетать сюда СШарп в части компиляции и поиска синтаксических ошибок — вообще некорректно, ввиду отсутсвия препроцессора в СШарп
Ибо сказано: Хочешь сделать что-нить хорошо — сделай все сам, хочешь сделать еще лучше — не делай ничего.
GZ>За счет этого можно больше времени уделять семантике чем синтаксису. Поверь мне, после того как попишешь в обоих языка, твое мнение станет объективным и доказуемым.
Что до семантики это завсегда да, это согласен, в чистом С\С++ семантика прикладной программы выглядет ужасающей, но есть библиотеки ГИ/ГУИ ДатаАкссес и все такое, если их использовать, колво реализованной семантики на строку кода ( хороший термин получился ) увеличивается. Если бы Вы писали на чистом СШарп а не дотНетФреймворк, то уверяю вас, кол-во семантики В ваших программах на строку кода, примерно соответсвовало С\С++. Но как нет в Шарпе препроцессора, так нет и Шарпа без дотНетФреймворк ( во всяком случае я не слышал ).
Так что, обсуждая простоту реализации семантики Вы невольно вынуждены передергивать, причем не по своей вине, следовательно в жтом отношении СШарп и С\С++ сложно сравнивать.
ИМХО: Предвижу, Вы скажете о мэнаджед С++, и его "дикой" наглядности. Сразу скажу, Реализация мэнэджэд С++ была притянута за уши К дотНэт Фрэймворк, отсюда и ноги.
Итого имеем: что как ни крути сравнение возможностей реализации семантики чистого языка С++ и СШарп не корректно
GZ>Скажу от себя, лучше знать больше языков разных и хороших. Тогда новый язык не станет для тебя каким-то непонятным, и сможешь сходу пользоваться всеми его фичами. А в результате сможешь выбирать оптимальный путь для решения конкретной задачи.
Ок, конкретный пример, я неплохо разобрался с шаблонами на С++, насколько это поможет мне в разборках с дженерикаим с СШарп? Очень мало поможет , больше бы помогло знание дженериков на джаве.
Соответсвенно, при освоении нового языка существенно может помочь знание языка похожего на изучаемый.
Или, философский вопрос как знание ассемблер поможет освоить бэктреккинг в ПРОЛОГ ?
Здравствуйте, srggal, Вы писали:
S>Должен заметить, что синтаксические ошибки компиляторы С\С++ тоже нахоодят крайне надежно.
А чем препроцессор не часть языка? S>Если речь идет о конкретной ошибке в макросе с которой начался тред, то приплетать сюда СШарп в части компиляции и поиска синтаксических ошибок — вообще некорректно, ввиду отсутсвия препроцессора в СШарп
Вообще-то он есть. Но маааааленький S>Ибо сказано: Хочешь сделать что-нить хорошо — сделай все сам, хочешь сделать еще лучше — не делай ничего.
Логично
GZ>>За счет этого можно больше времени уделять семантике чем синтаксису. Поверь мне, после того как попишешь в обоих языка, твое мнение станет объективным и доказуемым. S>Что до семантики это завсегда да, это согласен, в чистом С\С++ семантика прикладной программы выглядет ужасающей, но есть библиотеки ГИ/ГУИ ДатаАкссес и все такое, если их использовать, колво реализованной семантики на строку кода ( хороший термин получился ) увеличивается. Если бы Вы писали на чистом СШарп а не дотНетФреймворк, то уверяю вас, кол-во семантики В ваших программах на строку кода, примерно соответсвовало С\С++. Но как нет в Шарпе препроцессора, так нет и Шарпа без дотНетФреймворк ( во всяком случае я не слышал ). S>Так что, обсуждая простоту реализации семантики Вы невольно вынуждены передергивать, причем не по своей вине, следовательно в жтом отношении СШарп и С\С++ сложно сравнивать.
Обшибочка вышла. Я не имел ввиду библиотеки(хотя библиотеки тоже немаловажно). Я имел ввиду именно язык. Одно то, что у меня нет проблемы зацикливания ссылок уже многого стоит, и много времени экономит. Много времени экономят, те же делегаты. Много времени экономит, то что я вообще не думаю о указателях. И т.д. и т.п. Безусловно, за это есть плата в том смысле, что нельзя управлять ручками ресурсами компьютера. Но то что функциональность пишется значительно быстрее, и он значительно проще выглядит — это факт.
S>ИМХО: Предвижу, Вы скажете о мэнаджед С++, и его "дикой" наглядности. Сразу скажу, Реализация мэнэджэд С++ была притянута за уши К дотНэт Фрэймворк, отсюда и ноги.
Нет, не буду. Я абсолютно согласен.
S>Итого имеем: что как ни крути сравнение возможностей реализации семантики чистого языка С++ и СШарп не корректно
Если говорить о том, когда решаются аналогичные задачи, то вполне уместна. И тут у каждого есть свои плюсы.
GZ>>Скажу от себя, лучше знать больше языков разных и хороших. Тогда новый язык не станет для тебя каким-то непонятным, и сможешь сходу пользоваться всеми его фичами. А в результате сможешь выбирать оптимальный путь для решения конкретной задачи. S>Ок, конкретный пример, я неплохо разобрался с шаблонами на С++, насколько это поможет мне в разборках с дженерикаим с СШарп? Очень мало поможет
Достаточно поможет. Большинству же помогло. Отличаются лишь частности. Но поскольку и там, и сям пишешь одновременно, то переваривать такие частности очень сложно. Цель то одна, реализации только разные. S>Соответсвенно, при освоении нового языка существенно может помочь знание языка похожего на изучаемый.
Почти. Языки — это сборки разных фичей придуманных в программировании. И если знать эти фичи, то язык который их поддерживает будет удивлять только синтаксисом.
S>>Что до семантики это завсегда да, это согласен, в чистом С\С++ семантика прикладной программы выглядет ужасающей, но есть библиотеки ГИ/ГУИ ДатаАкссес и все такое, если их использовать, колво реализованной семантики на строку кода ( хороший термин получился ) увеличивается. Если бы Вы писали на чистом СШарп а не дотНетФреймворк, то уверяю вас, кол-во семантики В ваших программах на строку кода, примерно соответсвовало С\С++. Но как нет в Шарпе препроцессора, так нет и Шарпа без дотНетФреймворк ( во всяком случае я не слышал ). S>>Так что, обсуждая простоту реализации семантики Вы невольно вынуждены передергивать, причем не по своей вине, следовательно в жтом отношении СШарп и С\С++ сложно сравнивать. GZ>Обшибочка вышла. Я не имел ввиду библиотеки(хотя библиотеки тоже немаловажно). Я имел ввиду именно язык. Одно то, что у меня нет проблемы зацикливания ссылок уже многого стоит, и много времени экономит. Много времени экономят, те же делегаты. Много времени экономит, то что я вообще не думаю о указателях. И т.д. и т.п. Безусловно, за это есть плата в том смысле, что нельзя управлять ручками ресурсами компьютера. Но то что функциональность пишется значительно быстрее, и он значительно проще выглядит — это факт.
ИМХО: давно набив руку — я не задумываюсь об указателях, это я в том смысле что субъективно процитированное выше , кому-то много времени экономит суппер boost и ФастДелегаты на С++
S>>Итого имеем: что как ни крути сравнение возможностей реализации семантики чистого языка С++ и СШарп не корректно GZ>Если говорить о том, когда решаются аналогичные задачи, то вполне уместна. И тут у каждого есть свои плюсы.
Ок, в силу предыдуших моих ответов, грить можно, убедили, но есть одна попровочка — разговор субъективный.
GZ>>>Скажу от себя, лучше знать больше языков разных и хороших. Тогда новый язык не станет для тебя каким-то непонятным, и сможешь сходу пользоваться всеми его фичами. А в результате сможешь выбирать оптимальный путь для решения конкретной задачи. S>>Ок, конкретный пример, я неплохо разобрался с шаблонами на С++, насколько это поможет мне в разборках с дженерикаим с СШарп? Очень мало поможет GZ>Достаточно поможет. Большинству же помогло. Отличаются лишь частности. Но поскольку и там, и сям пишешь одновременно, то переваривать такие частности очень сложно. Цель то одна, реализации только разные.
Мало общего, Рантайм и Компайл тайм, и куча нюансов. ИМХО помощь только в том, что уже знакомо понятие обобщенный и все
S>>Соответсвенно, при освоении нового языка существенно может помочь знание языка похожего на изучаемый. GZ>Почти. Языки — это сборки разных фичей придуманных в программировании. И если знать эти фичи, то язык который их поддерживает будет удивлять только синтаксисом.
Я не имел в виду циклы и все подобные фичи, я имел в виду более продвинутые фичи, а они обычно отличают один я зык от другого, и именно из-за них делается выбор в пользу того или иного языка реализации.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Cyberax, Вы писали: C>>Решается очень просто — есть ключик "treat warnings as erorrs".
VD>Есть лучшее решение. Ну, вы знаете какое.
Да знаем мы, знаем... Только сдаётся мне, что лет через 20 мы будем наблюдать шоу "Последний самурай", в котором мерзопакостный молодняк будет лезть со своим Oberoid##, а кое-кто от них будет отмахиваться Generic'ами и приводить в качестве примера статистику с миллионами приложений, написаных на C#
Здравствуйте, AndreyFedotov, Вы писали:
AF> Да знаем мы, знаем... Только сдаётся мне, что лет через 20 мы будем наблюдать шоу "Последний самурай", в котором мерзопакостный молодняк будет лезть со своим Oberoid##, а кое-кто от них будет отмахиваться Generic'ами и приводить в качестве примера статистику с миллионами приложений, написаных на C#
Ну, главно шоб оборзеший молоднык не вставлял палки в колесЫ ретроградамъ.
И вообще, я так понимаю, что массы не понимают ранимую душу поэта... готового продать душу любому дьяволу который прдожит на сольд больше чем педыдущий.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, tarkil, Вы писали:
T>Ладно, фигня это всё. Лучше скажите (вопрос ко всем), видел кто-нибудь реализацию на плюсах удобных типобезопасных форматных строк в стиле .NET'овского String.Format? А то есть мысль сваять аналог самому. Удобнейшая штука ведь.
А то?
System::Format()
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, tarkil, Вы писали:
T>Ладно, фигня это всё. Лучше скажите (вопрос ко всем), видел кто-нибудь реализацию на плюсах удобных типобезопасных форматных строк в стиле .NET'овского String.Format? А то есть мысль сваять аналог самому. Удобнейшая штука ведь.
Boost.Format, baby!
Кстати, String.Format не является статически типизированным в отличии от Boost.Format.
Здравствуйте, VladD2, Вы писали:
VD>Тут вынужден был писать тест на С++. В общем, то объем плевый. Но тем неменее давно я не получал столько внеполового секса на ровном месте. Большая часть этого секса была связана с общением с WinAPI, но один случай свяазанный именно с плюсами мне очень понравился. Собственно им я и хочу поделитсья. Написал я вот такой код:
VD>Думаю, самый зоркие уже догадались в чем проблема. Я тоже довольно быстро догадался, но впечатлиение осталось. Собственно им и делюсь.
Я довольно малоопытный программист, но мысли свои выскажу.
Не стоит ожидать от С++ черезчур высокой заботливости и подстраховывания, этот язык рассчитан не на это. Конечно, я знаю все эти разговоры про то что рынку абсолютно пофик на "программистские причуды" главное чтобы продукт был написан во время и без ошибок. Но! Всё-же, ведь мы проводим долгие вечера в некотором роде "беседуя" с компилятором, — Попробуй скомпилировать вот это, а? Что не получаеться? Это? А так? Вероятно что это всё-таки откладывает какой-то отпечаток в мозгу (кстати, психологи: хорошая тема для диплома — Несознательная замена человеческого общения).
И вот С++ компилятор возлагает очень большую ответственность на программиста но кроме этого он в некотором "льстит" программисту, считая его гениальным, даже компилируя
for(char a = 255;a<=256;a++); он думает, — Я конечно это слабо понимаю но вероятно какой-то хитроумный замысел за этим стоит, так что лучше не буду ничего говорить.
Так что С++ даёт громадную свободу в сочетании с удобством программисту и рассчитан на то что человек знает что он делает, никто-же не даёт скальпель начинающему или когда нужно отрезать кусок колбасы (тут можно C# или Java)? Я просто не видел ещё языка с такой свободой, представьте, можно ведь опуститься даже до того чтобы изменить синтаксис языка, не говоря уже о таких фичах как свободное управление памятью и т.д..! По-моему, именно свобода и сделала С++ таким популярным.
Короче. Если принять аналогию что программирование на ассемблере сродни строительству из кирпичей а программирование на VB -- составлению домов из готовых блоков, то программирование на C++ это лепка из пластилина.
Всё, кому не нравиться, собери себя garbage collector'ом
Жду минусов
... << А писал я этот бред на RSDN@Home 1.1.4 stable rev. 510, под звуки ДДТ — Tы будешь вечно>>
Здравствуйте, Чипсет, Вы писали:
Ч>Короче. Если принять аналогию что программирование на ассемблере сродни строительству из кирпичей а программирование на VB -- составлению домов из готовых блоков, то программирование на C++ это лепка из пластилина.
программирование на C++ — это сборка из разноразмерных железобетонных модулей от множества производителей, с последующей подгонкой несовпадающих частей при помощи напильника и ловлей множества представителей царства насекомых, которые пробрались внутрь мимо увлеченно работающих напильниками строителей
Здравствуйте, GlebZ, Вы писали:
GZ>Эээ, нет. Тут проблема такая. В семантике каждый может ошибиться. Но ошибки синтаксические компилятор должен находить. И в С# большинство находит. За счет этого можно больше времени уделять семантике чем синтаксису. Поверь мне, после того как попишешь в обоих языка, твое мнение станет объективным и доказуемым.
Позволю себе вмешаться. Синтаксическую ошибку в программе VladD2 компилятор нашел, но посчитал ее предупреждением. Не обращать внимание на предупреждения не стоит ни в С++, ни в С#. Как минимум, надо на них посмотреть и решить, стоит ли игнорировать, а лучше вообще убрать.
А что касается вывода, то ошибка в спецификации строки вывода ловится только в рантайме. Вот такое
float f = 9;
Console.WriteLine("{0,8:d}", f);
компилируется на ура
А вот такое
Console.WriteLine("{0,8:d}");
и вообще работает, только выводит не то, что автор хотел , а то, что здесь есть.
Здравствуйте, Чипсет, Вы писали:
Ч>Не стоит ожидать от С++ черезчур высокой заботливости и подстраховывания, этот язык рассчитан не на это.
+1
>>И вот С++ компилятор возлагает очень большую ответственность на программиста но кроме этого он в некотором "льстит" программисту, считая его гениальным, даже компилируя Ч>for(char a = 255;a<=256;a++); он думает, — Я конечно это слабо понимаю но вероятно какой-то хитроумный замысел за этим стоит, так что лучше не буду ничего говорить.
Я бы так выразился. Он не ограничивает мою свободу написать ерунду, но при этом и не ограничивает свободу написать вполне хороший код. C# во многом предостерегает от того, чтобы написать ерунду, но при этом лишает меня свободы делать то, что я хочу и брать при этом ответственность за последствия на себя.
Позволю себе вольную аналогию.
C++ — язык свободного (иначе западного) общества. Можете делать все, что не запрещено законом, но ответственность за свои действия сами и несете. Вляпаетесь в неприятную историю, (прогорите, например. как бизнесмен) — сами и выпутывайтесь.
А .Net мне незабвенной памяти развитой социализм напоминает — партия позаботится о том, чтобы Вы влево-вправо не ходили, вели себя как положено, что явно не разрешено — не делали, и если будете все эти правила соблюдать — ваша пайка Вам гарантирована.
Ко всем участникам боевых действий в этом треде (и к себе тоже, конечно !
Предлагаю военные действия прекратить и заключить мирный договор на следующих принципах
1. Адепты C++ признают, что есть задачи, для которых C# и .Net лучше подходят, чем unmanaged C++ код.
2. Адепты C# и .Net признают, что есть задачи, для которых C++ и unmanaged C++ код подходят лучше , чем C# и .Net.
3. И те, и другие признают, что есть задачи, для которых ни то, ни другое не очень подходит, а лучше всего подходит
нечто третье.
Всем, кто с этим согласен — прошу, поставьте плюс.
Всем, кто с этим несогласен — прошу, поставьте минус.