October 26, 2022
On Tuesday, 25 October 2022 at 10:18:53 UTC, German Diago wrote:
> On Monday, 24 October 2022 at 22:26:41 UTC, Walter Bright wrote:
>> [...]
>
>
> I am glad to see a language that is C-like, understandable, trying to not put
> all the heavy-weight on the programmer but allowing it where it is necessary. This is what kept me with C++ and not Rust so far. Rust is just too rigid and restrictive for a lot of legal coding patterns.
>
> [...]
+1
October 26, 2022

On Tuesday, 25 October 2022 at 17:34:10 UTC, Alexandru Ermicioi wrote:

>

On Tuesday, 25 October 2022 at 17:07:34 UTC, German Diago wrote:

>

FWIW, D is a language. I would not advocate for or against anything. But the
highest chance of success for languages is compatibility to consume the old
code bases, that for sure, at least in the big picture.

  • Kotlin -> compatible with Java
  • Swift -> interoperable with Objective-C
  • C -> C++

I did not see a clean-cut language that got popular yet for real use in a considerable amount of places. Namely, compatibility is a feature. How deep is the big question and the devil is in the details: source-compatible? API/ABI? Etc. but throwing away and rewriting is not even realistic.

It is fine, if you have high compatibility with other languages, but I'm against it being a companion of another language, which implies that one without another cannot work.

I do not propose that at all either. I propose the best path forward compared to alternatives if you are using C++ as a big user-base case. Of course, fullfilling other cases is nice also. But I think this one is crucial.

October 26, 2022

On Wednesday, 26 October 2022 at 00:53:26 UTC, zjh wrote:

>

On Tuesday, 25 October 2022 at 17:34:10 UTC, Alexandru Ermicioi wrote:

>

It also has some functions and convenience that D does not provide.

Besides concepts, what are those exactly? D metaprogramming is ahead of C++'s and #embed, which goes into C23 and probably C++26 is import("file") in D for years, modules are not there yet, D has had them for years. Overload resolution is easier to understand also in D. I do not see (from a language-level, not ecosystem, which is clearly behind) what is clearly worse from D compared to C++. CTFE is also there for years. C++ is just catching up on this.

>

The same is true of D. D also has shortcomings, such as default GC.

You have @nogc, not sure how well it works in practice. You lose slices to begin with as far as I understand, or most uses of them. That said, nothing would prevent you from having your own struct similar to std::span I think?

>

C++ has a large user base. Many people start learning languages from C++.

True. I based most of my career around it.

>

Because many of the latest things in C++ are already in D.
D,Being a partner language.
It is best to use 'C++' and 'D' at the same time.

Nothing prevents you from using it today in a "companion" mode. It is just that it is more than powerful enough to be an independent language as well IMHO. In my list, after years and years taking a look at Nim, Rust, Zig (C replacement more than C++) and others, I think the winner, with a little more ecosystem love, is D. The reason is because it is powerful, productive and has few surprises compared to C++ and there is a serious effort in code reuse coming from C/C++, which are, whether we like it or not, the kings of native.

October 26, 2022

On Wednesday, 26 October 2022 at 06:28:37 UTC, Arun wrote:

>

On Wednesday, 26 October 2022 at 01:06:27 UTC, Ali Çehreli wrote:

>

On 10/25/22 17:53, zjh wrote:

>

I am saying the above with full understanding that there are programmers out there who were educated in C++ circles and are sure that garbage collectors are for inferior languages. That is a shortcoming of their education.

For short running tools and low volume stuff, yes, GC is good.

My practical experience running vibe.d service with GC in production: default GC is a bane. Default should've been @nogc.

I would like to hear your experience with Vibe.d. I would care about performance scaling. I have been genuinely interested in using it for years but I did not dare to jump into it. As opposed to Django.

But my intuition tells me that sooner or later Django backends for small things like what I do will be a resource hog compared to D? True that I can partition, do microservices, etc. but that complicates things. On the positive Python side, there is no compilation step and that helps a lot in many situations.

October 26, 2022

On Wednesday, 26 October 2022 at 10:53:50 UTC, German Diago wrote:

>

On Wednesday, 26 October 2022 at 06:28:37 UTC, Arun wrote:

>

[...]

