www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - is D ncurses-only language?

reply Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hello!

Re-considering to use D for real-world project and must say that
we're very pleased by seeing all the progress which has happened in a
recent time...64bit DMD, gdc might be included in gcc, there are more
bindings available (we're interested abotu sqlite3), Phobos is receiving
new modules, community is alive  github...

There is still one area which needs, imho, more attention and that is
the GUI world or language bindings for different toolkits.

New web page says: "D is a lan=C2=ADguage with C-like syntax and static
typ=C2=ADing. It pragmatically combines effi=C2=ADciency, control, and mode=
l=C2=ADing
power, with safety and programmer productivity." and I hope that the
word 'pragmatically' includes writing GUI apps as well (hopefully there
is still life for non-web apps) :-)

However, the world of GUI bindings is not thrilling...


a) DWT was supposed to become THE toolkit for D, maybe (I'm not sure) it
was still in the D1-era, but from the contact with the main (only) DWT
developer - "unfortunately DWT is not a project I'm currently focusing
on" andd, as he told me: "I think it's quite usable on windows and
linux, the mac port isn't finished yet".

Moreover, DWT is based on SWT-3.4, while SWT-stable is 3.7 with the
development on 3.8.

So, DWT(2) is not suitable for multi-platform GUI development in D. :-/

b) QtD repo  bitbucket has last commit by David in May. According to
him: "Qt 4.7 should work, although I haven't tested the latest minor
release", he and Max "working on it from time to time" and "It does the
job for me in its current form, and I don't have the time for working on
it any further".

Qt does not offer native look on supported platforms, although it looks
quite good.

c) gtkD looks it's in best shape...works with Phobos and Tango, with D
1.0 and D 2.0, 64 bits support, wraps GTK+ 2.22.x API.

Quite good, although a bit behind GTK+ schedule. The problem might be
there is only one developer (Mike) working on it.

There is endeavour to bring GTK+ looks good on Mac OS X, Windows port
needs, afaik, some more manpower, but GTK, in general, might look a bit
strange on non-Linux OS.

d) wxD...recently moved to github, the only developer (Anders) recently
announced he is stepping down from the project (let's hope he'll change
his mind), although there are some fixes committed and according to
Andrej "It compiles fine on DMD 2.056, but you need to compile wxWidgets via
DMD make first. It's described on wxd's website." which looks quite
good.

Considering that wxWidgets is the only player amongst {gtk,qt,wx}
providing native look on all supported platforms (2.9/3.0 brings new
Cocoa port), this looks as great option for true multi-platform
development of  GUI apps in D.

Now, wx lib is big and I was discussing it with wx folks about the
possibility to make it easier for language bindings developers.

Here is the comment from one of the main wx devs, Vadim Zeitlin who
wrote ("help for language bindings developers" thread on wxwidgets
list):

<quote>

 it seems that there is prominent opionion that providing language

