Really nice! As a former C embedded developer, I totally agree with the lecturer. I have been using C++ for over 2 years for, let's say, system programming. I am still learning C++ and I am getting rid of C programming habits. It is not easy but I see profits.
@@189Blake Sorry You have to wait for my response so long. My answer is no. Lately, I've changed jobs and I use both C and C++. If you were a monk and wrote embedded code in pure C++ for fun the answer would be yes, dive into C++ and leave C. However, in real life, nothing is black and white. Companies still use C and a little C++. I have to admit C++ has lots of advantages over C but experience tells me you have to know both.
you all prolly dont give a shit but does anyone know a tool to log back into an Instagram account?? I was dumb lost my login password. I would love any assistance you can offer me
The real change between C and C++ is the friends you made a long the way. Ok I'll stop now. Great talk! Been writing embedded code in C++ for a little bit (not as long as most folks here), We mainly do C++ and rarely see any C code. Something I've noticed over the years at least where i work at, is how we refuse to leave the C++11 world. I understand the fear of always upgrading to the latest but, it sometimes hurt to miss out on some of the newer features. For instance constexpr functions in 14 without having to use twenty ternary operators would make the code so much readable and easier to debug. Going into more details would take too much of my time, but i did appreciate the talk :)
Very important team skill information. As fresh computer engineer (Diplom Ingenieur Technische Informatik FH Flensburg University of Applied Sciences) I had a short talk with oldest colleage about object oriented programming and using its possibilities, he was fully trusted by and advising the boss of that small software company with 1 mio. lines of code (modular programming style). He were not interested at all, so I keep my mouth closed for years about OOP as I did not want to loose my job. Few years later when we all worked on porting to windows I answered another me asking colleage that OOP might help to keep his tasks done, this time he tried and used it for productive code in user interface parameter code (but not for running measurements inside the measurement kernel system).
Another big thing is using operator overloading and templates to write a good and safe fixed point math library. Fixed point math is very common in embedded devices, and it is so easy to get bugs with overflows and misplaced shifts that could have been caught at compile time!
Excellent presentation. I'm one of those newer bucks that never learned C and went right into C++. Let me tell you the frustration I would have when I would watch C++ videos on youtube, and you see printf and scanf. Then you find out its C.. and that the videos you are watching that clearly say C++ are really teaching you C and C++ which never sat right with me.. it confused my learning.. but now I understand there are C++ guys who use some C in their code because they say its a bit lighter than the C++ counterpart.. not sure how true that is, but to each their own. I think that is just one of the things that happens with C people who learn C++.. they end up merging the two languages together in their code. It was just aggravating learning C mixed in with C++ because as a beginner you dont know what is C, and what is C++, nor do you know if the author used it properly that its more efficient or if they are just teaching bad programming habits. As someone who just learned C++, and not C first I had to go back and learn the basics of C just to truly understand what it is that makes C++ different. So in my mind those who learn, and know C have an advantage to those who dont know C and learn C++ that they can appreciate the tools more and have a better idea how to use those new tools.. They will already know what problems in C that those new tools fix.. whereas people like me will have no idea why those tools exists.. that they werent always around and were later added to address situations that happen in C. But once you learn C++ and learned the basics of C to see the differences.. you can go and learn C without it interfering with your C++.. but I think once you learn C++ you wont really care to use C.. even when programming that Arduino.. C++ people will just use C++ out of habit and for fun than using C code. What I would like to see in a talk which mightve been done already was why the preference of C over C++ for certain tasks... such as why C is the preferred language to use when building Linux kernels. I think that would help people see the languages in a different light and better adjust to the transition.
Streams in C++ can get quite expensive in some situations. In other situations using printf helps keeping things more readable. All in all, printf is a libc function, and one of the good things of C++ is complete compatibility with C interfaces, so I don't really see a big issue with using some C functions *if you have a reason for that*. For example: printf( "{\"%s\": %s} ", "hello", "world); vs std::cout
There is a new library called fmt, which will give printf like functionality in a type safe matter. Watch this talk for more about this: th-cam.com/video/g51_HYn_CqE/w-d-xo.html
Excellent Presentation.. Thanks.. I think for Better embedded Software Development there should be few Good Driver Library for Standard most used Modules. And Some Common HAL layers standards Which make Embedded Developer's Life Easy..
How about using header (usually auto-generated from RDL/IPXACT/etc.) with register definitions and linker script with an IVT... from a vendor instead of making it your problem? Even if there's no vendor header it's just a one-time thing that rarely if ever change.
Just use #pragma pack(1) if you want to get rid of your padding bytes. wth. You can also just add compiler warning to error parameters to gcc in c? I feel like none of these points are valid.
Thankfully now the ECE program at my program has two required C++ data structures and algorithms. Even if you don't go into something involving software, you'll at the very least be better at writing a faster matlab script or analyzing or interfacing with your system with something like python or an embedded system hooked up to your computer.
Good job and thanks. I work as an embedded software. Engineer in the USA. Only 1% of my fellow engineers are professionals that learned grade school. The are fakes that have almost no knowledge or capabilities. They can’t even read or write as processionals. The reason c++ is unpopular is because they don’t have clue what design is, and an architecture of one bad module. Bye..
sir i was dropped out from my engineering school in 3rd year and after i leaned by my self and i am working in a small company , but i wanna apply for overseas could you help me to and give me a advice ?
Most jobs wont even consider your application just because you don't have a degree, even if you are qualified for the job in terms of technical ability If possible, I recommend finish that degree
Start ups are probably your best bet, they tend to be less strict about following those requirements, they typically just want someone who can get the job done, is qualified and has a “get it done” attitude
I don’t agree with your definition of what an embedded system. I believe because of technology it’s been blurred. A Raspberry Pi for example. Is it an embedded system? Yes and No. An Arduino Hat connected with a Raspberry Pi. Don’t forget the Ada Language that was standardized in 1983. A Data Structure is a defined grouping that represents real world Data Type(s). You also need to deal with careful consideration with pointers to these structures. You need to treat C and C++ as different languages.
Really nice! As a former C embedded developer, I totally agree with the lecturer. I have been using C++ for over 2 years for, let's say, system programming. I am still learning C++ and I am getting rid of C programming habits. It is not easy but I see profits.
Would you recommend to avoid C and jump straight into Embedded C++ if possible?
@@189Blake Sorry You have to wait for my response so long.
My answer is no. Lately, I've changed jobs and I use both C and C++. If you were a monk and wrote embedded code in pure C++ for fun the answer would be yes, dive into C++ and leave C. However, in real life, nothing is black and white. Companies still use C and a little C++. I have to admit C++ has lots of advantages over C but experience tells me you have to know both.
you all prolly dont give a shit but does anyone know a tool to log back into an Instagram account??
I was dumb lost my login password. I would love any assistance you can offer me
@@dylanryan5125 Yeah. It's called, put in your email and reset the password doofus.
They are so familiar yet have distinct differences so it's worth learning both. And you will find both in embedded systems quite often.
The real change between C and C++ is the friends you made a long the way. Ok I'll stop now. Great talk! Been writing embedded code in C++ for a little bit (not as long as most folks here), We mainly do C++ and rarely see any C code. Something I've noticed over the years at least where i work at, is how we refuse to leave the C++11 world. I understand the fear of always upgrading to the latest but, it sometimes hurt to miss out on some of the newer features. For instance constexpr functions in 14 without having to use twenty ternary operators would make the code so much readable and easier to debug. Going into more details would take too much of my time, but i did appreciate the talk :)
Very important team skill information. As fresh computer engineer (Diplom Ingenieur Technische Informatik FH Flensburg University of Applied Sciences) I had a short talk with oldest colleage about object oriented programming and using its possibilities, he was fully trusted by and advising the boss of that small software company with 1 mio. lines of code (modular programming style). He were not interested at all, so I keep my mouth closed for years about OOP as I did not want to loose my job. Few years later when we all worked on porting to windows I answered another me asking colleage that OOP might help to keep his tasks done, this time he tried and used it for productive code in user interface parameter code (but not for running measurements inside the measurement kernel system).
Did he go fired? xD
Great talk, and thanks for fixing the slides!
Another big thing is using operator overloading and templates to write a good and safe fixed point math library. Fixed point math is very common in embedded devices, and it is so easy to get bugs with overflows and misplaced shifts that could have been caught at compile time!
Excellent presentation. I'm one of those newer bucks that never learned C and went right into C++. Let me tell you the frustration I would have when I would watch C++ videos on youtube, and you see printf and scanf. Then you find out its C.. and that the videos you are watching that clearly say C++ are really teaching you C and C++ which never sat right with me.. it confused my learning.. but now I understand there are C++ guys who use some C in their code because they say its a bit lighter than the C++ counterpart.. not sure how true that is, but to each their own. I think that is just one of the things that happens with C people who learn C++.. they end up merging the two languages together in their code.
It was just aggravating learning C mixed in with C++ because as a beginner you dont know what is C, and what is C++, nor do you know if the author used it properly that its more efficient or if they are just teaching bad programming habits. As someone who just learned C++, and not C first I had to go back and learn the basics of C just to truly understand what it is that makes C++ different. So in my mind those who learn, and know C have an advantage to those who dont know C and learn C++ that they can appreciate the tools more and have a better idea how to use those new tools.. They will already know what problems in C that those new tools fix.. whereas people like me will have no idea why those tools exists.. that they werent always around and were later added to address situations that happen in C.
But once you learn C++ and learned the basics of C to see the differences.. you can go and learn C without it interfering with your C++.. but I think once you learn C++ you wont really care to use C.. even when programming that Arduino.. C++ people will just use C++ out of habit and for fun than using C code.
What I would like to see in a talk which mightve been done already was why the preference of C over C++ for certain tasks... such as why C is the preferred language to use when building Linux kernels. I think that would help people see the languages in a different light and better adjust to the transition.
Streams in C++ can get quite expensive in some situations. In other situations using printf helps keeping things more readable. All in all, printf is a libc function, and one of the good things of C++ is complete compatibility with C interfaces, so I don't really see a big issue with using some C functions *if you have a reason for that*.
For example:
printf( "{\"%s\": %s}
", "hello", "world);
vs
std::cout
There is a new library called fmt, which will give printf like functionality in a type safe matter.
Watch this talk for more about this: th-cam.com/video/g51_HYn_CqE/w-d-xo.html
@@MeetingCPP fmt is also coming to C++20. By the way, you might have meant th-cam.com/video/Az-hi8tKLGY/w-d-xo.html
Excellent Presentation.. Thanks..
I think for Better embedded Software Development there should be few Good Driver Library for Standard most used Modules. And Some Common HAL layers standards Which make Embedded Developer's Life Easy..
How about using header (usually auto-generated from RDL/IPXACT/etc.) with register definitions and linker script with an IVT... from a vendor instead of making it your problem? Even if there's no vendor header it's just a one-time thing that rarely if ever change.
Just use #pragma pack(1) if you want to get rid of your padding bytes. wth. You can also just add compiler warning to error parameters to gcc in c? I feel like none of these points are valid.
@1:04:04 isdigit() is not available in an embedded standalone environment. The standalone environment is badly defined in Modern C++
Anyone here could recommend a good book which focuses more on these aspects with C++ ? really into the nitty gritties
Thankfully now the ECE program at my program has two required C++ data structures and algorithms. Even if you don't go into something involving software, you'll at the very least be better at writing a faster matlab script or analyzing or interfacing with your system with something like python or an embedded system hooked up to your computer.
Still waiting for our university EEE course to introduce this in addition to the very basic C programming course.
great lecture!
does experience embedded software developer get paid like a lets a more traditional developers like Java development or javascript ?
Unfortunately embedded c get less even there tasks involve more headache 😞
wow, i was living in dark
nice work
Good job and thanks. I work as an embedded software. Engineer in the USA. Only 1% of my fellow engineers are professionals that learned grade school. The are fakes that have almost no knowledge or capabilities. They can’t even read or write as processionals. The reason c++ is unpopular is because they don’t have clue what design is, and an architecture of one bad module. Bye..
Hey, I was wondering if you could give me some tips/ resources to use so I can become a good embedded software developer. Thanks!
Were you drunk when you wrote this comment, what does that even mean?
Sir can I reapply to software developer because I in computer science study
if we take the abstraction a couple of levels higher we end up with Arduino
sir i was dropped out from my engineering school in 3rd year and after i leaned by my self and i am working in a small company , but i wanna apply for overseas
could you help me to and give me a advice ?
Most jobs wont even consider your application just because you don't have a degree, even if you are qualified for the job in terms of technical ability
If possible, I recommend finish that degree
not possible
@@dushanindunil500 then look for jobs that will day “will substitute degree for experience” but typically those jobs require 6 plus years = one degree
Start ups are probably your best bet, they tend to be less strict about following those requirements, they typically just want someone who can get the job done, is qualified and has a “get it done” attitude
For many years he holds the same talk and try to argue against the facts.
I hope he will find his way to C.
I don’t agree with your definition of what an embedded system. I believe because of technology it’s been blurred. A Raspberry Pi for example. Is it an embedded system? Yes and No. An Arduino Hat connected with a Raspberry Pi. Don’t forget the Ada Language that was standardized in 1983. A Data Structure is a defined grouping that represents real world Data Type(s). You also need to deal with careful consideration with pointers to these structures. You need to treat C and C++ as different languages.