April 18, 2006
clayasaurus wrote:

> Have you ever thought about putting your project on dsource? I have a feeling it would get a lot more exposure to D programmers that way :)

There are several D projects on SourceForge - as well as on dsource ?

This one (wxD) is not entirely my own, and has been OK on SourceForge...
I don't think moving it over to DS would help, but maybe you are right.

Now seems to be a bad time to be doing so, though ?
"FATAL: connection limit exceeded for non-superusers"


But I thought that one of the biggest reasons for the lack of interest was that Walter already picked another framework (DWT) as the official.
Or that most people are just using DMD and Windows anyway, and then it made more sense to pick one of the several existing D/Windows toolkits.
Or perhaps start something new in "pure D", like Harmonia or MinWin ?

I'm using wxWidgets elsewhere, so it made sense to use it for D too...
(the cross-language portability is an added bonus to the cross-platform)


Anyway, wxD 0.05 will soon be released with support for sound and with the cross-platform support cleaned up and expanded. Plus some bugfixes.

It'll be announced on digitalmars.D.announce and on http://wxd.sf.net/
(send us an email if you like to join the project or help beta testing)

--anders
April 19, 2006
Hi,

The D community seems to be divided regarding a GUI/Framework for D.
I guess the community needs to decide exactly what it would like from a GUI/Framework.

Are we looking for
Portability to multiple platforms?

Something similar to the .NET Framework? i.e. not just a GUI but an entire Framework

Nice GUI RAD IDE similar to SharpDevelop or Visual Studio 2005?

Native API's converted to D for each platform?

A Consistent look and feel across all OS Platforms?

Obviously not all of the above can be achieved, as some are mutually exclusive to each other, i.e Native API's and consistent look across OS Platforms.

I am sure there are other ideas, but would it not be better to collaborate all efforts on a single project rather than several individual projects striving for the same goal.

It is still possible to divide and conquer but why not on a single project rather than several different ones.

I understand that there are those that have worked hard on their own projects and don't want to abandon them, so why not take the best from them all and put this into a single focused effort?

Just my humble opinion as a new comer to D, and not meant to offend anyone so apologies if it does, this is not my intention.

DBloke


April 19, 2006
DBloke wrote:
> 
> I am sure there are other ideas, but would it not be better to collaborate all efforts on a single project rather than several individual projects striving for the same goal.

Well, you're not the first to propose this...

Anyway, even GUI-projects can have quite different goals, and not all are actually necessary to have cross-platform as it increases the internal complexity of the project. And many choose their GUI based on previous experiences and since there are umpteen GUI's in other languages, these experiences are very diverse. :)
April 19, 2006
DBloke wrote:
> Hi,
> 
> The D community seems to be divided regarding a GUI/Framework for D.
> I guess the community needs to decide exactly what it would like from a GUI/Framework.
> 
> Are we looking for
> Portability to multiple platforms?
> 
> Something similar to the .NET Framework? i.e. not just a GUI but an entire Framework
> 
> Nice GUI RAD IDE similar to SharpDevelop or Visual Studio 2005?
> 
> Native API's converted to D for each platform?
> 
> A Consistent look and feel across all OS Platforms?
> 
> Obviously not all of the above can be achieved, as some are mutually exclusive to each other, i.e Native API's and consistent look across OS Platforms.

I agree. I think that it's been unproductive to discuss the merits of various frameworks without discussing the philosophy behind them.

I think there's reasonable agreement of many of the underlying issues (I haven't heard anyone arguing for a monolithic .NET-style framework).
But there are (at least) two major groups -- cross-platform, and OS-native. IMHO, anyone who wants small Windows-only executables, is *never* going to be happy with a cross-platform solution.

> I am sure there are other ideas, but would it not be better to collaborate all efforts on a single project rather than several individual projects striving for the same goal.

Agreed, but I don't think there is one common goal. It does seem to me, though, to be feasible to reduce the plethora of projects significantly.

Personally, I've joined Stewart in the conversion of the Windows API, which seems to me to be necessary for all frameworks. I think this is a case where a bottom-up approach is the most promising.

> It is still possible to divide and conquer but why not on a single project rather than several different ones.
> 
> I understand that there are those that have worked hard on their own projects and don't want to abandon them, so why not take the best from them all and put this into a single focused effort?
> 
> Just my humble opinion as a new comer to D, and not meant to offend anyone so apologies if it does, this is not my intention.
> 
> DBloke
> 
> 
April 19, 2006
Don Clugston wrote:

> Personally, I've joined Stewart in the conversion of the Windows API, which seems to me to be necessary for all frameworks. I think this is a case where a bottom-up approach is the most promising.

