C++ кто-нить сейчас использует, новые фичи, по-полной?

olis
Уже с Приветом
Posts: 4935
Joined: 02 Mar 2002 10:01
Location: UK

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by olis »

evpo wrote:
berlagaB wrote: Шучу, шучу. Я сам очень уважаю и люблю С++. Но селяви такова какова и причины, почему кернелистны не слишком завязаны на С++, весьма убедительны. Хоть и не беспорны. :)
Как я понял, основная причина в том, что они мысленно "компилируют" Си код. Другими словами, они представляют какой ассемблер будет сгенерирован компилятором из написанного ими Си кода.

Из этого я делаю вывод, что знание Си подразумевает знание ассемблера порождаемого из Си кода. То есть, в объявлении можно писать C/assembler.

Я сам недавно оптимизировал мной написанный модуль на C++ и не мог продвинуться дальше пока не начал читать ассемблер.
Дык собственно сам Линус объясняет:
"Trust me - writing kernel code in C++ is a BLOODY STUPID IDEA.

The fact is, C++ compilers are not trustworthy. They were even worse in
1992, but some fundamental facts haven't changed:

- the whole C++ exception handling thing is fundamentally broken. It's
_especially_ broken for kernels.
- any compiler or language that likes to hide things like memory
allocations behind your back just isn't a good choice for a kernel.
- you can write object-oriented code (useful for filesystems etc) in C,
_without_ the crap that is C++."

Основное пожалуй exception handling
berlagaB
Уже с Приветом
Posts: 344
Joined: 03 Dec 2014 23:49

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by berlagaB »

evpo wrote:
berlagaB wrote: Шучу, шучу. Я сам очень уважаю и люблю С++. Но селяви такова какова и причины, почему кернелистны не слишком завязаны на С++, весьма убедительны. Хоть и не беспорны. :)
Как я понял, основная причина в том, что они мысленно "компилируют" Си код. Другими словами, они представляют какой ассемблер будет сгенерирован компилятором из написанного ими Си кода.

Из этого я делаю вывод, что знание Си подразумевает знание ассемблера порождаемого из Си кода. То есть, в объявлении можно писать C/assembler.

Я сам недавно оптимизировал мной написанный модуль на C++ и не мог продвинуться дальше пока не начал читать ассемблер.
Примерно так и есть. С-компилятор не вносит никакой "магии", ничего не скрывает, это практически мультиплатформенный ассемблер. В нем нет специфических С++ проблем, например проблема порядка инициализации статических переменных из разных модулей вообще не существует, потому что ничего автоматически не инициализируется. :) Компилятор не генерит лишнего кода для поддержки исключений и ран-тайм информации о типах. И т.д.
olis
Уже с Приветом
Posts: 4935
Joined: 02 Mar 2002 10:01
Location: UK

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by olis »

А вообще ядро Symbian на С++ было написано, но там урезанный С++
User avatar
Medium-rare
Уже с Приветом
Posts: 9194
Joined: 04 Mar 2011 03:04
Location: SFBA

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by Medium-rare »

berlagaB wrote:В нем нет специфических С++ проблем, например проблема порядка инициализации статических переменных из разных модулей вообще не существует, потому что ничего автоматически не инициализируется. :)
Не дадите ли ссылочку на то. А то читаю, и не верю своим глазам.
... and even then it's rare that you'll be going there...
berlagaB
Уже с Приветом
Posts: 344
Joined: 03 Dec 2014 23:49

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by berlagaB »

Medium-rare wrote:
berlagaB wrote:В нем нет специфических С++ проблем, например проблема порядка инициализации статических переменных из разных модулей вообще не существует, потому что ничего автоматически не инициализируется. :)
Не дадите ли ссылочку на то. А то читаю, и не верю своим глазам.
Ссылочку на что именно? На проблему или что не существует?
User avatar
M. Ridcully
Уже с Приветом
Posts: 11999
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by M. Ridcully »

