August 13, 2020
On Wednesday, 12 August 2020 at 23:07:16 UTC, James Blachly wrote:
> I worry you are right, although some of the ideas from vibe-d are outstanding (compile time introspection -> routing table in particular)

My web.d code did that (and more) two years before vibe.d was born. And it took it a couple steps further, even generating html forms from introspection, which I don't think I have ever seen anywhere else. It is pretty cool but I never really documented the old web.d, I just used it for work projects and a few trivial demos.

vibe has always had better marketing though, and a more cohesive presentation. My documentation is more focused on simple tasks too since I often evolve the complex things as I use it...

I don't think I ever wrote about the reflection stuff, I just use it as my secret weapon.

http://dpldocs.info/experimental-docs/arsd.cgi.dispatcher.html

http://dpldocs.info/experimental-docs/arsd.cgi.serveApi.html

http://dpldocs.info/experimental-docs/arsd.cgi.serveRestObject.html

Yeah, hard to even tell what's ideas-to-self and what is actually implemented there. I've gotta do a real write up some day.

I have written about some of the auxiliary features though, like the EventSource dispatcher

http://dpldocs.info/this-week-in-d/Blog.Posted_2018_12_31.html#cgi.d's-new-stuff-in-the-works!

the built-in job scheduler:
http://dpldocs.info/this-week-in-d/Blog.Posted_2019_08_05.html#what-adam-is-working-on

and a little bundled key/value session data server:
http://dpldocs.info/this-week-in-d/Blog.Posted_2019_01_14.html#what-adam-is-working-on


But yeah.... almost nothing on how to actually bring the advanced features together. Part of that is because I don't want to prescribe One True Way, part is because I've been continually developing this for 12 years and sometimes change my mind on how to do things (though I very rarely break anything, I still have code from 2011 that compiles), and part because it works for me and that's all I really care about.



Still if y'all wanted to work with me I'm open to it, in theory at least.
August 12, 2020
On 8/12/20 9:04 PM, Adam D. Ruppe wrote:
> On Wednesday, 12 August 2020 at 23:07:16 UTC, James Blachly wrote:
>> I worry you are right, although some of the ideas from vibe-d are outstanding (compile time introspection -> routing table in particular)
> 
> My web.d code did that (and more) two years before vibe.d was born. And it took it a couple steps further, even generating html forms from introspection, which I don't think I have ever seen anywhere else. It is pretty cool but I never really documented the old web.d, I just used it for work projects and a few trivial demos.
> 
> vibe has always had better marketing though, and a more cohesive presentation. My documentation is more focused on simple tasks too since I often evolve the complex things as I use it...
> 
...
> Still if y'all wanted to work with me I'm open to it, in theory at least.

Adam, your work is outstanding but you could do with a little more self-promotion! I too hate to admit it, but marketing matters.

Will check out arsd.cgi.* more deeply.
August 13, 2020
On Wednesday, 12 August 2020 at 21:11:54 UTC, Daniel Kozak wrote:
> [...]
>
> Unfortunately, I think vibe-d is dead. With every release it is worse than before and it seems there is almost no activity. So D really need new champion here maybe hunt will be next champion.

Can you give an example how vibe.d gets worse? It's really stable right now and while I would enjoy the feature PRs to go in more quickly, I think they are pretty well reviewed when they get reviewed and eventually once merged it's only good code that makes it in.

The environment just updated and made previous versions more unstable, most of which is inherited into current versions too, but these things are getting fixed. Like for example a lot of linux distros changed to OpenSSL 1.1 which broke HTTPS client calls in vibe.d and was fixed in 0.8.6 or MongoDB 3.4+ changed a lot of things like indexes which were then broken which was fixed in 0.9.0 now though.
August 13, 2020
On Wednesday, 12 August 2020 at 13:46:06 UTC, James Blachly wrote:
>
> Unfortunately the problem still occurs with Vibe.d 0.9.0
>
> IMO **this is the single most important problem to fix** for vibe.d -- if the most basic of examples (indeed, supplied by dub itself) fails so spectacularly, the casual new user will not spend the time to find out why this is happening, but instead move on. The ctrl-C non-termination bug has existed since at least 2015 from what I can tell from the forums.
>

