Am 30.05.2012 00:49, schrieb Zveroboy:

I'm a modern C++ programmer, who is switching to D.
I would like to start developing efficient and performance oriented
websites for small businesses and may be ecommerce. Performance is my goal.

I've been researching a number of cutting edge frameworks. It seems that
now, the most popular web-dev framework that also has a good performance
is node.js.

From what I understand vibe.d is a next step that has a better handling
of threads and can embed D. vibe.d is also much more comfortable. vibe.d
is young but I don't plan on big projects.

The other framework that I'm looking into is wt. It's gui oriented but
it doesn't bother me. Wt is more mature.

From my view, these two frameworks don't overlap that much. If I want
to build an interactive website with a bunch of widgets, I'd use WT. if
I want to build a prototype or a quick website that mainly has
categorized information with some interactivity (like blog or wiki), I'd
use vibe.d.

However for when they overlap, what would be the benefit of using
vibe.d? and how would its performance compare to Wt? I couldn't
understand how does vibe.d generate the code for client, optimize the
generation of the code, and where does it gain in performance comparing
to node.js (besides running embedded d).

PS: opa is another framework (language) that I looked into. it also
looks good for prototyping.


I cannot really compare the performance of Wt to vibe, but currently the
main performance benefit over node.js indeed comes from the fact that
everything is statically compiled, including the built-in Diet HTML
templates (*). We also plan to integrate transparent multi-threading for
v1.0, which will automatically scale to the number of CPU cores. The
interesting difference to node.js and (I think) Wt is that the event
driven nature is usually hidden from the user by using
fibers/coroutines. And, in addition to technical aspects, IMO the D
language itself is also an great benefit regarding productivity and

The framework currently provides a reasonable base of high-level
functionality, while still allowing all low-level control that may be
necessary in certain situations (roughly comparable to
node.js+express+some more). It does not yet have advanced browser side
features such as a JavaScript generator of some kind, but there is a
REST interface generator that makes ordinary D functions available as
REST requests. This generator could be easily extended to generate
JavaScript that could be used on the client side to call these functions.

The general scope is also meant to basically stay as it is currently:
Provide the basic functionality in a comfortable way and be embeddable
as a library.

For a higher level application framework along the lines of rails you
can also look at - still in early
development but shows a possible direction for a productivity layer. A
widget based framework like Wt would certainly be another interesting
possibility, but someone would have to jump in and do it.


(*) A comparison benchmark with some other frameworks is planned
somewhere in the next weeks.