It is not needed if the interface to the system is written in C or C++,
instead of D ? (some GUI libraries use this approach, like DIUP or wxD)

But for a framework written all in D it is needed, and it's a problem...
For Mac OS X, one needs to convert all the Carbon API framework headers.


When doing a minimalist approach, like MinWin, one can probably get away with just declaring the used stuff on the fly and not the whole thing...

Another possibility is basing a framework on some portable ground, like for instance SDL or OpenGL. But it wouldn't feel very "native", then ?

--anders
April 19, 2006
> Another possibility is basing a framework on some portable ground, like for instance SDL or OpenGL. But it wouldn't feel very "native", then ?
> 
> --anders

This is something that would need to be agreed, do we want Native or X Platform?

Either choice would require significant effort IMHO, and require that all different platforms be synced to maintain consistency if D goes the X Platform route.

D is X Platform so perhaps D's GUI should be also?

SDL and OpenGL could be a useful starting platform, and D's GUI Framework could leverage a lot of low level code from the two platforms, and a bonus that it is written in C so will be easier to interface to in theory and X Platform.




April 19, 2006
DBloke wrote:

> This is something that would need to be agreed, do we want Native or X Platform?

Why would it need to be universally agreed on ? Couldn't we have both ?

If you mean for the "official" Digital Mars GUI for D, then Walter has
already chosen DWT which is a native interface ("heavyweight" widgets)

> D is X Platform so perhaps D's GUI should be also?

AFAIK, "D" (as in DMD) is Dual-platform ? But I prefer Cross-platform,
as available with the GDC back-end/compiler. Mostly because I use Mac.

And I prefer native D widgets, just as I prefer native D executables...

> SDL and OpenGL could be a useful starting platform, [...]
> and a bonus that it is written in C so will be easier to interface to

Yes, a definitive bonus of SDL and GL is that the D bindings are done
and that you can link directly to the system libraries (i.e. not C++)

Then again we don't have any "official" bindings for either of them ?

--anders


PS. You do know that there already are a few D frameworks, right ?
    heavyweight: MinWin, DIUP, DUI, DWT, wxD
    lightweight: Harmonia, Terra
    http://www.prowiki.org/wiki4d/wiki.cgi?AvailableGuiLibraries
April 19, 2006
Bloke wrote:
> 
>> This is something that would need to be agreed, do we want Native or X Platform?
> 
> Why would it need to be universally agreed on ? Couldn't we have both ?
Yes D could have both but assuming that one half work on X Platform and one half on Native then you only have half as much effort for each rather than 100% on one.
> 
> If you mean for the "official" Digital Mars GUI for D, then Walter has
> already chosen DWT which is a native interface ("heavyweight" widgets)

Yes I read the post, but is DWT not a Windows only implementation, and is it still actively updated and maintained?

If only Windows Only what possibilities are there to make it Dual/ X Platform ;)

It seems that DWT was supposed to mirror SWT but the version of DWT is over a year out of date compared to SWT Stable.

AFAICS there is only Shawn working on this if DWT is the chosen one would it not be better to concentrate all efforts on this adding and removing ideas from other GUI Framworks to DWT in a multi man effort?

> And I prefer native D widgets, just as I prefer native D executables...

Are you referring to DWT?

> Yes, a definitive bonus of SDL and GL is that the D bindings are done
> and that you can link directly to the system libraries (i.e. not C++)
> 
> Then again we don't have any "official" bindings for either of them ?

What would make a binding official? was TUMIKI Fighters not written in SDL and OpenGL http://www.asahi-net.or.jp/~cs8k-cyu/windows/tf_e.html ?


> PS. You do know that there already are a few D frameworks, right ?

Yes :) but this is what I was referring to in original post there are lots of GUI Frameworks about but none finished afaics or at least out of alpha or early stages.

Why not have a community effort finishing one or using all the best ideas from each project and building a new one from ground up?
DBloke
April 19, 2006
In article <e257hp$bsn$1@digitaldaemon.com>, DBloke says...
>
>> Another possibility is basing a framework on some portable ground, like for instance SDL or OpenGL. But it wouldn't feel very "native", then ?
>> 
>> --anders
>
>This is something that would need to be agreed, do we want Native or X Platform?
>
>Either choice would require significant effort IMHO, and require that all different platforms be synced to maintain consistency if D goes the X Platform route.
>
>D is X Platform so perhaps D's GUI should be also?
>
>SDL and OpenGL could be a useful starting platform, and D's GUI Framework could leverage a lot of low level code from the two platforms, and a bonus that it is written in C so will be easier to interface to in theory and X Platform.
>

