96 comments

[ 3.2 ms ] story [ 172 ms ] thread
It seems like this is a response to Ian "Hixie" Hickson (co-founder and tech lead of Flutter) leaving Google (but not leaving Flutter).

https://ln.hixie.ch/?start=1700627532&count=1

Serious question concerning how much of a bubble I am in:

> Flutter is amazingly successful. It's already the leading mobile app development framework

Is this true? Over iOS native, Android native, React Native, or any other hybrid frameworks?

EDIT: numbers can tell different stories, but here's one at least against React Native (which I'm most interested in) in Flutter's favor: https://stackoverflow.blog/2022/02/21/why-flutter-is-the-mos...

"Percentage of Stack Overflow questions that month" is not a good measurement for a tool's popularity or a measure of its use.
Very much agree.

I would say in jest that it might be inversely correlated with success, but you also wouldn't want to work with, say, brainfuck.

In terms of numbers I don't know but I personally chose it from my apps and to me it's the best framework out there at the moment.

Compared to the native tech the advantages are easy, you have a single codebase and UI for all the platforms. The native UI apis are also moving faster than Flutter in my opinion which makes Flutter lower maintenance as well on this area.

Compared to React Native, it's younger but more stable in my opinion, I don't want to deal with the js package churn rate and its bad testing story. I come back 6 months after to my flutter projects and after 2 hours I've upgraded everything, good luck with that on the js side.

If you care about Linux, Flutter is also a better choice than React Native in this scenario. React Native Gtk target is abandoned and the only realistic solution is to use an Electron wrapper (well it's not that native anymore isn't it)

The only downside to me is the web target which isn't that great, if you just want to use the web target as an app demo though, it's good enough.

do you have any opinions on kotlin multiplatform? Afaik they want to roll out even the compose multiplatform this year
I haven't tried it yet, I'm a bit afraid on the ios side since they label it "alpha"

I need to dedicate some time to try it.

I was also very surprised at that line and I was wondering if I was the one who was out of touch or the Google team were. I haven't really looked into mobile development for a few years so it could very well be the case, but it stood out to me as unlikely considering the relative impopularity of Dart and the (to my estimation) very low hype profile of Flutter where developers hang out.

But maybe they're right. I think it would be exceedingly hard to actually get real numbers on it anyway.

Tim was a director on Flutter until a few months ago and now works at Apple.

That is, he has first hand knowledge of Flutter's numbers and now that he works for a competitor, no motivation to inflate Flutter's stats.

Without getting into specifics (which I cannot share), Flutter is wildly successful in the market place and continues to grow YoY.

I guess it depends on how you measure popularity. If we’re counting new apps published on App/Play Store? Perhaps, even if still quite surprising . By user numbers? Completely unbelievable.
> Tim was a director on Flutter until a few months ago and now works at Apple. > > That is, he has first hand knowledge of Flutter's numbers and now that he works for a competitor, no motivation to inflate Flutter's stats.

Being the ex director of a project means you will always have a reason to inflate the stats of that project, even if it is just for personal pride. I don't see how Hickson leaving Google means he doesn't still have part of his work life tied to the project regardless of employer.

> Without getting into specifics (which I cannot share), Flutter is wildly successful in the market place and continues to grow YoY.

That's cool, but this is just more of the same and more of what people seem surprised by. Numbers don't really matter unless they're visible and verifiable.

Sure, personal pride might cause someone to continue to inflate stats even after leaving a project. I can't speak for Tim or his motives here.

It's completely reasonable to continue to be skeptical of these claims without public numbers.

FWIW, I was surprised by the numbers myself but it's above my pay grade to share them publicly or discuss specifics.

Might be because Flutter is very popular outside your bubble.

I noticed a huge explosion of interest coming from third world countries prior to pandemic where money is tight.

China BigCos are adopting it.

If you go to hi-tech forums in India, lots of participation around flutter too.

That's two most populous nations in the world by large margin so you can keep looking for stats while they're chugging along :)

I would be very surprised if it's not Ionic (or maybe React Native, but I doubt it).
If it is a response to that, you would have to assume that Hickson left because he pushed for or against something relating to working on Flutter. If Google wanted to place him elsewhere, for example, and he left Google because he figured he can bankroll his own work on Flutter and look elsewhere, that'd be in line with this line:

> I hope that Google finally realizes what treasured assets they have here before it's too late. The clock is ticking.

Lowering the amount they're investing in Flutter would definitely be something that would disappoint the ones who believe in it strongly in-house and taking away key people would not inspire confidence. Interestingly none of the tweets ever mention Hickson as being important, which doesn't exactly speak to the source of the complaints being Hickson leaving, but rather a much more general lowering of investment in Flutter.

Your comment couldn't be more off-base.

Hickson left Google for his own personal reasons. Not because Flutter is losing resources or that he was asked/assigned to work on something else.

