Jump to page: 1 25  
Page
Thread overview
Current state of GUI's
Sep 03, 2015
motaito
Sep 03, 2015
CraigDillabaugh
Sep 03, 2015
motaito
Sep 03, 2015
Rikki Cattermole
Sep 03, 2015
motaito
Sep 03, 2015
Rikki Cattermole
Sep 03, 2015
motaito
Sep 03, 2015
Rikki Cattermole
Sep 03, 2015
motaito
Sep 03, 2015
Zekereth
Sep 03, 2015
thedeemon
Sep 03, 2015
motaito
Sep 03, 2015
bachmeier
Sep 03, 2015
motaito
Sep 04, 2015
Shannon
Sep 04, 2015
Shannon
Sep 04, 2015
motaito
Sep 04, 2015
Chris
Sep 04, 2015
motaito
Sep 04, 2015
Jacob Carlborg
Sep 05, 2015
motaito
Sep 05, 2015
Jacob Carlborg
Sep 05, 2015
motaito
Sep 06, 2015
Rikki Cattermole
Sep 06, 2015
motaito
Sep 06, 2015
Jacob Carlborg
Sep 04, 2015
Chris
Sep 05, 2015
motaito
Sep 04, 2015
jmh530
Sep 03, 2015
CraigDillabaugh
Sep 03, 2015
motaito
Sep 03, 2015
Mike James
Sep 03, 2015
motaito
Sep 03, 2015
Jacob Carlborg
Sep 03, 2015
motaito
Sep 03, 2015
Jim Hewes
Sep 03, 2015
motaito
Sep 03, 2015
Jim Hewes
Sep 03, 2015
motaito
Sep 04, 2015
Nick Sabalausky
Sep 04, 2015
motaito
Sep 04, 2015
thedeemon
Sep 03, 2015
Gary Willoughby
September 03, 2015
Hi,

I haven't used D before and wanted to take a closer look at it. However, there are a few things that keep me from doing so. Most notably I am somewhat confused about the state of GUI's. I have looked at a couple projects and online resources, but the resources I found seam to be quite outdated. Sorry in advance, if I have missed some update on the topic. I wanted to ask, if there is something in the workings (or already done) to provide a standard way to create GUI's. Something supported by D, not an independent project. Independent projects tend to scare me away, as they almost always get abandoned at some point. I am looking for a cross platform (Windows, Linux, BSD) solution.

I very much enjoyed working with QT before, especially QML and would like to use something, that essentially replaces C++ with D for QML. I only found QtD which also seams to be abandoned. Or (maybe even preferable) something similar to .NET and WPF as this makes it very easy and flexible to create modern GUI's. I would like to install a D environment and get working without having to build other projects for GUI's.

e.g.
import std.GUI;

void main(string[] args)
{
	auto win = loadGUIFromXML("Path/to/gui.xml");
	win.show();
}

The XML could then have bindings to D-Modules to handle events and perform the actual tasks.

e.g.
<dgui>
	<resources>
		<import module="someModule.d" id="sm" />
	</resources>
	<window width="640" height="480">
		<button text="click me" clickEvent="sm:someFunction()" />
		<content path="path/to/other/xml/gui/for/nested/components" />
	</window>
</dgui>

// some component to be loaded into the window above
<dgui>
	<resources>
		<import module="otherModule.d" id="om" />
	</resources>
	<component>
		<button text="click me" clickEvent="om:otherFunction()" orientation="LeftToRight">
			<image path="src/to/icon.png" />
			<text content="some text for the button"/>
		</button>
		<label text="some label text" />
	</component>
</dgui>

Does D offer something like this by now? What is the current state/standard for GUI creation?
September 03, 2015
On Thursday, 3 September 2015 at 12:19:25 UTC, motaito wrote:
> Hi,
>
> I haven't used D before and wanted to take a closer look at it. However, there are a few things that keep me from doing so. Most notably I am somewhat confused about the state of GUI's. I have looked at a couple projects and online resources, but the resources I found seam to be quite outdated. Sorry in advance, if I have missed some update on the topic. I wanted to ask, if there is something in the workings (or already done) to provide a standard way to create GUI's. Something supported by D, not an independent project. Independent projects tend to scare me away, as they almost always get abandoned at some point. I am looking for a cross platform (Windows, Linux, BSD) solution.
>
> [...]

