7 ms·
Try writing a GUI with other toolkits. Hours of tweaking random XML to try and figure out why some constraint solving thing just isn't working... Despite all t
by rtpg 5y ago
Try writing a GUI with other toolkits. Hours of tweaking random XML to try and figure out why some constraint solving thing just isn't working...
Despite all the mess, I have an easier time getting buttons on a screen and doing things sanely (once all the fuss is set up) compared to trying to get the ball rolling in Qt/GTK/etc (especially if you're not using Java or C++)
- cies 5y agoIf not using C++ with Qt, Qt is a bit harder to get going. But I honestly dont think that building a UI with JS/HTML/CSS is easier than in C++/Qt. But then the Qt UI: * needs to be (re)compiled for each platform * needs to be re-shipped on each change * is not a client-server application (all runs on the client) * has "desktop styling" by default
- klausjensen 5y agoAgreed wrt other GUI toolkits. I think of it like democracy. It is ugly and terrible, but still better than all the other options.
- kaba0 5y agoAbsolutely not true. Windows forms, WPF, JavaFX, Swing all are much more productive than the vanilla web. Like, how many lines of code does the most basic vbox/hbox thing requires in web technology? Many of them even have dragndrop ui creations, and this XML hatred is downright stupid at this point. How about criticizing the technology and not a random medium for that? Is writing something stupid in JSON inherently better? HTML is simply a terrible GUI base, JS is quite great nowadays and CSS would be great, but has to provide way too much of what HTML should be doing. But the web ui frameworks are just barely getting at the level of where native frameworks have been in a decade.
- ath92 5y agoThat example you mentioned would be just a couple of lines of html with css (which you could inline if you wanted), and there are plenty of drag and drop tools for the web (WebFlow is a modern example, but they have been around for decades).
- kaba0 5y agoWhy would it need any sort of CSS? Isn’t HTML supposed to be responsible for the structure of a webpage? And of course it can be done, but if we do something like hbox inside a vbox inside a vbox, the resulting code will be ugly as hell (perhaps Webcomponents will help a bit here?). Like, what is the point of HTML at that point? To spam divs (pun sort of intended)? And there are plenty of other “layouting primitives”, all of which are quite cumbersome. And due to HTML encoding some form of semantic meaning only (though seldom used even for that), drag n drop tools can’t generate easy to read/modify output. Also, without js frameworks, you can’t really just embed another component into it trivially. And I’m not trying to shit on web tech, JS has absolutely overcome its shitty past, and is quite a likable language nowadays, and CSS is an extremely powerful and expressive system (though this latter is due in part to how shitty html is). My only gripe is with HTML that is simply not fit for the task (as it was never meant for that).
- yoz-y 5y ago> Isn’t HTML supposed to be responsible for the structure of a webpage? If by structure you mean things like hbox/vbox then no, html is not supposed to do that. HTML should only represent the semantic structure.
- kaba0 5y agoYeah I know, but that is because it was meant for documents. It is not a great fit for web applications.
- eurasiantiger 5y agoWhat is a better fit for web applications?
- kaba0 5y agoNothing, because web applications are by definition html css js. Though canvas-based solutions can circumvent the layouting problem, but at the price of reinventing everything in a non-standard way.
- noduerme 5y agoSuch a great point. HTML is a terrific way to write documents and TERRIBLE way to lay out applications - especially for lots of different screen sizes. It's not surprising at all to see Google embracing Canvas now to underpin Docs; basically they are admitting that it would have been better to write the whole program in a Java VM or in Flash than to rely on the browser for layout. This is patently obvious to anyone who builds large web applications. Ten years ago we had ASWing, JSwing and plenty of other actual frameworks where you didn't have to diddle around with tons of logic embedded in templates which were embedded in other logic; but thanks to Apple we're still saddled with this wretched Javascript/HTML paradigm that was never meant to do much more than inline some animated GIFs back in the 90s. Yes, it's gotten better (I've been doing this since the 90s, so I know). But it's so inelegant. To some degree this is just a problem with open web standards. It would be better if any one company actually had dominated to the point where they could write a closed standard, because at least it would be coherent and cross-platform. It was a lot easier to write a web app in 2010 than it is now, and it pains me to think how many hours I could have avoided reinventing the wheel if Flash had been allowed to stick around. Any app written entirely now on canvas is just replicating a VM that already existed a decade ago in what was by then a much more mature ecosystem - and was faster then than canvas or WebGL is now. If I had to pick a stack to do a new web app entirely in canvas, I'd probably choose to port a ton of interface components from AS3 into PixiJS... but the point is, where have we gotten? Ten years from now we'll be writing apps the way they were written in 2010 -- inside a black box in a canvas or VM. The HTML5/JS revolution has been a sham from the start, just a way for one corporation to dismantle another with the side benefit of forcing all of us to rewrite our code from scratch in a crappier language.
- friend-monoid 5y agoI'm not sure I buy the idea that "efficient and easy tooling around a technology makes the technology". We all went through the same Dreamweaver pains.
- kaba0 5y agoHow come the minuscule userbase of native frameworks have better tooling than the numero uno popular web? It may mean that there is a technical reason in the background.
- goto11 5y agoThey solve a simpler and more constrained problem which makes it easier to make tools. Something like Windows Forms are basically WYSIWYG - you drop some controls on a canvas and now you have a GUI. But the GUI will not gracefully adapt to different screen dimension from large monitors to mobile.
- pseudalopex 5y agoNative frameworks support flexible and resolution dependent layouts too.
- kaba0 5y agoResponsive layouting is an orthogonal problem.
- goto11 5y agoOrthogonal to what?
- pmontra 5y ago30+ years of history?
- kaba0 5y agoInterestingly enough JavaFX is much younger than the web, and is quite niche, yet it has SceneBuilder.
- deleted 5y ago[deleted]
- rtpg 5y agoDrag n drop UIs don't really help when you have too much dynamism (like "oh only have this button appear in these conditions", "do this here", etc). And I would say that box layout offered by CSS is much nicer than the constraint layout system _when you have a lot of dynamism_. Like I wouldn't want to have to deal with an interfrace like facebook in native stuff. I don't think it's impossible, but I feel like it would require a lot more up-front design and correct engineering. You're right about XML being a medium, just kinda my memories of working with this stuff.
- kaba0 5y ago> Drag n drop UIs don't really help when you have too much dynamism Yeah, its true — though you can leave an area empty where you will dynamically load one from a set of already drag’n’drop created layouts.
- hnbad 5y ago> Like, how many lines of code does the most basic vbox/hbox thing requires in web technology? CSS: .vbox, .hbox { display: flex } .vbox { flex-direction: column } .vbox > *, .hbox > * { flex-grow: 1 } HTML: <div class="hbox"> <div class="vbox"> <button>Top left</button> <button>Bottom left</button> </div> <div class="vbox"> <button>Top right</button> <button>Bottom right</button> </div> </div> Or was that a rhetorical question?
- kwanbix 5y agoI imagine you never used Delphi, VB, or even Lazarus?
- kodah 5y agoHaving worked on both desktop and web UIs the problem you're describing occurs in both worlds. Usually with web you run into it when you're dealing with a more sizeable app, or fancier things you want to do with your framework.
- jcelerier 5y ago> I have an easier time getting buttons on a screen and doing things sanely (once all the fuss is set up) compared to trying to get the ball rolling in Qt/GTK/etc (especially if you're not using Java or C++) ah, yes, the famous difficulty of getting buttons on a screen in Qt https://streamable.com/bs5fxk https://streamable.com/bs5fxk
- einpoklum 5y agoI agree that it's pretty simple to get a button on screen in Qt, but your linked video presents it as horribly complicated. And requiring an IDE to do it is pre-admitting it's complicated. By the way - Qt and GTK are super-outdated ways to do GUI in C++. Popular, but outdated.
- indigo945 5y agoWhat do you feel is a more "modern" way to do a GUI in C++? As an aside, do "modern" developers still write GUI applications at all, since everything is on the web anyway these days?
- krapht 5y agoIs this a joke? There's a whole world of software out there that isn't web based. Anybody who hasn't switched to a Chromebook uses them every day. I even write terminal user interfaces sometimes to interact with servers that don't have a desktop environment installed.
- cat199 5y agoif you reread, this is what the parent is asking of the grandparent, in less nice terms.
- alibarber 5y agoThere is a wide world of applications and development that don't have anything to do with the web. The films you watch on TV or at the cinema were not created (edited, VFX) using a web browser for a start, and the User Interfaces to those applications are pretty Graphical by anyone's definition...
- 1vuio0pswjnm7 5y agoSounds like "developer productivity" could be increased by not having to create GUIs. As an end user, I will happpily accept and in fact prefer text-based, keyboard-driven interfaces.