This is pretty obvious, yes. I don't know of any library of comparable size for which writing bindings would be an easy and simple task. Do you? G> Otoh, I wonder if there is some general plan to have something like G> introspection in GTK+ which could help present and future authors of G> language bindings to make it easier to provide & maintain them for G> plethora of languages? =20 I am not aware of such a plan. IMHO it's not very realistic and I think the best bet to make writing bindings easier in practice would be to have a well-maintained and working wxC project. I also think that SWIG is the best bet to make it work in practice but there could be other approaches. In any case the most important thing would be to find someone motivated enough to work on it. </quote> and Robin Dunn, main dev behind wxPython said: <quote> I've decided to switch to SIP for wxPython, but the main goal of the=20 Phoenix project is to auto-generate as much of the wrapper code as=20 possible, so if other language bindings would rather use SWIG, some=20 other tool, or custom C code with Phoenix then it should be possible.=20 It will just take writing the generator class for the target back-end.=20 There is still currently some Python and SIP-specific stuff in the other=20 parts of Phoenix, but it should be possible to either remove that or at=20 least to make it possible for other generators to ignore it. OTOH, I've also thought of using Phoenix to generate a wxC library as=20 Vadim mentioned, so maybe that would be a good first step for other=20 bindings. </quote> So, one possibility would be to have wxC bindings from where it would be, hopefully, easier to provide D bindings. I'm aware there is no ideal GUI multi-platform toolkit, some look better, some are better documented, supported as well. My main concern is quotes like: "I do like a lot of things about D. It still seems a bit raw to me for "serious" projects though but then I last looked at it more than a year ago so perhaps things have changed since then. It would be interesting to hear if you run into any problems using it." "Whether you use GTK or Qt, I see no reason to avoid C++. I can understand reluctance to build in C (there is Vala of course). Python is a good choice. If you do want to build a project that is open source and actually could have some community behind it, D is probably not the best language to pick." so I wonder whether D is meant to be ncurses-only language, or it is possible to find some crew to enhance one of the above mentioned projects so that it can be said that writing multi-platform deskop app using D+X gui toolkit is safe & viable option *today* ? I may say that considering nativity of wxWidgets it's my choise, I'd be glad to know for any toolkit to receive more love. In the meantime, we'll try to find the answer which toolkit might be optimal for our needs (today & tomorrow) by using some non-technical methods. ;) Sincerly, Gour --=20 While contemplating the objects of the senses, a person=20 develops attachment for them, and from such attachment lust=20 develops, and from lust anger arises. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Nov 23 2011
next sibling parent reply Jude Young <10equals2 gmail.com> writes:
On Wed 23 Nov 2011 04:23:22 AM CST, Gour wrote:
 Hello!

 Re-considering to use D for real-world project and must say that
 we're very pleased by seeing all the progress which has happened in a
 recent time...64bit DMD, gdc might be included in gcc, there are more
 bindings available (we're interested abotu sqlite3), Phobos is receiving
 new modules, community is alive  github...

 There is still one area which needs, imho, more attention and that is
 the GUI world or language bindings for different toolkits.

 New web page says: "D is a lan­guage with C-like syntax and static
 typ­ing. It pragmatically combines effi­ciency, control, and model­ing
 power, with safety and programmer productivity." and I hope that the
 word 'pragmatically' includes writing GUI apps as well (hopefully there
 is still life for non-web apps) :-)

 However, the world of GUI bindings is not thrilling...


 a) DWT was supposed to become THE toolkit for D, maybe (I'm not sure) it
 was still in the D1-era, but from the contact with the main (only) DWT
 developer - "unfortunately DWT is not a project I'm currently focusing
 on" andd, as he told me: "I think it's quite usable on windows and
 linux, the mac port isn't finished yet".

 Moreover, DWT is based on SWT-3.4, while SWT-stable is 3.7 with the
 development on 3.8.

 So, DWT(2) is not suitable for multi-platform GUI development in D. :-/

 b) QtD repo  bitbucket has last commit by David in May. According to
 him: "Qt 4.7 should work, although I haven't tested the latest minor
 release", he and Max "working on it from time to time" and "It does the
 job for me in its current form, and I don't have the time for working on
 it any further".

 Qt does not offer native look on supported platforms, although it looks
 quite good.

 c) gtkD looks it's in best shape...works with Phobos and Tango, with D
 1.0 and D 2.0, 64 bits support, wraps GTK+ 2.22.x API.

 Quite good, although a bit behind GTK+ schedule. The problem might be
 there is only one developer (Mike) working on it.

 There is endeavour to bring GTK+ looks good on Mac OS X, Windows port
 needs, afaik, some more manpower, but GTK, in general, might look a bit
 strange on non-Linux OS.

 d) wxD...recently moved to github, the only developer (Anders) recently
 announced he is stepping down from the project (let's hope he'll change
 his mind), although there are some fixes committed and according to
 Andrej "It compiles fine on DMD 2.056, but you need to compile wxWidgets via
 DMD make first. It's described on wxd's website." which looks quite
 good.

 Considering that wxWidgets is the only player amongst {gtk,qt,wx}
 providing native look on all supported platforms (2.9/3.0 brings new
 Cocoa port), this looks as great option for true multi-platform
 development of  GUI apps in D.

 Now, wx lib is big and I was discussing it with wx folks about the
 possibility to make it easier for language bindings developers.

 Here is the comment from one of the main wx devs, Vadim Zeitlin who
 wrote ("help for language bindings developers" thread on wxwidgets
 list):

 <quote>

 it seems that there is prominent opionion that providing language

