Photoshop’s journey to the web
web.dev
web.dev
Near native performance, players can join with just a link, and no 30% cut that developers have to deal with.
That said, I think the niche of casual remote party games would probably work very well here. During the height of the pandemic my friends and I started doing a lot of "remote game nights" with various different kinds of games. However since most of them rarely played games, owned macs and weren't very technically inclined, the games that had the least friction were generally the browser based ones.
Since party games by nature tend to be great at organic advertising and benefit the most from quick easy installs, I think there is a big opportunity here that not many have taken notice to yet.
We use Steam, Xbox Live, PSN, etc not because we wouldn't prefer to use our own store, but because no one cares about anything else.
The reality of you selling your game at a profit without the help of one of these app storefronts is improbable. Keep in mind that even if you somehow become successful in this regard, these storefronts have a vested interested in making sure you and your technologies fail.
Edit: apologies if I seem dire, I'm actually on your side and WISH that the world was a free market without all these gatekeepers. Myself, my partner, and many of my close friends constantly battle with these "gate keepers" as game devs/designers and I wish they would go away, but the market (users) love (to use) them even when they hate them.
Sure but that situation doesn't change by simply distributing a webassembly package through a website. Or rather, that situation is no different than if you distribute a desktop binary through your website. In both cases you are eschewing the storefront.
I mean, no. I definitely wouldn't want to endure the waiting time I have every time I play some MMO if I'm playing a single player game.
Combined with compression, you can get players into desktop-quality games in WASM in seconds on most computers.
The real challenge with webassembly as it applies to games (at least large ones) is the asset size. AA - AAA games are 20-100 GB and that can't just live in browser cache.
Also, to be honest building a complex game and shipping it to the web is kinda crap shoot for other reasons. Games are power hungry, and don't want to be limited by browsers. Also, a browser is a massive application that sits around consuming resources that a AAA native game could use.
But of course, I imagine games will be developed differently to take advantage of the web (smaller games, streaming in levels / textures as needed, etc).
The bad news is that it's not the tech that is holding back web based game dev. It's the users. Market research and testing has shown that users dislike "just playing" a game in the browser. This is particularly true in the AAA segment that webassembly and its perf gains would best serve.
Players who play the high profile games that web assembly would allow you to make games for (think Fortnite, CS:GO, etc) all want to play games from a trusted download from a trusted store, not some random website. Please note, random is used very loosely here to mean "any store/website that isn't Apple Store, Play Store, Xbox Live, PSN, or Steam".
I foresee that we'll need some major player with a big game like Fortnite, Roblox or Mojang to spearhead using web deployed games before we'll see anything happen in this space. The existing "install to disk and play" is working just fine and game devs don't really see any reason to change that.
The other major thing is that most "slightly" big games (even smaller mobile ones) have assets in the minimum size of 4-10 GB of data. Even if you can render the game in browser, you have to download those assets. Yes, of course you can "load only what you need" but for many many games (source: my wife is a game designer and I'm a game programmer/web dev) that still entails at least 1 GB of data that would need to be loaded and is difficult to cache client side in the browser.
> Players who play the high profile games that web assembly would allow you to make games for (think Fortnite, CS:GO, etc) all want to play games from a trusted download from a trusted store, not some random website.
No doubt this is partially thanks to the numerous game-like ads that link to exceptionally cheaply made web games. I remember a time in the late 00s and early 10s when browser based games were starting to flower, but then the spammy stuff took over and their popularity dropped like a rock.
I would hazard a guess that the overhead of navigating to a specific site and the clunkiness inherent to browsers being a 1024-in-one multitool doesn’t help matters. It’s nicer to just fire up Steam and have all your games neatly listed, all free of extraneous browser chrome and whatnot.
Mostly prototyping and “spike” research into the key architecture bits to make sure everything will meet my needs.
Discord link: https://discord.gg/zUSZ3T8
People just don't want to invest/search for random new games on random websites.
For games people want to play, and already have heard about, it wouldn't matter if they are on a website or a "trusted store". If Fortnite was made available to play only from a website starting tomorrow nobody would have a problem using it from https://www.fortnite.com as opposed to Epic's game platform.
And for games sold by big companies, it also wouldn't matter. It's about trust (which Valve or Epic has), not about web vs a launcher/store.
If devs can get that trust, then getting users to play the game on the web is not a problem.
>but for many many games (source: my wife is a game designer and I'm a game programmer/web dev) that still entails at least 1 GB of data that would need to be loaded and is difficult to cache client side in the browser.
You also need to download/cache that 1GB or 10GB if you use Valve or whatever.
As for caching it client side in the browser, you can do it as well, either as browser cache (browser vendors will just add the technologies for that), or as locally downloaded assets with direct access granted from the browser (the article already talks about using a new API for mmapping-style access to files outside the browser).
On top of that, building things that work consistently across browsers and across time is an extremely cursed problem.
Insomniac Games, makers of the new Spider-Man games, spent several years trying to port all of their development tools and workflows to be web-based and work in Chrome. And then, when they got there, it turned out to be terrible. Google would update the browser and key tools would break and nobody would know why. The tools folks had to work in Javascript, while the majority of the engine was still in C++.
The call was eventually made to migrate the tools back to native exes, which was another multi-year process, but nobody missed the Chrome tools. Clicking a bookmark in a browser turns out to be about as difficult as clicking a desktop icon, and the stability is significantly improved.
Maybe we should stop caring for AAA games then? What happened to gameplay instead of "this new game has 10% more detailed graphic assets"?
As if I said/meant that gameplay-based games didn't exist (as opposed that the industry and market has a heavy AAA/get newest GPU/ emphasis).
Not to mention that AAA light on gameplay and full on assets also hire gameplay programmers. It's not about gameplay programmers being busy, or gameplay-heavy games existing.
It's about having many more gamers stop chasing graphics to the detriment of gameplay - or in fact, stop chasing graphics, period.
And viewers in general would gain much more subtle understanding of the world, appreciation of art, mature emotions and storytelling, exposure to global cultures (not just heroes-in-spandex-Hollywood-commercial monoculture) and lots of other things besides, if they didn't watch Marvel movies and watch arthouse cinema instead.
Or, as we call it here, just "cinema" (it doesn't need a qualifier, we call the rest "Hollywood crap" instead).
"The technology can never compete", but it gets better every year.
The new Microsoft Flight Simulator is amazing, and they took that same rendering and can stream it to the browser (though not as a game as far as I understand) with Project Anywhere https://developer.nvidia.com/blog/streaming-simulation-and-t...
I'm not saying that WebGL is ready to take on AAA games today, but calling it "pure fantasy" is naive. People will never use a browser on their phones, the internet will never compete with television, electric cars can't take on gasoline, the list goes on and on.
Although I do see a future of Gaming on browser. Not everything has to be AAA 3D Games. I want retro 2D Games. Games that were even possible with good old Flash.
Also, the original blog isn't only about WASM, that's just one of the technologies making this sort of thing possible.
Canva was built pre-WASM, so photoshop in the borwser, may be better with WASM, but I'd suggest it isn't a requirement.
Only one of them has an excuse though, the other is literally the most profitable company in the world who is strategically trying to make the web into a subpar platform for their own commercial interests.
I don't understand why they can't do a pay-what-you-want model. Keep the browser free, but encourage people to pay $20 or something if they like it. I would.
From the horse's mouth: https://bugzilla.mozilla.org/show_bug.cgi?id=1682593
Chrome and its variants have already won the PWA space, not by some brilliant strategy or sinister ploy on Google's part, but by default of its competitors.
It’s clear that there is a lot of new tech on the horizon for browsers that is closing the gap with native very quickly.
If they are unable to make that transition which sadly seems like a real possibility then I don’t know where that leaves them.
——————————————————————————————
Dave Townsend [:mossop] Assignee
Comment 15 • 10 months ago
(In reply to Hexandcube from comment #12)
>I disagree, many people have been waiting for PWA support in Firefox. Removing this feature, may result in people (including me, a huge Firefox advocate) switching from Firefox, to a browser that supports PWA. I'm very disappointed.
We already don't have the feature working in any decent fashion so I'm not sure removing it will have any impact here.
>I also would like to see the results of the research, Dave was talking about.
Unfortunately I think that the research is confidential at the moment.
(In reply to joshas from comment #13)
>You should reconsider this decision. It is understandable that currently there might not be enough resources to finish full PWA support, like in competing browsers, but removing it completely will not only make all work done on it a waste of time, but also send wrong signal to some users.
>Leaving feature hidden under flag for enthusiasts to experiment on and, maybe, even submit patches that will nudge it closer to completion - that would be a bigger win, than removing feature altogether.
The signal I hope we are sending is that *PWA support is not coming to desktop Firefox anytime soon* {emphasis: mine}. At this point I don't think we would accept patches to improve the feature so I don't think leaving the code in Firefox makes any sort of sense. Speaking as the developer who spent a good deal of time writing most of the code I am frustrated to see it removed too, but it is the decision that makes sense at this time.
——————————————————————————————
Nothing to do with running webapps in the browser normally.
[1] https://github.com/mozilla/standards-positions/issues/154
Mozilla decided to stop focusing on porting such applications to the Web before 2020's layoffs, when Mozilla was still growing. The decision came after some management changes, basically: I don't think any individuals changed their minds, just those people happened to leave, and their replacements had different ideas.
(I personally disagreed with the new priorities at the time, and ended up leaving.)
Yes there are issues with resources and resource allocations at MoCo, but claiming there are only 40 devs on Firefox is way off.
> Safari 15 has a canvas memory limit of 4096 × 4096 pixels where Safari 14 could deal with resolutions up to 16384 x 16384.
https://twitter.com/rikschennink/status/1442443774748082185
I'm definitely not one to advocate web apps that only work in one browser, but Apple is certainly going out of their way to make lives harder for developers who do want to support their browser and we all know why that is.
In general, after the initial launch things tend to improve as both browsers and applications focus on compatibility.
- Easier cross-platform support easier for developers
- "Branding" concerns
- A philosophy that the app, not the operating system, is central to the user experience; one consequence is there's a strong emphasis on having that app behave as similar as possible across platforms even when the app's behavior violates the platform's UI guidelines.
I lament the decline of the idea of a native desktop with an ecosystem of conformant applications. However, I see the economic incentives for writing cross-platform applications that emphasize consistency across platforms instead of consistency with each platform's UI standards. As long as we have app-centered desktop environments, the only way I see native applications that are conformant to that platform's UI standards being promoted is through market demand. Historically Mac users have shunned software that doesn't conform to the Mac's UI guidelines, though this may be changing in recent years thanks to the rise of Electron and Catalyst.
"Chrome has been working to empower web applications that want to push the boundaries of what's possible in the browser"
"Google Docs was a pioneer of this simplified access"
"Early apps like Gmail showed that more complex interactivity and applications were at least possible"
"No large project can be successfully completed without the appropriate tools for the job, and it's for this reason that the Chrome team developed full featured WebAssembly debugging support."
Mind you, I suspect I'll not be alone and by the time Adobe transition to a fully web-based subscription lock-in, Affinity et al will be better positioned to entirely fill the void.
Sod Adobe.
Also, most of the people I know who use Creative Suite have absolutely zero need for any of the recent multi-user / social/web-based functionality. I've never in my twenty-plus years in design needed it and see a decreasing likelihood I would in future either.
I appreciate that ages me and marks me as an old fogey, but.. well, all for the best if competition gets to the point where I can go back to buying single releases every n years, at my leisure, again.
Sod Adobe.
Aka the fact that, regardless of payment model, the latter is basically un-crackable. Photoshop has maintained some popularity, in spite of the SaaS move, because quite a few people can still get it by "sailing the high seas" (some of them pay for a while and then crack, others just get good ol' "releases"). I'm not so sure that turning off that tap for good will be a net positive for Adobe, but I guess we'll see.
The debate about the browser replacing desktop applications stretches back to the early 2000s. I was sceptical the browser could complete with desktop apps back then.
Fast forward today and how wrong I was.
I used to believe design and graphics apps would never work in the browser unless extremely limited in features. But even design and graphics apps have found success in the browser (e.g. Figma, WebFlow, Canva).
Figma in particular is enjoying huge success and poses a challenge to desktop apps Sketch (Mac-only) and Adobe XD (Mac and Windows).
For sure, though, sod Adobe.
And are mobile apps running in locked down OSes truly “native” either? Whether they’re written in WASM or Swift, if they are locked behind an App Store subscription, whether they’re downloaded and stored on the device filesystem permanently or downloaded on the fly and cached as needed is irrelevant as the end user still lacks control and you still end up with an uncrackable walled garden.
There some bizarre notions associated with “native” here which I don’t think have anything to do with control over how people run stuff.
Likewise, why is a world where most people learn JavaScript any better or worse than a world where most people learn Swift?
There’s never going to be a world where no minority languages exist and frankly, the more “pro” languages which have fewer users end up paying more $$$ as they are perceived to require more expertise than scripting languages. Seems like a win/win if concerned.
We once celebrated the Web and the idea of ephemerality, portability, “view source” and inspect, etc and now somehow we’re back to people wanting installable binary blobs locked into app stores as somehow superior.
Back when the web was mostly traditional websites and documents, not apps.
> And are mobile apps running in locked down OSes truly “native” either? Whether they’re written in WASM or Swift, if they are locked behind an App Store subscription, whether they’re downloaded and stored on the device filesystem permanently or downloaded on the fly and cached as needed is irrelevant as the end user still lacks control and you still end up with an uncrackable walled garden.
They're native if they're running on a native runtime, which is optimized for the device and has full access, instead of the more limited browser.
> Likewise, why is a world where most people learn JavaScript any better or worse than a world where most people learn Swift?
It's better if one language doesn't completely dominate the application space. Same issue when Java was all the hotness, and people thought everything was going to run on the JVM.
If you take a “native” library like QT or wXWindows or even OpenGL do you have “full access”? Any cross platform abstraction or portability layer will remove power and access.
Do we really want to argue for a world where all software is written as if the target is a game console to the metal, even when 90% of apps don’t need it?
Yes. But it is mostly too late to doing anything. The move to the browser has been happening for years.
As an example, look at ChromesOS - a cloud operating system (OS) that tracks and records all your activity the moment you sign in. A Google account is required to use the full functionality of the OS. It is used by millions of schoolkids with all the privacy implications that entails. Somehow, Google's promise to never build profiles of their school users is enough to placate developers. In fact, developers are more likely to defend Google rather than question or scrutinise the privacy implications of using a cloud OS.
Google must be gleeful they've captured a whole generation of US kids to use Google services through the ubiquity of ChromeOS in US schools. And without any dissenting views from developers on the matter either.
https://www.destroyallsoftware.com/talks/the-birth-and-death...
Firefox spent 2011-2016 creating a browser-based operating system called FirefoxOS (for smartphones). I used to think it was a terrible idea and a waste of Mozilla's resources. Now I wonder if I was wrong, and perhaps it was a good idea - but simply too early and too immature?
I understand the desire to leverage the technologies and talent we've invested into the Web, but as a platform it still reeks of its roots as a tool to display remote hypertext documents, and I would personally prefer to write "native" apps in a more tailored and coherent API and runtime environment.
My name is Ivan Kutskir and I am the only developer of Photopea. I am 27 years old graduate of the Charles University in Prague. I live in Prague, Czech Republic, but I was born in Ukraine. https://blog.photopea.com/creating-photopea.html
[Edit]
Reddit AMA (3yrs ago) and HN discussion on it. https://news.ycombinator.com/item?id=18397380
https://www.lunadio.com/blog/the-story-of-a-unicorn-solo-fou...
This makes total sense. GIMPs problem was never feature quality or quantity, it was mostly focus and coherence.
A single person brings that.
You're comparing an ad-supported/subscription web service making a good part of 6 figures per year with software maintained largely by volunteer work for the past 20+ years.
My reliance on adjustment layers and non-destructive workflows probably doesn't represents the majority of GIMP's user base, and that's ok. I can't really use it seriously for photographic retouching until it does have that, but I'm glad other people get a lot of use out of it, and the other features that have taken higher priority surely make sense for a great number of those people that do use it regularly. I hope that drives more usage, donations, and development.
Why don't they start from changing the name I don't understand.. Open Source projects have these odd ways of just sticking whatever somebody came up in the late 90s and rolling with that.
it doesn't even support 10% of what Photoshop is capable of, including performance and handling of RAW files
[1][2]: Like in the parent's comments, all percentages are made up.
Photopea: A free alternative to Photoshop used by millions of people - https://news.ycombinator.com/item?id=26898836 - April 2021 (5 comments)
AMA: Ivan Kutskir, creator of Photopea - https://news.ycombinator.com/item?id=26768550 - April 2021 (267 comments)
AMA with the Creator of Photopea - https://news.ycombinator.com/item?id=24143189 - Aug 2020 (6 comments)
Reddit AMA on Photopea, a free alternative to Photoshop used by 1.5M people - https://news.ycombinator.com/item?id=18397380 - Nov 2018 (179 comments)
My name is Ivan and I want to make the best photo editor - https://news.ycombinator.com/item?id=15924402 - Dec 2017 (80 comments)
Surface Blur and Median - https://news.ycombinator.com/item?id=12612720 - Sept 2016 (34 comments)
Photo Pea 0.3 – New features - https://news.ycombinator.com/item?id=6624264 - Oct 2013 (7 comments)
HTML5 image editor wants to replace Photoshop and Gimp - https://news.ycombinator.com/item?id=6396474 - Sept 2013 (4 comments)
IMO the solution will probably be a combination of browser based UI and cloud based processing. The drawback of this approach is that the server would need to host the project files.
I can only really speak to the editing, but it seems leaps ahead of premier in a lot of ways. Very quick for scrubbing through 4k footage (even the free version) and far more intelligence when it comes to certain jobs (eg throw a folder of RAW photos in there to make a hyperlapse and it'll recognise them as a sequence and let you treat it as video).
The free version contains 90% of the features and is completely free - even for commercial use. The studio version is a one-off £250 (two seats) with free major and minor updates for life. It ran on Linux before it could even run on Windows and has just been optimised for M1 Macs.
Considering Adobe wants £238/year just for Premier (editing) or £600/year for the whole suite if I want After Effects (Resolve has "Fusion" built in for sfx, though admittedly the CS suite has far more to it than just that), for my uses it seemed like a no-brainer. And I got a free editor keyboard (£250 retail) when I bought the license.
My only annoyance is that Premier is so ubiquitous that you can need a license to be able to open projects from other editors. And that also requires you're all on the same version as the file format gets bumped every version (infuriating if you've deliberately stayed a version behind because it runs better on your older hardware). I find it quite ironic as the two big Premier users (companies) I know will do their final cut in Premier, render it and then throw it to a colourist who imports their final video into Davinci for colour grading anyway.
One of them already has plans to transition across for the edit, but as they have decades of combined experience working with Premier, it's a difficult if not dangerous decision to deliberately loose productivity whilst people retrain. If you're just starting out, especially at home or in a small team, then the idea of starting with Premier seems crazy.
I am working on a project using this approach: https://vidmix.app
(still plenty of minor bugs, I was planning for a proper Show HN soon)
Also because both the preview and the rendering is done with WebGL the result is guaranteed to match what you see while editing, unlike with some cloud-based editors where a different stack on the rendering backend is trying to replicate what the browser is doing with js+css
- Them, probably
But this further moves us away from local first software: https://www.inkandswitch.com/local-first/
People sometimes talk about how crypto / bitcoin will decentralize things, but honestly we just need a better culture of native software. One that brings the best of what modern user interfaces and collaboration have to bring without the headaches of multi-OS development.
https://twitter.com/BenDelarre/status/1453038054503944194
TL;DR they're using everything that's on the standards track - just waiting for the others to implement them
But it also makes me kinda sad that none of the mentioned examples properly work on mobile. If even big web companies can't pull that off, is it impossible? (Mainly thinking about Gmail and Google Docs here). Or have we given up on web applications on mobile?
I'm guessing the actual reason if that most desktop apps aren't designed with expectations that a mobile app has.
That seems like it’s very slowly starting to change perhaps.
Goes to photoshop.adobe.com
"Alright it's loading, lets see what it looks like!"
...Redirected to a Medium article.
---
This is why nobody likes you Adobe.
It's pretty relevant to this seeing as it does seem to be where we are going.
https://www.destroyallsoftware.com/talks/the-birth-and-death...
The entire section is a deception. The real reason is to strong arm everyone into a subscription model where you never own the software that runs on your computer. That's the real end game, not this nonsense about how easy it is to launch an application if its a URL in a browser.
Indeed, the convenience argument is just a pretext. They long to see the back of the days when you could buy Photoshop 7.0 for a one off fee and still use it today.
But as to organisations, if it is that bad, it sounds more like an exacting support contract or overly bureaucratic processes. (Or how things are in the public sector.) In either case, if the company makes the process of getting its work done needlessly tedious, then it deserves to founder and give way to the agile competition.
It is really unfortunate if this is a main reason that webapps are so popular with all their bloat, wastage and transience.
It's really future OS updates that threaten that.
There have been no major advancements in PhotoShop for my needs that really warrant an upgrade. No added value. I paid for CS6 long ago, and it should run properly without artificial disruptions indefinitely, because that is how it was marketed to me.
I also believe them when they say performance was an issue that kept them from doing this until now: the fact that the Photopea guy can do a large subset of Photoshop's functionality in the browser is astonishing, but power users expect a lot more, and wouldn't pay Adobe's organizational licensing fees for anything less.
Yes, this will allow them to enforce their subscription model more tightly, and likely push all kinds of new monetization at users. You're right about that part, I just don't think it's the only reason.
[1] https://www.figma.com/blog/building-a-professional-design-to...
That said, you can get plenty of mileage out of using React as a frontend and wasm for the application core. I believe this is what Figma does. And you can sidestep the DOM entirely and use your own UI renderer, which seems to be what Adobe is doing here. https://makepad.dev/ is another (absurdly impressive) example of that approach, but that's a very involved approach!
WASM still has no concept of garbage collection which means that by default it’s limited to a smallish number of languages that are viable. That’s changing in the not too distant future it seems as the plans for garbage collection are well underway already.
It also has no ability to do DOM manipulation meaning you end up in a scenario like the one in the article where “algorithms” end up in wasm and the UI in web components / JS.
I believe that too is going to change at some point.
As for where things stand RIGHT now in 2021 if you want to skip JS I would say it probably depends a lot on what you want to build. I think for a lot of B2B enterprisey apps that mostly run on Desktop devices Flutter is already a viable option there and generally a much nicer experience.
The performance / accessibility right now isn’t at a level where it would make sense for a bunch of other options but as I mentioned elsewhere in this thread it is barely out of beta by a couple of months. It’s improving a lot at a pretty rapid pace and is built upon solid tech choices and open standards. I think it has a decent future ahead of it.
Flutter is great except for Dart - another language.
I’m happy to say when I’m wrong though, it ended up as probably my favourite language of all after not too long.
It’s often described as the love child of Java and JavaScript where they took the best from both and got rid of the most hated parts of both too. But it ends up as a really nice and performant language to build apps in and is supported by a lot of amazing dev tooling to make life easier.
Also, I'd rather own the application (and run it on my computer) and my data rather then rent the application and depend on a company to have access to my data.
It's basically a whole developer suite with remote processing. I could do AI training on my cellphone with this setup if I wanted.
I've been working on a DIY spotify clone for a media player.
It makes it really convenient having all my files on a central server, so I'm not juggling drives, and copying over data.
As well, it's automatically backed up weekly so it's always safe.
Works well for someone always on the go :)