www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Recommend: IDE and GUI library

reply XavierAP <n3minis-git yahoo.es> writes:
Hi I've looked at wiki.dlang.org/IDEs, and I see that Visual D is 
linked from dlang.org/download.html. Still I was looking for 
personal opinions and experiences beyond hard specs, I wonder if 
one of the IDEs is already dominant at least for each OS for any 
good reason.

My requirements are quite ordinary: make x64, debug, go to 
definition, manage projects, code completion. My platform is 
Windows; interested if the choice would be different for Linux, 
if the same nice, otherwise I'd prefer to use whatever is best on 
each OS.

And second question, is DWT the de facto standard for creating 
GUIs? Or are there good competitors.

Sorry if I'm asking something too obvious, though I've looked 
around for answers before. And I've also searched the forum but 
really equivalent questions were over 2 years old and many things 
may have changed.
Thanks!
Feb 24 2017
next sibling parent reply Moritz Maxeiner <moritz ucworks.org> writes:
On Friday, 24 February 2017 at 22:44:55 UTC, XavierAP wrote:
 Hi I've looked at wiki.dlang.org/IDEs, and I see that Visual D 
 is linked from dlang.org/download.html. Still I was looking for 
 personal opinions and experiences beyond hard specs, I wonder 
 if one of the IDEs is already dominant at least for each OS for 
 any good reason.

 My requirements are quite ordinary: make x64, debug, go to 
 definition, manage projects, code completion. My platform is 
 Windows; interested if the choice would be different for Linux, 
 if the same nice, otherwise I'd prefer to use whatever is best 
 on each OS.
I use Visual Studio Code on Linux and macOS, not sure how the experience on Windows is, but I'd expect it to be the same. With the dlang extension[1], the usual development tools dcd, dfmt, dscanner, dfix (see code.dlang.org for these), and the native debug extension[2] all your requirements are covered. After the setup everything has been working smoothly and I'm very happy with it. The *only* little gripe about it is that Visual Studio Code uses the Electron framework and drains about 10-20% more power than e.g. neovim, though the comparison is apples vs oranges.
 And second question, is DWT the de facto standard for creating 
 GUIs? Or are there good competitors.
AFAIK there is no standard in creating GUIs with D. I suppose if any one of them has what it takes to take that position in the future it'd be dlangui[3], but considering the issue tracker and the manpower available that'll likely still take a while. In the meantime I personally use dqml[4] (QtQuick 2.0 bindings) since I like MVC, and this allows me to write application logic and model in D, visual in QML, and controller in JS (and this also allows me to swap out the application core without changing a single line in the QML or JS).
 Sorry if I'm asking something too obvious, though I've looked 
 around for answers before.
If it's obvious, I missed it myself; I pretty much tried out all the GUI/TUI things on code.dlang.org until I found something I liked. [1] https://github.com/dlang-vscode/dlang-vscode [2] https://github.com/WebFreak001/code-debug [3] https://github.com/buggins/dlangui [4] https://github.com/filcuc/dqml
Feb 24 2017
parent evilrat <evilrat666 gmail.com> writes:
On Saturday, 25 February 2017 at 00:45:24 UTC, Moritz Maxeiner 
wrote:
 I use Visual Studio Code on Linux and macOS, not sure how the 
 experience on Windows is, but I'd expect it to be the same.
Windows is fine, can also debug mscoff x86 or x64 projects with MS 'cpptools' plugin that has visual studio debugger for C++
Feb 24 2017
prev sibling next sibling parent reply Jacob Carlborg <doob me.com> writes:
On 2017-02-24 23:44, XavierAP wrote:

 And second question, is DWT the de facto standard for creating GUIs? Or
 are there good competitors.
There's no de factor library for creating GUIs in D. If you want a native look and feel, DWT is a good option. If you want the application to look the same on all platforms, there might be other better suited alternatives. -- /Jacob Carlborg
Feb 25 2017
parent reply XavierAP <n3minis-git yahoo.es> writes:
On Saturday, 25 February 2017 at 20:03:17 UTC, Jacob Carlborg 
wrote:
 There's no de factor library for creating GUIs in D. If you 
 want a native look and feel, DWT is a good option. If you want 
 the application to look the same on all platforms, there might 
 be other better suited alternatives.
It's not GUI projects that I would plan to work on, just something easy with basic functionality that I can use for my own utilities or test clients for libraries. And if there's anything with any kind of designer support (in which IDE)...
Feb 25 2017
parent Moritz Maxeiner <moritz ucworks.org> writes:
On Saturday, 25 February 2017 at 21:26:32 UTC, XavierAP wrote:
 It's not GUI projects that I would plan to work on, just 
 something easy with basic functionality that I can use for my 
 own utilities or test clients for libraries. And if there's 
 anything with any kind of designer support (in which IDE)...