This is pretty obvious, yes. I don't know of any library of comparable size for which writing bindings would be an easy and simple task. Do you? G> Otoh, I wonder if there is some general plan to have something like G> introspection in GTK+ which could help present and future authors of G> language bindings to make it easier to provide & maintain them for G> plethora of languages? I am not aware of such a plan. IMHO it's not very realistic and I think the best bet to make writing bindings easier in practice would be to have a well-maintained and working wxC project. I also think that SWIG is the best bet to make it work in practice but there could be other approaches. In any case the most important thing would be to find someone motivated enough to work on it. </quote> and Robin Dunn, main dev behind wxPython said: <quote> I've decided to switch to SIP for wxPython, but the main goal of the Phoenix project is to auto-generate as much of the wrapper code as possible, so if other language bindings would rather use SWIG, some other tool, or custom C code with Phoenix then it should be possible. It will just take writing the generator class for the target back-end. There is still currently some Python and SIP-specific stuff in the other parts of Phoenix, but it should be possible to either remove that or at least to make it possible for other generators to ignore it. OTOH, I've also thought of using Phoenix to generate a wxC library as Vadim mentioned, so maybe that would be a good first step for other bindings. </quote> So, one possibility would be to have wxC bindings from where it would be, hopefully, easier to provide D bindings. I'm aware there is no ideal GUI multi-platform toolkit, some look better, some are better documented, supported as well. My main concern is quotes like: "I do like a lot of things about D. It still seems a bit raw to me for "serious" projects though but then I last looked at it more than a year ago so perhaps things have changed since then. It would be interesting to hear if you run into any problems using it." "Whether you use GTK or Qt, I see no reason to avoid C++. I can understand reluctance to build in C (there is Vala of course). Python is a good choice. If you do want to build a project that is open source and actually could have some community behind it, D is probably not the best language to pick." so I wonder whether D is meant to be ncurses-only language, or it is possible to find some crew to enhance one of the above mentioned projects so that it can be said that writing multi-platform deskop app using D+X gui toolkit is safe & viable option *today* ? I may say that considering nativity of wxWidgets it's my choise, I'd be glad to know for any toolkit to receive more love. In the meantime, we'll try to find the answer which toolkit might be optimal for our needs (today & tomorrow) by using some non-technical methods. ;) Sincerly, Gour

ncurses needs a few minor fixes I believe, ( one or two minor edits ) and other than that, I cannot say. But really, what is a language if it doesn't have ncurses? =P I agree that D needs GUI support. The problem is that what you are suggesting takes time, and it takes effort. and it takes people who know and understand these things. If you are trying to get a small team together to ensure that a particular GUI project gets the time and the effort needed to make it worthwhile(no offense to any maintainer), then I am on board. You have my email address. Pick a project that you are willing to invest time and effort in. (GTK, QT, wxWidgets... the list goes on. Preferable cross-platform support.) I have no experience with any of them. I've never used them, I've never played with them. Draw up a roadmap of what needs to be done. Fork the projects, or get the original maintainers on board. You've posted about the state of GUI's several times, now lets see you put your money where your mouth is, and let's see if we can get an up-to-date, stable, platform-independent GUI for D. (assuming one doesn't already exist. I assume it doesn't) Are you willing to put the time and effort into a project like this?
Nov 23 2011
parent reply Jacob Carlborg <doob me.com> writes:
On 2011-11-23 13:04, Gour wrote:
 ...but I do not see myself neither qualified nor skillful enough to lead
 the herd. However, I'm ready to learn and put the time&  effort into it.
 It sounds scary to me that some GUI project would depend on leadership
 of mine. :-()