As a casual new novice, I really like dlang as such, and I think it should be the most widespread and popular language in the world. And as soon as I came across it, I wanted to use it in my project. But it has many packages for the same things, but these packages are unfinished. Everyone creates their own. You start comparing them and don't know what to choose for your job and then you find out that you should have chosen another and then find out that you should have written it yourself. And then I finally done it in golang in a while. I think the dlang community should focus on creating a quality standard library.

We live in the 21st century where there are web technologies everywhere around us, so I think that the http package should be part of a standard library.

August 13, 2020
On 8/13/20 3:28 AM, WebFreak001 wrote:
> On Wednesday, 12 August 2020 at 21:11:54 UTC, Daniel Kozak wrote:
>> [...]
>>
>> Unfortunately, I think vibe-d is dead. With every release it is worse than before and it seems there is almost no activity. So D really need new champion here maybe hunt will be next champion.
> 
> Can you give an example how vibe.d gets worse? It's really stable right now and while I would enjoy the feature PRs to go in more quickly, I think they are pretty well reviewed when they get reviewed and eventually once merged it's only good code that makes it in.
> 
> The environment just updated and made previous versions more unstable, most of which is inherited into current versions too, but these things are getting fixed. Like for example a lot of linux distros changed to OpenSSL 1.1 which broke HTTPS client calls in vibe.d and was fixed in 0.8.6 or MongoDB 3.4+ changed a lot of things like indexes which were then broken which was fixed in 0.9.0 now though.

I haven't had a really big problem with vibe.d, except for the ctrl-c bug (which I've worked around as described).

I agree with the OP of this subthread that it is the most important problem for vibe.d (and vibed-core really).

I wish I knew how to fix it...

My experience with getting features into vibe.d has been good, I've added a few and Sonke has been very receptive, even if his responses are delayed (he must be really busy). I've been there too.

-Steve
August 17, 2020
On Thursday, 13 August 2020 at 09:54:06 UTC, Mr. Backup wrote:
> On Wednesday, 12 August 2020 at 13:46:06 UTC, James Blachly wrote:
>>
>> Unfortunately the problem still occurs with Vibe.d 0.9.0
>>
>> IMO **this is the single most important problem to fix** for vibe.d -- if the most basic of examples (indeed, supplied by dub itself) fails so spectacularly, the casual new user will not spend the time to find out why this is happening, but instead move on. The ctrl-C non-termination bug has existed since at least 2015 from what I can tell from the forums.
>>
>
> As a casual new novice, I really like dlang as such, and I think it should be the most widespread and popular language in the world. And as soon as I came across it, I wanted to use it in my project. But it has many packages for the same things, but these packages are unfinished. Everyone creates their own. You start comparing them and don't know what to choose for your job and then you find out that you should have chosen another and then find out that you should have written it yourself. And then I finally done it in golang in a while. I think the dlang community should focus on creating a quality standard library.
>
> We live in the 21st century where there are web technologies everywhere around us, so I think that the http package should be part of a standard library.


It takes time. I was comparing packages available in D compared to say nodejs which I've been using for a while.

Very few important ones are missing. The others too lack some documentation. Other than that, you get pretty much what you need. Except cloud sdks.

also using vibe.d has some missing pieces on how to do certain things... that I agree we Users need to do writing about them.

You're also right that people keep rolling their own implementations. Most people here are really good and can roll their own so its quite tempting...plus reading someone's code and implementation can be a lil...sometimes. except rolling your own means it'll be half baked and undocumented.

Also I suspect lot of community members primary don't do web stuff primarily.

If you ask me, I'll say vibe.d is the most solid and feature complete web framework at the moment...code, docs, libraries. It's not perfect but its never been a blocker. That's if you know your way around it. Sonke is a pretty cool guy.

Will be nice if he had a GitHub sponsor or something for vibe.d

Hunt framework is also your laravel D alternative.




