4 ms·
The Flutter 3.7 article on The Register[1] had great quotes throughout. Which often sent cold shivers down my spine. > "Historically, people built for the web
by rektide 4y ago
The Flutter 3.7 article on The Register[1] had great quotes throughout. Which often sent cold shivers down my spine.
> "Historically, people built for the web using the Document Object Model and HTML," explained Sneath. "And that was kind of the only way to build web apps. Now, over the last couple of years, between Canvas and WebAssembly, we've got these new technologies that enable a different class of web app experience. And so Flutter is unapologetically aiming at that next-generation class."
So, you're saying we will abandon DOM and HTML & use Canvas to push pixels in people's faces? That... does not sound very web like to me. The "different class" that Flutter is "unapologetic" about sounds like VNC or Flash; a completely controlled, locked down, isolated little fief nestled inside the web page. Again, like Flash.
> "We're aiming at this next class of apps that look very much like the kinds of apps that Flutter is designed to solve – high graphical fidelity, offering pixel level of control over apps, having a canvas where you can draw and manage every part of the environment yourself."
Not on Flutters priority list/not supported after the Flutter revolution: user-agency, web extensions, view-source, malleability, standards, interoperability, support from existing accessibility tools.
I actually think Flutter is an interesting set of tech & am glad to see another entrant to building apps. But every-time they open their mouth, it's to badmouth & insult the web, to highlight how their game plan to win is by becoming evil & ruining interoperability & standards as hard & fast as they can.
The priority system here seems deranged & anti-human to me; 'we take the only successful standards based hyper-medium on the planet, and we reduce it to a Canvas renderer that shoves pixels in your face, with 100% control from Google over what those pixels are and how they work.' We forfeit all user control, we give up all ability to read & parse & modify each other's web content. And for what? "Pixel perfect level of control?" "High graphical fidelity"? "Draw and manage every part of the environment yourself?" Bro, your app is not that important. There's other kinds of delight; I think users are waking up to how shallow & controlled & manipulative apps are, and doubling down on "we just need slicker design systems to really really delight our users" (and capture them for good!) is a limited game.
This is a nightmare, one where only a very very few players have control over the technological environment, one where humanity has no say, no stake, no control. What Flutter proposes is the most polarizing end of what Ursala Franklin talks about in technological society, where who can build the environment, who has say, how things form is extremely narrowly controlled. It talks to utterly prescriptivist ends where humankind merely receives technology as it is built from the corporation, and that end is forever & always enough (& all that is possible). The web, to me, has been defined & shaped by being more, by being better, by having a deeper level of engagement, owing to a malleable & open platform that users participate in, every time we install an extension, every time we run a user style sheet; a holism.
When we invited the "intertwingularity" back in the Cluetrain Manifesto days, there was a value system trying to come out, that humanity is empowered when systems are open & out there & when we can explore what is possible. I welcome technological innovation, but the wanton disregard & active badmouthing the Flutter spokespeople have for malleable systems, for standards & interoperation, their willingness to inflate their own importance by insulting & denigrating web extensions, user agency: it's an incredibly poor look for their would be new Flash project, for their attempt to make an impervious, inaccessible, unmodifiable prison of control within the web & atop native. I'd like to see a tone shift, where they talk about how they'll better work with the web, rather than usurp it's bones to build a new monstrous titan of app-dev.
Thankfully this 3.7 release actually has some perhaps possible good news, that maybe/perhaps Flutter can be intermixed somewhat with HTML/DOM on the page. The Register suggests perhaps Flutter's HTML/DOM mode and it's CanvasKit pixel-blaster mode can perhaps interoperate some. It's hard to tell right now how well Flutter might possibly be able to play within the web. But it's hard to recognize even the possibility- to see that the Flutter team really has any empathy what-so-ever for the web & web standards- when their rhetoric so proudly champions things that seem actively bad for the user, when so much of the work still looks like source-free, unmodifiable islands of Flash on the page; it wasn't good then, & it's still harmful now, & it's hard to appreciate the potential gain when it so lopsidedly enhances corporate control. But at least there is some evidence that Flutter is trying to do a little more interweaving than before... although again, it's hard to recognize that when the current rhetoric from the team is so mono-focused on their graphical capabilities above all.
[1] https://www.theregister.com/2023/01/25/flutter_3_7/ https://www.theregister.com/2023/01/25/flutter_3_7/ https://news.ycombinator.com/item?id=34519279 https://news.ycombinator.com/item?id=34519279
[2] https://en.wikipedia.org/wiki/Ursula_Franklin#Technological_society https://en.wikipedia.org/wiki/Ursula_Franklin#Technological_...
- timsneath 4y agoIt's a little dispiriting to read a screed like this, because it doesn't represent the work we're doing. I think a slightly deeper evaluation beyond a skim-read of a Register article might be worthwhile before jumping to such strong conclusions. In our talk, we explicitly say that today's web is the most amazing and pervasive platform ever built. And frameworks like Angular, React and vue.js serve the DOM-based model very well. Probably this will remain the vast majority of the web for the foreseeable future. But there are classes of apps like Rive (https://rive.app https://rive.app), Figma, or Google Sheets for that matter, that are hard to build on the web without using a technology like Canvas. I don't think that's "pushing pixels in people's faces" - it's simply using the right web standards for the job. Canvas itself is a relatively low-level standard: it's good for drawing pixels. And so it might be useful to have a framework that enables animations and perhaps even some UI primitives here. Flutter's web work is an attempt at solving that problem, because we've already built a portable architecture for these capabilities. If you were building the next Figma or Rive, perhaps you'd see something useful in our open source toolkit. That's it. Nothing so nefarious as to be "deranged and anti-human". I also can't let the accessibility comment go: that's a top priority for us, and we're very interested in reproducible issues there. It's been one of our biggest areas of investment to date. Our early prototype demo (https://flutter-forward-demos.web.app https://flutter-forward-demos.web.app) shows some examples of how we hope this will be integrated into a regular web page. (Disclaimer: this is built with our unstable branch, so may have some bugs.) Disclosure: I work on Google's Flutter team.
- rektide 4y agoThose quotes from The Register are almost entirely yours (unless there's another Tim Sneath)! Little of it is The Reg itself. I'm going off what you said Tim. I'm sorry you find this to be a "screed," but Tim, this reply feels inline with the quotes of yours I've shared that have amplified my sense of alarm. It's inline with what I know & what I've seen of Flutter over the years. I want to be hearing how the new Flutter is better at using DOM as much as it can, and only using Canvas here and there for special cases. Anything short of that is a new Flash coming back from bad-place to haunt us again; a bunch of pixels on the screen the user cannot control or modify, that don't have the standard high level hypertext interface but instead have a special-purpose interface designed only for graphics. Instead of acknowledging the issues & challenges though, you seem to be doubling down on justifying why apps-as-bitmaps is sufficient. So, my screed seems correct? Canvas does exist, and it has good uses. Yes, absolutely. Something like Figma is a graphical tool, a creative tool for expressing design. Having that fine control is appropriate there, and giving up some of the standards-based interoperable hypermedia is ok: there is a real higher calling for this task. But generally... Canvas kind of sucks & is a regression. If this screen we were typing into here was just a bitmap, I'd be sad. My form editor control wouldn't work, my vim integration wouldn't work, my wordcount plugin might not work, my restylers like Dark Mode wouldn't work, and I'd know that no one could ever open view source & grasp at the common lingua franca of the medium. If users had the choice, given two parallel/equal experienced, many would want a view-source capable experience. We'd want a rich hypermedia. We'd want structured data & layout. With Sheets, maybe the good outweighs the bad, but it's pretty frustrating & sad that the core part of Google Sheets is a giant bitmap with no HTML, that it's so resistant to Web Extensions. Maybe it has to be that way, for reasons, but it's a fallback position, and one that has negative impacts. Rather than be able to script Google Sheets with the web, we need a specific "macro" capability built in to the webapp to do anything at all powerful. How many apps will build their own macro system? How many wont? Either way this is a huge loss versus having the web itself give this power to use the users; it is a direct threat to user-agency, and I don't see you taking that challenge in a mature & responsible fashion. The pixels being pushed at us come with less freedom, less context, less malleability, less understandability to them. Some people wouldn't care, but over time, if we didn't have hypermedia at all, if there couldn't be at least some people to peer the covers, society would be a duller less interesting world, and less people would discover their passion for computing & creative digital work. You may be taking accessibility as a high priority, but it's really hard to envision that the hundreds of different Web Extensions that do accessibility are going to work out of the box at the same level they do now. You can try to provide other tools & capabilities & affordances, try to provide invisible parallel DOMs or use web apis to provide similar ish structure, but some tools people know & love will not work or wont work as well without actual HTML on the page. The Canvas is structureless, is not as rich a medium as the HTML hypermedium, and I continue to not see recognition that CanvasKit presents some compromise, that it degrades many of the better parts of the web, from the Flutter team. Is the DOM Renderer still a focus at all for the app? Is it a main focus? That would make me feel much better. Can apps mix DOM and Canvas renderers easily, so we can retain the hypermedium in many places? Making it easier for Flutter app-devs to be "web native", to use the higher-level, not just the lower level bitmap of the web, but the real hypermedium of the web, would make me feel better. These would be substantial rebuttals that would defuse the risk a Bitmap-oriented webdev experience has. Rather than a screed, this seems like a pretty basic, well intended concern to me. About the basic core of the web. I'm worried the users are being locked out. I'm worried the rich medium is going to become depthless flat. I'm worried prescriptive technologies will become normalized, that the web, as a unique place where users had power will be taken over & taken away. If Flutter can & will play with the higher level web ecosystem, I can welcome it, and embrace the possibilities of Flutter. But the defensive nature of your arguments- heavily defending Canvas without showing any sign of embracing the higher level web: that silence/omission seems inline with the quotes I've drawn from, appear alongside the other evidence I've seen as indicators of where Flutter is heading.