T>С/С++ даёт вам свободу. Как её использовать — для багов или для уникальных фичей, зависит только от вас Ocaml is slower than C but faster than C++.
Уже одно это говорит что ЯП не очень.
Сильно не углублялся в плюсы, но издалека они очень похожи на жаваскрипт.
Это как дисплозия соединительной ткани. Гибкость есть, а вот ходить нормально не получается.
Здравствуйте, tapatoon, Вы писали:
T>Отвечаю — в С/С++
T>Объясняю на примерах почему
Примеры нерелевантны ситуации на рынке труда. Что востребовано- туда и нужно идти. Сиплюсы давно стали узко специализированной сектой, причём предложение опытных синьёрных "кому за 40" помидоров намного превышает спрос.
Сейчас набежит полтора плюсника- железячник Крейтор и суппортер легаси пластов еао86 ака состим, опять повторят очевидные вещи. Все всплакнут, что веб отжал 90% разработки, и остагутся при своих.
Аё>Все всплакнут, что веб отжал 90% разработки, и остагутся при своих.
Ну, "матерый С++ник кому за 40" без особых проблем может перейти в веб.
А вот обратный переход практически невозможен...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, LaptevVV, Вы писали:
LVV>Ну, "матерый С++ник кому за 40" без особых проблем может перейти в веб. LVV>А вот обратный переход практически невозможен...
Всегда интересовала логика подобных высказываний. Типа С++-сники дофига такие умные, а веб — мартышкин труд? Мой опыт говорит, что программисты, которые имеют дело исключительно с С++, имеют самый зашоренный взгляд и, как в старой шутке, на любом языке будут писать как на С++.
LVV>>Ну, "матерый С++ник кому за 40" без особых проблем может перейти в веб. LVV>>А вот обратный переход практически невозможен... C>Всегда интересовала логика подобных высказываний. Типа С++-сники дофига такие умные, а веб — мартышкин труд? Мой опыт говорит, что программисты, которые имеют дело исключительно с С++, имеют самый зашоренный взгляд и, как в старой шутке, на любом языке будут писать как на С++.
Не так.
Вот я имел дело с начинающими программерами.
И за 2.5 десятка лет неоднократно наблюдал, что школьники, освоившие языки веб даже на хорошем уровне, испытывают БОЛЬШИЕ проблемы с освоением указателей.
Большинство — не осваивает.
О том же писал когда-то Джоэл Спольски.
У них в МИТ при освоении программирования было несколько порогов, два из которых я тоже отмечал у студентов: рекурсия и указатели.
Про указатели он, помнится, писал, что одни — налево (в системные программеры), а другие — направо (в прикладные).
Про обратный переход (от С++) могу сказать, что основная сложность — в освоении инструментария веб-разработки.
Я просто это попробовал.
И где-то за 3 недели от полного нуля в вебе дошел до способности (в моем-то возрасте) написать фронтендную игрушку на JS...
И понимал про node.js
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, so5team, Вы писали:
CC>>Опять таки, смысл чего поменялся между теми же 11 и 14 версиями? S>auto стало можно использовать в качестве параметров в лямбдах. Т.е. в C++14 стало можно так:
Это ж добавилась удобняшка а не поменялся смысл старого.
S>Еще в C++14 сделали полноценный вывод типов возвращаемых значений для функций/методов.
Это тоже добавленое а не изменённое.
Ну т.е. получается таки если включить в настрйках проекта сразу максимальную поддерживаемую компилером версию стандарта то писать код можно в стиле почти любой версии до него без особых запарок.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, so5team, Вы писали:
S>Вообще-то мир очень разный и проекты бывают очень разные.
Никто такой фигнёй не станет заниматься без крайней на то нужды. И если приходится так страдать то у проекта и без того будет куча проблем
S>Это больше на баг (точнее на белое пятно) в стандарте C++17 похоже, а clang до недавнего времени строго следовал стандарту.
Мб, мне на сам стандарт давно до лампочки, я смотрю исключительно на то, что генерит компилятор. Ибо теория ну очень отличается от практики.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, LaptevVV, Вы писали:
LVV>Ну, "матерый С++ник кому за 40" без особых проблем может перейти в веб.
Может, при должной подготовке, штудировании книжек и т.п.- причём, без потери в деньгах.
LVV>А вот обратный переход практически невозможен...
Обратный переход выглядит примерно так:
-хммм ну вот вы ответили на все вопросы, да, неожидали мы такие умные плюсники от жабиста убогонького хихи... а сколько лет говорите, отрыв от плюсного станка? 5 лет? Так так, нехорошо это"
Сколько же вы хотите?
--Ну я сейчас получаю скромно, XXX, меньше никак не может быть.
"у обоих интервьюверов глаза округляются, грохот падающей на пол челюсти"- мы вам перезвоним (C).
Здравствуйте, CreatorCray, Вы писали:
Аё>>железячник Крейтор CC>Как много порой узнаёшь о своей специализации на кывте CC>Нет, Артёмка, я не железячник.
Ты не проектировщик IC конечно же, но на низком уровне с железом толи дрова толи фильтры в близко к ядру пишешь. Короче, железячник.
LVV>>А вот обратный переход практически невозможен... Аё>Обратный переход выглядит примерно так: Аё>-хммм ну вот вы ответили на все вопросы, да, неожидали мы такие умные плюсники от жабиста убогонького хихи... а сколько лет говорите, отрыв от плюсного станка? 5 лет? Так так, нехорошо это" Аё>Сколько же вы хотите? Аё>--Ну я сейчас получаю скромно, XXX, меньше никак не может быть. Аё>"у обоих интервьюверов глаза округляются, грохот падающей на пол челюсти"- мы вам перезвоним (C).
Ну, у меня тогда вопрос: а чего это из веба в С++ подался-то, если там так хорошо было.
А во-вторых почитай мой ответ про молодых программеров.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, CreatorCray, Вы писали:
CC>Это ж добавилась удобняшка а не поменялся смысл старого. CC>Это тоже добавленое а не изменённое.
Так исходная формулировка -- "А что тут непонятного, когда пишешь код ориентируешься на определённую версию стандарта. Она разрешает или запрещает определённые инструкции" -- говорит не только о запретах, но и новых возможностях. Вот в C++14 появилось несколько фич, которых не было в C++11, т.е. С++14 разрешил определенные инструкции.
Причем пара из упомянутых мной вещей (реальный auto для вывода типа возвращаемого значения и init-выражения в capture list) сделала доступным то, что в рамках C++11 делалось э... через одно место и с кучей ненужных усилий.
Собственно, само по себе высказывание "пишешь под определенный стандарт C++" означает не что иное, как использование фич из стандарта, которых не было в предыдущих стандартах. Из-за чего откат на предыдущий стандарт либо невозможен, либо слишком дорог.
И это как бы не совсем то, что "включаешь определенный стандарт в опциях компилятора", т.к. в большинстве случаев нормально написанный код на C++14 будет компилироваться и в режиме C++17, и C++20 (а в скором времени и в C++23).
Здравствуйте, CreatorCray, Вы писали:
S>>Вообще-то мир очень разный и проекты бывают очень разные. CC>Никто такой фигнёй не станет заниматься без крайней на то нужды.
"Отучаемся говорить за всех" (с)
CC>И если приходится так страдать то у проекта и без того будет куча проблем
Не думаю, что разработчики Qt или какого-нибудь Connext DDS (или OpenDDS) так уж страдают и имеют кучу проблем.
Здравствуйте, so5team, Вы писали:
S> говорит не только о запретах, но и новых возможностях.
Поскольку в С++ всё ещё стараются заботиться об обратной совместимости то за новые возможности переживать не стоит — в максимально поддерживаемом стандарте они все должны наличествовать.
Так что переживать стоит только за то, что было запрещено после какой то версии.
Об этом и была речь — что ж там такого было запрещено?
S>сделала доступным то, что в рамках C++11 делалось э... через одно место и с кучей ненужных усилий.
Это скомпилируется в С++20?
S>Собственно, само по себе высказывание "пишешь под определенный стандарт C++" означает не что иное, как использование фич из стандарта, которых не было в предыдущих стандартах.
Это означает именно что ограничивание себя именно этой версией стандарта, тогда как обычно пишут так, как лучше выходит.
Предлагаешь потом лазить по коду и выяснять какой же итоговый набор фич был использован и какому стандарту он соответствует?
Нафига?
S> Из-за чего откат на предыдущий стандарт либо невозможен, либо слишком дорог.
А зачем вообще этот откат?
S>И это как бы не совсем то, что "включаешь определенный стандарт в опциях компилятора", т.к. в большинстве случаев нормально написанный код на C++14 будет компилироваться и в режиме C++17, и C++20 (а в скором времени и в C++23).
Верно. Потому нет никакой нужды ставить для нового проекта что либо ниже чем текущий стандарт, чтоб просто писать и не париться что в какой то момент придётся лезть и поднимать версию стандарта просто потому что понадобилась более новая фича
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, so5team, Вы писали:
CC>>Никто такой фигнёй не станет заниматься без крайней на то нужды. S>"Отучаемся говорить за всех" (с)
Ты правда сейчас хочешь сказать что ты станешь заниматься такой фигнёй без крайней на то нужды?
CC>>И если приходится так страдать то у проекта и без того будет куча проблем S>Не думаю, что разработчики Qt или какого-нибудь Connext DDS (или OpenDDS) так уж страдают и имеют кучу проблем.
Таки страдают и таки имеют. Поддержка зоопарка версий это тот ещё геморрой.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, CreatorCray, Вы писали:
S>> говорит не только о запретах, но и новых возможностях. CC>Поскольку в С++ всё ещё стараются заботиться об обратной совместимости то за новые возможности переживать не стоит — в максимально поддерживаемом стандарте они все должны наличествовать.
Не обязательно. Сходу вспоминается std::aligned_storage, введенный в C++11 и помеченный к удалению в C++23. Или uncaught_exception, который был до C++11, видоизменился в C++11 (помечен как noexcept вместо throw), помеченный к удалению в C++17 и удаленный в C++20.
CC>Об этом и была речь — что ж там такого было запрещено?
Между C++11 и C++14, емнип, ничего не запрещалось.
S>>сделала доступным то, что в рамках C++11 делалось э... через одно место и с кучей ненужных усилий. CC>Это скомпилируется в С++20?
Должно.
S>>Собственно, само по себе высказывание "пишешь под определенный стандарт C++" означает не что иное, как использование фич из стандарта, которых не было в предыдущих стандартах. CC>Это означает именно что ограничивание себя именно этой версией стандарта
Да.
CC>тогда как обычно пишут так, как лучше выходит.
В первый раз с таким сталкиваюсь. Везде были ограничения на максимальную версию стандарта (или версию компилятора, если стандарт еще не полностью реализован, как это было с долгостроями C++98, C++11 и нынешним C++20). Но это мой опыт, он сильно ограничен.
CC>Предлагаешь потом лазить по коду и выяснять какой же итоговый набор фич был использован и какому стандарту он соответствует?
Не нужно лазить. Обычно у компиляторов есть ключики -std.
CC>Нафига?
Что бы не иметь проблем с переносом софта на другой компилятор/платформу.
S>> Из-за чего откат на предыдущий стандарт либо невозможен, либо слишком дорог. CC>А зачем вообще этот откат?
Именно откат -- это форс-мажор, означающий что кто-то где-то сильно облажался.
А вот чтобы такого форс-мажора не было, в определенном классе ПО ограничивают версию стандарта для того, чтобы иметь возможность собирать софт разными компиляторами на разных платформах.
S>>И это как бы не совсем то, что "включаешь определенный стандарт в опциях компилятора", т.к. в большинстве случаев нормально написанный код на C++14 будет компилироваться и в режиме C++17, и C++20 (а в скором времени и в C++23). CC>Верно. Потому нет никакой нужды ставить для нового проекта что либо ниже чем текущий стандарт
Это от типа проекта зависит. Ну и от желания побегать по граблям самых свежих версий компиляторов, в которых поддержка новых фич из новых стандартов еще только-только появилась.
Здравствуйте, CreatorCray, Вы писали:
CC>>>Никто такой фигнёй не станет заниматься без крайней на то нужды. S>>"Отучаемся говорить за всех" (с) CC>Ты правда сейчас хочешь сказать что ты станешь заниматься такой фигнёй без крайней на то нужды?
Хорошо бы определить понятие "крайней нужды". Ибо для проектов, вроде Qt, Connext DDS или nginx переносимость на разные платформы и разные компиляторы -- это повседневная обыденность.
CC>>>И если приходится так страдать то у проекта и без того будет куча проблем S>>Не думаю, что разработчики Qt или какого-нибудь Connext DDS (или OpenDDS) так уж страдают и имеют кучу проблем. CC>Таки страдают и таки имеют. Поддержка зоопарка версий это тот ещё геморрой.
Да? Ну ладно, геморрой так геморрой, хоть буду знать как это называется.