Medium-rare wrote:
berlagaB wrote:В нем нет специфических С++ проблем, например проблема порядка инициализации статических переменных из разных модулей вообще не существует, потому что ничего автоматически не инициализируется. :)
Не дадите ли ссылочку на то. А то читаю, и не верю своим глазам.
Видимо имеется в виду, что такие переменные инициализируются только константными выражениями, сталбыть порядок не важен. В отличие от C++.
Мир Украине. Свободу России.
berlagaB
Уже с Приветом
Posts: 344
Joined: 03 Dec 2014 23:49

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by berlagaB »

M. Ridcully wrote:
Medium-rare wrote:
berlagaB wrote:В нем нет специфических С++ проблем, например проблема порядка инициализации статических переменных из разных модулей вообще не существует, потому что ничего автоматически не инициализируется. :)
Не дадите ли ссылочку на то. А то читаю, и не верю своим глазам.
Видимо имеется в виду, что такие переменные инициализируются только константными выражениями, сталбыть порядок не важен. В отличие от C++.
Да, именно это я имел ввиду.
User avatar
Medium-rare
Уже с Приветом
Posts: 9194
Joined: 04 Mar 2011 03:04
Location: SFBA

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by Medium-rare »

berlagaB wrote:потому что ничего автоматически не инициализируется. :)
Ага, смайлик, блин. :)
... and even then it's rare that you'll be going there...
evpo
Новичок
Posts: 33
Joined: 05 Mar 2011 11:48
Location: Австралия

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by evpo »

olis wrote:А вообще ядро Symbian на С++ было написано, но там урезанный С++
Напомнило Confession of Google Employee.

"Урс разрешил использовать С++, но запретил использовать некоторые особенно вредые возможности языка"
"Что именно он запретил из С++?"
"Все!"
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by Alexandr »

berlagaB wrote: Шучу, шучу. Я сам очень уважаю и люблю С++. Но селяви такова какова и причины, почему кернелистны не слишком завязаны на С++, весьма убедительны. Хоть и не беспорны. :)
я бы сказал так: крайне близки к бесспорности :)
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by Alexandr »

evpo wrote: Из этого я делаю вывод, что знание Си подразумевает знание ассемблера порождаемого из Си кода. То есть, в объявлении можно писать C/assembler.
Я сам недавно оптимизировал мной написанный модуль на C++ и не мог продвинуться дальше пока не начал читать ассемблер.
Вы очень правильно понимаете, потому что:
1) нужно хорошо понимать, что компилятор сможет соптимизировать, а что нет
2) компилятор может соптизимить так, что изменится смысл написанного
3) часть кода банально написана на ассемблере либо из-за скорости, либо из-за невозможности выразить требуемое на С++
4) иногда требуется напрямую пользовать SSE, AVX расширения, что по сути равно знанию ассемблера
5) нужно банально знать устройство процессора и понимать, как код на нем исполняется, опять же, либо банально для скорости, либо для корректности (например, знать, что nontemporary writes не соблюдают memory orderings).
насчет С++ и вашей оптимизации, да банально нужно знать, что делает компилятор, без этого никуды
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by Alexandr »

olis wrote: Основное пожалуй exception handling
его можно просто отключить :)
olis
Уже с Приветом
Posts: 4935
Joined: 02 Mar 2002 10:01
Location: UK

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by olis »

Alexandr wrote:
olis wrote: Основное пожалуй exception handling
его можно просто отключить :)
Симбиан так и сделал :)
User avatar
Boriskin
Уже с Приветом
Posts: 18862
Joined: 30 Aug 2001 09:01
Location: 3rd planet

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by Boriskin »

Alexandr wrote:
olis wrote: Основное пожалуй exception handling
его можно просто отключить :)
Когда я в последний раз смотрел на страндарт Embedded C++ (давно, но врядли что существенно изменилось), то именно в нем говорилось об отсутствии обработки исключений, так что это не симбиан, это стандарт. И в целом - понятно и очевидно, почему оно так было задекларированно.
Тупизна как Энтропия. Неумолимо растет.
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by Alexandr »