$0.02:
As much as I like the idea of using something that is guaranteed to exist on all
platforms (GL), there comes a rather stiff price for backing a raw graphics
library.  Most notably is the fact that any such development effort would have
to build its own rendering and event model from the ground up.  Also, meshing
with the OS's native capabilities, like cut-and-paste, would prove troublesome.

Beyond that, it's the one approach that yields the most advantages. Applications would be guaranteed to behave *and* look the same on all platforms; kind of like Swing.  Rendering and compositing would take advantage of hardware where possible, so it'll likely be very fast if not efficent.  You get 3D rendering for free, so it could double as a multimedia/gaming lib as well. Skinnable interfaces, and paradigm bending concepts also become very possible - the kind of stuff that makes X11 look like a tasteless joke.

So all in all, backing GL is the most ambitious path, but probably the one that would yield the most promise.

I'll add that there seems to be an industry-wide paradigm shift that points squarely at using GL for rendering the humble GUI.  From what I understand, OSX already does this, and Linux is well on its way.  Windows GDI is a bloated dinosaur, and I would not be suprised if MS did away with it in Vista (or at least promoted a new model that is closer to the hardware while keeping GDI for compatibility's sake). So for once, we'd be planning ahead.

In light of all that, I reckon that a GL based D windowing lib would prove easier to back-port to a native toolkit once this paradigm shift is in full swing - provided that's even necessary.  After all, all three major operating systems come with some kind of 3D or GL support out of the box already, right?

- EricAnderton at yahoo

PS, you could back DWT, Minwin, DUIT, etc on such a lib if you wanted to.
April 19, 2006
DBloke wrote:

> Yes D could have both but assuming that one half work on X Platform
> and one half on Native then you only have half as much effort for each
> rather than 100% on one.

I think that both of these approaches have their uses, actually...

If there was a finite number of people working on it totally,
it would make sense to pick one. But I don't think there are ?
It's more like some people are interested in one and others
are interested in the other, and you can't make them "switch"

And even if I think the native toolkit should be the primary one,
I can't deny that for instance Harmonia or XUL gives good results ?

>> If you mean for the "official" Digital Mars GUI for D, then Walter has
>> already chosen DWT which is a native interface ("heavyweight" widgets)
>
> Yes I read the post, but is DWT not a Windows only implementation, and
> is it still actively updated and maintained?
[...]
> AFAICS there is only Shawn working on this if DWT is the chosen one
> would it not be better to concentrate all efforts on this adding and
> removing ideas from other GUI Framworks to DWT in a multi man effort?

I think there was Shawn working on DWT/Windows, JJR working on DWT/GTK
(Linux) and Carlos working on DWT/Carbon (Mac OS X) in the beginning...

But I think the start of this thread was because the DWT/Win development
is not making progress and I think the other platforms are stopped too ?

At least that's how the DWT forum posting sounds:
http://www.dsource.org/forums/viewtopic.php?t=1169

>> And I prefer native D widgets, just as I prefer native D executables...
>
> Are you referring to DWT?

I meant in general, as in heavyweight/widgets over lightweight/gadgets.
(I think you used the terms "native" and "crossplatform" for the two ?)

I just like using the frameworks using native widgets better myself;
even if it would be very cool to have something like Swing, in OpenGL ?

Have been writing Java apps with Swing earlier, that has worked well.
But there both the code and gui is portable, which it isn't in D exes.
So currently I'm doing either wxWidgets with C++, or Swing with Java.
(for the cross-platform projects, the rest use some old native stuff)

i.e. either both program/framework is native, or they're both virtual
SWT just isn't my "personal favorite", so I haven't been using it...

>> Then again we don't have any "official" bindings for either of them ?
>
> What would make a binding official? [...]

Supported by Digital Mars ? Or available as a standard D download ?

But I know that there are two approaches here, "headers" (bindings)
and "Derelict" (loading shared library function pointers at runtime)
So maybe it's not doable to have just one official SDL/GL binding...
The SDL/GL bindings are both working well, that is not the problem.

> Why not have a community effort finishing one or using all the best
> ideas from each project and building a new one from ground up?

A new library on the same scope of SWT or wxWidgets takes years to do,
which is why it was much easier to port or wrap the original versions ?

If doing a brand new GUI library, then MinWin (heavyweight) or Harmonia
(lightweight) seems to be the two D libraries that are furthest along ?
Or perhaps the DUI library, if wrapping GTK+ is cross-platform enough ?
(it looks a bit weird on Windows, and is not finished yet for Mac OS X)

    ****

I will await what the community comes up with for a new official project
and/or restart of the DWT project, and just continue with wxD meanwhile.

GDC and wxD are the ones closest matching to what *I* want out of D, but
for others then the official two: DMD and DWT, might be a better match ?

--anders