slint icon indicating copy to clipboard operation
slint copied to clipboard

GUI editor

Open smallB007 opened this issue 3 years ago • 44 comments
trafficstars

Is there any GUI editor, like XAML editor or Glade? Or do you expect people in 21 century still edit text files to create GUI?

smallB007 avatar Nov 29 '21 14:11 smallB007

A graphical tool / editor has been on our radar since the beginning. However we haven't created a ticket here yet for tracking that, as we've so far been busy with the foundation. We might as well use this :-)

tronical avatar Nov 29 '21 15:11 tronical

That should be on your priority list as one of first items to have. And then you (creators of a framework) are surprised about low adoption rate... Guys, to expect in 21st century users to edit manually text files in order to create gui is... Cheeky? Can't you see that most people don't want to use tools/methods from 20 years ago? Why do you think Qt is such a success and gtk is not? Even though gtk is much better framework than QT? Users are not going to spend hours over hours in order to finally create GUI by manually editing text files. In order to be success in the field you are aspiring to be you need to provide modern tool and ways to work with your framework. Otherwise you are destined to failure, like hundredths of others before you, or you will be struggling for years to get noticed/adopted(which is also a failure). I personally as a developer if I have to work with old methods/tools I simply change job, don't bother with the technology. You know why? Because life is too fucking short to spend countless of hours with somebody's shit because they didn't bother to provide modern tools. Let them play with their shit and I don't wanna touch it.

smallB007 avatar Nov 29 '21 16:11 smallB007

My 2 cents regarding that topic: while it is nice to look at older technologies like GTK and Qt, the benchmark should now be more modern projects like Compose UI, Swift UI, React-Native.

Let's face it: the world has changed since 2000 and GUI editors belong to the past and do not fit to the paradigm of dynamic UIs. The fate of GUI editors is the same as round-trip code generators from UML model. The trend is to use the source code as unique source of truth.

So in my opinion, you should not even consider it and instead focus on the great live-preview which already works as it should in 2021.

bwalter avatar Nov 29 '21 22:11 bwalter

@bwalter Let's make something clear: GTK and QT are not old technologies. They are mature technologies, and because of that they do provide all modern tools and allow to work with them in modern ways without resorting to methods from 1990 and manually editing text files in order to create GUI. Your theory about not using GUI editor is flawed. Surely you do not want to say that you prefer manually edit text files vs using WYSWIG graphical editor with drag&drop so you can place your widgets in very intuitive way? Same goes for changing properties and what not. You will not tell me that working with text is more comfortable and intuitive then working with WYSWIG GUI editor. On top of that, after you've created your GUI via code, I'm ignoring the fact that somebody using GUI editor is around 5x20 times more effective than person creating GUI via manually editing text file, on top of that, after you've created your GUI and left for other project/company, the guy who is going to take over your work will have really hard work to do deciphering what and how that GUI created by you works, forget about changing something. On the other hand if you were using GUI editor, any person, could simply open ui file and presto, he immediately see how the UI looks. So, no, your theory is simply not true and creating GUI via manually editing text files will never be the preferred way - because this is old fashioned way. Modern mature frameworks provide GUI editors. Swift UI mentioned by you also does that. Frameworks that don't provide modern tools are destined to failure. Because people (most people, there are always nerds that code in notepad, and don't wanna hear about modern IDE's and what not) most people don't want to stare at walls of text when they work on GUI. Because life is simply too fucking short and there are other, better ways to do it. By using GUI editor that will allow you to visually create your UI.

smallB007 avatar Nov 30 '21 13:11 smallB007

A graphical tool / editor has been on our radar since the beginning

Seems pointless making such tool based on the comments in this thread. Obviously people prefer creating GUI by manually editing text files...

smallB007 avatar Nov 30 '21 13:11 smallB007

I want to note that ReactJS is an extremely prolific GUI tool nowadays, and there's still no major drag-and-drop solution to creating the components.

When you're making applications that interface with programming logic, separating the too just creates an awkward barrier that you have to struggle across.

All you need is hot reload and you're good

conradludgate avatar Nov 30 '21 21:11 conradludgate

