Java > Scala

Adam Wilson flyboynw at gmail.com
Sun Dec 4 14:21:41 PST 2011


On Sun, 04 Dec 2011 06:26:39 -0800, Don <nospam at nospam.com> wrote:

> On 02.12.2011 22:02, Adam Wilson wrote:
>> On Fri, 02 Dec 2011 11:29:18 -0800, Gour <gour at atmarama.net> wrote:
>>
>>> On Fri, 02 Dec 2011 10:56:41 -0800
>>> "Adam Wilson" <flyboynw at gmail.com> wrote:
>>>
>>> Hello Adam,
>>>
>>>> Gour, I'd love to talk to you more about GUI's. I am new to D, but I
>>>> have spent years working with GUI toolkits and studying their
>>>> construction.
>>>
>>> Well, I'm just someone with not-so-much free time looking to help some
>>> GUI bindings project in order to be able to use it for open-source
>>> project(s).
>>>
>>
>> Completely understandable. I'm not exactly swimming in free time either
>> ... :-S
>>
>>>> My company would like to move to D in the future but, among other
>>>> things, the lack of a first class GUI toolkit makes that a non-starter
>>>> at the moment. If such a thing existed my company would be very
>>>> willing to jump ship.
>>>
>>> This is one of the best paragraph I read in this newsgroup in a recent
>>> time. I hope it will be loud-enough.
>>>
>>
>> I hope it will to, but at the same time, wxD and DWT are inadequate for
>> our needs, and will probably always be so. I consider 'first-class"
>> something like a QML/JavaFX/WPF framework, and a lot of other companies
>> are in the same boat. I have nothing against wxD or DWT, they just don't
>> work for us.
>>
>>>> And I have permission to use some limited company resources, mostly
>>>> just web hosting for the project right now, but ability to expand that
>>>> latter if the project shows progress.
>>>
>>> I believe that stuff like bitbucket/github should be enough...
>>>
>>
>> I agree, I was mostly stating that as an indication that my company is
>> willing to help out if progress being made.
>>
>>>> I would also be up for leading the project, but a project of this
>>>> size would need lots of contributors. And there still needs to be
>>>> serious discussions about how to design such a project.
>>>
>>> /me nods
>>>
>>>> Personally, my UI design background tends away from traditional style
>>>> toolkits like wxD and DWT, and as such I would probably want to take
>>>> the project in a different direction than those.
>>>
>>> Interesting...
>>>
>>>> For example, all of our software at work is built on WPF and I can say
>>>> that I completely believe that WPF style UI toolkits are the way of
>>>> the future.
>>>
>>> Hmm...but WPF is Windows-only, right?
>>>
>>> Moreover, developing something from the scratch woudl require enormous
>>> amount of time in comparison with *just* providing higher-level D-ish
>>> API for some of the already available GUI toolkit.
>>>
>>> On top of that, I believe that the best forces available within D-army
>>> are now focused on improving DMD/Phobos, so don't know how many  
>>> soldiers
>>> are ready into going developing something new.
>>>
>>> Let me say, that when the time matures, I'm definitely to have some
>>> solution more suitable for D and its advantages over e.g. C(++), but  
>>> for
>>> now I believe that just having some pragmatic solution in the form of
>>> actively-worked-on project covering one of the {gtk,qt,wx}.
>>>
>>
>> WPF is Windows only, and that is probably my biggest gripe with it
>> outside of the numerous, and serious, implementation flaws. The closest
>> you can get to WPF on Linux is Moonlight, and that is limited compared
>> to what WPF can do. Argh!
>>
>> That is true, but there are already two projects out their to accomplish
>> that, and I personally would have no problem with anyone who wanted to
>> work on those instead, they are useful and allow something to be built
>> in the near-term, which will significantly help D. But I, nor my
>> company, can do much of anything short term in D. Specifically, we are
>> still developing our projects in C# and our product life-cycles are very
>> long (10+ years) and a GUI toolkit isn't the only thing missing in terms
>> of what we need to port. So I am thinking much longer term here.
>>
>> It absolutely will take time, lots of it, but in the end, I feel that D
>> will be much better positioned in the long-run to take serious market
>> share if it has a state-of-the-art UI toolkit. Toolkits like wxD and DWT
>> absolutely have a place, but the big players are moving away from that
>> model of UI creation, as the news about QML demonstrates. QML is
>> obviously early, but it's headed down the same path as JavaFX and
>> WPF/Silverlight.
>>
>> The reason I want to start now is that it's still early in the evolution
>> of declarative UI's. WPF is only 5 years old, but it took MS about 300
>> programmers and 4 years to build, and it's the oldest implementation of
>> that type of UI that I know of outside academia. Given how long it took,
>> starting now is better than starting later. The earlier you show up to
>> market with what people want, the bigger market share you grab. That's
>> good for D. :-)
>
> Not sure about that. If you start later, you can learn more from the  
> mistakes of others.