You could help out and contribute to DWT, for example. -- /Jacob Carlborg
Nov 23 2011
parent reply Jacob Carlborg <doob me.com> writes:
On 2011-11-23 15:37, Gour wrote:
 On Wed, 23 Nov 2011 14:32:30 +0100
 Jacob Carlborg<doob me.com>  wrote:

 You could help out and contribute to DWT, for example.

Thank you for offering. Atm, I'm more leaning to some of the other 3 toolkits, but wonder why DWT did not become THE D toolkit?

Probably because the original author abandoned the project. I think he worked fulltime on the project, that's why the project progressed so fast. Another guy who contributed quite a lot of code, porting of the browser package, just stopped contributing one day and wasn't reachable. Then it was basically me left. I have focused on other D related project and haven't prioritized DWT in quite a while. There have been a couple of people contributing since the original author left the project. I've only basically tried to merged in their changes. I have recently started to move the repository to github, hoping it will get some more attention. All the code is moved but I need to setup git submodules and update the build script. One reason I haven't prioritized DWT is because I'm running Mac OS X and that port isn't finished. So when I need to fix a bug or make sure a patch works I need to boot Linux or Windows virtually, which I try to avoid. It just takes some extra effort to fix a bug or similar. I've created an organization at github with all the repositories: https://github.com/d-widget-toolkit/ -- /Jacob Carlborg
Nov 23 2011
next sibling parent Jacob Carlborg <doob me.com> writes:
On 2011-11-24 09:24, Gour wrote:
 I bet that working on DWT requires some Java knowledge?

Well, yes. It helps. But in general, the part of D that Java supports looks very similar in Java and D. There are a few corner cases where both languages uses the same syntax but the semantics are slightly different.
 I've created an organization at github with all the repositories:
 https://github.com/d-widget-toolkit/

Thank you. Can you, btw, give some case for DWT(2)? I do not use any Java app and have no experience with SWT whatsover. What would be some pro/cons of DWT comparing it with gtk/qt/wx? All I know is that it is (like wx) toolkit providing native look...

The thing is that I don't have much experience with these libraries. I have used GTK for a project but that was using C#. I have never used Qt or wx. I recommend trying to find some page that compares SWT, Qt, GTK and wx and see what it says. Just so it's not forgotten, JFace is an Eclipse library built on top of SWT for simplifying some tasks. JFace is port to D as well. http://en.wikipedia.org/wiki/JFace -- /Jacob Carlborg
Nov 24 2011
prev sibling parent Dejan Lekic <dejan.lekic gmail.com> writes:
 
 I bet that working on DWT requires some Java knowledge?

Not really. Java has nothing that D does not have anyway. Most SWT and SWING classes are very simple and easy to use. I doubt there is anything Java- specific one needs to know to work with DWT. Sure, previous Java knowledge will make it easier to learn DWT because some concepts used there are known to everybody (observer pattern, mvc, etc).
Nov 24 2011
prev sibling next sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Wed, 23 Nov 2011 05:33:04 -0600
Jude Young <10equals2 gmail.com> wrote:

 ncurses needs a few minor fixes I believe, ( one or two minor edits )
 and other than that, I cannot say.  But really, what is a language if=20
 it doesn't have ncurses? =3DP

Yes...it may be useful e.g. when just testing libs and/or prototyping..
 I agree that D needs GUI support.

Good.
 The problem is that what you are suggesting takes time, and it takes=20
 effort. and it takes people who know and understand these things.

Yes.
 Preferable cross-platform support. i

I agree.
 I have no experience with any of them.  I've never used them, I've
 never played with them.

Same here...I only use apps written in 'em.
 You've posted about the state of GUI's several times, now lets see you
 put your money where your mouth is, and let's see if we can get an
 up-to-date, stable, platform-independent GUI for D. =20

Sure, I do care about D to become successful...
 Are you willing to put the time and effort into a project like this?

