4 ms·
It'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
by timsneath 4y ago
It'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.
- timsneath 4y agoYes -- to be crystal clear, we're not targeting the DOM. We focus on use cases that can and should be expressed in a canvas. We prefer a WebGL canvas, but even what we refer to as our "HTML renderer" only emulates Flutter's canvas capabilities (e.g. layers). If you are a web developer building with the canvas in mind, we aspire that Flutter is a useful tool. We encourage the use of one of the many other great frameworks out there (or no framework at all) if the DOM is the target. And we aspire to provide great interoperability and accessibility. The web is bigger than documents. And that's why web standards are bigger than the Document Object Model. I'm sorry you see that as badmouthing the web, because it couldn't be further from the truth.
- rektide 4y ago> The web is bigger than documents. And that's why web standards are bigger than the Document Object Model. I'm sorry you see that as badmouthing the web, because it couldn't be further from the truth. Most apps are best represented by DOM. You're not talking about using some of the graphical canvas capabilities the web has to do some graphical things. You're talking about using bitmaps to do all of your apps. It is a new Flash. Right now you have the grace of having few eyes upon your work. As more and more apps start rolling out where people come to understand- this is not a webapp I can script, I have no control over it, no agency- it's a giant bitmap on my screen which acts as a low-level alternative to actually using the technology 99.99999% of the higher-level web works with- I think you'll find that this characterization of your work as 100% web, as totally fine, will be ill received by the public at large. My lone comments right now are easy mode. And you dismiss them as inaccurate. But this low-level use of bitmaps to make entire apps is a big reducer of our capabiliites online, and I am confident that my protests will just be the start, if Flutter web starts to really take off. This is a regression to what the web has been to users, and turns the web into something more like native apps, where we have never had control. This is a loss for humanity. It has some upside too, for some developers, but most devs don't actually need that extreme & divergent set of non-high-level low-level interfaces.
- matchbok 4y agoAccessibility won't be solved because this is a Google project and most likely won't exist in 3 years.
- gerash 4y agoIf I were designing flutter I would do exactly the same: bypassing all the legacy baggage of HTML, DOM, etc. and going straight to the pixels. The deal breaker for me is jank however and I do see some in the flutter-forward-demos page when I press the "resize" button. That said, I can imagine fixing jank on platforms you don't fully control is going to be difficult.
- satvikpendem 4y agoI've seen the above poster before and noticed how they post very similar comments on Flutter threads in specific, and they use extremely hyperbolic language like "deranged and anti-human" as you mentioned, which I've called them out on. If I were you, I'd simply ignore their comments as it does not seem that they will change their mind or even stop using such extreme language. https://news.ycombinator.com/item?id=34519279#34526671 https://news.ycombinator.com/item?id=34519279#34526671
- rektide 4y agoRight so, because I care about the web & the dangers this tech represents, I should be ignored. Because I think it's evil & damaging to humanity, you think that means I shouldn't be able to post. From a post you linked yesterday, here's another Flutter defender's take: > Not to mention, this is nothing new. We used to have Flash, after all. Building a new Flash on the web is a dangerous track to go down, and is bad for society. You've "called me out" on not liking hearing that. You ad-hominem attack the crap out of me when I post. Your qualms are centered around tone-policing, & you have concocted yellow journalistic muckraking/ad-hominem attacks to blow me off, or make off-topic excuses. You're absolutely right that I have long been around & made many similar comments. Should I be ashamed over a real concern? Does that change the danger here? Sometimes my language varies. It's yet more very-low-caliber anger to suggest that finding an example or two of somewhat more than mild language- over a fundamentally correct & dangerous issue that absolutely should raise alarm- is enough to cut me off. Where I come from, real & genuine people look for the best interpretations of what the other person is saying. False & shallow people use short & stupid arbitrary hurdles to try to trip each other up. Rather than complain & stick it to me about my tone, you should try understanding & acknowledging the content. Rather than diffuse, you should responsibly acknowledge why feelings are so high here: this is a mortal threat to the worldwide web of information, a subversion of it into another shallow corporate-controlled top-down app delivery platform (like Flash, like native). Maybe Tim should ignore me. That's fine. But I find your arguments to be misleading. Tim should ignore me because his effort destroy core values & principles of the interlinkable worldwide of information, that represents some of the best things humanity has done. Because what is he is doing is wrong & bad for user-agency, bad for the shared web of information, reducing everything we interact with from high-level malleable structures of information, to crude Canvas bitmaps. Maybe Tim should ignore me, but not because I once used a less than polite word. This is my track record on this issue of CanvasKit & it's danger. It's not all perfect, but the spirit is correct & wave it proud. This is a core technosocial topic, a good moral & just cause, against a new emerging Flash-grade threat to the internet, wearing a sheep-skin cloak of respectability by declaring flat low-level Canvas to be equal stature to the contentful structured HTML "web" (and badmouthing the DOM as only useful for some narrow "documents" use?). I generally am trying pretty hard most of the time to be civil & decent, but yes, you can absolutely find some more radical words in there too, owing to the radical & existential degree of this vast threat. Here's 3 years here for folks to judge for themselves across: https://hn.algolia.com/?query=rektide%20canvaskit&sort=byDate&type=comment https://hn.algolia.com/?query=rektide%20canvaskit&sort=byDat...