critique of vibe.d

Etienne via Digitalmars-d digitalmars-d at puremagic.com
Wed Jul 9 12:45:42 PDT 2014


On 2014-07-08 9:32 PM, Puming wrote:
> Also, in playframework, vert.x and nodejs, they all have a plugin/module
> system, that people could easily compose plugins to make a website. (I
> call it plugin because that is what play used to call it, now they all
> call it a module but that name will easily conflict with D's sourcecode
> modules). This is a critical mechanism that actually allured developers
> to contribute to the eco-system.

This is phenomenal work from my perspective because it needs to be 
original to justify the move. However, I was too tempted by the 
functional nature of D and my imagination motivated me to build the 
technicalities for some huge infrastructures behind a next-gen CMS.

I have a chart up at https://github.com/globecsys/spee.d about what's 
involved with it, on my schedule for all components there should be at 
least 300 hours of work left.

I'm aiming for a standalone executable library-oriented framework, which 
would give a cross-platform wordpress-like CMS installation that 
technically should scale _infinitely_. There's a few issues with 
infinite scalability behind NAT firewall nodes, like

- the solution would be a websocket communication with (http://wamp.ws/) 
a more advanced protocol is elementary.
- a cache database (I have a local redis-like one up called cache.d) 
needs to "talk" to hash-distributed master DBs with replication
- this cache database would be modified to take advantage of the GC to 
avoid making additional copies on a server (store some void* in memory, 
serialized data on the filesystem).
- library support would be with the same interface as wordpress: 
add_filter, add_action, etc - but a focus on Backbone.marionette for 
front-end js-based structuring with REST/json backend data provider
- a custom D-based TLS library would help maximize code inlining in the 
streams and minimize points of attack
- a DER and length-value serialization library would help minimize 
boilerplate

I'm still brainstorming on the geolocation and domain-clustering of 
master nodes and load balancing.

I'm finishing up work on a completely generic ASN.1 compiler with 
support for Information Objects that generates D structures for TLS: 
https://github.com/globecsys/asn1.d

This is necessary because there's over 7000 lines of structure 
definitions involved: 
https://github.com/globecsys/asn1.d/blob/master/tls.asn1

Anyways, enough typing about this for the moment, I'm not looking for 
help :)


More information about the Digitalmars-d mailing list