On Mon, 20 May 2013 20:32:30 -0700, Tyler Jameson Little <beatgam...@gmail.com> wrote:

So the basic premise of the argument is that if we can't make everyone happy we shouldn't do anything at all?

That's the initial feeling I get, but I think it comes more from the idea that a large piece of software they didn't write might be dumped on them. It's a legitimate concern, so I think a GUI library should not be included in Phobos if a group has not agreed to maintain it.

Also, mobile, particularly WinRT, but also Android, do not enforce a look, in fact Android enshrines the idea of many different looks for widgets, my S3 is NOT the vanilla Android look. Only iOS enforces a "look" but it's still overridable. And WinRT doesn't even have the concept of OS enforced widgets looks, all it has a default style.

Trying to cover all bases seems like a headache that doesn't make sense in a standard library. For me, a standard library would provide a simple way to get basic tasks done; anything more complicated should be built on top if possible, but the core shouldn't be too bloated.

I'm thinking something closer to Clutter, not WPF. WPF is fine, but as you mentioned earlier, it has something like 40,000 classes. I'm sure much of it is just OO baggage (stupid little 20-line classes), but that still translates to a lot of code. Browsing Ohloh.net, here's an idea of the scope of other FOSS GUI toolkits:

* Qt 5 - ~7.7 million SLOC
* wkWidgets - ~1.3 million SLOC
* Gtk+ - ~769k SLOC
* EFL - ~535k SLOC
* Clutter - ~133k SLOC

As for my opinionated ideals (doesn't affect the overall design much):

* no XML (yaml maybe, but XML just isn't user-friendly)
* very limited number of default components (external libraries can provide more) * liberally licensed (Phobos requires Boost, so that's a minimum; I prefer BSD)

I also don't like the idea of external processes interfering with the UI. I can only see security holes that cannot be plugged because of the design decision. This can, of course, be provided by a developer, but it should not be provided by default in the library code.

I actually find WPF too be far to heavy to be realistic for our purposes too. I know why they choose XML for XAML (they had existing XML parser/serialization libraries to leverage) but it ends up being frighteningly verbose. I am think a DSL and CTFE/mixins would be a MUCH more compact system and would be much more in line with D's principles. I personally have no problem with Boost, the goal is to get people using it in all scenarios, not restricting it to one licensing ideology or another.

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

Reply via email to