By that line of logic the most ideal time to start would be never. There  
are always mistakes to learn from, sometimes you have to be willing to be  
the one who makes them so that others can learn. Fortunately for this  
project, there is a conceptual foundation that has already been laid out  
by WPF, and believe me after years of fighting with it, I'm intimately  
familiar with it's mistakes. It's time to move on, fix those mistakes, and  
make new ones so that someone else can come along and fix those. The only  
way progress happens is by learning from the mistakes of the past. Time to  
make some new misakes! :-)

>> My intention is not to draw away any devs who could potentially work on
>> DMD/Phobos, in fact I want them working hard on those because without
>> them my work is pointless, and in some cases impossible (showstopper
>> bugs and ICE's are rather annoying like that). I suspect that it'll be a
>> case of "me, myself, and I" working on a declarative UI for D for quite
>> some time. But at the same time, I want to continue to have
>> conversations with the community at large, probably mostly about design
>> and whatnot. If there are people who really want to help I won't turn
>> them away, but I'll avoid actively recruiting to make sure that
>> DMD/Phobos gets first pick, as they should. Sound good?
>
> The history of D libraries is tragic -- there have been many ambitious  
> projects, which have ended up being abandoned. (Actually I think this is  
> pretty widespread in open source, not specific to D). I would hate for  
> that list to get any longer.
> The successful D projects have, as far as I know, always used a  
> bottom-up approach.
> So I would recommend to try to carve a small aspect off from the large  
> GUI problem, and implement that. And do it so well that everyone wants  
> to use it.

I agree and I have to admit that this is of some concern to me as well.  
Fortunately for me, my company has a financial interest in seeing a useful  
WPF-like UI library available for a language that isn't controlled by  
large corporate interests that don't have their developers best interests  
in mind (see the current firestorm over Silverlight).
D has serious advantages for my company, it's way more productive than C++  
yet retains much of the native speed of C like compiled languages and it's  
similar to the language we currently use (C#). But we can't move to D yet  
because there are a couple of large holes in the available toolkits that  
we need filled, WPF-like UI and WCF-like SOA architecture support come to  
mind. We'd also like to see a few releases of the compiler that are free  
of any ICE's in general usage and a better GC. Compiler's and GC's aren't  
really my capability set, but libraries, particularly of the UI type, are  
much more my speed. I'm just trying to help where I can. And we have a  
reason to stick around. Who knows maybe someone comes along with something  
better, but since I don't see that happening any time soon, I don't see  
any reason not to get started.
At the moment I am trying to tackle two small pieces of the puzzle,  
Property Update Notifications (primarily used for Data-binding, but can be  
useful elsewhere), and designing a generic drawing interface that  
different drawing back-ends could be plugged into, like  
DirectX/OpenGL/others.

>>
>>>> Besides, why cover the same ground that those two projects are
>>>> already covering? I could list all the pro's and con's that we've
>>>> discovered in actual usage of WPF but I don't want to needlessly
>>>> clutter up this thread which has little to do with UI. :-)
>>>
>>> Time & effort which are limited in D community right now?
>>>
>>
>> That is legitimate assertion and GUI toolkits are among the most
>> complicated undertakings a group can attempt to carry out.
>>
>>>> You can find me on IRC as LightBender and the email account I list
>>>> here is actively monitored.
>>>
>>> I'm available as 'gour' on IRC.
>>>
>>>
>>> Sincerely,
>>> Gour
>


-- 
Adam Wilson
Project Coordinator
The Horizon Project
http://www.thehorizonproject.org/


More information about the Digitalmars-d mailing list