...but I do not see myself neither qualified nor skillful enough to lead the herd. However, I'm ready to learn and put the time & effort into it. It sounds scary to me that some GUI project would depend on leadership of mine. :-() Sincerely, Gour --=20 You have a right to perform your prescribed duty,=20 but you are not entitled to the fruits of action.=20 Never consider yourself the cause of the results=20 of your activities, and never be attached to not doing your duty. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Nov 23 2011
prev sibling next sibling parent Jude Young <10equals2 gmail.com> writes:
On Wed 23 Nov 2011 06:04:57 AM CST, Gour wrote:
 On Wed, 23 Nov 2011 05:33:04 -0600
 Jude Young <10equals2 gmail.com> wrote:

 ncurses needs a few minor fixes I believe, ( one or two minor edits )
 and other than that, I cannot say.  But really, what is a language if 
 it doesn't have ncurses? =P

Yes...it may be useful e.g. when just testing libs and/or prototyping..
 I agree that D needs GUI support.

Good.
 The problem is that what you are suggesting takes time, and it takes 
 effort. and it takes people who know and understand these things.

Yes.
 Preferable cross-platform support. i

I agree.
 I have no experience with any of them.  I've never used them, I've
 never played with them.

Same here...I only use apps written in 'em.
 You've posted about the state of GUI's several times, now lets see you
 put your money where your mouth is, and let's see if we can get an
 up-to-date, stable, platform-independent GUI for D.  

Sure, I do care about D to become successful...
 Are you willing to put the time and effort into a project like this?

...but I do not see myself neither qualified nor skillful enough to lead the herd. However, I'm ready to learn and put the time & effort into it. It sounds scary to me that some GUI project would depend on leadership of mine. :-()

Send me an email. Not asking you to lead the herd, Just thought that we could collaborate in order to reach our goal. We pick a project, work out a plan of attack, and attempt to better the GUI situation for D. Sound Good?
Nov 23 2011
prev sibling next sibling parent reply Trass3r <un known.com> writes:
 c) gtkD looks it's in best shape...works with Phobos and Tango, with D
 1.0 and D 2.0, 64 bits support, wraps GTK+ 2.22.x API.

 Quite good, although a bit behind GTK+ schedule. The problem might be
 there is only one developer (Mike) working on it.

So he's still working on it? GTK+3 is a major step.
Nov 23 2011
parent reply Mike Wey <mike-wey example.com> writes:
On 11/23/2011 01:58 PM, Trass3r wrote:
 c) gtkD looks it's in best shape...works with Phobos and Tango, with D
 1.0 and D 2.0, 64 bits support, wraps GTK+ 2.22.x API.

 Quite good, although a bit behind GTK+ schedule. The problem might be
 there is only one developer (Mike) working on it.

So he's still working on it? GTK+3 is a major step.

Yes, I'll probably update GtkD to the latest 2.x release before looking at GTK+ 3. -- Mike Wey
Nov 23 2011
next sibling parent reply bls <bizprac orange.fr> writes:
On 11/23/2011 01:58 PM, Mike Wey wrote:
 On 11/23/2011 01:58 PM, Trass3r wrote:
 c) gtkD looks it's in best shape...works with Phobos and Tango, with D
 1.0 and D 2.0, 64 bits support, wraps GTK+ 2.22.x API.

 Quite good, although a bit behind GTK+ schedule. The problem might be
 there is only one developer (Mike) working on it.

So he's still working on it? GTK+3 is a major step.

Yes, I'll probably update GtkD to the latest 2.x release before looking at GTK+ 3.

Understandable. However have just seen GTK broadway samples. Blows me away. This is is must have 4 D. For the curious.. http://www.geek.com/articles/news/gtk-html-5-update-puts-desktop-apps-on-the-web-20110318/
Nov 23 2011
parent Dejan Lekic <dejan.lekic gmail.com> writes:
That is simply put - brilliant.
Nov 24 2011
prev sibling parent Mike Wey <mike-wey example.com> writes:
On 11/28/2011 05:08 PM, Gour wrote:
 On Wed, 23 Nov 2011 22:58:00 +0100
 Mike Wey<mike-wey example.com>  wrote:

 Yes, I'll probably update GtkD to the latest 2.x release before
 looking at GTK+ 3.

