9 ms·
I've an idea. Let's write GUI apps using GUI libraries, like everyone used to, instead of writing them for a web browser. Not only will this be more secure, it
by cabalamat 9y ago
I've an idea. Let's write GUI apps using GUI libraries, like everyone used to, instead of writing them for a web browser.
Not only will this be more secure, it'll also be 10s or 100s of times more performant.
- jeswin 9y agoI understand the sentiment and dislike laggy UIs, but browsers have been running millions of apps securely on billions of computers for ages. No browser exploit has led to worldwide data compromise. In fact, being able to run untrusted code at this scale represents the pinnacle of security engineering feats. There have also been plenty of exploits in applications written entirely with native code.
- eptcyka 9y agoWhilst there haven't been that many data breaches, I'd argue that's because the browser is operating at the edges of your architecture, not in the centre, where the data lies. However, to say that browsers are secure is pure nonsense. Browsers get exploited all of the time, I'd argue that this is not as big of an issue as it could be because browser vendors respond to new vulnerabilities very quickly. WebGL, for instance, is still a massive mess in terms of security.
- empath75 9y agoI guess you don’t remember internet explorer.
- blub 9y agoBrowsers can barely open a simple web page without getting owned. They're probably the number one infection vector nowadays... This has lead to some pretty bad hacks. I'm not sure what more you could want really, a vulnerability where people can be punched in the face over the internet?
- username223 9y ago> a vulnerability where people can be punched in the face over the internet? That sounds like a mild form of swatting, which is already a thing.
- twoodfin 9y agoIt seems to me that the one of the challenges in reaching that pinnacle was adequately quarantining browser-hosted code from local resources and capabilities. But frameworks like Electron are designed to expose the latter to the former, otherwise they’d just be WebKit in a window.
- pjc50 9y agoCross-platform GUI development has always been fraught, though. I don't blame people for picking an existing, working (mostly) technology that guarantees (mostly) identical results across lots of platforms.
- Aaargh20318 9y agoCross-platform GUI development in general is a dumb idea. The user chose a specific platform and expect applications to follow that platforms UX guidelines. Building a cross-platform app is basically saying you don't give a fuck about your customers. It's an insult to your users.
- pjc50 9y agoSo you're saying software OEMs need to pick one of Windows or MacOS and not support any other platforms?
- pjmlp 9y agoNo, you create a proper abstraction layer that maps to native plaform elements. For example, IFileDialog maps to a Cocoa dialog on macOS, file picker on UWP, open dialog on Win32, document selector on Android and so on. Yes, it takes some initial effort, but it only needs to be done once.
- Klathmon 9y agoThat's easy to say for a file picker on desktop OSs, but what happens when you need to layout a page on all 3 desktop plus Android and iOS? Do you need to design 5 designs that include 5 different buttons, 5 ways of navigating through the app, 5 different sets of icons, 5 different styles of animation, etc... Hell even with a file picker, what happens when you use it on a platform that doesn't really have the concept of "files" like iOS or up to recently Android (at least in what is normally exposed to the user) Roll in various versions of each OS and you are up to needing 10+ ways of doing most things. How are you supposed to create anything even remotely complicated?
- cyberpunk0 9y agoWhy? Qt/swing/gtk apps tend to look like shit and are horrible to try and code
- rootlocus 9y ago> Qt/swing/gtk apps tend to look like shit You couldn't be further from the truth. Have you seen the Blizzard app (Qt) [0]? The JetBrains Toolbox app(Qt) [1]? Also, here's a small app I wrote in kotlin and swing for my GF who wanted to download music from youtube without installing crapware downloaders [2]. You'll notice it has a custom window frame, support for drag and drop, and fully customized table and buttons. I spent about 5 hours styling the UI, and half a weekend writing the entire app. Yes, I agree, dowloading music from youtube is immoral and illegal, but I'm showcasing the UI so please ignore the underlying purpose of the app. [0] http://l3.yimg.com/ny/api/res/1.2/v.xvnI7eUsLskyHopY6Kkg--/YXBwaWQ9aGlnaGxhbmRlcjtzbT0xO3c9MTYzNDtoPTk3Nw--/http://media.zenfs.com/en/homerun/feed_manager_auto_publish_494/d4b65f5f7a53b2755541bb5fd804ef75 http://l3.yimg.com/ny/api/res/1.2/v.xvnI7eUsLskyHopY6Kkg--/Y... [1] https://www.jetbrains.com/help/img/idea/2017.2/rm_py_toolbox_app.png https://www.jetbrains.com/help/img/idea/2017.2/rm_py_toolbox... [2] https://imgur.com/J29HJJk https://imgur.com/J29HJJk
- pvg 9y agoThe Jetbrains toolbox UI (and your downloader) do very little. Blizzard's app does a great deal more but is a terrible, sluggish, battery-hogging mess, which also includes web UI elements of some sort. Even Blizzard knows this which is why the app has a setting to hide its windows after launching a game. It doesn't feel like an example of a quality Qt app at all, if such a thing exists.
- rootlocus 9y ago> The Jetbrains toolbox UI (and your downloader) do very little. That's true, but the argument was never about how complex applications are. It was about how they look. If you want an `idea` how well a swing look and feel scales with the complexity of the application, look at the IntelliJ IDEs. Not to mention the irony of complaining about performance, when the promoted alternative is electron...
- Tehnix 9y ago> I've an idea. Let's write GUI apps using GUI libraries, like everyone used to, instead of writing them for a web browser. Great idea! Now show me an application that can be extended in the same way Atom can, that didn't have 30-40 development behind it...
- avhon1 9y ago30-40 whats? Years? Developer-years?
- Tehnix 9y ago30-40 years of development. I was alluding to VIM or emacs, and even they still suck immensely on the GUI front. The emacs TUI and GUI is embarrassing for something that had access to async features for so long, and VIM frontends are only progressing in the immense speed their are because of Neovim and the clean separation they made of the logic and the UI.
- sfifs 9y agoInstead of taking 1 high quality UI paradigm that works exactly the same on virtually every computer and spending time solving my business problem, you'd like me to spend time on learning the weirdnesses of each platform's native UI. No thanks!
- mbel 9y agoIf you consider web to be "high quality UI paradigm", then you might be seriously interested in learning other UI tools. You know like literary any other UI library on Earth where vertical centering of one element in another is just a basic functionality not a task that requires a hack.
- computerex 9y agoYou need some Flex in your life: https://css-tricks.com/snippets/css/a-guide-to-flexbox/ https://css-tricks.com/snippets/css/a-guide-to-flexbox/
- deleted 9y ago[deleted]
- shakna 9y agoOr use one of the systems that is already well-established. Here's just a few. WxWidgets [0], bindings in: Python, Perl, Ruby, Lua, C++, C#, and others. Qt [1], bindings in: JS, Python, C++, and others. Also has QML to make things easier. Tk [2], bindings in just about everything. Included in most Python distributions. Kivy [3], Python only. Java/FX [4] Java and other JVM languages. If your main problem is the duplication effort between the web and an application: Qt is the simple path. Qt includes WebKit. Everything Electron can do, Qt can do, but faster and smaller. [0] http://wxwidgets.org/ http://wxwidgets.org/ [1] https://www.qt.io/ https://www.qt.io/ [2] https://www.tcl.tk/ https://www.tcl.tk/ [3] https://kivy.org/#home https://kivy.org/#home [4] https://docs.oracle.com/javafx/2/overview/jfxpub-overview.htm https://docs.oracle.com/javafx/2/overview/jfxpub-overview.ht...