47 comments

[ 2.8 ms ] story [ 116 ms ] thread
Interesting, a few years ago Canonical were working on a react-native for Ubuntu. I wonder what happened with that.

I also wonder what this means for cross-toolkit consistency.

The most obvious message is that flutter becomes first-class citizen in Ubuntu for cross-platform software.
Just like Mono was?
Great , I love Flutter and I see it as the future of cross platform development.

Dart is like typescript with actual types, and without JavaScript ecosystem baggage

Does Flutter (Dart) generate native binaries like Go?
yes and yes! Flutter generates a binary for desktop apps, although It's Alpha. In order to generate a binary in Dart (say for something that's serverside) you need to download the flutter SDK and run dart2native. It's rather new so there's still lots of room for performance improvements but it looks very promising.
This isn't meant to be snarky, but why would we need a cross-platform UI toolkit for a (by definition) Linux only installer?
It makes sense to only use a single UI toolkit. If some of your stuff is cross platform, it's probably easier to write the single-platform stuff on the cross-platform toolkit than it is to have your devs need to know 2 or more toolkits.
So developers have more transferable skills.

I had to make a web app with a friend and I used Flutter which was absolutely amazing. Easier to work in than react native, and now if I want to work on some Linux desktop apps I have the skills to do so.

What are the chances Flutter ends up in the google dumpster?
Canonical has their own dumpster too! Probably the biggest pieces in it are Ubuntu One and Unity.
And Mir, and Ubuntu Edge and....
Hopefully Snap will get into the dumpster, too.
Slightly lower than the chances Go does.
Wait, you think Flutter is safer than Go?
Really? Id love to the rationale more (seriously not being sarcastic).
Not OP, but one rationale would be that there are replacements for Go. Flutter seems to exist in a space where there aren't a ton of solutions, since I don't think react-native works on desktops (yet? Unless that's changed). If you kill Go, you can use Python or C++ or Java or etc. It might not have the exact paradigm you want, but it'll work.

I don't think it's a great justification, though. You could probably add Electron support to react-native for fewer engineer hours than it takes to build and maintain Flutter.

What makes you think this?
Flutter seems to gain momentum and developpers seems to love it. As it matures, I could see it replacing Electron for desktop apps eventually.
Related to this, has anyone compared the performance of flutter desktop apps to electron apps? I’m not experienced in flutter/dart, but would love to see an accessible & performant alternative to electron on the desktop.
Likely depends on the app specifics... but likely a bit lighter on resources for dart/flutter over electron.

That said, VS Code absolutely shows what can be done in an Electron based app that works well and is very responsive for it's breadth.

Sadly, Microsoft Teams is also an Electron app and boy is it sluggish. Microsoft doesn't seem to be able to optimize it past a certain point.
If I can compare to react-native,flutter seems higher. Electron which is used widely used is the least search term.

Interesting enough, react-native and electron distinguish themselves in the Est coast and always miss the Wyoming or the Dakota's while flutter is more evenly distributed.

Which would mean that the higher flutter level might just be google cannot distinguish between the common name and the framwork.Yet the flutter trend is growing so it's certainly the framework or climate change side effect :D .

https://trends.google.com/trends/explore?date=today%205-y&ge...

Well played. Flutter does seem to be the top-dog in cross-platform development (even when adding Xamarin) but it's a Google product, so use at your own peril.
[Disclosure: I work on the team]

With well over 100,000 apps in the Play Store alone, from companies like Grab, eBay, Alibaba and Betterment; as well as copious usage by Google's own apps like Google Pay and integration into the Home Hub, this is a pretty low risk even if you have a skeptical eye at Google's track record. It's more than paying for itself in reduced costs internally, even without any regard to its external value to Google.

This might be off-topic but, when can i get cloud-init for physical installs? Without jumping through ten hacks? Isn't that the future for installers given the amount of effort being put into the project and it's cross distro focus?

I'm genuinely curious on each of these questions, thanks for any insights!

What hacks? I mean the only difference between a VM running in Proxmox with cloud-init “support” and your physical host is that Proxmox can virtually insert a CD with the config on it with the label cidata.

As long as you have some method to get your config on the host it “just works.” We’ve used a USB in the past.

Check out the NoCloud datastore.

https://cloudinit.readthedocs.io/en/latest/topics/datasource...

I wonder what they will use next when Flutter ends up in the google graveyard.
I recenly distro hopped around trying to install an encrypted Linux alongside windows.

The installer used by Ubuntu made this completely manual, roll up your sleeves, set all your volumes up in the terminal. It took ages and was precarious as hell.

The installer used by elementaryOS automated it, though it had a tendency to crash.

The gui installer used by Debian and Manjaro was literally a doddle. Select a dual booting encpyped install and off you go.

I was very surprised that installing Debian would be easier than Ubuntu, and pleased to hear Ubuntu is changing their installer.

>The installer used by Ubuntu made this completely manual, roll up your sleeves, set all your volumes up in the terminal. It took ages and was precarious as hell.

The Ubuntu installer has been capable of doing disk encryption for several years now, so I'm confused what you mean by this.

I think Ubuntu only makes this easy if you wipe windows. This was an install alongside Windows.
I tried to do the same recently - the roadblock (I recall) having is that encrypting the entire disk is very easy. Encrypting none of an individual partition is very easy. Encrypting just your Ubuntu install and not breaking your windows install is dramatically less plug'n'play.
I'll have to try that when I get home. I seem to remember that being covered, but I may be thinking of Fedora.
Yep, exactly this is what I meant.
(comment deleted)
Honestly, I don't know if it is related but I learned it is way better to keep per-disk configuration instead of dual-boot using exactly the same disk but having multiple partitions. These days the SSD disk are really cheap and the simplest and most maintainable configuration is to keep Linux on the one disk, and Windows on the second. I have never experienced any kind of problem having a LUKS partition is such setup. Worthing noting in such setup is the booting partition resides on the disk, related to its OS (i.e. GRUB on Linuxish disk, Windowish boot on the disk with Windows).

Clean reinstall of Windows/Linux? No problem! Just plug off the other disk and install the OS. You don' need to care about losing any data nor reinstalling the GRUB. No "how to-s" nor googling solutions for the issues related to dual boot (except typical timezone switching).

Was going to say the same... I have a PopOS nvme and a Windows 10 nvme... Though tbh, with WSL2/Docker, I rarely boot to the Linux drive.
Yeah I mean, totally fair enough, so long as you're able to use two separate SSD/HDDs - which isn't a given for laptops?
The blog mentions the installer is a “start over” from the Ubiquity installer, which is now too old, and that they’re not making use of other contemporary installers. Is this a rewrite from scratch mistake?

https://www.joelonsoftware.com/2000/04/06/things-you-should-...

In my world, there’s been a software package that has been trapped in a rewrite for 11 years. They’ve added many features over the years but still haven’t reproduced the original functionality of the older version. That version was in development for 15 years. The only code shared between the 2 is the code that was not developed in house. It’s made my want to run screaming out of the room whenever I hear the words complete rewrite. We now have one application that does some things well and another that does other things. Investing the same energy in the original could have given us so much more.

How does one use Flutter from other languages?

It seems tied to Dart and UIs tied to specific languages seem to be stuck there (thinking e.g. GT or Morphic from Smalltalk land).

I think that the functional aspect of Dart and the near-immediate mode that flutter provides are a godsend. UI in other languages is a sticky mess of callbacks and dealing with anything multithreaded is a chore. Flutter just rebuilds and rebinds everything once the state changes (you'd be surprised how fast it is!)
Ubuntu developers supporting Google. Wow.
I’m glad they finally dumped their idea to use Electron to develop Ubiquity’s replacement.