Not sure of its current state, but you should check out DOtherSide:

https://github.com/filcuc/DOtherSide
September 03, 2015
On Thursday, 3 September 2015 at 12:51:18 UTC, CraigDillabaugh wrote:
>
> Not sure of its current state, but you should check out DOtherSide:
>
> https://github.com/filcuc/DOtherSide

Thanks for the link. I will take a closer look at it. But does this also mean, that there is no "built in" GUI solution for D?
September 03, 2015
On 04/09/15 1:21 AM, motaito wrote:
> On Thursday, 3 September 2015 at 12:51:18 UTC, CraigDillabaugh wrote:
>>
>> Not sure of its current state, but you should check out DOtherSide:
>>
>> https://github.com/filcuc/DOtherSide
>
> Thanks for the link. I will take a closer look at it. But does this also
> mean, that there is no "built in" GUI solution for D?

Short answer:

Don't expect anything in Phobos short term.
In the mean time you'll probably want a c/c++ library such as QT.


Long answer:

We're probably about 2 years away before anything useful and even then it will have a huge push back unless e.g. Andrei says we must have a GUI toolkit! We've got money to make it happen.

That's if my work gets into Phobos when I am planning it to (unlikely).

I know its grim, but keep in mind we need a platform abstraction that supports things like an event loop, window creation independent of what the system actually supports. An image abstraction with common manipulation/formats.

Then on top of a platform abstraction some people also need other forms of event handling and the list goes on.

But I am actively working on an image library and a window + context creation library for Phobos. It's just a year away.
https://github.com/rikkimax/alphaPhobos

Not to scare you aware or anything, but you probably don't want a pure Phobos solution anyway.
September 03, 2015
On Thursday, 3 September 2015 at 13:21:45 UTC, motaito wrote:
> On Thursday, 3 September 2015 at 12:51:18 UTC, CraigDillabaugh wrote:
>>
>> Not sure of its current state, but you should check out DOtherSide:
>>
>> https://github.com/filcuc/DOtherSide
>
> Thanks for the link. I will take a closer look at it. But does this also mean, that there is no "built in" GUI solution for D?

