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

Reply via email to