Jump to page: 1 24  
Page
Thread overview
Favorite GUI library?
Apr 23, 2018
TheGag96
Apr 23, 2018
rikki cattermole
Apr 23, 2018
Andrea Fontana
Apr 23, 2018
Zoadian
Apr 23, 2018
Chris
Apr 23, 2018
TheGag96
Apr 23, 2018
Zoadian
Apr 24, 2018
Nerve
Apr 24, 2018
Chris
Apr 24, 2018
Uknown
Apr 24, 2018
Uknown
Apr 24, 2018
Chris
Apr 24, 2018
Adam D. Ruppe
Apr 24, 2018
Chris
Apr 25, 2018
Chris
Apr 26, 2018
Johannes Pfau
Apr 27, 2018
Chris
Apr 28, 2018
Chris
Apr 24, 2018
Thomas Brix Larsen
Apr 24, 2018
TheGag96
Apr 24, 2018
H. S. Teoh
Apr 24, 2018
Arjan
Apr 25, 2018
Thomas Brix Larsen
Apr 24, 2018
Jesse Phillips
Apr 28, 2018
User
Apr 29, 2018
Jacob Carlborg
April 23, 2018
Heya guys. For my projects that use a GUI library, I've tried both tkd and DlangUI. Both I feel have their drawbacks, and I'd like to know if any of you are using anything you find better. In my case, my ideal choice would be:

- Nice bindings/API, friendly to idiomatic D
- Cross platform
- Can compile to a standalone binary (no shared libraries or extra files)
- Reasonably efficient
- Support for a good amount of well-working widgets

Although quite a cool library, my biggest issue with DlangUI was that it was a little mind-bending at times to keep track of multiple widgets that view/modify the same data without screwing things up. I saw QtE5 recently and have been thinking about trying it out.

What do you all recommend? Thanks!
April 23, 2018
On 23/04/2018 6:12 PM, TheGag96 wrote:
> Heya guys. For my projects that use a GUI library, I've tried both tkd and DlangUI. Both I feel have their drawbacks, and I'd like to know if any of you are using anything you find better. In my case, my ideal choice would be:
> 
> - Nice bindings/API, friendly to idiomatic D
> - Cross platform
> - Can compile to a standalone binary (no shared libraries or extra files)
> - Reasonably efficient
> - Support for a good amount of well-working widgets
> 
> Although quite a cool library, my biggest issue with DlangUI was that it was a little mind-bending at times to keep track of multiple widgets that view/modify the same data without screwing things up. I saw QtE5 recently and have been thinking about trying it out.
> 
> What do you all recommend? Thanks!

Just an FYI, when windowing is done properly there will be extra shared libraries. You can't get away from it without a lot of duplication of code that other libraries have developed (and is standard).
April 23, 2018
On Monday, 23 April 2018 at 06:12:33 UTC, TheGag96 wrote:
> Heya guys. For my projects that use a GUI library, I've tried both tkd and DlangUI. Both I feel have their drawbacks, and I'd like to know if any of you are using anything you find better. In my case, my ideal choice would be:
>
> - Nice bindings/API, friendly to idiomatic D
> - Cross platform
> - Can compile to a standalone binary (no shared libraries or extra files)
> - Reasonably efficient
> - Support for a good amount of well-working widgets
>
> Although quite a cool library, my biggest issue with DlangUI was that it was a little mind-bending at times to keep track of multiple widgets that view/modify the same data without screwing things up. I saw QtE5 recently and have been thinking about trying it out.
>
> What do you all recommend? Thanks!

Did you try dwt or gtkd?