Boriskin wrote:
Alexandr wrote:
olis wrote: Основное пожалуй exception handling
его можно просто отключить :)
Когда я в последний раз смотрел на страндарт Embedded C++ (давно, но врядли что существенно изменилось), то именно в нем говорилось об отсутствии обработки исключений, так что это не симбиан, это стандарт. И в целом - понятно и очевидно, почему оно так было задекларированно.
не обязательно в Embedded, обычный C++ также можно избавить от исключений, что немало крупных компаний и делают, например гугл
User avatar
Medium-rare
Уже с Приветом
Posts: 9194
Joined: 04 Mar 2011 03:04
Location: SFBA

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by Medium-rare »

Исключения, которые можно не использовать, надуманный аргумент.
Qt почти целиком exception free фреймворк.
... and even then it's rare that you'll be going there...
berlagaB
Уже с Приветом
Posts: 344
Joined: 03 Dec 2014 23:49

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by berlagaB »

Во-первых, как вопрошал Кот Матроскин "если молоко отдавать - зачем тогда корову покупать?!"
Во-вторых, можно наложить ограничения на себя, но невозможно наложить их на всех и каждого. Что делать, если ислючения используются в сторонних библиотеках? не говоря уж о собственно С++ рантайм.
User avatar
M. Ridcully
Уже с Приветом
Posts: 11999
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by M. Ridcully »

На всех и каждого тоже можно, если это централизованно билдится.
Но вот вопрос - вся standard library будет работать без исключений? Как насчёт буста?
Мир Украине. Свободу России.
User avatar
Medium-rare
Уже с Приветом
Posts: 9194
Joined: 04 Mar 2011 03:04
Location: SFBA

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by Medium-rare »

Говорю же, Qt. Он такой всеобъемлющий, что в нём сейчас уже столько, сколько нигде больше нет. В нём есть аналоги почти всего, что есть в STL (или даже просто всё), плюс вообще всё, хоть Networking, хоть браузеры, только что Chrome затащили в WebEngine. Мне вдруг понадобились websockets, пожалуйста, уже там. В Qt однажды заявили exceptions где-то в concurrency, потом замяли, но в общем и целом, нигде нет исключений, для тех, кого они почему-то очень сильно беспокоят.
... and even then it's rare that you'll be going there...
User avatar
M. Ridcully
Уже с Приветом
Posts: 11999
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by M. Ridcully »

Что QT?


- Петька, приборы?
- 25!
- Что "25"?
- А что "приборы"?


QT стандартную библиотеку не заменяет.
Мир Украине. Свободу России.
User avatar
Medium-rare
Уже с Приветом
Posts: 9194
Joined: 04 Mar 2011 03:04
Location: SFBA

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by Medium-rare »

http://qt-project.org/

То, с чем нравится работать.
Вообще без нужды что-то ещё использовать в реальном проекте.
Кроме как именно внешняя библиотека CEF для кастомизированного Chrome браузера использует STL, так никаких проблем взаимодействия, на лету вам std::string сообразим.
... and even then it's rare that you'll be going there...
User avatar
M. Ridcully
Уже с Приветом
Posts: 11999
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by M. Ridcully »

Да не, я знаю, что такое Qt.

У меня вопрос именно про Standard Library - вся ли функциональность доступна, если билдить без исключений?
Мир Украине. Свободу России.
vtl
Уже с Приветом
Posts: 2131
Joined: 17 Jan 2011 00:24

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by vtl »

Кобол растёт? IBM объявила клиентам, что следующее поколение System Z не будет полностью и всеобъемлюще совместима с 40-летней s/360, и клиенты стали искать людей, которые им программы перекомпилируют?
User avatar
turic
Уже с Приветом
Posts: 418
Joined: 11 Mar 2014 03:30
Location: Spb->SFBA

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by turic »

M. Ridcully wrote: А Блумберг, по-моему, сейчас просто широким бреднем гребёт. И для NYC, и для SF.
Да это так. Только пройти их интревью для прикладного программиста очень сложно.
Willy Wonka
Уже с Приветом
Posts: 632
Joined: 23 Oct 2006 19:55
Location: London

Re: C++ кто-нить сейчас использует, новые фичи, по-полной?

Post by Willy Wonka »

Последние 3 кода каждый день C++11. Последний год С++14.

Самое ходовое: auto, constexrp, default constructors, lambdas, move-semantics, decltype, variadic templates, ну и C+11 stdlib.

Return to “Работа и Карьера в IT”