I just want to note that separating interface from programming logic is preferred way when creating gui. So what for you is an awkward barrier for others is just a good practice.

smallB007 avatar Dec 01 '21 09:12 smallB007

That should be on your priority list as one of first items to have.

I think what should be on their priority list is to make a good framework deserving of a GUI editor first. That way they don't have to deal with the baggage of having a fully featured GUI editor to care for with every breaking change they make.

LoganDark avatar Dec 06 '21 19:12 LoganDark

I think what should be on their priority list is to make a good framework deserving of a GUI editor first.

And this is exactly the reason for the vast majority of frameworks to be incomplete with regard to tooling. It's not that gui editors are not needed, the reason why they don't provide them is simply lack of resources. And thus end client gets incomplete product. And is being told that the tools he expects are soooo last decade and now all cool developers work manually editing text files in order to create gui.

smallB007 avatar Dec 07 '21 07:12 smallB007

Having a design tool has been one goal since before we began to code. But as LoganDark said, we first needed a somehow working library before doing it. We also wanted to use SixtyFPS has the toolkit to write the tool (dogfooding, they call it), so we needed at least some building blocks before getting started.

We have tried our best to make sure that a design tool will be possible:

  • Every Element is "self contained" and can be previewed and edited on its own
  • The whole thing is typed, so the tool know what properties are
  • The parser preserve the information about whitespace and comments so edits can be made preserving these. We will also need a formating tool that will reformat the code so that the produced code by a tool will look alright.
  • The expressions are simple enough pure functions, and not turing complete program. this way the tool can still evaluate and process them. Think of them like Excell formulas.
  • The state system is made such that the tool will be able to edit the different states.

We hope to be able to start working on the tool early next year.

ogoffart avatar Dec 07 '21 12:12 ogoffart

@smallB007

It's not that gui editors are not needed

GUI editors are not needed. I do agree that GUI editors are a nice visual way to preview the UI before having to recompile and run a Rust program, but they are not needed by any means. Entire operating systems and very large complex applications have been written without the need for a GUI editor, and they work just fine. The web browser you're using right now was most likely made without a GUI editor. Same with GitHub.com, the website you're writing your comments on.

It's a wishlist item, a nice to have, but not a requirement.

And is being told that the tools he expects are soooo last decade and now all cool developers work manually editing text files in order to create gui.

I feel like the way you're presenting this issue is a bit entitled. It reads a lot like "it's the 21st century, why are you making us edit these disgusting text files? You should be ashamed, your product will fail, because you don't offer a GUI editor".

I'd like to remind you that modern IDEs are incredibly advanced and make the experience of "manually editing text files" a lot better than it was 20 years ago for example. SixtyFPS doesn't offer anything like that except for a VSCode extension that I can't use, but the experience is still good enough for me (and likely others) due to:

  • Brace matching
  • Auto indent
  • Helpful keyboard shortcuts (duplicate line, etc)
  • Comprehensive-ish documentation

I'd recommend toning down the entitledness a little bit and instead working with the project to explain better what you expect from a GUI editor and how they can help you when the time is right to start working on one.

In my opinion, a good goal for a new GUI editor would be wxFormBuilder. SixtyFPS could easily use that as a guideline or benchmark:

image

