Subject: Re: [boost] is review system in place is extremely slow? (was Re: [rfc] rcpp)
From: Andreas Masur (amasur_at_[hidden])
Date: 2010-03-06 12:44:28
On Mar 2, 2010, at 12:26 PM, Andrey Semashev wrote:
> On 03/02/2010 12:18 AM, Gennadiy Rozental wrote:
>>> I understand, and last thing I would've wanted in this area is being
>>> hasty. But that doesn't change the shape of things - the standard is
>>> way behind modern tendencies and technologies that are needed on a
>>> daily basis. IMHO, by the time C++1x is out, it will be outdated already.
>> Somehow I do not agree. It will take good several years at best for the
>> new features to be implemented and even more to properly being used in
>> users' code. On the other hand it depends on what you mean by "modern
>> tendencies". Maybe it's good we are behind.
> I did not mean the new features that will be standardized in C++1x. They are great, I'm really anxious to get my hands on many of them. But that's not enough. Dynamic/static modules, properties, network and asynchronous IO in general, binary serialization (portable between different architectures), XML support - for a start. Let alone the holy grail of GUI, even the most basic one. These things are there for ages, and they are needed almost all the time. I understand that there are great libraries, including Boost, but every other library added to the project adds complexity, which is not required with other languages. For some things there are no libraries for there's just not enough language support (modules, for instance).
Well...I am not really sure whether I can agree in this case. Languages are in general slow to adopt. C++ is certainly one of the slowest that I know, however, there are other languages where features are getting into the language after they have been out in the wild for a bit. Support for DLS is starting to be built into some of the mainstream languages such as C# which can alleviate the lack of specific features in the language to some extent.
Nonetheless, there is always a thin line for a language designer to decide whether or not a particular feature should be added to the language itself. Once languages become bloated due to their richness in features and scenarios they try to attack, their usability and effectiveness tends to decrease somewhat. Certainly, it is up to the language design to hopefully prevent this but history has shown that this is not always successful.
The current trend seems to go towards having a rich library support rather than putting everything into the language itself. Microsoft's .NET is certainly a prime example for this. As I mentioned above, DSL's are another area that seems to grow very fast at the moment although one could argue that they are essentially similar to libraries but just called a language....granted this is certainly a little bit trivialized.
Personally, I do not necessarily think that the language should support every little area that is possible. Languages should focus on providing the fundamental architecture instead. One can certainly argue about what is considered fundamental as different users have different opinions and needs. From my point of view, any language with support for handling libraries in an easy and flexible manner - allowing users to pick the library that fits their needs best in a particular situation - is going to be successful in the near future. As you said, this will add complexity, however, may be one of the goals for a language should actually be trying to remove this complexity while dealing with libraries....
Certainly this is only my $0.02 cents....
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk