
Jeff Garland wrote:
From my perspective it's clear that C++ is losing ground to other languages because the lack of 'standard libraries' provided.
<snip> I'm concerned that the lack of "standard libraries" is in part attributable to features of the language which make it hard to "build once - build/run anywhere".
And sometimes b/c of customer requirements Boost isn't cheaper. As someone already mentioned, in the US defense industry, where C++ is used extensively, there are requirements about foreign sources that can create issues for using Boost. Each line of code needs to be inspected, etc, etc. If it's in the standard and from someone like MSFT/IBM then this has likely already been done. So that saves time and money.
maybe true - but I think that's a minority of cases. I'm struck by Ada - A good language I understand with HUGE DOD backing.- but overwhelmed by the spread of C. The latter was due in my opinion to the fact that it was much easier to port to new platforms. I'm thinking we're dismissing a real problem as something that we have no control or influence over. Modern C++ exploits newer features of C++ (i.e. templates) in such as way that it requires either highly conformant compilers and/or workarounds for each/any compiler. This slows down the development and spread of libraries. As an example take just one feature - two phase lookup. Its in the standard - but apparently not every compiler vendor is on board that its a good idea. So many libraries must effectively have two versions (defined by #if/#endif). Mix in a couple more features like this - and its can be a big hassle to get a complicated library ported from one implementation to another Now add concepts. Perhaps a worthy idea. But what about the side effects? presumably it will not be included in all implementations simultaneously and if history is any guide - it will be years -if ever- its commonly supported. This will add yet one more variable to the mix that has to be contended with to make libraries portable. My view is that the adding an interface to the "standard" and declaring implementations that don't include a corresponding implementation "non-conformant" isn't as much help in promoting C++ as it would first appear. It doesn't help the library base grow any faster. To summarize, I think some of the inate features of the language make it harder to write libraries for than other languages and this makes the language less attractive than some newer alternatives. Robert Ramey