
Beth Jacobson <bethj@bajac.com> writes:
David Abrahams wrote:
Aleksey Gurtovoy <agurtovoy@meta-comm.com> writes:
All other issues aside, I find the "Cutting-Edge Libraries" group ill-conceived and bordering on the edge of offensive (for the library author).
I agree, but I think we've all decided that category is going away (right?)
I thought the objections were to the original name (bleeding edge), which I changed to cutting edge to sound less experimental.
I didn't notice the change. You're right that it sounds slightly less experimental, but it is reminiscent of and still suggests "bleeding edge." More importantly, it's a misleading distinction for most people. The description # If words like "generic" and "metaprogramming" get your blood racing, this is the place for you. These libraries provide a framework for trying out the latest programming techniques, and like all Boost Libraries are stable enough for use in production code. basically is useful for the programmer who's looking at Boost as a learning experience, but is likely to put off the production programmer who doesn't want her blood racing. The last bit doesn't provide much reassurance; it sounds defensive and unconvincing. This category also suggests that anything you haven't put there is somehow less sophisticated. The whole idea of a "simple/advanced/cutting-edge" hierarchy doesn't seem to work, to me. I'm looking at Boost.Random in the simple category, for example. From my point of view, understanding what that library provides requires a deep understanding of numerical issues that's out of reach for most programmers. Is the parameter library "cutting edge?" I think so. Does using it require great sophistication? No. In fact, it belongs in the "C++ Enhancements" category, because it provides, essentially, a language extension in library form. As does lambda.n
Is the problem still with the name, or is it with the category description, or the category itself?
Well, I guess I don't like the categories.
The intent of the page is to encourage people to explore the Boost libraries. I tried to create categories that would appeal to various interests and ability levels
Good idea; the execution isn't there yet, though.
and that would give a broad overview of the sorts of things Boost has to offer.
Also good. If you list all the libraries you can't help but do that :)
I thought that support for the latest programming concepts and techniques would have been of real interest to some.
Yes, it's of interest to those who are here for an educational experience. That's an important role of Boost, but let's not suggest that the other libraries have less education or innovation to offer.
If that's a mistake, I could eliminate that category altogether and move its contents to "Specialized Libraries". If the categorization is sound but the name/description is bad, perhaps someone could suggest something better. Most of the libraries in that group are beyond my own skill level and experience, so it's difficult for me to describe the group well.
I'm not sure they should be grouped. Okay, let me take a shot at this. The category I'm least sure about is "system-level." It feels right, but I can't justify it. This is an attempt to fit everything into a single category, unlike Boost's current list. I don't feel as though any of the library is being badly shortchanged or pigeonholed, but others may disagree. I copied the libs from Beth's list, but it seems short; Beth, are you sure you didn't miss anything? * Class definition utilities operators, noncopyable, base_from_member, compressed_pair * Language Enhancements - libraries that make the standard C++ core language easier and safer to use, or extend its capabilities in "language-like" ways. Many relieve common frustrations of programmers with the C++ language. Datatypes: variant, optional/in-place-factories, tribool, integer Language extensions: foreach, enable_if, parameter, ref Safety: conversion, value_initialized, checked_delete, * Standard Library Enhancements - libraries that make the standard C++ library easier and safer to use or extend its capabilities in evolutionary ways. Many relieve frustrations commonly encountered when using the standard library (see also Functional Programming) IO: io state saver, iostreams, format Containers/data structures: assign, pointer container, array, bitset, multi_index, multi-array, tuple Iterators: iterators, next/prior, range Algorithms: minmax * Functional Programming - libraries for working with functions and function objects. Especially useful in conjunction with STL algorithms, but any program can benefit from functional programming idioms. lambda (see also bind), bind/mem_fn (see also lambda), functional (deprecated), function * Numerics, number crunching, high-performance computing. CRC, functional/hash, random, rational, graph/property map, interval, math, ublas * Testing and debugging timer, static_assert (see also MPL assert), concept check, test, * Parsing and Text Processing Regex, XPressive, Spirit, tokenizer, string_algo * System-level libraries Program options, date-time, filesystem, threads, serialization, signals, pool, Python * Code Generation Preprocessor, wave * Type information, synthesis, and computation Type Traits, Call Traits, MPL * Portability compatibility, config -- Dave Abrahams Boost Consulting www.boost-consulting.com