On Friday, 29 June 2018 at 18:48:19 UTC, bauss wrote:
On Friday, 29 June 2018 at 17:08:12 UTC, Ecstatic Coder wrote:
If you're a web developer with no dependencies then youre
either reinventing the wheel (could cause trouble in the long
run, if your implementations aren't correct.) Or your
application just isn't more than a hobby project.
Most enterprise projects will have dependencies outside
standard libraries and that is true for ex. Go too.
I agree with you, but what I mean is that all those nice Go
and Crystal web frameworks are actually implemented using
exactly the same building blocks, so that their authors didn't
have to reinvent the wheel to reimplement them.
That's why there are so many available frameworks, and you can
easily pick one which closely matches your needs and
preferences...
Well you don't really need to re-invent the wheel at all with D
either tbh.
You would need to with vibe.d, because it's really just the
skeleton of a web application, but with Diamond? Not so much.
It supports things that other frameworks don't even support,
which you will end up implementing yourself anyway in 99% of
all other frameworks. To give an example, consent, privacy and
GDPR. There is no framework, at least what I have seen, that
has compliance for such things implemented, but Diamond has it
usable straight out of the box. Another example would be
validation for email, url, various credit-cards, files (Not
just extension, but also whether the data is correct.) etc.
most of such validations are very limited in other frameworks
or non-existent at all.
My point is that, even if those languages has http somewhat
standard, they do not implement actual features that are useful
to your business logic, application design etc. only to the
skeleton.
However with frameworks in D you do get the best of both worlds.
http://diamondmvc.org/
Indeed this framework looks really complete, and should get much
more promotion from D's official website.
But I still think that D's vision of what should be included in
the standard library really diverges from those of Go and
Crystal, despite this strategy has worked pretty well for them,
and that Diamond clearly proves that D has all the basic language
features to compete well with them (native performance,
fiber-based concurrency, great string and array support, etc).