On Tue, 11 Mar 2014 03:31:49 GMT, Darius Clark wrote:

  1. Is it possible to make diet provide the client a minify version of my website like how jade is compiled into.

I would see that as a milestone to a good web framework, unfortunately that's what Vibe.d currently lacks. You'd have to minify any javascript files manually, and let gzip/deflate do the job for compression.

  1. Noticing you can embed D in diet templates, is it possible to obtain data being submitted from D itself? In express I would do res.render("index",{key:'value'}) to be able to do something like #{key}, but how would I do this with vibe.d?

The diet example at /examples/diet/source/app.d shows us you can pass D variables like this:
res.render!("diet.dt", req, local_var, is_admin);

which makes it available in views/diet.dt as:
input(type='checkbox', checked=is_admin ? "checked" : null) Admin
for isadmin if it's in a statement, or #{isadmin} if you'd like to print it inline.

  1. Understanding that diet templates are compiled into the executable, how would this bring performance in delivering data to the clients? Does the templates reside in memory when the server is running?

The D statements in diet templates are compiled into native machine code by the compiler, the diet code is compiled into the corresponding HTML as immutable strings (which I'd assume the compiler would send in .rodata segments of the program) and are sent to the OutputStream directly during runtime execution. You can't get any faster.

Also, could anyone provide a more clear document on vibe.d if one is available? Since I am familiar with node.js, express/sails, jade, C and C++, many of the syntax are pretty familiar, but the code is extremely different than node.js, and any available document other than whats on vibed.org, and examples on github would help me alot more.

The best way to learn a D program is to read its source code. I find it very intuitive and self-explanatory, but it could be just me. Thankfully, reading anything inside unittest { } is like reading an example, and the code is so clean you'd be able to understand what it does more quickly by looking at it rather than reading docs. Also, looking at the interfaces of the available streams can be quite useful.

I also believe understanding Phobos to be just as important as vibe.d when writing web software with vibe.d.

Keep in mind, everything in vibe.d works exactly like the specs (REST, HTTP, WebSockets, Gzip, deflate, ssl, etc), so when you meet a new concept you can just look up an RFC about it.

If you need to understand the concepts of tasks to work with concurrency though, it gets really similar to what you'd see in a kernel, I'd suggest picking up a book

It's honestly a lot of fun to play around with!