3 ms·
tl;dr: organizations using '90s languages that forbid you to use features from the '90s are bad and you should leave them. Note: I understand that C and C++ ar
by CoffeeDregs 15y ago
tl;dr: organizations using '90s languages that forbid you to use features from the '90s are bad and you should leave them. Note: I understand that C and C++ are still great languages/tools for certain tasks/toolboxes, but a blog post about management not letting you using the STL is perhaps relevant only to the Mil-Aero crowd. [Or am I wrong?]
- spacemanaki 15y agoWell you might not be wrong but you're maybe reading it a little too literally. I fought for months to get management let us think about migrating to Git (from CVS!), and it never happened. (I left less than a month ago, before it ever was agreed upon). I think it's a similar situation, because although I'm not a C++ programmer, I believe STL is pretty heavily used and is not "cutting edge technology". I would argue Git is in the same boat, but even if you disagree, CVS is ancient technology. If you find yourself in this situation, and you're a programmer, "call your headhunter"! That's what I should have done months ago, and instead thought things could change. I think there are probably others like that and that's who this post was talking to.
- mtviewdave 15y agoMy last job was as a compiler guy at a large Electronic Design Automation company. The product I worked on was written mostly in C++, but we weren't allowed to use the STL. The reason was that the early versions of the product were written before the STL was stable across all platforms used at the company* (which included things like IBM AIX, HP-PA, etc.). So the original developers (back in the late '90s) wrote a number of container class templates that were used instead. Of course, once those were in place, you had to keep using them, as mixing STL and non-STL containers would have been a maintenance nightmare. I would suspect there's a lot of old C++ software that falls into this category. Especially if cross-platform compatibility was/is important. (*Actually, it was often insinuated that the STL is _still_ not 100% compatible between Linux and these more exotic platforms. I have no idea if this is true.)
- signa11 15y agohmm, iirc, there used to be something called stlport by boris-fomitchev (sp ?) a looong time ago. which would allow you to use at least the basic subset of stl (containers/algorithms/iterators) across a wide range of compilers. not sure how relevant it is today...
- copper 15y agoIt still exists, and it's still relevant /if/ you're in the situation Dave above describes - and you have sufficient clout to get stlport included in your code. In almost every other situation where you can actually use the stl, it's probably a better idea to use the libs that come with the compiler.
- Ogre 15y agoAlso video game companies. Maybe not the management part, but there's a lot of resistance by game programmers to STL because of: * Poor support in console environments, which often lag significantly behind their desktop equivalents (I'm not sure how relevant this is for PS3/X360/Wii, but it was definitely the case for the previous generation, and some things get deeply ingrained) * Poor debug performance for some implementations * Less control over low level implementation details, vs. rolling your own. Game developers stress out over this. STL is a general purpose library. Sometimes a special purpose library really is what you want. Here's a relevant stackexchange discussion: http://gamedev.stackexchange.com/questions/268/stl-for-games-yea-or-nay http://gamedev.stackexchange.com/questions/268/stl-for-games... And here's a paper discussing EA's STL replacement, with lots of justifications: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.html http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n227...
- deleted 15y ago[deleted]
- minimax 15y agoSurely you must see the irony of typing up your zing about C++ being relevant only to the "mil-aero" crowd into a web browser that is almost certainly written entirely in C++.
- vonmoltke 15y agoI took that line as an example of management putting undue constraints on the options of developers, not that the post is literally about STL usage. After all, sometimes there are valid reasons for not using the STL. And sometimes, the constraints are worse than that. I'm a member of the Mil-Aero crowd, and my problem is that I'm not allowed to use C++. I have to do everything in ANSI C (this is for a high-performance, massively parallel Linux application, BTW). I try to write OO C as much as is sensible, but end up getting ribbed by the long-time program members as being "one of the OO guys". I'm surrounded by people who think the art and science of software development hasn't really advanced since 1994 or so. That, I think, was the core of Andrei's message: don't put up with crap like this, call your headhunter.