Well, if you use dqml you can use the official QML designer "Qt Quick Designer"[1]. You can also use GtkD[2], which supports loading[3] Glade[4] files. [1] http://doc.qt.io/qtcreator/creator-using-qt-quick-designer.html [2] https://github.com/gtkd-developers/GtkD [3] https://github.com/gtkd-developers/GtkD/blob/master/demos/builder/builderTest.d [4] https://glade.gnome.org/
Feb 25 2017
prev sibling next sibling parent reply thedeemon <dlang thedeemon.com> writes:
On Friday, 24 February 2017 at 22:44:55 UTC, XavierAP wrote:
 Hi I've looked at wiki.dlang.org/IDEs, and I see that Visual D 
 is linked from dlang.org/download.html. Still I was looking for 
 personal opinions and experiences beyond hard specs, I wonder 
 if one of the IDEs is already dominant at least for each OS for 
 any good reason.
I don't think there is anything dominant, different people tend to make different choices. For me Visual-D served well for years, and for GUI on Windows I've used DFL successfully (quite nice lib, very WinForms-like, with a visual editor) and now mostly use DLangUI (on both Windows and Linux).
Feb 27 2017
parent reply XavierAP <n3minis-git yahoo.es> writes:
On Tuesday, 28 February 2017 at 06:16:08 UTC, thedeemon wrote:
 For me Visual-D served well for years, and for GUI on Windows 
 I've used DFL successfully (quite nice lib, very WinForms-like, 
 with a visual editor) and now mostly use DLangUI (on both 
 Windows and Linux).
I'm trying now DlangUI on Visual D. I'm getting different errors from missing Derelict library dependencies... I see at github.com these are "subrepos" but after cloning the subrepo directories are still empty. Sorry this is my first time using Git/GitHub (used Mercurial and TortoiseHg at work, which I think would have cloned the subrepos without additional action). What am I missing?
Mar 01 2017
parent reply thedeemon <dlang thedeemon.com> writes:
On Wednesday, 1 March 2017 at 17:37:02 UTC, XavierAP wrote:
 I'm trying now DlangUI on Visual D. I'm getting different 
 errors from missing Derelict library dependencies...
If you're building your app with VisualD (as opposed to invoking dub externally), make sure you've set up import paths in project settings properly. Two paths must be there: one like C:\Users\...\AppData\Roaming\dub\packages\dlangui-0.9.46\dlangui\src\ and the other like C:\Users\...\AppData\Roaming\dub\packages\dlangui-0.9.46\dlangui\3rdparty\ and in linker tab of project settings make sure you link to the dlangui.lib you should have built beforehand. Also, if you use "minimal" configuration of DLangUI (which I recommend) you can remove mentions of SDL and GL from its dependencies in its dub.json, this way there are less things for compiler and VisualD to look for.
Mar 01 2017
parent reply XavierAP <n3minis-git yahoo.es> writes:
On Wednesday, 1 March 2017 at 20:00:32 UTC, thedeemon wrote:
 If you're building your app with VisualD (as opposed to 
 invoking dub externally), make sure you've set up import paths 
 in project settings properly.
Thanks. With dub everything works straight forward. I just call it blindly since it's the first time I use dub and I'm not sure everything it's supposed to do. Still I want to be able to be able to work and debug from Visual Studio. For this I found out how to clone the dependencies, sorry about that... (Only from the command line... Anyone recommends better free Windows Git gui clients than GitHub Desktop?) Import paths seem correctly setup in the project files from the repo, as I would expect. And once the dependency code is in its place it does build, both the library and the example applications. The problem I was having after all this was a runtime exception, but it happens only on 32-bit. Switching to 64-bit building and debugging works out of the box (after having cloned the subrepos). Here I have no idea if I have a drive issue, in any case 64-bit is enough for me. BTW the exception is: "derelict.util.exception.SymbolLoadException Failed to load OpenGL symbol [glEnableClientStateiEXT] "
 Also, if you use "minimal" configuration of DLangUI (which I 
 recommend) you can remove mentions of SDL and GL from its 
 dependencies in its dub.json, this way there are less things 
 for compiler and VisualD to look for.
I understand that in order to do this from Visual Studio, according to the instructions at github.com/buggins/dlangui, I should use configurations DebugMinimal instead of Debug, etc. But these configurations are not defined; I wonder if this documentation is out of sync with the current code. Otherwise I also though OpenGL wouldn't be used unless the version identifier USE_OPENGL was defined, but apparently it is not in VS as far as I can see? So in the end I'm not very sure whether OpenGL is kicking in in 64-bit when it works, or in general how to disable it (from Visual Studio instead of dub) -- or what are the consequences for performance or whatever. For now I can work like this and if I have additional problems that prevent me from advancing I will research it further... Thanks also aberba and everyone.
Mar 01 2017
next sibling parent evilrat <evilrat666 gmail.com> writes:
On Wednesday, 1 March 2017 at 23:44:47 UTC, XavierAP wrote:
 For this I found out how to clone the dependencies, sorry about 
 that... (Only from the command line... Anyone recommends better 
 free Windows Git gui clients than GitHub Desktop?)
