critique of vibe.d

Rikki Cattermole via Digitalmars-d digitalmars-d at puremagic.com
Tue Jul 8 21:17:29 PDT 2014


On 9/07/2014 1:09 p.m., Puming wrote:
> Vibe.d is more like a base library for async I/O, networking and
> concurrency, a full stack WEB framework should be built on top of it
> which focus on application development and ease of use for newcomers.
> Sonke has said that too. Vibe.d should focus on performance, networking,
> and other lowerlevel stuff that D should be really good at. Sonke is
> already too busy doing his gorgeous work on vibe.d and dub. I think that
> is what the guy on reddit was complaining, he thought vibe.d should
> contain everything from a web framework, but didn't find them, thus
> getting the impression that vibe.d was not complete. Actually vibe.d is
> just an edge of a triangle in web frameworks. We are lacking the other
> two pieces.
>
> We need a MVC or whatever framework on top of it. Compared to Java
> world, there is [Netty](http://netty.io) the networking library and Web
> frameworks like playframework, vert.x built on top of it.
>
> Currently the only work that is active IFAIK is Rikki's
> [CMSED](https://github.com/rikkimax/Cmsed), which needs more love.

Yes, I do need more help, but really I need Dakka to be made first. Get 
me Dakka. I'll give you live reloading so to speak.

Same goes with my ASN.1 lib[0]. Give me BER unittests, I'll give you an 
LDAP client library hooked into Cmsed's authentication mechanism (I 
haven't been able to find them and its not so simply to go by spec).
Give me a way to work with templates and traits better, I'll give you a 
fully working UML generator[1].

> In [playframework](http://playframework.org), incoming request are send
> to a cluster of actions in a [Akka](http://akka.io) cluster for
> computing & business logic. The trio (play, netty & akka) has shown to
> be very good combination for a web stack.

I have an evil idea on how to do this via Dakka actually, in fact I'm 
thinking that we could even use it for load balancing. Not to mention 
live updating during production!

> We have actor models in std.concurrency but only with thread
> granularity, vibe.d has got a fiber based concurrency model which I
> think could go in to the standard library, or make its own library. That
> front needs more manpower. Again, rikki has initiated a port from akka
> -- [dakka](https://github.com/rikkimax/dakka). I think it is a right way
> to go.

Dakka is less a port of Akka and more of a complete new framework while 
basing it on Akka (why reinvent the wheel, after all its extremely 
successful).
I'm personally only using it for as an RPC mechanism, but by in large 
they will cover most of the bases.
I could really use some help with threading, I am sure there is 
something that will cause deadlocks or something much much worse. My 
skills in this area are quite limited.
At worse, even commenting would be a help.

> On Tuesday, 8 July 2014 at 20:39:23 UTC, Andrei Alexandrescu wrote:
>> There's been some discussion about vibe.d recently on reddit (e.g.
>> http://www.reddit.com/r/programming/comments/2a20h5/wired_magazine_discovers_d/cir9443)
>> and I was wondering to what extent that's meaningful:
>>
>> "has anyone ever tied a real webservice to vibe.d? I actually tried.
>> its nowhere near complete in any sense. you simply cannot compare it
>> with go's standard http lib, sorry, I tried."
>>
>> If there's sheer work needed for completing vibe.d, I think it would
>> be great if the domain-savvy part of the community would rally around
>> it. Serving dlang.org and dconf.org off of vibe.d would be awesome
>> dogfooding.
>>
>>
>> Andrei

There is so many projects I want to work on to extend Cmsed's 
capabilities. From OAuth2 to PDF generation. But I can't do them (time 
wise). So if anybody would be interested in these sorts of projects:
* PDF creation
* Image manipulation and loading (we would need this anyway for e.g. Aurora)
* Barcode generation
* Qr code generation
* Skeleton generation (perhaps this could go into dub?)
* Something like GWT, not really possible right now nicely atleast the 
way I'd like it to work

Something I am very concerned about is documentation. While us in the D 
community are use to reading docs and at best examples. Most developers 
are not. They want simple examples with lots of information around it on 
websites, a little like how dlang's language specification is set up.

Even Vibe is pretty limited in this direction. This is also why I want a 
skeleton generator, Cmsed will have a complex directory setup in the 
future. Users shouldn't need to create that by hand.

[0] https://github.com/rikkimax/asn1
[1] https://github.com/rikkimax/Duml


More information about the Digitalmars-d mailing list