Boost logo

Boost Users :

Subject: Re: [Boost-users] [boost] condensed overview of boost
From: Ovanes Markarian (om_boost_at_[hidden])
Date: 2011-05-27 03:21:57


Hello *,

(Grüsse aus München ;)

On Thu, May 26, 2011 at 1:52 PM, Joachim Faulhaber <afojgo_at_[hidden]>wrote:

> Hi Olaf,
>
> 2011/5/24 Olaf Krzikalla <olaf.krzikalla_at_[hidden]>:
> > 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



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net