Subject: Re: [boost] [http] Design ideas for a request router
From: Rodrigo Madera (rodrigo.madera_at_[hidden])
Date: 2016-03-15 13:10:53


On Tue, Mar 15, 2016 at 7:41 AM, Artyom Beilis <artyom.beilis_at_[hidden]>
wrote:

> There is another critical point.
>
> Compilation time - and I'm serious about it. Web development
> is very dynamic by its nature if you make too many things in
> "fancy-template-meta-programming-compile-time"
> you'll loose users.
>

I don't think that Vinicius' Boost.HTTP tries to be a Web container of some
sort, but rather a library used by such containers. That would encapsulate
a lot of that dynamic nature into the next architecture layer.

If users want C++ for web server development, you would think that they
know the nature of C++ and the implications of wanting such optimized code.
If not, then maybe provide a macro (something like
BOOST_HTTP_FAST_COMPILATION) where optimization is not a goal, but rather
compilation times. I don't know if this impacts greatly on the
implementation though, or if it only concerns a small portion of the
library.

> If you try to do all the stuff by GCC/Clang as Turing machine
> you'll end with horrible compilation times and unmaintainable
> code
>

That would be encapsulated into a library, not user code. Indeed
maintaining a library is no easy task.

> For example one of the reasons I use Boost.Asio very carefully
> due its header-only nature with almost impossible compilation
> times.
>

Better to have high compilation times and very decent optimizes code than
not to. But again, this is MHO.

Madera