Andrea
April 23, 2018
On Monday, 23 April 2018 at 06:12:33 UTC, TheGag96 wrote:
> Heya guys. For my projects that use a GUI library, I've tried both tkd and DlangUI. Both I feel have their drawbacks, and I'd like to know if any of you are using anything you find better. In my case, my ideal choice would be:
>
> - Nice bindings/API, friendly to idiomatic D
> - Cross platform
> - Can compile to a standalone binary (no shared libraries or extra files)
> - Reasonably efficient
> - Support for a good amount of well-working widgets
>
> Although quite a cool library, my biggest issue with DlangUI was that it was a little mind-bending at times to keep track of multiple widgets that view/modify the same data without screwing things up. I saw QtE5 recently and have been thinking about trying it out.
>
> What do you all recommend? Thanks!

i'm happy with:
vibe.d + CEF + vue.js
April 23, 2018
On Monday, 23 April 2018 at 09:50:21 UTC, Zoadian wrote:

>
> i'm happy with:
> vibe.d + CEF + vue.js

Good point. I've been thinking about vibe.d + HTML/JS based UIs too. I think that's where UIs are increasingly moving towards: HTML+CSS + some sort of web-based backends.
April 23, 2018
On Monday, 23 April 2018 at 11:26:30 UTC, Chris wrote:
> On Monday, 23 April 2018 at 09:50:21 UTC, Zoadian wrote:
>
>>
>> i'm happy with:
>> vibe.d + CEF + vue.js
>
> Good point. I've been thinking about vibe.d + HTML/JS based UIs too. I think that's where UIs are increasingly moving towards: HTML+CSS + some sort of web-based backends.

That's definitely what I'm trying to avoid... I feel those kinds of interfaces are 99% of the time mega bloated for what they are. Discord is the only one that seemed big enough for the britches of an entire browser instance. Absolutely not a fan of Electron and the like.

I have never tried dwt! I should give that a shot. And I was trying gtkd once, and I should probably try again. Back then, I had to compile with --build=plain due to some weird linker issues.
April 23, 2018
On Monday, 23 April 2018 at 14:38:44 UTC, TheGag96 wrote:
> On Monday, 23 April 2018 at 11:26:30 UTC, Chris wrote:
>> On Monday, 23 April 2018 at 09:50:21 UTC, Zoadian wrote:
>>
>>>
>>> i'm happy with:
>>> vibe.d + CEF + vue.js
>>
>> Good point. I've been thinking about vibe.d + HTML/JS based UIs too. I think that's where UIs are increasingly moving towards: HTML+CSS + some sort of web-based backends.
>
> That's definitely what I'm trying to avoid... I feel those kinds of interfaces are 99% of the time mega bloated for what they are. Discord is the only one that seemed big enough for the britches of an entire browser instance. Absolutely not a fan of Electron and the like.

If we are talking binary size: then yes, I agree.
But it is a lot easier to maintain & write than QT-Widgets/GTK based code.


April 24, 2018
On Monday, 23 April 2018 at 14:56:37 UTC, Zoadian wrote:
> If we are talking binary size: then yes, I agree.
> But it is a lot easier to maintain & write than QT-Widgets/GTK based code.

Users don't care how easy it is for you to maintain your code. If the user experience sucks, they'll never come back.

When code readability, size, and maintenance gains all coincide with performance, it's a rare thing indeed, but in most cases developers have to make a tradeoff. I agree with TheGag96 that Discord is probably the only application with a feature set that justifies the tradeoffs.

Mailboxes, taskers, and text editors consuming 150 Mb of RAM, multiple processes, spare CPU cycles, and battery life rendering a blinking cursor is an instant uninstall. The user DOES NOT CARE how easy it is for you to maintain your codebase.
April 24, 2018
On Monday, 23 April 2018 at 14:38:44 UTC, TheGag96 wrote:

>
> That's definitely what I'm trying to avoid... I feel those kinds of interfaces are 99% of the time mega bloated for what they are. Discord is the only one that seemed big enough for the britches of an entire browser instance. Absolutely not a fan of Electron and the like.
>
> I have never tried dwt! I should give that a shot. And I was trying gtkd once, and I should probably try again. Back then, I had to compile with --build=plain due to some weird linker issues.