TortoiseGIT maybe?
Mar 01 2017
prev sibling next sibling parent reply Patrick Schluter <Patrick.Schluter bbox.fr> writes:
On Wednesday, 1 March 2017 at 23:44:47 UTC, XavierAP wrote:
 On Wednesday, 1 March 2017 at 20:00:32 UTC, thedeemon wrote:

 For this I found out how to clone the dependencies, sorry about 
 that... (Only from the command line... Anyone recommends better 
 free Windows Git gui clients than GitHub Desktop?) Import paths 
 seem correctly setup in the project files from the repo, as I 
 would expect. And once the dependency code is in its place it 
 does build, both the library and the example applications.
Here [1] is the official git page listing all GUI clients for different plartforms. I use GitExtensions[2] and I like it a lot. It works very well and all the complicated stuff can be done from the GUI interface and also from command line. [1]=https://git-scm.com/download/gui/win [2]=https://gitextensions.github.io/
Mar 01 2017
parent XavierAP <n3minis-git yahoo.es> writes:
On Thursday, 2 March 2017 at 06:16:09 UTC, Patrick Schluter wrote:
 Here [1] is the official git page listing all GUI clients for 
 different plartforms.
 I use GitExtensions[2] and I like it a lot. It works very well 
 and all the complicated stuff can be done from the GUI 
 interface and also from command line.
Patrick thanks for the great recommendation! I'm using GitExtensions now on Windows. In comparison I wonder how GitHub's desktop client is even allowed on the Internet. For Linux (Lubuntu) any recommendation among these? https://git-scm.com/download/gui/linux
Mar 25 2017
prev sibling parent thedeemon <dlang thedeemon.com> writes:
On Wednesday, 1 March 2017 at 23:44:47 UTC, XavierAP wrote:
 Still I want to be able to be  able to work and debug from 
 Visual Studio.
The way I did on Windows: 1) get dlangui via dub 2) go to its folder in AppData\roaming\dub\packages and edit dub.json: * find "minimal" configuration * add "USE_WIN32" to "versions-windows", * remove mentions of "derelict-sdl2" and "derelict-gl3" from "dependencies" * remove "ForceLogs" from "versions" (just to avoid logspamming) 3) run "dub build --build=release --config=minimal" 4) use the result .lib file from my VisualD project This way no dependency on OpenGL which causes problems for you.
Mar 01 2017
prev sibling parent reply aberba <karabutaworld gmail.com> writes:
On Friday, 24 February 2017 at 22:44:55 UTC, XavierAP wrote:
 Hi I've looked at wiki.dlang.org/IDEs, and I see that Visual D 
 is linked from dlang.org/download.html. Still I was looking for 
 personal opinions and experiences beyond hard specs, I wonder 
 if one of the IDEs is already dominant at least for each OS for 
 any good reason.

 My requirements are quite ordinary: make x64, debug, go to 
 definition, manage projects, code completion. My platform is 
 Windows; interested if the choice would be different for Linux, 
 if the same nice, otherwise I'd prefer to use whatever is best 
 on each OS.

 And second question, is DWT the de facto standard for creating 
 GUIs? Or are there good competitors.

 Sorry if I'm asking something too obvious, though I've looked 
 around for answers before. And I've also searched the forum but 
 really equivalent questions were over 2 years old and many 
 things may have changed.
 Thanks!
Gtkd is obviously defacto for Linux ONLY, dlangui for cross platform app without native feel. But if you want something easy and flexible with native look and feel on all platforms, well tested, use LibUI (http://code.dlang.org/packages/libuid). Look inside the "examples" folder in their Github repository to see example usage. More like: auto hbox = new Box(false).setPadded(1); vbox.append(hbox); hbox.append(new Button("Button")) .append(new Checkbox("Checkbox")) ... Examples: https://github.com/mogud/libuid/blob/master/examples/example1.d https://github.com/mogud/libuid/blob/master/examples/example2.d
Mar 01 2017
parent Soulsbane <paul acheronsoft.com> writes:
On Wednesday, 1 March 2017 at 20:23:57 UTC, aberba wrote:
 On Friday, 24 February 2017 at 22:44:55 UTC, XavierAP wrote:
 [...]
Gtkd is obviously defacto for Linux ONLY, dlangui for cross platform app without native feel. But if you want something easy and flexible with native look and feel on all platforms, well tested, use LibUI (http://code.dlang.org/packages/libuid). Look inside the "examples" folder in their Github repository to see example usage. More like: auto hbox = new Box(false).setPadded(1); vbox.append(hbox); hbox.append(new Button("Button")) .append(new Checkbox("Checkbox")) ... Examples: https://github.com/mogud/libuid/blob/master/examples/example1.d https://github.com/mogud/libuid/blob/master/examples/example2.d
I second this. I've been playing with this recently and it's really easy to use.
Mar 25 2017