vibe.d and my first web service

Andre Pany andre at s-e-a-p.de
Thu Aug 20 21:36:04 UTC 2020


On Thursday, 20 August 2020 at 18:13:46 UTC, ddcovery wrote:
> On Monday, 17 August 2020 at 15:45:05 UTC, aberba wrote:
>> [...]
>
> After 18 years following DLang, and some disagrees about 
> productivity lacks at the beggining (no IDE, Debugging?, an 
> standard library battle, not a good database connection 
> library, missing web framework) and Walter adding more and more 
> compiler functionalities (all of them nice ones) I decided to 
> forget DLang for a time (C# covered my needs really well).
>
> Last month I decided it was time to start a new project (my own 
> company) and I reviewed some languages/frameworks for web 
> development (REST services, image processing, PDF generation, 
> ...):  Java based ones (I'm experienced with 
> scala/playframework and spring/java, and Kotlin is really 
> nice), c# and Net core, Node/Typescript (Last 6 years I have 
> been mainly a node backend developer) and,  finally, native 
> ones (GO, Rust and D... I developed some windows apps in 90's 
> using Symantec C++ but 20 years are a really long time).
>
> I really wanted to give D an opportunity: lets go with vibe.d
>
> I tested vibe.d on my ubuntu 20.04 and SURPRISE: the hello 
> world project began to eat all my machine memory (just 
> requesting with Firefox and CTRL+F5 pressed continuosly).  
> Using an HAPROXY between calls and backend memory problems 
> disappeared.
>
> Process doesn't stop properly after CTRL+C... but I decided not 
> to be so demanding.
>
> I discovered hunt-framework (with a fantastic ORM 
> implementation) and my eyes shinned. I tried an example 
> project. Like vibe.d, I began to perform requests with Firefox 
> and CTRL+F5 pressed and application stopped immediately 
> (yesterday I discovered it is a SIGPIPE unmanaged signal that 
> stops the process).  I'm quite sure if I use HAPROXY to 
> intermediate between requests and backend, the problem will 
> disappear, but I don't want to perform this test, because I 
> decided not to use hunt-framework neither.
>
> Finally I'm using Rust (with Rocket and Diesel):  it's my money 
> folks :).
>
> Sorry for this not constructive post.
>
> DLang needs to bright in some market niche to attract 
> developers and to solve the actual most demanded needs:  a lot 
> of developers, like me, expect a good/robust framework for 
> backend development (web/rest/microservices/data processing) 
> and a de-facto standard library for Database integration.
>
> In my opinion, "hunt-framework" (or similar) should be one of 
> the central projects of DLang next years (like vibe.d in the 
> past) with a really impressive documentation (English, 
> please!!!) demonstrating how robust, performant and expressive 
> D lang is.

Actually your feedback is very constructive, thanks a lot. The 
ctrl+c issue can be solved with a work around, by adding the 
version "VibeHighEventPriority".

I have only a very small vibed backend application (websockset) 
and never noticed the memory issue. Also another forum user which 
has a quite large web application in productive use didn't 
mentioned this issue.

Could I ask you to open a github issue for vibe-d describing your 
findings regarding the memory issue?
As far as I remember the GC does not immediately runs, but only 
at a certain limit. Maybe your memory issue isn't really an issue 
but the desired behavior. (Not an expert here, just what I 
remember).

Kind regards
Andre


More information about the Digitalmars-d-learn mailing list