June 01, 2021

On Tuesday, 1 June 2021 at 06:31:28 UTC, Ola Fosheim Grostad wrote:

>

The solution is to reduce the scope of projects, but that requires design and planning. Hobby projects tend to be experiments that evolve over time.

The solution for (at least some critical) projects is to be leaded by a benevolent dictator for their lifespans , but, this is, yes, as you probably guess, and as anyone expects, quite difficult to cope with. This would bring a clear roadmap, consistency, and predictability. But this is irrelevant to this post and the subject for an entirely different thread -I don't want to insert noise here.

June 01, 2021

On Tuesday, 1 June 2021 at 10:11:25 UTC, evilrat wrote:

>

Would like to pay for something that's not exists where there is already like 10 "good enough"(tm) alternatives? How much people actually use D and willing to pay for that?

>

Another issue is that these hobby projects are not state of the art solutions, they stuck in early 90's (ok, maybe late 90's), where the rest of the world using different architectures and approaches that was evolved several times from then.
And yet people who asks for UI libraries goes like "nah, no fancy schmancy CSS, and no markup. gimme good ol' programmatical approach" or "bloat bloat bloat, no thanks"

Regarding what you say on the state-of-the-art GUI/toolkits I should clarify that I am not against "modern" UI development. Everyone should work/code as they like and I am no-one to say the contrary. What I am against to is the idea of unifying the UIs for desktop and mobile resulting in sub-par experience for both of them -which is what happened.

>

That's the chicken-egg problem - no funding because no decent solutions, no decent solutions because such enormous effort requires compensation.

eg: postgreSQL is not on the edge of the state-of-the-art right now but it is closing the gap more than ever to the point that when there have to be a choice made on merits and not politicals it is making a dent in Oracle which is the 800-pound gorilla in this category -even against Microsoft's SQL Server which drives a lot of things in the enterprise/financial world.

eg: qGIS is another project widely used, and I mean really widely used for big projects not hobby projects; think city plans, dams, and the like -every day real world cases not fuss.

I speak of these because it is what I know of, there should be some more, but clearly, this is not the rule, this is the exception -and also have in mind that these two projects don't get indirectly managed by big corporations alla-linux these days.

June 01, 2021

On Tuesday, 1 June 2021 at 10:53:54 UTC, Ola Fosheim Grøstad wrote:

>

It is tempting to think that UI-specification is a mature field, but apparently not. It is still evolving.

It is a mature field, they peaked in the late 90s early 00s. What came afterwards was mainly decoration/cosmetics because the hardware evolved to being able to handle it. But the concepts, what a combo-box is, how it works, etc, remained set on stone. Of course new controls were invented but most of them were for corner-cases or things quite specific like a UI for a pro-audio console mixer.

>

I think the best approach is to create an UI for a specific application and then later turn it into a library. Then one at least have experience and can sort out weak spots before handing it to others.

I second that providing you use a language like C/C++/D/Rust but not something more high-level. One thing is UI design/specifications, and the other, the implementation is quite a different matter: native vs CSS-style driven etc ... this is where things starts to making conflicts.

>

Maybe if DPlug had more users something interesting would emerge? DPlug is the only framework I find interesting with D right now.

Will look for it, didn't know of it till now.

June 01, 2021

On Tuesday, 1 June 2021 at 11:13:49 UTC, zjh wrote:

>

Right,I prefer 1100% over 390%.

Without any doubt.

June 01, 2021

On Tuesday, 1 June 2021 at 11:52:51 UTC, Adam D. Ruppe wrote:

>

Have you ever used github before?

No I did not.

>

That's how it works. You "fork" something, do a small change, then open a pull request back to the original. Then your "fork" gets abandoned until next time you want to do a PR.

My first guess was lots of projects going on each one's directions. Sorry for this comment. I should know better :(

>

This is perfectly normal on that site. Number of forks is actually correlated with number of contributors, not abandonment.

ACK.

June 01, 2021

