3 ms·
> I found that for embedded C++ to be successful, you need to have some good (excellent sometimes was harmful, but that's a different topic) Why were excellen
by wallscratch 6y ago
> I found that for embedded C++ to be successful, you need to have some good (excellent sometimes was harmful, but that's a different topic)
Why were excellent C++ skills sometimes harmful?
- jeffreygoesto 6y agoFirst of all, it leaves the team behind if you use features that are too advanced. Makes collaboration hard if you have wildly diverging skills (in both ways). Also, it did in our case take you away so far from the bare metal, that the code was elegant, but slow. It did not play well with our static allocators and allocated/deallocated way too much, especially temporaries. You might i.e. check out talks like [0]. [0] https://m.youtube.com/watch?v=NH1Tta7purM https://m.youtube.com/watch?v=NH1Tta7purM
- deng 6y agoI agree. Another thing to consider is portability. You might have to port your software to obscure platforms with bad C++ compilers where compiler bugs are not uncommon at all, so it's better to stay clear of more advanced features. Also, you might have a legacy system which does not have modern C++ compilers, so you might have to restrict yourself to C++03. Another thing is code size, so templates should be used judiciously.
- dmurray 6y agoThese replies both don't seem like they describe someone with "excellent" C++ skills. Sounds more like someone who knows a lot of advanced features of the language, but doesn't make the correct tradeoffs considering portability and/or performance. Maybe it could be that he didn't know all the requirements up front and his mediocre colleague accidentally wrote code that better suited the company's unstated requirements (e.g. portability to niche systems). But that's hardly the most likely explanation.
- jeffreygoesto 6y agoAh, ok. In my head I do have a distinction between excellent C++ and excellent domain skills. So that person had excellent C++ skills but did not properly choose which C++ subset to use for the domain. From your comment I think you would say "excellent" implies "in all relevant aspects", whereas I just meant the pure programming language. What I tried to write in my first comment is that it is more and more difficult to find both combined in one person.