17 ms·
Ubuntu Makes Flutter ‘Default Choice’ for Future Desktop Apps
- bbpp 6y agoYes! This will be interesting to say the least.
- eatonphil 6y ago> After all, people have been predicting that web-based tech will be the next big thing on desktop for as long as I’ve been writing this blog — i.e. eons. And yet it never quite happens. Electron apps, for instance, are, like Flutter, popular with web devs but desktop users? Well, they’re less keen. Lost me here. I don't think most users care whether their apps run Electron or .NET or Python/QT or whatever so long as the app works. Stigma as a dev makes me want to avoid Electron apps but that's because I'm a dev. If the point is about desktop apps vs. apps that actually run in the browser (e.g. Sketch vs. Figma) then that's a real debate. But that has nothing to do with Electron.
- riffraff 6y agoI think what is meant is that while some electron apps are popular in the developer demographic (i.e. VS Code) the average desktop user does not run many of then, and is more likely to use desktop apps written in non-web technologies (VLC, Transmission, Office, and whatever it is people use these days)
- candiddevmike 6y agoAs far as I know Discord, Skype, and Slack are all electron based. Office is mostly used online. Electron is a really easy way to add Linux support to your app.
- deleted 6y ago[deleted]
- Barrin92 6y agoSlack, Spotify, Signal and Whatsapp desktop, Skype, Discord, MS Teams are all built on web tech. I think even Office 365 nowadays has a lot of the UI stuff written in react native. A lot of older linux software is non-web based but that's not the average desktop user.
- jjnoakes 6y ago> I think even Office 365 nowadays has a lot of the UI stuff written in react native. Where can I read about this?
- Barrin92 6y agoI think I read about this on twitter from one of the webpack devs a few years ago, might have been this chain. (https://twitter.com/TheLarkInn/status/1006746626617008128 https://twitter.com/TheLarkInn/status/1006746626617008128) I think for react native in windows apps more generally the github page is a good start https://github.com/Microsoft/react-native-windows https://github.com/Microsoft/react-native-windows
- wenc 6y agoYes. I use VS Code and it works really well for me. The fact that it’s an Electron app is of no concern to me. RStudio is also web-based tech — which enables it to run in a browser when remotely hosted. And these are some of the most widely used IDEs out there (IDEs are also a class of desktop apps that have an above average UI complexity). I don’t think a majority of users are “less keen” just because they’re web based tech. Maybe the only nitpick I would have is the odd web debug menu that would pop up on occasion when one right clicks on certain UI widgets.
- adamcstephens 6y agoElectron apps use more CPU and drain the battery faster on my Linux laptop. Users may not care what framework renders their apps, but if they were running more than one or two electron instances they may start to notice their battery life is awful. It’s worse on Linux already, there’s no reason to make it even worse.
- ta988 6y agoFaster than? Do you compare applications that do similar things?
- pseudalopex 6y agoOther text editors. Other chat apps. Other music players. The same apps before Electron.
- scaladev 6y agoTake a look at desktop Telegram when you have some time. It bundles its own fork of Qt (which inflates its shared memory usage as nobody else is using the library), has a very polished UI and all the same features as any other modern messenger, and runs circles around any Electron application I've ever seen. On my machine from 2014 it starts instantly and the memory usage never goes above 200-250 MBs, which is not ideal, but still is ~4 times less than the _startup_ memory usage of an Electron application.
- eropple 6y agoI just started VSCode on my desktop. Its "_startup_ memory", with something like two dozen extensions installed, is sitting at 170MB. I also just started Discord on my desktop. Its "_startup_ memory" is 39MB. Now Slack's a pig at 380MB, fresh-opened, sure. But reality doesn't really seem to oblige these kinds of claims in 2021.
- scaladev 6y agoAre you looking at a single worker process out of about 10? This is such a frequent mistake it's not even funny. Do something resembling a proper measurement: run `free -m` (or the alternative on your OS) before starting VSCode, and then right after it finishes loading, ideally on a completely bare system to reduce noise. Here are my numbers for a freshly installed 1.53.2 with zero plugins and no configuration: used 2882 used 3404 OK, it's "only" 522 MBs for a bare-bones text editor which requires "two dozen plugins" to make somewhat usable.
- deleted 6y ago[deleted]
- deleted 6y ago[deleted]
- candiddevmike 6y agoI wish they would expand on what's wrong with Qt or GTK. Flutter support on both Windows and Linux is pretty bad. In my opinion, electron is a better choice for cross platform desktop UI--VScode is a shining example of what that can accomplish. And they're in for a lot of work if they want to customize Flutter so it doesn't look material or cupertino. Also, their big contribution to Flutter is getting it on the snap store? Quit trying to turn Linux into a walled garden with your app store. If you are considering snaps, please consider Flatpak instead.
- jjgreen 6y agoI stopped reading at "snap" ...
- foepys 6y agoI fear the day we replace everything with JavaScript. All JavaScript apps are so unbelievably slow compared to native apps with native toolkits. At work I need to use MS Teams and holy shit it's so slow and if I'm compiling code it's barely usable on an 8 core processor. I had better performance with chat clients in 2002 on hardware that was about 1% as fast as mine today. VS Code is also very slow, you just don't notice it as much on today's machines.
- esrauch 6y agoI don't think it's safe to generalize "x is slow and electron, y is fast and native" to mean "native is fast". Electron lowering barrier to entry also means it's used by projects who aren't going to carefully profile their app no matter what, so the same app written as a native app would also be garbage. At least some of it is "correlation not causation" And for your chat example, when I was at IBM the Sametime chat native app couldn't even accept single line incoming text without grinding a several thousand dollar machine to a halt. Bad software is going to be bad no matter what language it's written in.
- pseudalopex 6y agoElectron lowers barriers for people who know web development already. Not generally. Lotus apps were known for being unusually slow. Visual Studio Code is known for being unusually fast for an Electron app. And it still chokes on files Sublime Text handles easily.
- josteink 6y agoI guess that makes Dart a less dead language than it used to be, but from what I can tell there’s almost no momentum around Dart at all. Basing your future applications on a language which seemingly is already slipping into its coffin (even discounting the regular Google discontinuing thing), seems like a really weird choice.
- darkwater 6y agoHow many 100% Canonical applications are there in an Ubuntu install? The installer and... maybe the repository management UI? I mean, it's clearly an announcement to make Google happy and try to help giving Flutter some momentum but hardly a defining decision for Ubuntu as a desktop.
- CodeArtisan 6y agoSince the releases of Flutter and Fuschia, the development of Dart went tenfolds. Devs post performance improvement reports from time to time. https://medium.com/flutter/flutter-performance-updates-in-the-first-half-of-2020-5c597168b6bb https://medium.com/flutter/flutter-performance-updates-in-th... https://medium.com/flutter/flutter-performance-updates-in-2019-4c170934f914 https://medium.com/flutter/flutter-performance-updates-in-20...
- mhoad 6y agoI don’t know if this will continue to be true forever. Dart is actually an awesome language to work with generally and is only continuing to get better. I think it has HUGE potential on the server side but there is a chicken and egg problem there at the moment where there don’t appear to be any actively maintained frameworks, even some basic things like ORMs and dependency injection frameworks are few and far between still.
- josteink 6y ago> Dart is actually an awesome language to work with generally and is only continuing to get better Not to kill your enthusiasm, but that can be said for almost any new language. > I think it has HUGE potential on the server side but there is a chicken and egg problem there at the moment where there don’t appear to be any actively maintained frameworks Which is why an active and vibrant ecosystem around the language increasingly is more important than the language itself. Just look at Go. A terribly, inexpressive language where the common solution is to write code-generators. But it has an ecosystem and the stuff people need. So people use it to write more software and more Go-libraries, reinforcing the platform-effect.
- mark_l_watson 6y agoAs a non-UI developer (I specialize in NLP, deep learning, and knowledge graphs), I like Flutter because it is so easy to make cross platform apps that someone like me can get started quickly. I would expect that experts would still prefer native Android, iOS, desktop, etc. frameworks.
- trash3 6y agoAny pointers from someone with DL/AI background in Python? I was looking to do web development with flask, postgresql,HTML/CSS... Does flutter just replace front end and interact with the flask rest api instead of things like jinja templates?
- mark_l_watson 6y agoFlutter supports server side dev also.
- williesleg 6y agoSnaps are shit.
- preommr 6y agoI am bringing some negative energy but I've been burned. I don't understand the hype about flutter - putting aside that dart is a tool that made more sense in a different timeline, or that some of the examples seem really slow/buggy, or that it's rendering behavior is a nightmare to guarantee consistency - putting all that aside, I've yet to see anyone build anything non-trivial with flutter. And then there's Ubuntu. Canonical is just all over the place. There was Unity, there was their weird mobile phone, there was their mobile OS, the weird ads in desktop searches. I am doubtful anytime I see anything Ubuntu related.
- jeswin 6y ago> Canonical is just all over the place. We should encourage experimentation and risk taking. No company can always get things right. Phones are a duopoly, but I'm glad they tried. Unity was fairly decent, but in the end adopting Gnome benefitted everyone. Ads were the only bad idea I can think of; but hey I've been using their wonderful software for 15 years now at a total cost of zero.
- ampdepolymerase 6y agoThere was literally nothing wrong with Canonical technology. They just kept cancelling projects to satisfy a vocal minority of Ubuntu users.
- popey 6y agoNo, we didn't. Unity was cancelled when we downsized in 2017 (4 years ago). It wasn't due to any vocal minority at all. We just refocused our energy.
- axaxs 6y agoIn theory I agree, but Canonical really seem to do it over and over. Whether it's NIH or something else, it seems every time technology starts shifting, Ubuntu goes its own way only to drop it a year or two later. Unity/compiz, Mir , Ubuntu One, Upstart, Bazaar. And currently baking are Snaps and LXD. This isn't to say any of these are bad products, but it has real effects to the end user, who invest time in something that just seems to get vaporized.
- ToddWBurgess 6y agoAs both a Flutter dev and an Ubuntu user, I am thrilled by the news. Looking forward to seeing how it all works out. In a nutshell, if anyone is interested how this works, the Flutter apps will be converted and compiled as GTK3 apps. Dart has the FFI package so it's fairly simple as a Flutter dev to do C system calls in Dart. This will of course stop your app from being cross platform out of the box (but I doubt this is a concern for the Ubuntu team).
- lights0123 6y ago> converted and compiled as GTK3 apps What do you mean by that? Isn't one of the goals of Flutter that it gives you pixel-perfect controls, and renders everything itself?
- vbsteven 6y agoI assume parent means that the compiled flutter app uses GTK3 as the shell for spawning windows and initializing the Skia context to which the app can render. This is also how Druid the Rust GUI framework works on Linux. Use GTK to start the window and the paint surface (Cairo).
- butz 6y agoWith default theme "Yaru" supported by community, Ubuntu is introducing whole new framework, that will require quite a bit of work to make it look similar to native applications. They should stick with GTK, as GTK4 has made some really nice performance improvements and can be used with many different programming languages: C, Python, Javascript (GJS), Vala, just to name a few.
- eulers_secret 6y agoTime for me to move away from Ubuntu, then. This and apt randomly installing snaps isn’t what I want. I’ll give Arch a shot, it’s been the new hotness for a long time...
- candiddevmike 6y agoDebian is great and will be very familiar coming from Ubuntu. The next stable release is coming in June too.
- yjftsjthsd-h 6y agoDebian is closer than Arch FWIW, though of course Arch is good too.
- antihero 6y agoWould React Native not be a better choice and more open? It's based on existing widely used JS technologies, it is fast, and doesn't have the drawbacks of electron, and you can easily develop for mobile as well. There are a couple actively maintained projects for RN on desktop such as: https://proton-native.js.org/#/ https://proton-native.js.org/#/ https://microsoft.github.io/react-native-windows/ https://microsoft.github.io/react-native-windows/ (though this lacks Linux support at the moment). There's also React NodeGUI, however I don't think people care about having native buttons etc as much (as evidenced by VSCode, Slack, etc, and the plethora of other successful Electron apps) any more. https://react.nodegui.org/ https://react.nodegui.org/
- mikewhy 6y agoCanonical already went down this route, but I'm not sure why it was abandoned: https://github.com/CanonicalLtd/react-native https://github.com/CanonicalLtd/react-native
- AzzieElbab 6y agoIs Flatter runtime native or some kind of vm?
- esrauch 6y agoThere's a pure-VM mode for development and an AOT compiled mode for production.
- sunstone 6y agoUntil the dust settles Linux Mint is a pretty good option.
- Evidlo 6y agoThis article is just riddled with typos.
- vfclists 6y agoThe story of UI development since the web happened. It is like the sky falling on your head, tomorrow never comes.
- dgellow 6y agoWow, that’s a risky bet. Google may change their mind in 1 year and just drop the project, as they do so often. That’s enough for me to be sure I won’t build anything based on one of the company side project as I never know (and have no way to know) what is an experiment or an actual product they plan to maintain long term. Hopefully for Canonical everything will go well, I wish them good luck.
- greatgib 6y agoThis is very very sad news, but consistent with the slippery slope that Canonical is following in the recent years. They look like to not care about users anymore, as with snaps, but behave like any other business of the silicon valley without real value. Flutter does not even make sense with desktop apps. It is like electron mediocre apps. What I see here is Canonical following whatever they can get from the biggest players like a hooker, to try to get attention.
- sofixa 6y agoOkay, a few things here. Canonical are a UK-based company, nothing to do with the Silicon Valley. Flutter compiles to native code and uses Qt behind the scenes. Electron uses an embedded Chrome to render stuff with web tech. How are they even remotely alike? They're cross-platform, yes, and Dart is supposed to be a better JavaScript, but that's it.
- GekkePrutser 6y agoHmm I'm not a fan of flutter at all.. It's pretty poor on mobile, you can always tell when an app uses it because it feels 'out of place' on the platform. Though I guess it is better than Electron because that's really wasteful and bad. There's a few pearls like VS Code but 95% of Electron apps are horrible (including other MS apps like Teams, Yammer etc). Anyway pretty much everything Ubuntu does these days rubs me the wrong way. Snap in particular (super slow to start, and only works with their own store). I still use it for work a bit because we only have 2 choices and I hate Red Hat even more :) But my point is, Canonical keeps pushing stuff that's great for their interests (snaps with their IoT ambitions, and trying to rope other distros into their snap store) and for developers, but not for the users.
- snicker7 6y agoBetween this and Go, Canonical seems to be jockeying for a Google acquisition by adopting their tech.
- sofixa 6y agoGo is legitimately great tech and is very useful. Flutter could become so too, but it's too early to tell.
- wayneftw 6y agoI tried it out the other day after seeing this announcement. So, I created the default app and it ran fine. Then I wanted to add a menubar to the window, so I found the Flutter menubar plugin, installed it and got it working. My first menu items were _File -> E_xit. The Alt+ keyboard acceleration indeed worked on my system (Manjaro/XFCE) without any problem! However, as soon as I wanted to handle the "Exit" action I got stuck. I searched around a bit but I could not find an answer. How do you exit a Flutter desktop app programatically?