critique of vibe.d

w0rp via Digitalmars-d digitalmars-d at puremagic.com
Wed Jul 9 12:05:53 PDT 2014


 From my usage of vibe.d thus far, I've found that it has a lot of 
things I want if I were to use it for building sites like the 
sites I build at work. vibe.d can offer excellent performance and 
scalability, and those are great building blocks to have for 
building a great web framework. I think what's missing from 
vibe.d lies in D code yet to be written which is required to get 
a decent level of productivity.

I am primarily a Django developer these days, and Django has some 
great features which boost my productivity massively. I'd want to 
see the same features, only written in a way more appropriate for 
D, in vibe.d. Here's a short list.

* An ORM, which absolutely must have a way to build queries a 
piece at a time without writing any SQL, like Django.
* A framework for generating all of the SQL required for database 
migrations like South or the built in migrations in Django 1.7, 
so you can quickly change any model.
* An API for creating form handlers, especially for creating 
instances of models in the ORM through forms. (Django Form and 
ModelForm)
* An HTML template system which doesn't eat memory at compile 
time and where changes can be made while the development server 
is running.

Those are the important "must have" points. Because of these 
features in Django, I can create a new feature for a website in 
the space of a couple of days, wildly restructure databases for 
optimisations etc. There are a few other tools I use in Django 
that are very nice to have.

* Django's automated testing framework lets you test pages with 
session data and email output, so I have tests for complex things 
like checkouts which are very easy to write. I pair it with a 
Jenkins module so I can use Jenkins locally for CI.
* The django-debug-toolbar module saves a ton of time when 
optimising queries. I use it for loading pages and looking at all 
of the queries run in a timeline with all of the EXPLAIN output 
right there. As a result I have massively improved query times at 
my job.
* The Django pipeline module provides mechanisms for generating 
JS and CSS. I now have SCSS which regenerates CSS automatically 
during development without needing a filesystem monitor like 
Compass, and I have cut load times on a couple of pages by a 
second each by merging JavaScript together. (Even without 
minification, which it supports, which I haven't gotten to yet.)

So there's my wishlist. I see it as a TODO list of things I or 
someone else should write. I'd be willing to contribute to a few 
of those points whenever I have time.


More information about the Digitalmars-d mailing list