6 ms·
Desktop GUI Is an Efficient and Fulfilling Way of Human-Computer Interaction
- poisonborz 3y agoI love desktop/native apps just as anyone else around here, but them being better because "Internet is used as a propaganda tool by capitalists", what is this article.
- h4kor 3y agoI've started to build an application with GTK (and rust). I think one major reason the web "won" the GUI wars is the sheer amount of documentation and example code. For me the biggest struggle in building a GTK app is to find the elements and how to configure them properly. There are barely any tutorials and the documentation is hard to use when you are just starting out with GTK.
- pyeri 3y agoThat and the difficulty of going cross-platform. GTK is good on Linux but taking it to Windows is usually an uphill battle and that too with a language like C. Same with Qt with C++ for that matter. On the other hand, you can choose a high level toolkit like Java Swing or .NET WinForms but they also have their own nuances with regard to cross-platform configuration and support.
- self_awareness 3y agoPlus Java Swing was conceptually replaced by JavaFX, and there's an unwritten expectation that JavaFX should be used, as Swing is not really developed anymore. The only practical solution that I've found when it comes to writing portable desktop GUI applications was C++/Python and Qt. The "C++/Python" part is because the Qt bindings really exist for these two languages. It's possible to use a different language as well, but as you've said, that's an uphill battle as well. Nowadays there are also some new frameworks like Flutter Desktop, or Compose Multiplatform, but I haven't used them (just used Flutter on mobiles, and the development part was fun, the deloyment part not so fun). I never could overcome my dislike for Gtk+ development, especially for new versions. Gtk+ for me ended with version 2.0 :)
- Lucasoato 3y ago> Desktop GUI is the most efficient and fulfilling way of Human-Computer Interaction …that will expose yourself at a really high risk. I think that security was one of the main factors that pushed browsers to become the definitive UI. Interoperability also is a big deal; making a website work with Firefox and Safari is much easier than develop a cross-platform GUI program.
- cm2187 3y agoSecurity was a side effect. By far it was ease of deployment, maintainability, and cross platform (as in mobile, not so much macos/linux). But agree that security considerations is what is making my hand shake if I am installing any desktop app that doesn't have over 10 millions downloads.
- pyeri 3y agoSecurity matters only when you're using the Internet or "crossing" the firewall. Within a corporate or enterprise LAN, people still use desktop apps more heavily, or at least should be using ideally. Web's utility is as an information tool and at most, things like e-commerce and shopping. If we let the "cloud" become be all and end all, the results aren't always good for society or desirable as seen in recent years.
- schneehertz 3y agoI like developing applications using Electron because the development process is smooth and efficient. As for the fact that Electron includes Node.js and Chromium, I don't care about it. Users who focus on my application's functionality rather than nitpicking details also don't care about it. That's enough.
- cm2187 3y agoBut I only have 16GB RAM, so I can only have a dozen of those electron apps open.
- pyeri 3y agoInstall more RAM, why don't you upgrade to a 32GB RAM! /s
- drewcoo 3y ago"16 GB ought to be enough for anybody." - not Bill Gates
- self_awareness 3y agoApple variation: "8 GB ought to be enough for anybody. Plus, our 8 GB is like 16 GB on other platforms."
- ale42 3y agoInstall more RAM because developers are lazy and use Electron instead of making efficient native apps? What about the global power consumption and resource consumption of this trend?
- sumuyuda 3y agoLol, can’t do that when most modern laptops have non-upgradable ram.
- deleted 3y ago
- factorialboy 3y agoBoth web and desktop apps have their place. Pick the right tool for the job. And avoid pointless debates.
- jampekka 3y agoWeb won/wins because "native" apps are pain to develop, pain to port, pain to build, pain to debug, pain to install/deploy. DOM is by far the best layouting engine for GUIs. Javascript is a decent enough language and way faster to develop with than e.g. C#/C++/Java and Javascript JITs are miraculous. The modern web engines support a lot of functionality with quite sane, uniform and interoperable interfaces. NPM is perhaps the best depenency management system and has huge amounts of libraries. And a lot of them quite high quality.
- ogoffart 3y agoI agree that language usually associated to "native" apps are actually not so good to write desktop app business logic. Computer have become fast enough that higher level programming language (JavaScript, TypeScript, Python, ...) are just fast enough and easier to use. That say, I disagree that the DOM and the Web in general are the best technologies to do desktop UI. DOM is originaly made for documents and complex UI was retrofitted in a way that you need to use extra framework on top and workaround lots of issues. Plus you need a heavy browser to make it run. With Slint [1] we're trying to make a Desktop UI framework that can be used from JS/TS, without bringing a browser. [1] https://slint.dev https://slint.dev
- self_awareness 3y agoWhy do framework authors not respect the keyboard focus and standard keybindings? Do you find them unnecessary/unneeded? For example, the table view doesn't support browsing through pagedown/pageup/home/end, although it supports moving by cursors. Clicking a button with the mouse, and trying to re-click with the keyboard (enter, space) it also doesn't work -- mouse click doesn't move the keyboard focus from the previous widget. Do you target only mouse/touch users with this framework?
- jampekka 3y agoDOM has quite a bit of legacy cruft but you don't have to use those and the new layouting like flexbox and grid and media queries are IMHO way better than anything else out there. Slint seems very good especially for environments where you don't have a (modern) browser, like embedded, and the API looks clean and first class Node.js is great. And the website is great. Property binding looks promising Separating the widget definition from the code is probably a good idea, although IMHO the content-style-logic separation of HTML/CSS/DOM is even better. What brings me some really bad memories is the widget-tree-style API (especially with absolute pixel units in all the examples). But this may be prejudice from my part.
- netsharc 3y agoAdware (point 2) is the most annoying thing, IMO, but it's a problem on the Windows desktop too; trying to upsell you OneDrive as you open a freaking file manager? Google Photos on Android now has some effects behind paywall... I guess hackers jailbreaking the iPhone 1 and making Apple start the app store for "commoners" (iirc their idea was it'd be a place for big corporations) was a bad idea after all. On the topic of paywalls, I have a blood pressure measuring device with Bluetooth connectivity. Their original app was decent, but it got discontinued. Their new app also puts features behind paywalls... and I just looked again, they're even offering to fucking gamifying measuring my blood pressure, giving me reward points for using the device, exchangeable for... who knows what?
- self_awareness 3y agoI see the success of web applications as a mix of a few different things: - Ease of deployment/execution (just enter the name of the app and we're in), - Strict sandboxing (webapps can't break your computer), - Ease of administration (automatic updates), - Fast development is possible by cutting costs (there's only one "platform" -- the web, not Win+mac+Linux, no need to do any real error handling, "something went wrong" is fine). The downside of this is that those 3 points come together with some disadvantages, like e.g. complete regression and ignorace of the last 30 years of UI research, and low stability/quality of software. How a desktop application success could look like we can see in the form of the mobile apps (which are desktop apps), which fulfill all the points above; there's no real need for web apps on mobiles. Providing these mechanisms for apps targeted at traditional desktop computers could render webapps unnecessary. I just hope this "fast development, low quality and low usability web trend" will end soon, or at least the hype will finally meet its correction. Web development rides on the acceleration provided by desktop software, and when this acceleration will slow down, because people will think that web apps are sufficient, that's I think when we'll see the correction.
- seec 3y agoIn theory yes but look at what Apple did. In the name of convergence, they destroyed the UI/UX of many of their classic softwares born in the early 2000 and yet you don't even get to run them cross platform anyway. Their performance also sucks balls. I used to be on the other side, but now I think that it's more likely that web apps meet the old standard of the classic software than the old software somehow becoming better and more useful somehow. For now, the only things that have not switched are large software with big performance and latency requirement. As the hardware evolves and the web platform matures even more (especially with web assembly VM) it is unlikely we will go back to previous ways. Heck, even Apple build half their apps with a lot of web technologies mixed with their own stuff. I wish they would just commit to the web completely because this way we could somewhat have decent cross platform experience; but that wouldn't sell many Macs so it's wishful thinking. In the end, they are probably obsoleting themselves in the long run...
- drewcoo 3y agoIn the Beginning Was the Command Line http://garote.bdmonkeys.net/commandline/index.html http://garote.bdmonkeys.net/commandline/index.html
- deleted 3y ago[deleted]
- stby 3y agoSo, how are desktop apps supposed to solve any of the identified downsides of the app? > Too much bloat as one software must cater to everyone’s needs. Yes, maybe, but especially web apps are usually quite focused on a limited feature set, in my experience. Isn't the usual prime example of bloat (Microsoft Office) a desktop app? > Open invitation to authoritarian software like DRMs, Adware, blobs, etc. So there's no DRM or Adware in desktop apps? Surely the author can't be serious about this one. At least a browser gives me simple tools to control them, for installed desktop applications it becomes much harder. > Use of Internet as propaganda tool. Sure, but on the other hand I would argue that Twitter works well as a website and there's no need for a desktop application. It's actually great that I don't need to install anything to access it. > Inefficient and bloated JavaScript. Fair enough. I do however think that, by now, there are many "time-tested and efficient best practices" in the world of web development. The web world isn't moving half as fast as critics like to pretend, and the underlying technologies have stood the test of time remarkably well. I think time-tested is actually one of the main reasons that web technologies are as popular and successful as they are.
- simonblack 3y agoGraphic is good is you really need pictures. But plain old information goes better with text. The hilarious thing about most human-computer interaction is when we use GUIs for imparting purely text information. For example, on this HN page that I'm writing, and you're reading, the only graphical thing really is the orange bar across the top.
- pyeri 3y ago> For example, on this HN page that I'm writing, and you're reading, the only graphical thing really is the orange bar across the top. Actually, the world has evolved slightly as even the text is rich text-today. Many people like to use emojis in text, for example, HN is a rare one that doesn't support. There is even talk of support for cross-platform utf-8 emojis without the need for additional images, stylesheets, etc. Then there are other things like code syntax highlighting, formatted block quotes, bolds and italics, etc. which are like "deemed graphics".