Have you considered using SWIG to provide GtkD bindings?

I'll have to check it out, currently updating the lookup files will be the easiest way to update GtkD.
 btw, do you have any influence  dsource forums?

 I registered 8 days ago and still neither received confirmation email
 that my account was activated nor I can login.

You'll probably have to contact Brad.
 Sincerely,
 Gour

-- Mike Wey
Nov 28 2011
prev sibling next sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Wed, 23 Nov 2011 14:32:30 +0100
Jacob Carlborg <doob me.com> wrote:

 You could help out and contribute to DWT, for example.

Thank you for offering. Atm, I'm more leaning to some of the other 3 toolkits, but wonder why DWT did not become THE D toolkit? Sincerely, Gour --=20 What is night for all beings is the time of awakening=20 for the self-controlled; and the time of awakening for=20 all beings is night for the introspective sage. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Nov 23 2011
prev sibling next sibling parent reply Dejan Lekic <dejan.lekic gmail.com> writes:
Direct answer to the question - support for ncurses is soon there. So it is 
not a "ncurses language". :)

I know, what you tried to ask is - is it only for console-bases 
applications? - The answer to this question is - NO. It can use any GUI 
toolkit you like. (And you know this very well as we talked about this on 
irc://irc.freenode.org/d )

So what is the point of the question? To troll about not having a standard 
GUI package in Phobos, or what? :)

Being an open-source project makes it open to your contributions as well - 
go ahead and do it yourself, if you need it.

Regards
Nov 23 2011
parent Dejan Lekic <dejan.lekic gmail.com> writes:
 
 D community is, imho, not big-enough to waste precious resources in *too
 many* projects. (Tango & Phobos should taught us the lesson.)

In open-source world people do various things. Almost all organised open- source projects have some company, or someone who has a "higher" interest in the project. No matter what binding you chose, it is going to be a wrong choice from the perspective of others (who use some other binding). With Windows and MacOSX it is easy - you have only one or two choices. With Linux, BSD, OpenSlowaris and others it is much more difficult. I humbly believe D should have its own GUI library which heavily utilises brilliant std.concurrency, plus the (improved) signals module (where improved = thread-safe).
Nov 23 2011
prev sibling next sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Wed, 23 Nov 2011 15:24:09 +0000
Dejan Lekic <dejan.lekic gmail.com> wrote:

 So what is the point of the question? To troll about not having a
 standard GUI package in Phobos, or what? :)

No, but to, maybe, suggest that it would be better having ONE or TWO stable bindings available for D. Maybe you didn't visit http://www.wikiservice.at/d/wiki.cgi?GuiLibraries for some time. ;)
 Being an open-source project makes it open to your contributions as
 well - go ahead and do it yourself, if you need it.

No, I'd like to join some project which has some momentum and better support from D community. Do-it-yourself approach has created dozen of half-or-less-baked projects. D community is, imho, not big-enough to waste precious resources in *too many* projects. (Tango & Phobos should taught us the lesson.) Sincerely, Gour --=20 In this endeavor there is no loss or diminution,=20 and a little advancement on this path can protect=20 one from the most dangerous type of fear. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Nov 23 2011
prev sibling next sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Wed, 23 Nov 2011 16:04:31 +0000
Dejan Lekic <dejan.lekic gmail.com> wrote:

 In open-source world people do various things. Almost all organised
 open- source projects have some company, or someone who has a
 "higher" interest in the project.

You imply that D community is not organized and without "higher" interest? ;)
 No matter what binding you chose, it is going to be a wrong choice
 from the perspective of others (who use some other binding).=20

Right, but at least there would be one or two which are stable and fully maintained. I do not see the current status of GUI bindings being advantageous.
 I humbly believe D should have its own GUI library which heavily
 utilises brilliant std.concurrency, plus the (improved) signals
 module (where improved =3D thread-safe).