Google has not lowered the amount resources dedicated to Flutter.

Ian started the Flutter project and it's hard to point to someone more important to Flutter's success than him.

He continues to work on Flutter as does the entire Flutter and Dart teams.

How do I know this? I've been working on Flutter (off and on, currently on) for seven years and was present when Ian announced his departure from Google (not Flutter).

Fair enough. What is the impetus for this long, whinging thread that has been linked to, then? If it's not about Google at the very least not showing any confidence in Flutter it seems fairly hyperbolic.
> Google has not lowered the amount resources dedicated to Flutter.

What about the recent layoffs from the Flutter & Dart teams?

It reads as if Flutter is getting scrapped as a Google project quite honestly.

If true I can see the blowback being pretty severe on this one.

It is just one person leaving Google, but still planning to work on flutter.
Honestly this makes me WAY happier.

Creating a genuine Flutter development pod outside Google makes it way more likely that Flutter won't die when the internal Google project gets shitcanned.

I've gone all-in on Flutter for mobile development, and have quite a lot invested in it. I'm sure quite a lot of other people have.

If Google sunsets it, I'll be so pissed off. I'll never trust anything else coming from them again.

You and me both. I've spent the past few years rewriting a UWP app into Flutter, and really enjoy the experience. I desperately, desperately don't want to have to go back to web development. I hate the DOM so much.
Is Flutter free software? If so, I'm sure other companies will continue to fund it's development, especially those that have products developed in it.
My concern would be around the baked in Google services (e.g. maps, firebase, etc) no longer being supported.
I don't think Google can block a framework from accessing it's services through official APIs
Other companies rarely have the resources to spend billions on a dedicated team building a free cross-platform toolkit.

If Google abandons Flutter, companies will spend millions switching to, say, React Native

Flutter has three major problems:

- Performance: Even on Desktop, animations have jank. Last I compiled samples on Mac, the problem was visibly there.

- UX: Text editing immediately feels alien. If Mac for example, you have a text field in a native app and on the side you have a flutter app with a text field, you can tell the difference between the "feel" when you type in each. This isn't necessarily limited to text fields alone.

- Web: surely is possible but you have to dumb down your application so much. You cannot use libraries from JS ecosystem so lot is left on the table. Imagine High Charts, d3.js and such. Say goodbye to them when you're on Flutter Web.

Lastly, from the tone of it, seems like Flutter is on the way to join Google Reader and such. Gradually.

Flutter is mainly a mobile framework. Electron owns the desktop, anyone using flutter on the web is crazy. While you're points are valid, they are kind of irrelevant.
The marketing literature begs to differ.

The Google's own Family Link app even on web[0] is also a Flutter app.

[0]. https://familylink.google.com

