D For A Web Developer

Rikki Cattermole via Digitalmars-d digitalmars-d at puremagic.com
Tue Apr 29 22:42:51 PDT 2014


On Wednesday, 30 April 2014 at 05:25:15 UTC, Russel Winder via 
Digitalmars-d wrote:
> On Wed, 2014-04-30 at 04:52 +0000, Rikki Cattermole via 
> Digitalmars-d
> wrote:
> […]
>> I've been working on Cmsed/Dvorm/Dakka specifically in the 
>> mind of a rather (major) web service. Haven't started it yet, 
>> but possibly next semester.
>> I'm of the opinion that we all need to work together to get a 
>> damn nice web service framework together.
>
> I would say from anecdotal observation, so no real 
> significance, that
> most languages end up with a number of frameworks:
>
> 1A. Full stack Web framework.
> 1B. Lightweight HTTP framework.
> 2A. Full feature networking framework.
> 2B. Lightweight networking framework.
>
> In 1A we have JavaEE, Spring, RoR, Django, Grails, etc. In 2B 
> we have
> Sinatra, Ratpack, Flask, Bottle, etc. For 2A there is Twisted 
> and 2B
> asyncio (showing my Python bias here :-)
>
>> I split up my ORM for this purpose so even if you don't want 
>> to use Cmsed you can use it at least. Won't be very nice for 
>> normal Vibe users though.
>
> Grails is doing this at last (necessitated by supporting NoSQL 
> as well
> as SQL in the full stack). This is a positive aspect of 
> "componentizing"
> such large frameworks.
>
>> I really do want help, Dakka (Actor framework) needs somebody 
>> who knows threading/networking communication. I'll eventually 
>> get it communicating with other nodes but.. Will opensource if 
>> there is interest.
>
> I would love to help here, and indeed on a review of 
> std.parallelism,
> but I have committed my time to a revamp of GPars for Groovy 
> 2.3 and
> Java 8, so cannot take on another big task in the short term.
>
>> Dvorm needs work to make it be usable with relational 
>> databases. At worse that means I need OpenDBX dlls for 
>> 32/64bit (wasn't as easy to compile as I thought).
>> The hardest part really is how to handle indexes.
>
> Pass I'm afraid, I cannot contribute on this front at all.
>
>> Cmsed needs documentation by the bucket load. Its also blocked 
>> at the moment on dub to make it sensible to do reloading of 
>> templates/routes/models. Which will change the way you 
>> structure it.
>
> Is it viable for Dub to support this? Is someone working on it 
> to create
> a pull request? Can SCons be an alternative here?

I have already posted on the dub forum about this, Sonke Ludwig 
said he would be working on variables which will at least allow 
for copying libraries templates ext.

>> Cmsed is already at the point of comparable to other web 
>> service frameworks in most other languages.
>
> So why would I use it rather than RoR, Grails, Django, Java EE, 
> Spring?
> Not entirely a rhetorical question. It is good to know early in
> development why it is worth doing the development rather than 
> using
> pre-existing tools.

Because Vibe already supports a good amount of functionality I am 
already a step up (like file uploading and templates).
I have a wiki page to what I currently have done vs what I want 
to do [0].

I really need to do another release of it and Dvorm and give a 
better indication of what it can do.
I posted somewhere else some of the more advanced functionality 
being ajax generation from routes/models [1]. But I really need 
some sort of time cost research to reference with regards to how 
much time it could save (I also need this for a research paper).

I basically had to make my own web service framework primarily 
because from my experience and knowledge of what currently is 
available, nothing meet my requirements. It would be more work 
creating it in other languages than to just do it in D from the 
start.

Not to mention I can get pretty good performance out of D in both 
memory and requests/second. Now if only I could get the ram 
requirement to compile Cmsed below half a gig I'd be alright (a 
long shot given my CTFE usage).

[0] https://github.com/rikkimax/Cmsed/wiki/Road-map
[1] https://gist.github.com/rikkimax/11043210


More information about the Digitalmars-d mailing list