Hello *,

(Grüsse aus München ;)

On Thu, May 26, 2011 at 1:52 PM, Joachim Faulhaber <afojgo@googlemail.com> wrote:
Hi Olaf,

2011/5/24 Olaf Krzikalla <olaf.krzikalla@tu-dresden.de>:
> Hi @all (und ein besonderes Hallo nach Offenburg(?) :-),

Berlin!

>
> Am 23.05.2011 15:14, schrieb Joachim Faulhaber:
>>
>> There is an overview on the boost web-site www.boost.org of course in
[..]
> My approach was to describe each library in terms of a specific problem
> solved by exactly that particular library. Sometimes it was difficult to
> find an appropriate problem.

Teaching boost is important. So thank you again for doing this. Boost
libraries have a mixed reputation. There is a lot of positive feedback
but some find them to be expert friendly, complex and freaked out.
Since many if not most boost authors have more fun designing and
coding than documenting, the docs are sometimes kind of minimal,
sometimes stale.

Your approach IMO is the best one. Finding a catchy use case that
really communicates the basic ideas and may serve as a little
template, both for memorability and for a getting started project is
extremely useful.
I see it pretty similar, but the main goal in teaching boost should be to explain the philosophy of boost. How most of the libs are tighten to compile time and might consist of lots of code, but are really well optimized during the compilation and result in robust and safe code. Explaining all the boost libs will make your lecture at least every year obsolete. I remember that boost had last year around 86 libs, how much are they now? There is already a bunch of accepted libs (e.g. logging) which will be taken into boost after the lib undergoes changes identified in the review process. I think you lecture should definitely focus on explaining the boost core philosophy and introduce some meta programming, to better understand the libraries.

[..]
> IMHO icl::closed_interval could model numeric::interval, which eventually
> would reduce the number of libraries to teach.

thinkable, may be desirable, but ... I don't see this currently. ...
But well, why not look for possibilities. From the point of view of
users and teachers refactorings and simplifications like this one are
desirable. 
 
> OTOH I'm aware of the problem that it is not so easy to put a boost lib on
> an obsolete/superseded list. No author wants to see his lib on such a list.

Which is not the only obstacle.

>> Meta State Machine is a library that generates finite state machines
>> completely at compile-time from meta code. MSN is more expensive at
>> compile time but may generate even faster code than a "traditional"
>> FSM. Maybe Christophe can comment on this.
>
> Eventually during my lecture I marked MSM as the more modern and more
> compact lib and usually the way to go.

I'm not sure. Completely relying on meta programming MSM, might be
more difficult to understand as State Chart and using MSM with large
automata may lead to compile time problems. But I don't want to say
too much here because I did not use both of them in real coding
projects.

Maybe Christophe can comment on this (haaallo, are you there?)
MSM is compile time based, but is also limited by the number of states. I remember that Christophe wrote in some release notes that the number of states in the MSM is around 70. I can't say that it is here black or white, since MSM drives compilers to their limits it is possible that for various reasons there will be the requirement to use conventional FSM implementation. Especially if the compiler is not that good with template instantiated code and produces code bloat. With most popular compilers (g++, MSVC) the code size does not grow linearly with every template instantiation. But there needs to be a use case study which FSM implementation is more convenient for the project needs.



>> There is no ready made structure or institution within boost for this.
>> But definitely there are people who have similar thoughts, concerns
>> and intentions. It depends if someone is going to contribute and/or is
>> taking the lead for an effort like this.
>
> One thing that could help are some powerpoints available for the public
> giving that condensed overview. I could publish mine, but they are in german
> and actually consist of three different lessons.

Publishing this kind of material is surely good contribution. BTW,
boost usage in Germany (downloads per inhabitants) is higher than in
the US ;-) Maybe this is due to people like you, generating appetite
for people to use boost by teaching. Anyway the nice thing is, whether
big or small, English or German, it'll be a contribution to publish
your material via the web.

What about setting up a project for students, to translate your slides
and improve them for publishing purposes.
 
> I'm sure other people have already given boost lectures too. I'd like to see
> their approaches to introduce boost as a whole.

Sure, ..., lecturers ... are you there?
 
Cheers,
Joachim

With Kind Regards,
Ovanes