(Screenshot from my MacBook - dark mode wasn't perfect when I took that screenshot over a year ago, but you get the idea)

LoganDark avatar Dec 07 '21 12:12 LoganDark

GUI editors are not needed.

Sure, and I also hope you're not using any gui tools, just cli. Right? I'm not even going into the discussion of if GUI editor is needed or not. I just say this: If you are interested in working with modern tools in modern ways then GUI editor to work with GUI framework IS needed. On the other hand if you are happy with manually editing text files in 21st century in order to create GUI then yes, for people like you GUI editors are not needed. And if you call somebody who expects from a framework to provide modern tools an "entitled", then yes. I feel entitled to be provided modern tools to work with. Otherwise I'm simply NOT INTERESTED. You know why? Because: a) they are frameworks that provide those modern tools, so why would I not use them? b) Life is too fucking short to spend it on manually editing text files when creating GUI! And all the bullcrap about: "Entire operating systems and very large complex applications have been written without the need for a GUI editor, and they work just fine" - just fine isn't good enough. And if those poor sods that created those complex guis without GUI editor had used one when they were creating those interfaces, they still would have hairs, and their hairs would have colours other than gray. As for modern IDE's being powerfull and provide brace matching and what not? Guy, can't you understand that modern and efficient way to create GUI is by visually interact with gui elements not by editing text files?

smallB007 avatar Dec 07 '21 13:12 smallB007

Sure, and I also hope you're not using any gui tools, just cli. Right?

That's not at all what I'm implying, even though I'm able to be quite productive from a remote terminal. Just because GUI editors are not required to use a library doesn't mean that I, as someone who says that GUIs aren't required, don't use any sort of GUIs whatsoever - because, naturally, people don't do anything unless it's required...

If you are interested in working with modern tools in modern ways then GUI editor to work with GUI framework IS needed.

And exactly which modern tools and modern ways are you talking about? The GUI editor would just output to a text file. You could either write to the text file manually or edit it in the GUI editor. But past that, nothing else changes.

On the other hand if you are happy with manually editing text files in 21st century in order to create GUI then yes, for people like you GUI editors are not needed.

You keep saying "in 21st century" as if the 21st century somehow demands no text files. Tell me, why are we writing comments manually using text instead of drawing pictures? Which one is better for you? If it's not applicable to writing then what is the difference between things (GUI frameworks) that supposedly require GUI editing, and other things (comments) that are better written? Why are we writing programs using text instead of moving to Scratch where you don't have to manually write any text?

And if you call somebody who expects from a framework to provide modern tools an "entitled", then yes. I feel entitled to be provided modern tools to work with. Otherwise I'm simply NOT INTERESTED.

You're not just not interested - you seem to feel the need to post here and demand that these tools be provided to you, to point out how this library must fail because of your personal preferences.

You know why? Because: a) they are frameworks that provide those modern tools, so why would I not use them? b) Life is too fucking short to spend it on manually editing text files when creating GUI!