On Tuesday, 1 June 2021 at 15:38:51 UTC, someone wrote:

>

It is a mature field, they peaked in the late 90s early 00s. What came afterwards was mainly decoration/cosmetics because the hardware evolved to being able to handle it. But the concepts, what a combo-box is, how it works, etc, remained set on stone. Of course new controls were invented but most of them were for corner-cases or things quite specific like a UI for a pro-audio console mixer.

I don't really agree with this, most of the interesting things for specifying UIs are happening in web-frameworks/web-standards nowadays. But it doesn't matter...

If I were to make a desktop application in D today then I would have chosen to either embed a browser-view and use that for interface, or electron. Not sure if has been mentioned already, but it is an option.

June 01, 2021

On Tuesday, 1 June 2021 at 16:20:19 UTC, Ola Fosheim Grøstad wrote:

>

I don't really agree with this, most of the interesting things for specifying UIs are happening in web-frameworks/web-standards nowadays. But it doesn't matter...

If I were to make a desktop application in D today then I would have chosen to either embed a browser-view and use that for interface, or electron. Not sure if has been mentioned already, but it is an option.

This is also my observation. Browser UI is on the way to take over. Advantages are that they are easy to remote, meaning if you have network connection you can run it on another device. Some mobile phones have a "hidden" web UI if you connect to them using a browser. Another advantage is that web UI scales well with different resolutions and aspect ratios. You can also more easily find people who have the knowledge making cool looking web content, compared to people who know how to make custom UI in Qt or C#.

Car infotainment systems often runs the graphics in a browser, without many knowing about it. They work similar to FireFox OS, you boot directly to the browser.

June 01, 2021

On Tuesday, 1 June 2021 at 16:40:22 UTC, IGotD- wrote:

>

This is also my observation. Browser UI is on the way to take over. Advantages are that they are easy to remote, meaning if you have network connection you can run it on another device.

Yes, browsers are making X11 obsolete...

>

You can also more easily find people who have the knowledge making cool looking web content, compared to people who know how to make custom UI in Qt or C#.

Web components are becoming a reality, it essentially means that you have code and styling wrapped up as a component, so that you can use it by inserting a custom html-tag in your code. Given the massive amount of web developers... you'll eventually have a crazy amount of components to choose from. Just waiting for Safari:

https://caniuse.com/?search=components

I think?

June 01, 2021

On Tuesday, 1 June 2021 at 20:20:34 UTC, Ola Fosheim Grøstad wrote:

>

Web components are becoming a reality, it essentially means

Turns out Microsoft has a UI component library for browsers, looks interesting:

https://www.fast.design/

June 01, 2021

On Tuesday, 1 June 2021 at 16:20:19 UTC, Ola Fosheim Grøstad wrote:

>

I don't really agree with this, most of the interesting things for specifying UIs are happening in in web-frameworks/web-standards nowadays.

I wasn't considering/referring to content in the browser, this is an entirely different arena.

>

If I were to make a desktop application in D today then I would have chosen to either embed a browser-view and use that for interface, or electron. Not sure if has been mentioned already, but it is an option.

I don't agree with that at all but I respect your point and encourage you to do so provided you'll end with something useful to you.

The point with that approach is performance, performance, and did I say it ? ... performance.

I don't know about you but, what are the reasons you choose to develop in D ? One of the often cited reasons I came across is performance alongside with better-C style comments and full OOP and the like; which as a side-note it happens to be my case. So for a little while put you on my shoes and try to see the subject we are discussing from my point of view:

Now think for a instant, that you choose D for performance so you expect it to be fast, and you write the hello world app to begin with, and you fire-up a full-framework like Electron or the like just to give you basic GUI controls. Stretch it a bit, instead of using Electron and family you coded a basic HTML page saying hello world and put a button in a form element to close the page/document and then you embed a web browser within your app, a fully-fucking-huge-meaning-millions-of-lines-of-code-with-thousands-of-non-relevant-modules-like-TLS/SSL-Web-Assembly-JavaScript-and-keep-counting just to ... render hello world inside your blazingly-fast-lean D program ?

