October 20, 2018
On 10/20/18 6:28 AM, Gregor Mückl wrote:
> 
> Even though web and mobile UIs seem to be the rage at the moment, I believe a solid support for desktop UIs is very important for a general purpose language, if it wants to be successful in the market.

I think that may be doubly true in the case of D, given D's focus on efficiency. HTML-based interfaces (whether web or app) are notoriously rife with inefficiencies: That's likely to be a major turn-off for exactly the very same audiences that D would appeal to most.
October 21, 2018
On Sunday, 21 October 2018 at 01:12:44 UTC, Nick Sabalausky (Abscissa) wrote:
> On 10/12/18 4:05 AM, Vijay Nayar wrote:
>> But the D community has also been very receptive of changes to the language
>> 
>
> The community is. I don't feel like it's been true of the leadership for some years now (and I don't mean just W&A.)
>
>> One thing that does concern me, is the avenues in which people can discover D.  For me personally, after a particularly nasty C++ project, I just googled for "alternatives to C++" and that's how I found D back in 2009 or so.  But the same search today turns up nothing about D.  I'm not sure sure how people are supposed to find D.
>
> This is a VERY important thing, and it's true for many of us (myself included). This why it was a HUGE mistake when the community decided it should become taboo to promote D as a redesigned C++. That was ALWAYS D's core strength, we all know it, that's why many (if not most) of us are here, and hell, that's literally what D was *intentionally designed* to be.
>
> But then political correctness came and threw that angle out the window, in favor of this awkward "fast code fast" nonsense, and we've been fighting the uphill "I don't understand the point of D" image battle ever since.

Simple, C++ is increasingly seen as irrelevant by those choosing a new language, so D's real competition is now Go, Rust, Swift, Nim, Zig, etc. These are people who want to write "fast code fast," well except for Rust users, who value ownership more.

Also, D can pitch itself to Java/C# users who need more performance with that softer pitch, because many of them have been burned by C++ and would recoil if you made the explicit C++ comparison. It is well-known that Rust and Go are attracting users from the Java and scripting communities, D needs to attract them too, as the Tilix dev noted to me last year:

"[M]y background is in Java. I found it quite interesting at DConf when I asked how many people came from a non C/C++ background that only one other fellow raised his hand...

I tend to get more annoyed about the negativity in the forums with regards to GC. I do feel that sometimes people get so wrapped up in what D needs for it to be a perfect systems language (i.e. no GC, memory safety, etc.), it gets overlooked that it is a very good language for building native applications as it is now. While D is often compared to Rust, in some ways the comparison to Go is more interesting to me. Both are GC-based languages and both started as systems languages, however Go pivoted and doubled down on the GC and has seen success. One of the Red Hat products I support, OpenShift, leverages Kubernetes (a Google project) for container orchestration and it’s written in Go.

I think D as a language is far superior to Go, and I wish we would toot our horn a little more in this regard instead of the constant negative discussion around systems programming."
https://dlang.org/blog/2017/08/11/on-tilix-and-d-an-interview-with-gerald-nunn/
October 21, 2018
On Sat, 2018-10-20 at 23:38 +0000, Gregor Mückl via Digitalmars-d wrote:
> 
[…]
> I don't want to judge, but I need to point out that we have managed to make this discussion progress from outward-facing marketing to technical difficulties and related pull requests. This is not bad, but it is also a perfect example of how inward-facing the community can be and that is a part of what started this thread.

Which is why I changed the Subject on this sub-thread to make it clear that the content had diverged from the original points.

On the other hand, we seem to be teasing out a point or two relating to the original message. GUI desktop applications is clearly a place where D should excel. For those using GtkD (and GStreamerD) it clearly can and does. However the GTK+ "market" is quite small, and the Qt and wxWidgets "market" is much bigger. Thus to excel as a GUI programming tool more widely, D needs a Qt binding and a wxWidgets binding that is as of good quality as GtkD is.

I know there are a number of other GUI frameworks cf.

https://wiki.dlang.org/GUI_Libraries

It is not clear what the order signifies, if anything. I believe most of them to be unmaintained.

DWT as a port of SWT is far behind where Java has gone, which is JavaFX. JavaFX has a not dissimilar approach to QML. However that is all very much engine and observables based, which is fine if you like it. Clearly I did in the past as I worked on GroovyFX, a Groovy wrapper to JavaFX.

Which of qtD or dqt to choose to progress if either? I have a feeling that whilst having many can be a good thing, D bindings to GUI frameworks is a space where having one is a good thing, cf. GtkD. Then there is dqml or QtE5 as a binding to QML. Should these be separate or should there be a single framework offering a D binding for the Qt and QML APIs? wxD is potentially interesting, if it could be progressed. Personally I ignore Tk as a GUI framework, even with the update from a decade or so ago.

I am sure DlangUI will get a mention, but is there enough resource available within the community to create a viable competitor to Qt or wxWidgets so as to gain traction for D in the desktop GUI application arena. Currently I believe no.

So to progress getting D used for desktop GUI applications, I would argue that some (fewest) of qtD, dqt, dqml, and QtE5, and wxD are the bindings to progress to a good state to show to the world that D is a strong competitor to C++, Rust, and Python in the field of desktop GUI applications.

Assuming of course that: a) there is a market for desktop GUI applications; and b) D wants to compete in this space.