a) Because a lot of the frameworks that provide these tools are incredibly monolithic, that is, using them will both slow down your application and make it very large. Additionally, the level of abstraction provided by the GUI editor is sometimes so great that it becomes difficult to integrate it into the codebase, which, by the way, is also text. b) Then why are you spending so much time complaining about it here? Just use Qt! Maybe come back later if SixtyFPS gets a GUI editor. Stick around if you want to help shape it. Otherwise this discussion is not very constructive :(

And all the bullcrap about: "Entire operating systems and very large complex applications have been written without the need for a GUI editor, and they work just fine" - just fine isn't good enough. And if those poor sods that created those complex guis without GUI editor had used one when they were creating those interfaces, they still would have hairs, and their hairs would have colours other than gray.

You're calling my argument bullcrap now are you?

As for modern IDE's being powerfull and provide brace matching and what not? Guy, can't you understand that modern and efficient way to create GUI is by visually interact with gui elements not by editing text files?

Do you have sources to back up this claim that GUI editors are more efficient than textual editing? Do you even have sources to back up your claim that GUI editors are more modern? Both textual GUI markup and GUI editors can be incredibly advanced, but both have been around for about the same length of time. As soon as GUI libraries became a thing (as opposed to rolling everything from scratch), GUI editors were seen as the next step up, and created to match them, and yet despite your insistence that GUI editors are the only modern or even acceptable way of creating an interface, so many people are still not using them.

So which do you think it is, do you think text editing is not so bad, or do you think you are the only person on the planet who is not so stupid? Maybe the rest of the planet is in a different timezone and hasn't yet reached the 21st century like you 😛?


I jest. I'm not trying to insult you or make fun of you. I just believe there are much more constructive ways to approach this issue rather than criticizing the developers for not being in "the 21st century" or "modern" because SixtyFPS uses a DSL instead of a GUI. Why don't you help with the GUI then? Do you not want to because the GUI editor has to be written using code? :P

You can (and should!) still contribute ideas and thoughts, but I would highly recommend toning down the hostility. The maintainers truly are trying to improve the library and its tooling. I'm sure they would appreciate help with that, other than just "this library is worthless without a GUI editor".

Just my two cents, I think this issue should be locked for now.

LoganDark avatar Dec 07 '21 13:12 LoganDark

That's not at all what I'm implying, even though I'm able to be quite productive from a remote terminal.

But the question is, are you more productive working from remote terminal, or using locally modern graphical tools? (Providing of course that the task can be accomplished using any of those methods). Because creating GUI can be accomplished by either manually editing text files, or by using modern tools like GUI editor.

because, naturally, people don't do anything unless it's required...

That is simply not true. People do things even when they are not required.

And exactly which modern tools and modern ways are you talking about?

Qt, gtk, .net framework...

The GUI editor would just output to a text file. You could either write to the text file manually or edit it in the GUI editor. But past that, nothing else changes.

Exactly my point.

You keep saying "in 21st century" as if the 21st century somehow demands no text files.

This just tells me that you are an idiot and rest of the discussion is pointless...

smallB007 avatar Dec 07 '21 15:12 smallB007

But the question is, are you more productive working from remote terminal, or using locally modern graphical tools?

This is actually debatable. Writing shell scripts to run on a remote server, for me, is best done on that server becuase it can be tested easier that way. Editing web server configuration files is better done textually than using GUI tools like Webmin because the GUI tools usually corrupt the configuration in certain ways. However, locally, using an IDE with an integrated terminal + tree view can be more productive than using exclusively a terminal (but that's just because of what I'm used to).

because, naturally, people don't do anything unless it's required...

That is simply not true. People do things even when they are not required.

That was satire. I use GUI tools even if they are not required. I was pointing out the flaw in your argument that I should not be using GUI tools if it's possible for me to get by otherwise. I use GUI tools even if I can get by without them. They're nice. They're just not required. I'm allowed to say they're not required even if I use them myself.

I don't use visual GUI builders, though.

Qt, gtk, .net framework...

Those visual editors just output to text files. Then you use them as you would a text file.

.NET also encompasses many many different things. You talking about winforms? WPF? UWP? All have graphical editors, all use text files for configuration, all are usable from code.

The GUI editor would just output to a text file. You could either write to the text file manually or edit it in the GUI editor. But past that, nothing else changes.

Exactly my point.

What? You were going on about how a GUI editor changes the whole situation and that you need one in order to use modern tools and modern ways. That was your point. But that's invalidated by the simple fact that the GUI editor is just a frontend to a text file. Now you're agreeing with me?

You keep saying "in 21st century" as if the 21st century somehow demands no text files.

This just tells me that you are an idiot and rest of the discussion is pointless...

This is absolutely uncalled for and not an acceptable way to have a discussion on a public issue tracker.

LoganDark avatar Dec 07 '21 15:12 LoganDark

This is absolutely uncalled for and not an acceptable way to have a discussion on a public issue tracker

When you behave like an idiot, don't complain that people call you, well... an idiot. But there is a hope for you. Write some comments using GUI editor... WFA (What a fucking ass)

smallB007 avatar Dec 07 '21 15:12 smallB007

When you behave like an idiot, don't complain that people call you, well... an idiot.

I can't believe people still treat each other like, this, in the twenty-first century. Modern discussions require modern levels of respect and dignity

conradludgate avatar Dec 07 '21 15:12 conradludgate

I can't believe people still treat each other like, this

And I cannot believe that in the 21st century there are people who think that providing gui framework without working gui editor and expect users to manually edit text files is OK.

smallB007 avatar Dec 07 '21 15:12 smallB007

And I cannot believe that in the 21st century there are people who think that providing gui framework without working gui editor and expect users to manually edit text files is OK.

So sorry that people are using their spare time to make something and release it to the world for free, and that it isn't good enough for you. So sorry that editing text files is so hard for you. You seem to be typing these comments just fine though...

conradludgate avatar Dec 07 '21 15:12 conradludgate

So sorry that people are using their spare time to make something and release it to the world for free

Just because it is for free that doesn't mean that people should immediately start clapping. Quality is also important. Like I've said, life is too fucking short to work with somebody's crap because they weren't bother to provide modern tools. I am absolutely NOT INTERESTED in even considering using such framework.

So sorry that editing text files is so hard for you

Why are you trying to bend the discussion and misrepresent my statements? I didn't say anything of that sort. I said, and I repeat that: Expecting people to manually edit text files in order to create gui is unnaceptable in 21st. So perhaps read with understanding?

smallB007 avatar Dec 07 '21 16:12 smallB007

In my opinion, a good goal for a new GUI editor would be wxFormBuilder. SixtyFPS could easily use that as a guideline or benchmark:

image

(Screenshot from my MacBook - dark mode wasn't perfect when I took that screenshot over a year ago, but you get the idea)

I fully agree with @LoganDark here, this is a pretty good base as guideline / benchmark.

tronical avatar Dec 07 '21 16:12 tronical

I fully agree with @LoganDark here

So are we finally agreed that GUI editor is needed? And if anything you should say that you agree with me, because @LoganDark was saying that GUI editor is not needed.

smallB007 avatar Dec 07 '21 16:12 smallB007

I fully agree with @LoganDark here

So are we finally agreed that GUI editor is needed? And if anything you should say that you agree with me, because @LoganDark was saying that GUI editor is not needed.

GUI editor is not needed. But one is planned because it's nice to have. They were agreeing that wxFormBuilder is a good reference to use while planning out / implementing the SixtyFPS editor.

LoganDark avatar Dec 07 '21 16:12 LoganDark

GUI editor is not needed. But one is planned because it's nice to have

Ahh... so it is nice to have, i.e. have modern tools and working with modern tools in nice way instead of manually editing text files. Good to hear that.

smallB007 avatar Dec 07 '21 16:12 smallB007

GUI editor is not needed. But one is planned because it's nice to have

Ahh... so it is nice to have, i.e. working with modern tools in nice way instead of editing text files. Good to hear that.

Yes, I never meant to say otherwise. I just meant to say that it's not the bare minimum functionality required to have a library.

We should always strive for better tooling and better experience. The current experience is not unacceptable, it could just always be better. In this case a GUI editor is better sometimes and not so better sometimes. Having it is a good thing because you can choose what you want.

LoganDark avatar Dec 07 '21 16:12 LoganDark

Yes, I never meant to say otherwise

You are lying (and dishonest) piece of crap. All the times you were advocating the fact that not having GUI editor is just fine, and GUI editor is not needed. Shall I cite you? And that is very different to what you're saying now, that in fact it is nice to have modern tools.

smallB007 avatar Dec 07 '21 16:12 smallB007

Yes, I never meant to say otherwise

You are lying (and dishonest) piece of crap. All the times you were advocating the fact that not having GUI editor is just fine, and GUI editor is not needed. Shall I cite you? And that is very different to what you're saying now, that in fact it is nice to have modern tools.

I'm literally saying both of those things, I'm not lying or being dishonest. It's fine the way it is, it's not needed, but it's nice to have it anyway. What's wrong with that?

LoganDark avatar Dec 07 '21 16:12 LoganDark

We should always strive for better tooling and better experience.

Oh, really? Because up untill now you were giving the impression that manually editing text files is good enough experience and no better experience is needed. Lying piece of dishonest crap.

smallB007 avatar Dec 07 '21 16:12 smallB007

Because up untill now you were giving the impression that manually editing text files is good enough experience and no better experience is needed

Yes? That's exactly what I said. It's not needed.

Do you understand the difference between needed and wanted?

We can want a GUI editor. That's fine. We're probably going to get one soonish. But it's not at all a required piece of software.

LoganDark avatar Dec 07 '21 16:12 LoganDark

What's wrong with that?

I tell you what's wrong with that. If you were from the beginning of the discussion said that sure, not having GUI kinda sucks, having one would be much better, but still, we have to wait for it a while, then all would be good. But no, being the lying and dishonest piece of shit that you are, you were sticking with your stupid argument that not having GUI editor is perfectly fine (shall I cite you, you shit?) and no GUI is needed. And now your saying that yes, sure having one would be nice. Lying (and dishonest) piece of shit you are.

smallB007 avatar Dec 07 '21 16:12 smallB007