Здравствуйте, Артём, Вы писали:
Аё>Здравствуйте, so5team, Вы писали:
S>>Тёмчик, ты сам в своих словах противоречий не видишь? Если что, то не стесняйся, спроси, я покажу пальцем.
Аё>http://rsdn.org/forum/flame.comp/8279055.1
S>Ну т.е. и не видишь, и спросить стесняешься. Тёмчик как он есть.
Я ничего не стеяняюсь. Что ты можешь ответить на это — скорость разработки будет сильно ниже, с библиотеками сильно хуже, геморроя сильно больше. ?
Тебе платят за геморрой, или за результат?
S>>Ну т.е. и не видишь, и спросить стесняешься. Тёмчик как он есть.
Аё>Я ничего не стеяняюсь.
Так ответь на вопрос: видишь ли ты вот в этих своих словах противоречие или нет?
Так это широкий спектр задач
Притом, из ядра, из драйверов, C++ так и не вытеснил C.
Численные рассчеты- ну давай, покажи мне датааналистов, квантов- экспертов в C++. Там питон, матлаб, R.
"общее прикладное" это что вообще? Десктоп? См. выше.
Аё>Что ты можешь ответить на это — скорость разработки будет сильно ниже, с библиотеками сильно хуже, геморроя сильно больше. ?
Это все разговоры о сферических конях в вакууме пока не озвучена задача, условия, сроки и бюджет.
Аё>Тебе платят за геморрой, или за результат?
Обычно за качество результата. В нишах, где исторически живут C и C++, а сейчас туда пытается пробраться и Rust.
Здравствуйте, so5team, Вы писали:
S>Так ответь на вопрос: видишь ли ты вот в этих своих словах противоречие или нет?
S>
Так это широкий спектр задач
S>Притом, из ядра, из драйверов, C++ так и не вытеснил C.
S>Численные рассчеты- ну давай, покажи мне датааналистов, квантов- экспертов в C++. Там питон, матлаб, R.
S>"общее прикладное" это что вообще? Десктоп? См. выше.
Это нынешнее состояние C++. Популярность его осталась в прошлом. Ты пытаешься указать, что C++ всегда был никому не нужен, но это далеко не так.
S>Обычно за качество результата.
Ну вот потратил ты, условно, 2000 человеко часов на продукт на C++. Он работает, поначалу не требователен к ресурсам. Но через 24 часа он выжирает всю память и падает. А еще рандомно падает, когда это не ждешь. И вот ты еще 1000 часов тратишь на поиск проблемы, а оно не находится.
И другой чал, потратил 500 часов, продукт крутится месяцами без перезапуска. Чел уже 3 продукта выпустил. А ты все с одним страдаешь. Заказчик чешет репку и в следующий раз просит делать на жава.
Так это широкий спектр задач
S>>Притом, из ядра, из драйверов, C++ так и не вытеснил C.
S>>Численные рассчеты- ну давай, покажи мне датааналистов, квантов- экспертов в C++. Там питон, матлаб, R.
S>>"общее прикладное" это что вообще? Десктоп? См. выше.
Аё>Это нынешнее состояние C++.
Т.е. не видишь. ЧТД.
Аё>Ты пытаешься указать, что C++ всегда был никому не нужен, но это далеко не так.
Во-первых, не это.
Во-вторых, не пытаюсь.
S>>Обычно за качество результата. Аё>Ну вот потратил ты, условно,
Ну вот, опять сферокони в вакууме. Сам страшилки придумал, сам испугался, сам нашел выход. Ну, молодец, чё.
Здравствуйте, Артём, Вы писали:
Аё>Только в макоси в ядре COM и C++.
COM? В macOS?
Аё> Можешь рассказать нам, как хорошо работают исключения и вообще стандартный рантайм C++ в ядре.
Артёмка
Твои вопросы говорят лишь о полном непонимании тобой вопроса. Потому ты даже то, что тебе отвечают, понять не можешь.
Ядерный код вообще довольно таки по другому пишется.
И рантайм используется совсем другой чем для юзермоды.
И исключения в ядре используются тоже совсем по другому.
Ты пытаешься натянуть чуть ли не вебовские представления как надо говнокодить на совсем другую область.
Здравствуйте, so5team, Вы писали:
S>А с учетом того, что первую версию Windows начинали писать на Pascal
Можно подробнее об этом?
Я помню, что во времена Windows 3.x и Windows 95 передача аргументов в функциях WinAPI была как в Паскале.
Как-то увидев код под OS/2 заметил, что функции называются так-же, но аргументы идут в обратном порядке.
Здравствуйте, AleksandrN, Вы писали:
S>>А с учетом того, что первую версию Windows начинали писать на Pascal
AN>Можно подробнее об этом?
Ссылку не предоставлю, но где-то в 1992-ом в одной из первых русскоязычных книг по Windows (за авторством Фроловых, емнип) было написано, что Microsoft начинали делать Windows 1.0 на Pascal (у них тогда был собственный компилятор Паскаля). Отсюда и паскалевское соглашение о вызовах. Но затем, уже в процессе работы Pascal был заменен на C, однако паскалевское соглашение о вызовах осталось.
Здравствуйте, CreatorCray, Вы писали:
Аё>>Только в макоси в ядре COM и C++. CC>COM? В macOS?
Да.
Аё>> Можешь рассказать нам, как хорошо работают исключения и вообще стандартный рантайм C++ в ядре. CC>Артёмка CC>Твои вопросы говорят лишь о полном непонимании тобой вопроса. Потому ты даже то, что тебе отвечают, понять не можешь.
Твои ответы говорят лишь о полном непонимании предмета
CC>Ядерный код вообще довольно таки по другому пишется. CC>И рантайм используется совсем другой чем для юзермоды.
Я это пытаюсь донести, но ты же уперся.
CC>И исключения в ядре используются тоже совсем по другому.
Попросту говоря, стандартные исключения C++ не поддерживаются. Как и стандартный рантайм C++.
CC>Ты пытаешься натянуть чуть ли не вебовские представления как надо говнокодить на совсем другую область.
Я разбирал доки, как писать свой драйвер- в 2011. Тогда написал вместо этого в юзермоде. Заголовочные файлы интерфейсов для драйвера тогда выглядели весьма странно- как самописный COM.
Здравствуйте, Артём, Вы писали:
CC>>COM? В macOS? Аё>Да.
Где?
Аё>Твои ответы говорят лишь о полном непонимании предмета
Дада, конечно!
CC>>И рантайм используется совсем другой чем для юзермоды. Аё>Я это пытаюсь донести, но ты же уперся.
А ничо что рантайм вообще то пишется под платформу, так что он по определению везде хоть в чём то да другой.
Как уже говорилось — понимание предмета у тебя отсутствует.
Аё>Попросту говоря, стандартные исключения C++ не поддерживаются.
Если задаться целью то можно и их поддержать, но нафига? Это совершенно не то, что в ядре нужно.
Аё> Как и стандартный рантайм C++.
Аё>Я разбирал доки, как писать свой драйвер- в 2011. Тогда написал вместо этого в юзермоде. Заголовочные файлы интерфейсов для драйвера тогда выглядели весьма странно- как самописный COM.
Артёмка, я написал несколько драйверов. И вообще больше десятка лет пишу код для кернела.
И ты мне хочешь щас рассказать как оно там на самом деле?
Здравствуйте, CreatorCray, Вы писали:
CC>>>COM? В macOS? Аё>>Да. CC>Где?
В заготовочных файлах драйверов макоси.
Аё>>Попросту говоря, стандартные исключения C++ не поддерживаются. CC>Если задаться целью то можно и их поддержать, но нафига? Это совершенно не то, что в ядре нужно.
Аё>> Как и стандартный рантайм C++. CC>
Язык C++ имеет стандарт. То, что в ядре макоси C++ — это не стандарт. Там хорошо, если 30% от стандарта обрезок.
Аё>>Я разбирал доки, как писать свой CC>Артёмка, я написал несколько драйверов.
И не понял, что в дровах макоси комовские интерфейсы.
Здравствуйте, Артём, Вы писали:
CC>>Где? Аё>В заготовочных файлах драйверов макоси.
Покажи пальцем
Аё> То, что в ядре макоси C++ — это не стандарт. Там хорошо, если 30% от стандарта обрезок.
А то что доступно на всяких там микрочипах где и файловой системы то нету — чо, тоже не стандарт?
CC>>Артёмка, я написал несколько драйверов. Аё>И не понял, что в дровах макоси комовские интерфейсы.
Для начала расскажи что ты понимаешь под "дрова макоси". Потому как в макоси есть kexts и это совсем не то, что называют дровами.
Ну и никаких COM интерфейсов в kext отродясь не было.
Здравствуйте, serj.e, Вы писали:
SE> Ну так и абстракции как бы немного разные: высокоуровневые инструменты не позволяют так просто взять и спуститься до кеш-линий, атомарности, раскладки данных в памяти, барьеров, кастомных аллокаторов и т.д. В общем, для всего того, что нужно для платформ и движков, и совершено излишне при формошлепстве и автоматизации очередной шаурмятни (99% работы на рыночке).
Ну С++ к этому стремится улучшая свою memory model, раньше в С++98 не было никакой memory model, т.е. компилятор ничего не знал о потоках, атомарных операциях и sequential consistency, в С+11 это знание появилось и далее только улучшается, отчасти уводя особо сложные вещи, ведущие к ошибкам под копот компилятора
Здравствуйте, CreatorCray, Вы писали:
CC>Покажи пальцем
Ты пишешь дрова для макоси, вот и показывай. Я те заголовки читал в 2011г. И с тех пор в моей работе нет сиплюсов. Даже если бы хотел- нет в нормальных компаниях сиплюсов. И да, я не в Долине как ты, и не в Бабруйске как со5стим.
Аё>> То, что в ядре макоси C++ — это не стандарт. Там хорошо, если 30% от стандарта обрезок. CC> CC>А то что доступно на всяких там микрочипах где и файловой системы то нету — чо, тоже не стандарт?
Ты можешь называть что там на микрочипах как угодно. Но, если что-то попало в стандарт C++ и этого чего-то нет в реализации- то код на стандартном C++ не переносим на микрочипы. Т.е. микрочипы- это не C++. Это очевидно.
CC>>>Артёмка, я написал несколько драйверов. Аё>>И не понял, что в дровах макоси комовские интерфейсы. CC>Для начала расскажи что ты понимаешь под "дрова макоси". Потому как в макоси есть kexts и это совсем не то, что называют дровами. CC>Ну и никаких COM интерфейсов в kext отродясь не было.
Это нельзя называть полноценным COM- но там были подсчет ссылок AddRef, Release и, возможно, uuid. Но это неточно.
Здравствуйте, AmSpb, Вы писали:
AS>Ну С++ к этому стремится улучшая свою memory model, раньше в С++98 не было никакой memory model, т.е. компилятор ничего не знал о потоках, атомарных операциях и sequential consistency, в С+11 это знание появилось и далее только улучшается, отчасти уводя особо сложные вещи, ведущие к ошибкам под копот компилятора
Хохма в том, что C++ по части memory midel в догоняющих за Java. И не только в memory model.
Здравствуйте, Артём, Вы писали:
Аё>Но, если что-то попало в стандарт C++ и этого чего-то нет в реализации- то код на стандартном C++ не переносим на микрочипы. Т.е. микрочипы- это не C++. Это очевидно.
Не очевидно и в целом неверно, но доля правды в твоих словах есть. Насколько я знаю (из интервью Антона Полухна), комитет думает над тем, что разделить стандарт С++ на части. Делить будут (?) как раз по признаку, на каких устройствах какая часть языка может выполняться. Типа будет базовый С++, достцпный везде, в том числе на микроконтроллерах. А дальше уже можно будет указывать комилятору, какие части стандарта допустимы.
Почему я считаю твою позицию неверной — потому что такая частичная поддержка стандарта изначально была золожена в С++ и по умолчанию подразумевалась, но формально не декларировалась. Сделают такое формально — что изменится? Да ничего, простое удобство, но твои аргументы уже не прокатят. На многих bare metal платформах вполне пишут на С++ со всеми его шаблонами и С++17 стандартом, но не используют динамическую память (нет оператора new). Ну и что? Да ничего, частичная подержка языка всегда была, есть и будет. Код наисан на С++? Да. Он переносим? Да. Можно на эту латформу перенести любой другой С++ код? Нет. В этом и сила С++, что он такое позволяет.
Здравствуйте, Артём, Вы писали:
CC>>Покажи пальцем Аё>Ты пишешь дрова для макоси, вот и показывай.
Ну т.е. это был твой художественный свист
CC>>А то что доступно на всяких там микрочипах где и файловой системы то нету — чо, тоже не стандарт? Аё>Ты можешь называть что там на микрочипах как угодно. Но, если что-то попало в стандарт C++ и этого чего-то нет в реализации- то код на стандартном C++ не переносим на микрочипы. Т.е. микрочипы- это не C++.
Артёмка, ты как обычно рассуждаешь о том, о чём не имеешь понятия.
CC>>Ну и никаких COM интерфейсов в kext отродясь не было. Аё>Это нельзя называть полноценным COM- но там были подсчет ссылок AddRef, Release и, возможно, uuid. Но это неточно.
Если для тебя COM это refcounting и наличие uuid — у меня для тебя плохие новости касательно уровня твоих знаний.
Здравствуйте, Nuzhny, Вы писали:
N>На многих bare metal платформах вполне пишут на С++ со всеми его шаблонами и С++17 стандартом, но не используют динамическую память (нет оператора new).
Как можно называть стандартом C++ нечто, в чем отсутствует базовая фича? Т.е. практически ничего из сторонних библиотек C++ нельзя использовать.
Здравствуйте, Артём, Вы писали:
Аё>Как можно называть стандартом C++ нечто, в чем отсутствует базовая фича? Т.е. практически ничего из сторонних библиотек C++ нельзя использовать.
Добро пожаловать в реальный мир, Артёмка.