I humbly believe that at the moment, when D community cannot even have one fully supported GUI bindings project, it's illusion to think about full-fledged GUI lib.=20 One day? Sure, since library in D should bring D's advanced features into it. Sincerely, Gour --=20 As a strong wind sweeps away a boat on the water,=20 even one of the roaming senses on which the mind=20 focuses can carry away a man's intelligence. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Nov 23 2011
prev sibling next sibling parent reply Rainer Schuetze <r.sagitario gmx.de> writes:
On 23.11.2011 11:23, Gour wrote:
 Hello!

 Re-considering to use D for real-world project and must say that
 we're very pleased by seeing all the progress which has happened in a
 recent time...64bit DMD, gdc might be included in gcc, there are more
 bindings available (we're interested abotu sqlite3), Phobos is receiving
 new modules, community is alive  github...

 There is still one area which needs, imho, more attention and that is
 the GUI world or language bindings for different toolkits.

 New web page says: "D is a lan­guage with C-like syntax and static
 typ­ing. It pragmatically combines effi­ciency, control, and model­ing
 power, with safety and programmer productivity." and I hope that the
 word 'pragmatically' includes writing GUI apps as well (hopefully there
 is still life for non-web apps) :-)

 However, the world of GUI bindings is not thrilling...

I wonder whether it would help, if dmd would improve with respect to the integration of C++ object code with D. Name mangling for extern(C++) seems almost ok, and there is a not too old patch for dmd that shows usage of Qt without additional bindings: http://d.puremagic.com/issues/show_bug.cgi?id=4620 I recently played around with C++ interfaces a bit in another context and noticed that you can interface C++ classes like this: // test.cpp class C { public: virtual int virtual_fun(int x); int nonvirtual_fun(int x); int a; }; // test.d extern (C++) interface C { int virtual_fun(int n); final int nonvirtual_fun(int n); } It actually needs a tiny patch on windows (nonvirtual_fun is mangled as static function). Unfortunately I did not find a way to sensibly declare member "a" in D. There is another bug that a derived class is using a wrong virtual function table offset, but that should be fixable.
Nov 23 2011
parent reply mta`chrono <chrono mta-international.net> writes:
 It actually needs a tiny patch on windows (nonvirtual_fun is mangled as
 static function). Unfortunately I did not find a way to sensibly declare
 member "a" in D. There is another bug that a derived class is using a
 wrong virtual function table offset, but that should be fixable.

It's very important that dmd will be able to call C++'s non virtual functions and it's ctors/dtors. But there must be some significant reasons why Walter didn't accept the patch.
Nov 23 2011
parent mta`chrono <chrono mta-international.net> writes:
 It should be possible to simply create smart pointers that wrap
 C++ classes in D though.

