Комментарии:
When working on constrained systems, maybe every line does not need to be maximally optimised as you write it but not considering efficiency when writing every line on a constrained system is simply wrong. We all knew and had to deal with this when we had desktops with 32K of ram and MCUs with 4k.
ОтветитьGood advice!
ОтветитьI don't know why it's called "C++ in Constrained Environments" instead of just "Good C++", but I enjoyed it anyways.
Ответить"When you ask for something, and if you get it, you end up paying for it". Good stuff.
ОтветитьAlways a pleasure to listen to Bjarne. One person I'd never watch at 1.5x speed
ОтветитьIt must be strange being Bjarne, or really any core member of the C++ design team. You can look at almost everything you use on a daily basis and know that you had a big hand in making it possible, indirectly.
ОтветитьBetter than rust?! I’m livid rn
ОтветитьWill the header files ever go away in C/C++ ? In other languages we don't have this concept. In java / go / javascript, we just import the packages we need and use them.
ОтветитьB.Stroustrup: "A lot of people look for one solution to all of their problems: one facility, one tool, one language feature, one library...This is not my experience."
Genius!
I'm very interested in Bjarne Stroustrup can play chess or not? Please inform me. (I know people shouldn't have idols)
Ответитьbest answer: not use C++ at all. this language is preached to young nerds for 30 years by NGOs, commissions and consulting agencies indirectly funded by govts who extract money from taxpayers to fund this extremely unproductive method of developing applications. In the times of AI, quantum computing is ridiculous to agonize over tasks as simple as case insensitive compare of two strings or "rule of zero" when declaring a type and other such aberrations.
ОтветитьIt's all about the difference between the flow of technical soap and the flow of thought of bio life. With the thought of bio, let's summarize the intelligent information activity of carbon life, we will use the word "bio". Bio thinks from one identification to another, while the flow of technical thought can and does operate in an endless and uninterrupted flow. And it is the speed, the very advantage of the flow of technical thought, that is based on the fact that it, the flow of technical thought, does not need to be identified, jump from point to point, it can flow without interruption. (Google translation interpretation)
ОтветитьAudio guys need to put some kind of de-esser
ОтветитьGreat overview of what C++ does in the wild and priorities for the C++ eco system.
ОтветитьBjarne, your talks are always my favorite!
Ответить"Battle not with error handling, lest ye become a error handler, and if you gaze into the C++, the C++ gazes also into you."
-- Bjarne, probably.
I did not remember how bad C++ is. I have not written C++ for a long time. I think I like Rust more.
Sorry for that, once I really liked C++ verry much.
I like the idea of this talk, bringing some common sense to C++ land which a lot of people feel is kind of bereft of it, but I don't like that it's apparently necessary. ALL platforms are constrained. Nobody has infinite RAM or CPU cycles, not even Google. If you're writing one-off scripts to automate bits of somebody's workflow, ok, maybe you're not likely to hit those constraints, but those of us writing consumer software will! How is it 2022 and we have an industry full of smart and hardworking people who need to be told this?
"We must deal with real memory..." ALL MEMORY IS REAL MEMORY, BJARNE!
The man who created largest technical debt on the planet. Saved many machine cycles which otherwise would have been spent on type checking in interpreters.
ОтветитьSlide 41: "auto px = unique_ptr<X>(9)" .. this does not make sense. I think make_unique<X>(9) was intended
ОтветитьGreat Talk! Thank you! (=
Ответитьawesome now if only people will listen and follow through
ОтветитьThe compilation speedup with modules will be the number one reason why everyone will want to migrate to C++23 as soon as possible.
ОтветитьOne of the few talks I actually enjoyed listening from start to end in one sitting. Agree with all his points too. Nice comeback on compilation speed using Scala as a reference xD
ОтветитьComplexity and obscurity of CPP20/22 simply makes the language unusable. I think it will slowly go away into the past. Rust is the new future!
ОтветитьVerry impressive! simple and easy to understand. Also very helpful for experienced engineer.😁
ОтветитьI have a C++ library that solves the bit manipulation problem you describe. By using strong typing, you can hide all the bit manipulation and make the code readable and very efficient. Not only that, it also hides hardware variations and allows for one templates function that works for very different hardware implementations. I.e an MCU with a 16 bit timer and 8 bit timer (like that found in an atmega 328pu). It's still a work in progress but it already works quite well.
ОтветитьThe only reason I use C++ is to be able to build desktop apps with Qt. If Rust, Nim, Zig, Odin were as well integrated I would switch immediately. C++ hast nothing to offer other than force of habit and spread.
ОтветитьA talk about embedded.
volatile-deprecation.
Thank you Bjarne Stroustrup and cppcon for helping to educate the masses on programming with respect to the constraints/context of the situation given.
ОтветитьGreat Talk! Thanks!😀
ОтветитьSadly, too late, Herb Sutter already told us, USA goverment make C and C++ as 'unsafe' languages and recommended to move away from them. I mean, too late to start writing static checkers - community will move code to Rust
Ответитьthis is why we are love c++
ОтветитьPattern matching:
What is the rational of using yet more keywords for a slight variation of good old "switch-case"? Not only is it another new keyword, more new syntax, but sadly it also LACKS functionality of the switch-statement.
Why not instead just make it a functional extension of the switch-statement? Why not have an attribute for non-fallthrough or fallthrough behaviour? It would even work if "switch" and "inspect" would work analogous to "struct" and "class" - same underlying principle but different default behaviour.
*AND FOR THE LOVE OF GOD AND EVERYTHING*:
Do NOT make single-character special identifiers that only have that meaning in one specific context.
Yes - i am talking about the abomination that is '_' for what is a "default" in a switch-statement. That is just wrong.
I think the talk incidentally shows whats wrong with current c++. The assumption that the standard library can be used in the embedded environment, which in a lot of cases it can not. So in a lot of cases you are just stuck with union and don't even have the option to use variant. Basically a lot of improvements which would have been amazing for embedded developers went into the library instead of the core language....
ОтветитьI thought it was really profound when he said “once we’ve got vector and the equivalent, we don’t actually need arrays very much and we can do without new and delete in application code”.
As someone who’s done a fair amount of rust, this resonated a lot as I realized that Rust and cpp are actually very similar. Rust has explicit language level unsafe while cpp has guidelines for abstracting safety. This foil is actually really interesting.
Learning from the master. Such a clear minded man Bjarne is! Learning C++ from him is basically learning what a programming language is all about.
ОтветитьStill waiting for the 2021 slides :D
ОтветитьGreat talk, as always. I also dream of a future with a good package mechanism, especially newbie-friendly.
ОтветитьI love CppCon! Appreciate
ОтветитьLink for Slides, please.
Ответить