I would like to hear your experience with Vibe.d. I would care about performance scaling. I have been genuinely interested in using it for years but I did not dare to jump into it. As opposed to Django.

But my intuition tells me that sooner or later Django backends for small things like what I do will be a resource hog compared to D? True that I can partition, do microservices, etc. but that complicates things. On the positive Python side, there is no compilation step and that helps a lot in many situations.

Have you read this?

https://raw.githubusercontent.com/reyvaleza/vibed/main/BuildWebAppsinVibe.pdf

October 26, 2022

On Wednesday, 26 October 2022 at 11:09:30 UTC, Imperatorn wrote:

>

On Wednesday, 26 October 2022 at 10:53:50 UTC, German Diago wrote:

>

Have you read this?

https://raw.githubusercontent.com/reyvaleza/vibed/main/BuildWebAppsinVibe.pdf

No I did not, but it is 242 pages. I am not sure I can go through all it at once.

But thanks dor the pointer.

October 26, 2022

On Wednesday, 26 October 2022 at 11:09:30 UTC, Imperatorn wrote:

>

On Wednesday, 26 October 2022 at 10:53:50 UTC, German Diago wrote:

>

On Wednesday, 26 October 2022 at 06:28:37 UTC, Arun wrote:

>

[...]

I would like to hear your experience with Vibe.d. I would care about performance scaling. I have been genuinely interested in using it for years but I did not dare to jump into it. As opposed to Django.

But my intuition tells me that sooner or later Django backends for small things like what I do will be a resource hog compared to D? True that I can partition, do microservices, etc. but that complicates things. On the positive Python side, there is no compilation step and that helps a lot in many situations.

Have you read this?

https://raw.githubusercontent.com/reyvaleza/vibed/main/BuildWebAppsinVibe.pdf

After a quick look I do not see what I am looking for to start, though. I am looking for the performance compared to using Django, so requests/s, memory usage, etc. is a good place to start. What I care about is that once I deploy something it is faster than Django.

Of course this is going to depend on the use case and my software... so I guess this is something I will have to try myself.

  • Did the GC get a lot in the way?
  • It is very memory-intensive?
  • Are there good alternatives to side-step GC when using Vibe to reasonable ways
    if that could be a resource hog?

Those are the things I would care about. If I use D it would be to lower hosting cost basically.

October 26, 2022

On Wednesday, 26 October 2022 at 10:51:03 UTC, German Diago wrote:

>

whether we like it or not, the kings of native.

You are more radical than me. Yes, C++ means that there are many libs. Therefore, I suggest that vigorously developing the interfacing with C++, as well as tutorials. There are too few learning materials.
Personally, I like the concept of RAII very much. I will not discuss GC. every one has his own hobby.
Interfacing C++ and BetterC are all good directions!

October 26, 2022

On Wednesday, 26 October 2022 at 11:31:50 UTC, German Diago wrote:

>

On Wednesday, 26 October 2022 at 11:09:30 UTC, Imperatorn wrote:

>

[...]

After a quick look I do not see what I am looking for to start, though. I am looking for the performance compared to using Django, so requests/s, memory usage, etc. is a good place to start. What I care about is that once I deploy something it is faster than Django.

Of course this is going to depend on the use case and my software... so I guess this is something I will have to try myself.

  • Did the GC get a lot in the way?
  • It is very memory-intensive?
  • Are there good alternatives to side-step GC when using Vibe to reasonable ways
    if that could be a resource hog?

Those are the things I would care about. If I use D it would be to lower hosting cost basically.

I see, then you should look into arsd imo, very simple and minimal.

It doesn't get much more simple than this
https://arsd-official.dpldocs.info/arsd.cgi.html

October 26, 2022

On 10/26/22 2:28 AM, Arun wrote:

>

On Wednesday, 26 October 2022 at 01:06:27 UTC, Ali Çehreli wrote:

>

On 10/25/22 17:53, zjh wrote:

>

I am saying the above with full understanding that there are programmers out there who were educated in C++ circles and are sure that garbage collectors are for inferior languages. That is a shortcoming of their education.

For short running tools and low volume stuff, yes, GC is good.

My practical experience running vibe.d service with GC in production: default GC is a bane. Default should've been @nogc.

My experience with vibe.d with GC is just fine. In fact, I think it's a great use case (vibe uses lots of little allocations for each request).

-Steve