Martin, what needs to be done to use SmartPtrs for every c++ class without using a c-wrapper?
Nov 24 2011
prev sibling next sibling parent "Martin Nowak" <dawg dawgfoto.de> writes:
On Wed, 23 Nov 2011 21:04:04 +0100, mta`chrono  
<chrono mta-international.net> wrote:

 It actually needs a tiny patch on windows (nonvirtual_fun is mangled as
 static function). Unfortunately I did not find a way to sensibly declare
 member "a" in D. There is another bug that a derived class is using a
 wrong virtual function table offset, but that should be fixable.

It's very important that dmd will be able to call C++'s non virtual functions and it's ctors/dtors. But there must be some significant reasons why Walter didn't accept the patch.

Forget about ctor/dtors, even if C++ object construction boiled down to a function call, you would need the size of a struct/class. C++ interfacing will rather only ever work with references. It should be possible to simply create smart pointers that wrap C++ classes in D though. extern(C++) { interface Foo { // using convention names static Foo* construct(); static void destruct(Foo*); int blah1(); final void blah2(); } } alias DSmartPtr!(Foo) DFoo;
Nov 23 2011
prev sibling next sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Thu, 24 Nov 2011 08:29:00 +0100
Jacob Carlborg <doob me.com> wrote:

 Probably because the original author abandoned the project. I think
 he worked fulltime on the project, that's why the project progressed
 so fast. Another guy who contributed quite a lot of code, porting of
 the browser package, just stopped contributing one day and wasn't
 reachable.

Ahh, now it makes sense. Thank you for taking time to explain.
 I have recently started to move the repository to github, hoping it
 will get some more attention. All the code is moved but I need to
 setup git submodules and update the build script. One reason I
 haven't prioritized DWT is because I'm running Mac OS X and that port
 isn't finished.=20

I see.
 So when I need to fix a bug or make sure a patch works I need to boot
 Linux or Windows virtually, which I try to avoid. It just takes some
 extra effort to fix a bug or similar.

I bet that working on DWT requires some Java knowledge?
 I've created an organization at github with all the repositories:=20
 https://github.com/d-widget-toolkit/

Thank you. Can you, btw, give some case for DWT(2)? I do not use any Java app and have no experience with SWT whatsover. What would be some pro/cons of DWT comparing it with gtk/qt/wx? All I know is that it is (like wx) toolkit providing native look... Sincerely, Gour --=20 A person who is not disturbed by the incessant flow of=20 desires =E2=80=94 that enter like rivers into the ocean, which is=20 ever being filled but is always still =E2=80=94 can alone achieve=20 peace, and not the man who strives to satisfy such desires. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Nov 24 2011
prev sibling next sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Thu, 24 Nov 2011 14:11:11 +0100
Jacob Carlborg <doob me.com> wrote:

 Well, yes. It helps. But in general, the part of D that Java supports=20
 looks very similar in Java and D. There are a few corner cases where=20
 both languages uses the same syntax but the semantics are slightly=20
 different.

OK. My experience with Java is 0.
 I recommend trying to find some page that compares SWT, Qt, GTK and
 wx and see what it says.

Mostly old stuff...However Ports section (http://www.eclipse.org/swt/community.php)=20 lists what ports are available: * port to Fox toolkit - latest news Sep 16, 2005 * port on top of the Swing - latest file 2007-08-20 and * port to D :-) It does not look very thrilling. Sincerely, Gour --=20 You have a right to perform your prescribed duty,=20 but you are not entitled to the fruits of action.=20 Never consider yourself the cause of the results=20 of your activities, and never be attached to not doing your duty. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Nov 24 2011
prev sibling next sibling parent "Martin Nowak" <dawg dawgfoto.de> writes:
On Thu, 24 Nov 2011 10:20:03 +0100, mta`chrono  
<chrono mta-international.net> wrote:

 It should be possible to simply create smart pointers that wrap
 C++ classes in D though.

Martin, what needs to be done to use SmartPtrs for every c++ class without using a c-wrapper?

It's really not much. https://gist.github.com/1391734 You could add things as implicit conversion to base classes. One limitation will remain though, there is no way around duplicating declarations. martin
Nov 24 2011
prev sibling next sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Wed, 23 Nov 2011 22:58:00 +0100
Mike Wey <mike-wey example.com> wrote:

 Yes, I'll probably update GtkD to the latest 2.x release before
 looking at GTK+ 3.

Have you considered using SWIG to provide GtkD bindings? btw, do you have any influence dsource forums? I registered 8 days ago and still neither received confirmation email that my account was activated nor I can login. Sincerely, Gour --=20 When your intelligence has passed out of the dense forest=20 of delusion, you shall become indifferent to all that has=20 been heard and all that is to be heard. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Nov 28 2011
prev sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Mon, 28 Nov 2011 22:33:58 +0100
Mike Wey <mike-wey example.com> wrote:

 I'll have to check it out, currently updating the lookup files will
 be the easiest way to update GtkD.

OK.
 You'll probably have to contact Brad.

Done & fixed, but Forums are really spammed a lot and dsource is not very alive in general. Sincerely, Gour --=20 One who is not connected with the Supreme can have neither=20 transcendental intelligence nor a steady mind, without which=20 there is no possibility of peace. And how can there be any=20 happiness without peace? http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Nov 29 2011