Well marketing and reality is not the same thing.
Yes there's a mismatch. As a user one should dial down their expectations accordingly.
Damn, what have we come to. I cant select text from a webpage. This is not what our grandfathers fought for :(
That website breaks the back button, on Android...
Ironically, that page just shows me "Something went wrong" which I guess proves your point somewhat.
This is awful. Text is not selectable and the back button is broken. Nice work coming from a multi-billion $ company.
Wow, the first thing I’m met with is a terribly choppy scroll rubber banding animation on a view which shouldn’t even be scrollable. Not only isn’t it 120 FPS; it doesn’t even feel close to 60.
So what's the reason to pretend that you're also a web/desktop framework? This only limits you in mobile if you have to always consider web/desktop.
Frankly just the standard practice of over-promise and underdeliver, for marketing purposes.

Flutter would be far from being the first framework to do this.

The web target is not completely useless, if you want to add some kind of app demo on your website, it's pretty good for that purpose.

It's not ready as a full platform though like mobile & desktop, that's for sure.

Our sales team uses the web version of our mobile app to do sales presentations. It is very useful.
So then, if you want to have a really cross-platform app, ditching Flutter and using web tech for mobile too sounds like the better bet? Or, otherwise said: if Flutter is only relevant for apps, that's a pretty small niche.
> if Flutter is only relevant for apps, that's a pretty small niche.

No it is not. Mobile apps are thriving. It is desktop apps that are niche now.

> ditching Flutter and using web tech for mobile too sounds like the better bet?

Quite possibly yes.

I meant it's a small niche for Flutter to address only the apps that want to be cross-platform, don't want to invest into having "native" iOS and Android versions, but are Ok with using a different technology for desktop/web (or don't need those).
It is not a small niche at all. A ton of things are mobile first/only.
And plenty of well known companies have discovered that mastering two native stacks is still easier and cheaper in the long run, than mastering a "cross-platform stack" framework + dealing with leaky abstractions + build integration issues + having to master the native stack anyway.

Either go mobile Web, or native.

You know, this is a solved problem. Qt, for example, can easily do it (and has been able to do it for 10+ years, from microcontrollers to phones). And, just saying, QT is damn fast, a necessity if you want to work on microcontrollers of course. And yes, you can do it without royalties, without paying for QT, and in multiple languages (at least C++ and Python work pretty well).

(oh, and QT supports 3d, on the web, on android, on ios, and on desktop, even on microcontrollers if needed)

And yes, Javascript's advantage has been that it was cross-platform pretty early on. Not particularly fast though, not even decades later.

And everybody keeps pointing out the same shortcoming: these frameworks let you share a lot of code, but mostly not the actual "View" (the V in model/view/controller) code, due to screen sizes, whether the UI can be resized, extra functionality (e.g. statusbar/notifications/...)

That's why new frameworks come out, because "why can't notifications on Windows work the same as on android?". "Why not just share UI?". Unfortunately, there's very good reasons they cannot work the same ... So a couple years in, these frameworks develop the exact same problems.

Then it’s not bringing something particular new or useful to the table?

Xamarin/mono already tried almost the same approach years ago and it clearly failed..

Did it fail because it is impossible, because of poor execution, poor dev experience or it was simply too early? Flutter seems to be quite popular.
All these frameworks are leaky abstractions, they only avoid mastering the underlying platform as long as people stay on the happy path.
There is a use case for Flutter Web and that is an extremely simple user interface such a form or a simple workflow, which can share code with e.g. a mobile app.

Other than that I agree - Flutter web is not going to be a good choice and that was never really the goal for them, I believe.

Extremely simple user interface can be done in anything and code sharing is irrelevant for it though.
Fair enough, but if the interface is simple yet has somewhat complex validation logic, it may just make sense.
In that case, would be wrong with...a form?

Postback never died.

I do not see these as three major problems, simply because your arguments refer to use cases that very, very few Flutter developers actually care about. Flutter is a native mobile app framework.

I hope they solve the problems above, but it's not really anything that keeps Flutter developers awake at night.

Fourth, it was never wanted from the Android team, with key figures like Jake Wharton having issues with it,

"Flutter is a manifestation of everything wrong with Google as a company. A language that should have (and did) fail but kept alive. Control of the two most popular platforms on the planet and failing to unify them while allowing a third to be created that actively undermines both"

https://twitter.com/JakeWharton/status/1421139368467632136

You also see this from Flutter's point of view on Tim's tweets

"That all happened, and set a bar that others had to invest heavily to compete with. Jetpack Compose was essentially a Kotlin clone of Flutter, literally to the point of translating large chunks of code."

To this day, Flutter is yet to be part of the official SDK tooling.

Doesn't Jetpack Compose use native controls while Flutter implements its own controls?

Wrapping native controls often means being limited by a lowest common denominator in cross-platform scenarios.

Jetpack Compose is the new native controls framework for Android.

JetBrains is the one that decided to take it beyond Android.

My mistake. I was thinking of Compose Multiplatform.

Do you think Jetpack Compose could be made multiplatform in Flutter's way (ie drawing its own controls on all platforms)?

Maybe, although as proven multiple times, that has lots of issues with platform integration.

Shortcuts don't work, accessibility doesn't work, integration with OS workflows might not work, lags behind any OS updates, there is Look but no Feel.

Proven is a bit strong word. Shortcuts can work, accessibility can work etc. Integration with OS stuff depends on the API OS exposes. Only mimicking & integration lags behind and only after the updates that actually change platforms UX. There is nothing magic about the "feel" that can't be implemented. It is a lot more work to develop a quality framework like this though. On the plus side it can work on the platforms without desktop environment.
- Performance: I agree it's not there yet. But it's still improving. There is currently major Skia to Impeller migration in progress. It look like Flutter should be able to reach good performance once it matures. The only long term limiting factor regarding performance is declarative architecture of Futter, which adds a bit of overhead.

- UX: Again I agree. It's not there yet. But due to Flutter being based on low level APIs, there is nothing preventing it to mimic any platform's "feel". This is also still being improved. While Flutter will UX probably never 100% match any OS's native UX, as it implements everything on it's own, it could reach the same UX quality.

- Web: IMO, Flutter weakest platform. Let's see what WasmGC support brings.

I would add fourth problem: Dart. It's not a bad language, but it is years behind with features, performance is currently the same as JS (even though it's statically-typed, AOT compiled language), ecosystem is small and it tries too hard to keep compatibility with JS target (eg. no proper unsigned 64-bit ints).

So, currently there are still some moderate issues with Flutter. But its foundations are good. It all depends on Google to keep investing in Flutter.

It doesn’t matter if Flutter reaches the same UX “quality”. What matters is that it will never feel native. I agree with you that this is a fundamental problem which pretty much can’t be fixed.
Does 100% native feel really matter that much? How often do you encounter situation where you feel your experience is worse because UI/UX isn't same as native, even though the quality of UI/UX is equal to native (not worse in any way, just different)?

Sure, consistency and familiarity matter, but IMO it's not like every deviation destroys the experience. If that were the case, UI/UX of iOS should have stayed the same since v1.0.

> - Performance: Even on Desktop, animations have jank. Last I compiled samples on Mac, the problem was visibly there.

This problem is mentioned whenever Flutter is discussed.It's been several years already. Seriously, they have a ton of smart people there, how it's not their number one epic? Unless, well, it's an architectural problem and nothing can be done - but then why continue the project at all?

We don't support the MacOS/Windows/Linux variants, but our Flutter app's web performance is amazing. I'm honestly not sure why people seem to think the performance isn't good.
I like the idea of a single framework for all platforms and have always wanted to get into Flutter.

Thee main barrier for me has been the Dart language, I wish it was written in a more popular language like Go.

I wrote Dart full time for a couple years at Google (working on Assistant). I really enjoyed it! It's a really nice language, and pretty easy to pick up.
You should give Dart a try, it's a lovely language. and very easy to pick up. In fact, it's become my favorite of the modern languages. For perspective, I come from a primarily Java/C# background, with large smatterings of Python, JS/TS, and Go, not to mention other less popular languages.

I would describe it as C#-lite. It's got all the features of a modern C-derived language with very little of the accumulated complexity. It's got pattern matching, tuple-syntax, a very strong constructor syntax, first class functions (this has become table stakes in the past decade but not so long ago it wasn't)... It's just a well balanced and very pleasant language.

- no threads (isolates are much more limited)

- no value types

- missing fundamental integer types (eg. 64 bit unsigned integer)

- no data classes (records are anonymous)

- no tagged unions

- no static metaprogramming (macros coming soon)

- limited constructors (initializer list expression can't use earlier values in the list, no object initializers)

List<int> is still too often used in APIs instead of Uint8List, even though it has 8x overhead.

Slower than C#, Java, Kotlin & Go. Performance is same as JS (even though it's statically-typed, AOT compiled language).

I'm hardly the Dart Defense Force, so I'm not about to justify all their choices, and I share a lot of your annoyances, especially re: threads, data classes, and tagged unions, but what does people using List<int> have to do with Dart itself? I don't hate on Java-the-language because the libraries are full of BeanFactoryFactory().

Still, I stand by my claim that it's C#-lite.

You can't do List<byte>, but need to use special types like Uint8List. This was not always available, so List<int> is sometimes still used even in official Google libraries. If it had value types you wouldn't need these special lists.

I agree that overall it feels like C#-lite, plus some baggage from early days when it was designed as an alternative to JS.

It will probably become really nice language in a few years.

Once you get into it, it becomes clear that Dart is actually pretty brilliant. There are lots of small little features in Dart that makes working with Flutter very productive (and even fun, I would argue).
Isn't flutter supposed to also be the main way to develop UIs on google Fuschia ? Which is supposed to be the successor to android ?

I'm surprised to see no mention of that aspect. Did i miss something ?

Is Fuschia meant to be anything more than an R&D project where some ideas get moved back to Android?
There are some smart devices shipping with it, but that is about all.
Google Fuchsia powers the Nest Hub sitting on my desk acting as a photo frame right now.
Probably related, The Future is Flutter where former HTML editor Ian Hixie says they are no longer at Google but declares their dedication to Towards a Modern Web Stack aka Flutter-web the low-level replacements of html with rendering one's app into Canvas. https://ln.hixie.ch/?start=1700627532 https://news.ycombinator.com/item?id=38383306

I've written numerous times about what a terrible horrible thing for the web & for users this is, so I'll spare a repeat.

Even though I remain a skeptic of low-level app platforms like Flutter, I do respect a lot Tim's penultimate parting post, about this being work being a vocation, a calling for many of these folks. Being treated as industrial force, to be deployed at the leisure of the company, is disgusting & widespread, and I appreciate Tims words here.

> Any negativity you read is coming from folk who wanted to see senior leaders be better stewards of this amazing inheritance. It's not about the paycheck. These are people who believe in this work as a vocation. They're not fungible resources to be redeployed at whim.

I also would volunteer that Fuchsia seems really cool, like a really smart capable secure OS, and that I hope it can strongly persist.

I chose dart/flutter over everything else because it was easier to learn and was truly cross platform. I hope it isn't abandoned by Google.

That being said HN really doesn't like flutter and even more so dart. This thread is the busiest I've see about dart/flutter and most of it negative, almost like people want Google to ditch the tech.

I like dart/flutter for what it's designed to be, a write once deploy everywhere framework. Nothing else comes close if that's your goal.

Flutter is great, and Dart is awesome. I still don't understand the hate for it - mostly from people who have never shipped in production.