4 ms·
Specifically- it appears to be mostly C99, lots of macros, lots of ugly buffer manipulation. But it's tooled for PREFast so you know it's secure! (https://githu
by randomfool 5y ago
Specifically- it appears to be mostly C99, lots of macros, lots of ugly buffer manipulation. But it's tooled for PREFast so you know it's secure! (https://github.com/microsoft/omi/blob/4ce2cf1cb0aa656b8eb934c5acc3f4d6a6796bfa/Unix/protocol/protocol.c#L193 https://github.com/microsoft/omi/blob/4ce2cf1cb0aa656b8eb934...) (j/k... I haven't seen that in ages). Guessing a port of MS's internal WMI codebase?
This codebase just smells of rot all over.
- pjmlp 5y agoThat is why there is "Modern C", "Modern C++" as talked at conferences, blog posts and endless over here, and then real life code that we actually find out in production.
- silon42 5y agoSo the choice is RIIR or RIIC++ ?
- pjmlp 5y agoIt can also be RIIC#, RIID, RIIGo, RIIAda, RIIJava,... take your pick.
- int_19h 5y agoI've seen and written plenty of modern (at the time of writing) C++ in production. It really depends on the team and the product.
- pjmlp 5y agoSure, yet this is the outcome from companies deeply involved in ISO, let alone those where regular folks don't even care HN exists.
- int_19h 5y agoIronically, most modern C++ code I wrote was not for Microsoft, but a much smaller company that is not in any way involved in ISO C++ standardization process. It was due to that company culture - senior engineering leadership (which were also the founders) were all big standard C++ fans, and they wrote much of the original codebase. Large companies like MS often have codebases that are so ancient (e.g. HRESULTs and IF_ERR_GOTO type macros everywhere), they only get modernized very gradually if at all.
- pjmlp 5y agoI only use C++ for libraries that are then plugged into managed runtimes. Most of the stuff I see in the wild could be considered what I call C+, basically MFC style with plenty of C love. While Microsoft has the excuse for older code bases, stuff like WRL and C++/WinRT also has its share of not only following what is preached regarding C++ Core Guidelines love.