-- 
Russel.
===========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk



October 21, 2018
On Sat, 2018-10-20 at 21:12 -0400, Nick Sabalausky (Abscissa) via
Digitalmars-d wrote:
> […]
> 
> This is a VERY important thing, and it's true for many of us (myself
> included). This why it was a HUGE mistake when the community decided
> it
> should become taboo to promote D as a redesigned C++. That was
> ALWAYS
> D's core strength, we all know it, that's why many (if not most) of
> us
> are here, and hell, that's literally what D was *intentionally
> designed*
> to be.

D became in 2010/2011 what C++ might morph into in 2040?

That D is a better C++ remains an excellent strapline.

> But then political correctness came and threw that angle out the
> window,
> in favor of this awkward "fast code fast" nonsense, and we've been
> fighting the uphill "I don't understand the point of D" image battle
> ever since.

Laeeth can give an angle on the 2018 point of D. But yes, part of my gripe is that the D community as a whole is not looking to increase the traction of D in the land of programming. To a great extent nor is C++, it seems to rely on the past market and the battle cry of "AAA games". Go, Python, Rust have shown the way in terms of traction. Ruby and Perl the opposite. I am being drawn more into the Rust milieu and away from the D milieu exactly because of traction generally. I still prefer D/GtkD over Rust/gtk-rs (except for one big thing, channels/futures/executors on the event loop), but with Tilix being the only major D implemented application out there on Debian and Fedora, D isn't getting traction.

-- 
Russel.
===========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk



October 21, 2018
On Sun, 2018-10-21 at 05:47 +0000, Joakim via Digitalmars-d wrote:
> […]
> 
> Simple, C++ is increasingly seen as irrelevant by those choosing a new language, so D's real competition is now Go, Rust, Swift, Nim, Zig, etc. These are people who want to write "fast code fast," well except for Rust users, who value ownership more.

Don't try telling the C++ crowd this. :-)

Go, Rust, and Python are the languages of the moment – well apart from Kotlin and Java obviously. Swift has, at least for now, missed the "widely used" boat but is the language of choice on iOS. Languages such as Nim, Pony, etc. are likely to remain niche languages. Perhaps this is the role for D?

> Also, D can pitch itself to Java/C# users who need more performance with that softer pitch, because many of them have been burned by C++ and would recoil if you made the explicit C++ comparison. It is well-known that Rust and Go are attracting users from the Java and scripting communities, D needs to attract them too, as the Tilix dev noted to me last year:

Not sure about C#, which is claiming a resurgence just now, but the Java/Kotlin/Groovy world currently has a problem: The Cloud. The way cloud services people are charging, and the really quite small now but nonetheless significant wake up time for the JVM, has lead to many large players re-assessing their use of the JVM, and they are switching to Go. This is mostly because Go has presence and midshare via Docker.

Sadly I am not sure D is in a position to get traction in this milieu because no-one in the JVM-based community has ever heard of it. Compare this to Go and to a great extent Rust, and D has missed the boat. I get the feeling (but have no inside knowledge) that one of the main reasons for Kotlin/Native was to allow people to evolve their JVM codes to native using a familiar JVM-based programming language. So I suspect the "battle" to be between Go and Kotlin/Native as the JVM-based world comes to terms with the new Cloud pricing models.

C++ isn't even a minor player. JNI is a barrier for C, let alone C++.

Of course GraalVM may change the game replacing HotSpot, J9, etc.

[…]
> I tend to get more annoyed about the negativity in the forums with regards to GC. I do feel that sometimes people get so wrapped up in what D needs for it to be a perfect systems language (i.e. no GC, memory safety, etc.), it gets overlooked that it is a very good language for building native applications as it is now. While D is often compared to Rust, in some ways the comparison to Go is more interesting to me. Both are GC-based languages and both started as systems languages, however Go pivoted and doubled down on the GC and has seen success. One of the Red Hat products I support, OpenShift, leverages Kubernetes (a Google project) for container orchestration and it’s written in Go.

Ditto. A GC language should be proud of its GC. Go is. But then they are on their third and likely soon fourth GC. Java GCs have also evolved quite dramatically, and improved massively. D is a GC language and yet no-one goes around saying what a great GC D has. Everyone just grumbles about it, or tries to remove it.

> I think D as a language is far superior to Go, and I wish we
> would toot our horn a little more in this regard instead of the
> constant negative discussion around systems programming."
> https://dlang.org/blog/2017/08/11/on-tilix-and-d-an-interview-with-gerald-nunn/

Sadly this marketing and traction of D debate happens from time to time on this mailing lists, but the community attitude seems not to change. Tilix shows what can be done with D/GtkD. I switched GFontBrowser to D from C++, but may yet rewrite in Rust with gtk-rs because the Rust/gtk- rs community is looking to get traction where D seems happy as a small niche – for me a sad waste.

