4 ms·
When are we going to get back truly native apps? Flutter Desktop works great, and there are a bunch of nice GUI libraries for Rust, also some new developments
by fiatjaf 5y ago
When are we going to get back truly native apps?
Flutter Desktop works great, and there are a bunch of nice GUI libraries for Rust, also some new developments for the JRE.
- krapp 5y agoProbably never. The web is becoming, if it hasn't already become, the universal platform for application development and distribution, and javascript the One True programming language. Every holdout will eventually and inevitably be assimilated, either transpiled into javascript or compiled into WebAssembly. And it's partly the fault of the native programming community. It should be as easy to write a native, cross-platform application as it is to write html, css and javascript. Native developers should recognize what works about the web paradigm and adapt to it. There should be forks of these technologies specifically designed for native application development rather than documents. But that never happened, GUI development is still basically programming and it still sucks and now the train has left the station. The only relevant innovation likely to happen now will be iterating on the web-app model. I mean, I'm looking at the layout tutorial for Flutter now[0]. It's nesting function calls and you have to update a yaml file to include an image, whereas with HTML it's a simple table or maybe grid and the img tag. This example for Rust[1] is ridiculously verbose and noisy compared to the web stack. All GUI programming is. Meanwhile I can write a fully functioning website with nothing but a text editor. No need to install a language runtime, package manager or IDE, no need to learn a company specific workflow or follow a style guide. No need to memorize a new set of quirky verbs for a CLI. I don't even like the web-app paradigm, but I can totally understand why it won. [0]https://docs.flutter.dev/development/ui/layout/tutorial https://docs.flutter.dev/development/ui/layout/tutorial [1]https://github.com/gabdube/native-windows-gui https://github.com/gabdube/native-windows-gui
- kaba0 5y agoWith all due respect, I think the web’s layouting (or lack of) is the most complicated out of any framework I have ever used (including qt, swing, javafx, winforms, wpf). I think the great majority of web devs would have trouble recreating something like bulma (regarding layouting) even without responsiveness — I definitely would have quite a bit of trouble doing that. So if anything, we are just accustomed to the web’s way and other (saner) approaches look stranger for some reason (even though with some insane complexity js frameworks come back and mimic the two decade old frameworks here and there)
- fiatjaf 5y agoI agree with that. Doing layouts with HTML and CSS is too open, flexible, which means you have to do everything yourself from scratch every single time. Another thing you have to do from scratch is the eye candy aspect of every webapp. I guess the web is more flexible in the sense that you can do anything you want UI-wise, but honestly, how much time and work and money is spent on making pretty webapps? How much more productive our society would be if the useful tools were just tools and not masterpieces of design?
- kaba0 5y agoAnd my biggest gripe is that the product you would get out of the aforementioned frameworks without any design would look.. ok, usable. But even if you just want a website that is not just a bunch of text (though even that require some css to make it readable smh) you have to get quite invested into CSS, or at least bring in a css lib that provides you with some basic design. Otherwise it will look like it is the remains of some website from ARPANET.
- lvass 5y agoI've done pure markup + classless CSS a few times. It's nice, readable and really the way I think the web should look like. But then you realize you don't get paid for doing good things on the web. I couldn't handle this feeling and just quit front-end work entirely except for pages I own.
- asimpletune 5y agoCan you explain more the part about native apps being hard to make? I mean, I can open Xcode, start a new project, hit run, and there's an app ready to go, with a simulator and everything. It has API's that allow safe access to OS-level resources. It has powerful multi-threading, built-in views that I can reuse (like collections), stack based browsing is native, etc... Also, the client is not broken by default (I.e. client apps in the browser are by default spyware, at a technical level). All the weird tooling that exists around actually getting html + js + css to work like an app is an indication to the contrary. The constantly evolving ecosystems is an indication of reaching stability, not having yet achieved it. I will say though that targeting different platforms is an issue, which is not the same thing as your claim. Yes, targeting all platforms is hard, but I don't think any one native app ecosystem is really any harder than web. I do think there's a lot of survivor bias from people whose job it is to build apps with web technologies. And to your point that "it won". I don't think anyone, even lay-people, like electron-based apps. It's just what they have to use because there is an infinite amount of web developers. However, I feel that it's a bit premature to call call something that's ubiquitous that everyone hates as "winning". Also, the most used software as a matter of time on task would probably be excel, email clients, and web browsers. All of these are built natively. So with the exception of slack, and taking a broad view of the road that lies ahead, most of the stuff that's built on electron is sort of vapor in the grand scheme of things. I think we can actually expect to see more and more native apps, due to power consumption requirements. I stopped using Chrome years ago due to its aggressive power/memory consumption and never actually really looked back. Any way, sorry for the unnecessarily long response, but seriously what you're saying is very hyperbolic. We are literally just at the beginning of the absolute beginning in terms of what technology is going to look like. Things will be very different in 5 years and super different in 10-20 years.
- fiatjaf 5y agoI agree. Writing native apps is very easy once you get mildly used to any framework for writing native apps. The "web" is just another framework, a very popular one, but also one that is very bloated and hard-to-use.
- 5y ago
- fiatjaf 5y agoHas the web won on mobile? No. In fact there was a time in which Cordova-like apps were getting very popular, but react-native and then Flutter, Kotlin and Swift have ended that. Or at least that's my impression. react-native is almost like the web still though, but the fact that people are doing react-native and not Cordova must mean something. Meanwhile, 10 years ago the only ways to do desktop native apps were the old -- very good, but old, with that old feel -- technologies like GTK and so on. Now there are these other things I cited above, and more! It's a renaissance.
- Chris2048 5y agoBut isn't this the danger of evaluating something via simple example? You can make fine websites with just a text editor (although I'd argue how easy CSS is to use) but as soon as it needs to be an app you need JS code, and suddenly the difference isn't so great. Infact, I'd probably find a traditional prog-lang easier to use in that case. I think the real advantage of JS is the robustness of its sandbox & permission system, that's what really needs reproducing.
- ReleaseCandidat 5y ago> When are we going to get back truly native apps? When the browser is the OS - or the other way around.
- thejosh 5y agoIt's always going to be a pain. The best thing about electron is that it brings apps that otherwise would be locked to Windows (and probably Mac) to Linux.