No there is no standard D GUI.  There are lots of efforts by different
community members like DWT (https://github.com/d-widget-toolkit/dwt). I
pointed you to DOtherSide because of all the GUI's I've heard of it
seemed the closest to what you are looking for.  I think DWT is the
most complete of the D GUI libraries available though.

I think part of the issues is that there is no strong consensus
in the community as to what form a D GUI would take, through there
is certainly a lot of discussion.
September 03, 2015
On Thursday, 3 September 2015 at 12:19:25 UTC, motaito wrote:
> Hi,
>
> I haven't used D before and wanted to take a closer look at it. However, there are a few things that keep me from doing so. Most notably I am somewhat confused about the state of GUI's. I have looked at a couple projects and online resources, but the resources I found seam to be quite outdated. Sorry in advance, if I have missed some update on the topic. I wanted to ask, if there is something in the workings (or already done) to provide a standard way to create GUI's. Something supported by D, not an independent project. Independent projects tend to scare me away, as they almost always get abandoned at some point. I am looking for a cross platform (Windows, Linux, BSD) solution.
>
> [...]

Have a look at GtkD and DWT - they are the most complete. I've written small apps using both and they work :-)
With GtkD you can use the Glade Builder to simplify design of the GUI elements.
September 03, 2015
On 2015-09-03 14:19, motaito wrote:

> I am looking for a cross platform (Windows, Linux, BSD) solution.

Others have already mentioned DWT. It officially only support Windows and Linux. It might be easy to get it to work on BSD since the platform is similar to Linux, assuming GTK is used.

-- 
/Jacob Carlborg
September 03, 2015
On Thursday, 3 September 2015 at 14:13:26 UTC, Rikki Cattermole wrote:
> Short answer:
>
> Don't expect anything in Phobos short term.
> In the mean time you'll probably want a c/c++ library such as QT.
>
>
> Long answer:
>
> We're probably about 2 years away before anything useful and even then it will have a huge push back unless e.g. Andrei says we must have a GUI toolkit! We've got money to make it happen.
>
> That's if my work gets into Phobos when I am planning it to (unlikely).
>
> I know its grim, but keep in mind we need a platform abstraction that supports things like an event loop, window creation independent of what the system actually supports. An image abstraction with common manipulation/formats.
>
> Then on top of a platform abstraction some people also need other forms of event handling and the list goes on.
>
> But I am actively working on an image library and a window + context creation library for Phobos. It's just a year away.
> https://github.com/rikkimax/alphaPhobos
>
> Not to scare you aware or anything, but you probably don't want a pure Phobos solution anyway.

Thanks for the details! I was afraid, of something like this. To me D doesn't seam very competitive without a complete toolset :( Given that D has been around for a while now I am somewhat surprised it's not further along. I know it's a lot of work and not easy to do but clearly there has been a need for this for many years now. The resources I found were several years old (not including that they must have been working on it for a while before abandoning the project). It will be hard to compete with something like QT.

I was hoping for a cross platform solution that would deliver good performance without the complexity of c/c++. But if there is no built in solution QT seams a better option. I wanted to avoid QT because of the added complexity and the QT-windows tend to lag on a windows platform. This may go away with updates and bugfixes though.

Anyway, I hope you will be successful with alphaPhobos. I think D needs it, so don't abandon it! I will keep an eye out and check again in about a year or so. But for now I have to rethink whether to use D or not.

Out of curiosity, why do you think that I wouldn't want a Phobos solution? Wouldn't an integrated solution be better? I would not have to maintain a build of an external third party project, that may or may not be abandoned in the future, not knowing whether there will be updates, bugfixes or missing features to be added. It seams like quite a bit extra management for my project if I have to keep a third party project up to date and may need to adjust my code due to an update in an external project.
September 03, 2015
On Thursday, 3 September 2015 at 14:16:19 UTC, CraigDillabaugh wrote:
> No there is no standard D GUI.  There are lots of efforts by different
> community members like DWT (https://github.com/d-widget-toolkit/dwt). I
> pointed you to DOtherSide because of all the GUI's I've heard of it
> seemed the closest to what you are looking for.  I think DWT is the
> most complete of the D GUI libraries available though.
>
> I think part of the issues is that there is no strong consensus
> in the community as to what form a D GUI would take, through there
> is certainly a lot of discussion.

Thanks for the input! I was hoping for a standard D Gui though. I guess I have to give it a shot, before making a final decision.
September 03, 2015
On 04/09/15 3:15 AM, motaito wrote:
> Anyway, I hope you will be successful with alphaPhobos. I think D needs
> it, so don't abandon it! I will keep an eye out and check again in about
> a year or so. But for now I have to rethink whether to use D or not.

Thanks, this is a long term thing. I've been planning this for ~2 years. Previous was Devisualization (Github org of mine). So a bunch of code has actually originated here. Before that DOOGLE. Even some of that came from OOGL (ported it from c++ to D as D_OOGL).

> Out of curiosity, why do you think that I wouldn't want a Phobos
> solution? Wouldn't an integrated solution be better? I would not have to
> maintain a build of an external third party project, that may or may not
> be abandoned in the future, not knowing whether there will be updates,
> bugfixes or missing features to be added. It seams like quite a bit
> extra management for my project if I have to keep a third party project
> up to date and may need to adjust my code due to an update in an
> external project.

Because, at best case the graphics could be very ugly and lacking of features in a GUI toolkit. We're just too far away from it.

We need to focus on getting the core problems solved. So that people can flourish with building e.g. GUI toolkits unimpeded by what we support. Also helps interop between them.

After we have a decent one, then we can consider it for Phobos.
I know the current situation is unfortunate. We've had some pretty major changes in the last few years and that is ok. I hope we do get to a point where it is easy to get started in almost any problem domain :)
« First   ‹ Prev
1 2 3 4 5