As for Qt and wxWidgets to go for real traction against Go and Rust, I have moaned a few minutes ago about that in another email so will avoid repetition here.

-- 
Russel.
===========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk



October 21, 2018
On Sat, 2018-10-20 at 16:37 +0000, Atila Neves via Digitalmars-d wrote:
> […]
> 
> It turns out that translating C++ is *hard*. Partly because the language is huge and complicated, but also partly because libclang isn't all it's cracked up to be. But... dpp is probably a few full work days away from being to #include <vector>. Hopefully with the translation actually working.

This I can believe, but isn't the D-side problem only to be able to link to C++ libraries. Given previous emails this morning, clearly my current thoughts are creating D bindings for Qt and wxWidgets.

> […]
> 
> * std::is_reference is untranslatable: there are no reference types in D. It's likely to get used with SFINAE, and while that is translatable by hand, I have no idea how I'd write an algorithm to figure out SFINAE when it happens and translate that to template constraints in D.

From what I hear at ACCU conferences, most C++ programmers can't handle SFINAE properly.

-- 
Russel.
===========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk



October 21, 2018
On Sat, 2018-10-20 at 21:25 -0400, Nick Sabalausky (Abscissa) via
Digitalmars-d wrote:
> […]
> 
> And KDE.

Not entirely true, you can run KDE application on a GNOME system, and I assume GNOME application on a KDE system.

> I've heard a lot of very good things about GtkD, and honestly, I have
> no
> doubts about any of it. Unfortunately though, the main problem with
> GtkD
> is simply GTK itself :(

The GTK/Qt battle on Linux was won by GTK+2 hence GNOME over KDE as the default for Debian and Fedora. Whether this was right or wrong is left as a choice for the reader!

I think GTK+3 is actually really quite nice, somewhat nicer than Qt. However if D had a Qt binding in play as good as the GtkD binding is to GTK+, then maybe I could be convinced to use Qt. No way am I going to use C++ for desktop GUI applications, and Rust is the only other option just now.

[…]
> 
> What about DWT? It seemed pretty good from what I could tell, though
> I
> still haven't ventured into D GUIs just yet myself. Are there issues
> people have with DWT? Or WxD?

The SWT framework is being replaced with JavaFX, so should D forget DWT and do something similar? If yes the QtE5 or dqml are the way forward since the QML engine of Qt is the equivalent of JavaFX.

Putting effort into wxD is the same sort of effort needed for either qtD or dqt, would it be better to back Qt or wxWidgets?

-- 
Russel.
===========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk



October 21, 2018
On 10/21/18 3:33 AM, Russel Winder wrote:
> On Sat, 2018-10-20 at 21:25 -0400, Nick Sabalausky (Abscissa) via
> Digitalmars-d wrote:
>> I've heard a lot of very good things about GtkD, and honestly, I have
>> no
>> doubts about any of it. Unfortunately though, the main problem with
>> GtkD
>> is simply GTK itself :(
> 
> The GTK/Qt battle on Linux was won by GTK+2 hence GNOME over KDE as the
> default for Debian and Fedora. Whether this was right or wrong is left
> as a choice for the reader!

That's pure nonsense: It's Linux - unless one option actually goes away (KDE is still actively used and developed), then there's no such thing as one "winning" over the other.

It IS a big problem that far too many people (mainly developers coming directly from the Windows world who have decided to half-ass a Linux port) have decided to erroneously equate "Linux" with "GTK-based DE" these days, but that's a far cry from saying that GTK/GNOME/Unity "won out" over Qt/KDE.

> I think GTK+3 is actually really quite nice, somewhat nicer than Qt.
> However if D had a Qt binding in play as good as the GtkD binding is to
> GTK+, then maybe I could be convinced to use Qt. No way am I going to
> use C++ for desktop GUI applications, and Rust is the only other option
> just now.

Programmers writing GUI apps often like GTK. Nobody else does. From a programmer standpoint, it may very well be nice. But that's irrelevant, because from the user standpoint, GTK is, and has always been, a steaming pool of diarrhea, even if you ARE using GNOME/Unity.
October 21, 2018
On 10/21/18 1:47 AM, Joakim wrote:
> 
> Simple, C++ is increasingly seen as irrelevant by those choosing a new language, so D's real competition is now Go, Rust, Swift, Nim, Zig, etc. These are people who want to write "fast code fast," well except for Rust users, who value ownership more.

Never confuse "relevancy" with "buzz".

Most of worst ideas in this industry stem from the hipsters who can't figure out there's a difference.
October 21, 2018
On Sunday, 21 October 2018 at 07:33:45 UTC, Russel Winder wrote:

> The GTK/Qt battle on Linux was won by GTK+2 hence GNOME over KDE as the default for Debian and Fedora. Whether this was right or wrong is left as a choice for the reader!

Linux is not only the desktop, and Qt simply dominates in industrial, medical and automation sector, that's where the money is.

Qt is pushing strongly on the embedded marked, bare metal or linux (kernel) based...

- Paolo