August 20, 2020
On Thursday, 13 August 2020 at 09:54:06 UTC, Mr. Backup wrote:
> And as soon as I came across it, I wanted to use it in my project. But it has many packages for the same things, but these packages are unfinished. Everyone creates their own. You start comparing them and don't know what to choose for your job and then you find out that you should have chosen another and then find out that you should have written it yourself. And then I finally done it in golang in a while. I think the dlang community should focus on creating a quality standard library.
>
> We live in the 21st century where there are web technologies everywhere around us, so I think that the http package should be part of a standard library.

People have been pushing for that for years but the answer in D ( and some other languages ) always tend to be the same.

"We do not want to bloat the standard library". In reality it comes down to: "We do not want the responsibility of maintaining a lot more code".

So the buck gets pushed to the community and if its not a big community, you will see a of people starting projects. It works for them on their projects and then it get abandoned as they move to new languages or have no time.

If we look at Go or Crystal or ... a lot of the reason why people pick up those languages, boils down to "its easy to get some output". A few lines of code and it makes people feel successful and they move on to the next step and forward from their on. Growing more into the languages.

In D's case, we enjoy the constant Vibe.D warning hell ( when it did not break outright with specific D versions! ). That not only scares away people, it also makes development annoying when your constantly spammed with warnings and you can not see what is vibe.d's warnings and what is your code's warnings!

And vibe.d is on the front pages, as the prime example for people to try out D.
o_O

Anyway, its a dead argument, go back in time to see that same suggestion in 2017, 2015, 201... And people argued about it, people telling other "no" and new users kept enjoying the vibe.d issue train ( among other issues ) while leaving fast. And then people keep wondering why a lot of people do not stick around and run towards Go or other languages ... I wonder why D has popularity issues.
August 20, 2020
On Monday, 17 August 2020 at 15:45:05 UTC, aberba wrote:
> On Thursday, 13 August 2020 at 09:54:06 UTC, Mr. Backup wrote:
>> On Wednesday, 12 August 2020 at 13:46:06 UTC, James Blachly wrote:
>>>
>>> Unfortunately the problem still occurs with Vibe.d 0.9.0
>>>
>>> IMO **this is the single most important problem to fix** for vibe.d -- if the most basic of examples (indeed, supplied by dub itself) fails so spectacularly, the casual new user will not spend the time to find out why this is happening, but instead move on. The ctrl-C non-termination bug has existed since at least 2015 from what I can tell from the forums.
>>>
>>
>> As a casual new novice, I really like dlang as such, and I think it should be the most widespread and popular language in the world. And as soon as I came across it, I wanted to use it in my project. But it has many packages for the same things, but these packages are unfinished. Everyone creates their own. You start comparing them and don't know what to choose for your job and then you find out that you should have chosen another and then find out that you should have written it yourself. And then I finally done it in golang in a while. I think the dlang community should focus on creating a quality standard library.
>>
>> We live in the 21st century where there are web technologies everywhere around us, so I think that the http package should be part of a standard library.
>
>
> It takes time. I was comparing packages available in D compared to say nodejs which I've been using for a while.
>
> Very few important ones are missing. The others too lack some documentation. Other than that, you get pretty much what you need. Except cloud sdks.
>
> also using vibe.d has some missing pieces on how to do certain things... that I agree we Users need to do writing about them.
>
> You're also right that people keep rolling their own implementations. Most people here are really good and can roll their own so its quite tempting...plus reading someone's code and implementation can be a lil...sometimes. except rolling your own means it'll be half baked and undocumented.
>
> Also I suspect lot of community members primary don't do web stuff primarily.
>
> If you ask me, I'll say vibe.d is the most solid and feature complete web framework at the moment...code, docs, libraries. It's not perfect but its never been a blocker. That's if you know your way around it. Sonke is a pretty cool guy.
>
> Will be nice if he had a GitHub sponsor or something for vibe.d
>
> Hunt framework is also your laravel D alternative.

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.

August 20, 2020
"After 18 years following DLang," its not well expressed...may be "at first Dlang stages, after  2 years following its evolution, and ..."
August 20, 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