Will it work ?

Sure.

But, why are we, to begin with, stacking layers upon layers of APIs (meaning millions of lines of code and/or degrading performance to extreme levels and/or increasing the attack surface of our lean app) just to say hello world in a window and expecting the user to close it at any given time and ... nothing more ?

Why did we choose to use huge frameworks, embed browsers, etc to write a simple app ?

Because the basics, the foundations, are broken.

Instead of trying to fix the broken bits to allow us to choose the obvious/correct/lean/straightforward path, we, developers (and now I am talking from the point of view of the whole community), keep using higher and higher levels of abstraction to accomplish simple things.

Given the power of a typical computer nowadays there is no excuse for a GUI to be blazingly-fast, snappy-as-hell, zero-lag. If these symptoms are present we are doing it wrong.

Don't get me wrong: browsers are extremely useful pieces of software. The problem is everybody starts to think the browser is the OS. This approach, to my humble point of view, is short-sighted. We came full-circle: from everything done on the mainframe with stupid terminals on the other side of the line, to personal computers offloading work from servers and starting "thinking" by themselves and all the related client/server stuff of the early 90s, to the Sun's vision the-network-is-the-computer and all the related Java stuff which more-or-less brought us the web browsers, to the google's vision the-web-browser-is-the-OS approach. Endless layers upon layers. Web browsers are fantastic for browsing/reading complex documents with all its hyperlinks, stupid things that now assume for granted, but with its complex rendering engines, they are, and I said it once again, fantastic pieces of software. The problem with the web browser, and now we are backing to the GUI subject we are discussing here, is that sometimes in mid-00s their development started to be orchestrated by the commercial world and specifically by the ad industry, seeing them as software to sell relegating its primary purpose of knowledge/browsing documents, that's why we left HTML 4/XHTML 1.0/1.1 behind and got HTML 5 instead of XHMTL 2 which was the right way to go if the browsers kept sticking to their primary goal. Now the browser mandates font face/style/size, strict-layouts, a magazine, a cool selling magazine on my screen. Evolution. Nothing against it, quite the opposite, a document-centric and app-centric browser split was what was needed then. Dreams. So from then on we started to see the decadence of GUI design: buttons that didn't look like buttons at all, etc. Which is that ? Ah, dunno, try to click over it and let's check if anything happens ... are you following me ? Then came Johnny Ives @ Apple with its concept of the flat user interface. Now everything is flat: is this a button ? is this a ... ? Who knows. This was followed by everyone outside Apple since Apple was cool back then, and we got gnome 3 and KDE Plasma and Unity. Everything learned so far went to the trashcan. So real people doing real work reacted a bit and we got MATE and the like, but it was the timeframe of the desktop being displaced by the smartphones and/or tables for moma/popa/and-the-likes and the power user now became a niche nobody cared for, very reasonable, the real money was not there. Transparent windows ! Why on Earth would you want a transparent window ? Do you think taking notes back then at college on a transparent or semi-transparent notepad would make sense ?

Summarizing a bit: GUIs were oversimplified over time to account for the non-tech-savvy users which happened to be the great majority of them with the advent of mobile devices, and, instead of splitting things apart the GUI was dumbed to extreme levels to accommodate such users, the less-common-denominator ... this is the problem with GUI design guidelines nowadays. The GUI toolkits exploded in complexity to support mobile and every-corner-case possible and became very difficult to maintain and that's why I think many toolkits stalled. I think someone with the knowledge to write a classical toolkit in pure-D following the classical design principles with the standard controls and nothing more should need deep openGL knowledge to begin with (however a better choice should be start from zero with its Vulkan successor) providing he/she has access to proven code for text input and/or font rendering (quite complex) and besides full-UniCode support (which in D is not a problem at all).

This is my two cents.

And of course, feel free to argue on everything you disagree with :)