The advantage of using web technologies for UI:

- high re-usability: use the same or similar layout+functionality for desktop, Android/iPhone apps and web based UIs.
- freedom as to layout and theming with CSS (highly customizable for users too)
- cross platform: no need to deploy libs (e.g. Gtk on Mac and Windows)
- maintenance: older JS code / CSS will still be ok in _most_ cases, whereas Gtk and other frameworks introduce depractaions and breaking changes so that you have to a) rewrite parts of your code and b) maintain older (outdated) versions of the program until you can be sure that the older libs are no longer used / distributed
- distribution: While users don't care about your maintenance costs, they do care about having an app available on their smart phones/desktops/online. So multiply various versions of say a Gtk app by platform (_at least_ you have to maintain 2Gtk*3Platform = 6 apps). Users hate being told that it only works on Linux desktop. Thus, web technologies can be a real gain.
- progress: web technologies have made huge progress JS and CSS are much better now. Layout and js engines are much smarter as well. So you benefit from this and get it more or less for free on every platform.
April 24, 2018
On Tuesday, 24 April 2018 at 10:30:21 UTC, Chris wrote:
> On Monday, 23 April 2018 at 14:38:44 UTC, TheGag96 wrote:
>
>>
>> That's definitely what I'm trying to avoid... I feel those kinds of interfaces are 99% of the time mega bloated for what they are. Discord is the only one that seemed big enough for the britches of an entire browser instance. Absolutely not a fan of Electron and the like.
>>
>> I have never tried dwt! I should give that a shot. And I was trying gtkd once, and I should probably try again. Back then, I had to compile with --build=plain due to some weird linker issues.
>
> The advantage of using web technologies for UI:
>
> - high re-usability: use the same or similar layout+functionality for desktop, Android/iPhone apps and web based UIs.
> - freedom as to layout and theming with CSS (highly customizable for users too)
> - cross platform: no need to deploy libs (e.g. Gtk on Mac and Windows)
> - maintenance: older JS code / CSS will still be ok in _most_ cases, whereas Gtk and other frameworks introduce depractaions and breaking changes so that you have to a) rewrite parts of your code and b) maintain older (outdated) versions of the program until you can be sure that the older libs are no longer used / distributed
> - distribution: While users don't care about your maintenance costs, they do care about having an app available on their smart phones/desktops/online. So multiply various versions of say a Gtk app by platform (_at least_ you have to maintain 2Gtk*3Platform = 6 apps). Users hate being told that it only works on Linux desktop. Thus, web technologies can be a real gain.
> - progress: web technologies have made huge progress JS and CSS are much better now. Layout and js engines are much smarter as well. So you benefit from this and get it more or less for free on every platform.

These are nice points, but the fact remains that running a web browser torun something as simple as a text editor is extremely inefficient. I personally don't use atom, VS-code or anything else, because they are all very slow. I tried VC-code once. It was nice in terms of UI, but was borderline unusable because it would take almost half a second to register keys, and the laptop fans would always spin up.
Using it on a laptop means:
- You will be using far more memory. This means its harder to open multiple tabs or programs (profiler + editor or docs in Firefox)
- Mobile device battery life takes a hit. This is non negligible. Battery life on my old mac using just vim (with a few plugins) is 6 hrs. With vs-code it was 2-3 hrs
- Way more on disk memory. With disk space becoming cheap, this is less of a concern for most modern devices, but why be wasteful? Besides, in developing countries, its still pretty hard to get lots of storage, which means users are forced to decide which apps are more important.
- If the mobile device's CPU is under less load, in general it will remain cooler and thus less likely to throttle. Putting pressure on the thermal cap by running CPU intensive programs like a browser, when it can be done more efficiently is bad

We should be getting more efficient with time, especially considering Moore's law is on its last legs, not less efficient
« First   ‹ Prev
1 2 3 4