this post was submitted on 07 Aug 2023
1834 points (98.4% liked)
Firefox
17937 readers
60 users here now
A place to discuss the news and latest developments on the open-source browser Firefox
founded 4 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Nah, honestly I get this. They likely don’t let you run it in Safari either.
The problem is that each browser use different rendering and JavaScript engines. They all follow the same spec, but implement things differently, and at a different pace. Firefox tends to be really speedy with adding features.
Rendering is one thing, but for web apps the main issue is how they each implement JavaScript differently. Chromium uses the V8 engine, Safari uses JavaScriptCore, and Firefox uses SpiderMonkey.
Each one of these implementations handle certain JS features differently.
Array.prototype.sort
is a good example.This means that when developing your application you need to keep track of what differences each browser has, and write/use polyfills or conditionals to ensure that your methods work as expected on all platforms.
This becomes cumbersome quickly, and easily leads to a messy code base and technical debt as the application grows.
It further complicates testing since you’ll need to test each release on each browser.
The easy cop-out solution is to just support a single platform, and direct people not on that platform to use the browser you’ve developed for.
The go-to choice there is obviously Chrome, since it has the most users. Photoshop Express is a free application developed with the hopes of hooking people onto buying a subscription. Thus they’d want as big a reach as possible. It would make no sense to develop for Firefox and push people to use that instead from a business perspective, most people wouldn’t just download a second browser just to use an app.
Edit: you can obviously spoof your user agent and bypass the check that way. Some features might be broken in Firefox though, and I wouldn’t expect a fix.
As a developer with 7+ years industry experience this is a very weak excuse to not support browsers.
Differences in features are usually down to bleeding edge stuff and I don't think your example of sort would apply because the end result is the same.
I know Adobe are more prone to using newer browser features but there really shouldn't be anything that's not simple enough to assure support across all browsers. Especially for a company as big as Adobe. It's inexcusable. We rarely have to use polyfills now, that was more a problem when I was starting out, mainly due to IE11 still holding out.
Sure, but it's a common excuse.
The company I work for doesn't test on anything other than Chrome because we have a relatively niche audience that uses corporate-provided computers, and Chrome is available on all machines. The app seems to work fine, but we don't spend any QA resources on it.
The last company I worked for was the same way, but with a little more diverse userbase. Testing on Firefox would increase our QA time, and very few customers cared, so we only supported Chrome. I would occasionally fix things for Firefox, so the app mostly worked fine, but at didn't spend any QA resources on it.
And so on. I'm guessing that's the case here as well. They don't want people complaining about things not working if it works fine on Chrome. Firefox may work fine, but they're not willing to spend QA resources proving it, and they don't want the support overhead from customers complaining if something doesn't work properly with Firefox.
Yeah sure, fine for the SME sized business and I've done it in the past for features like offline web behaviours (wasn't public facing). But tbh it's a shitty excuse even at that size and outright inexcusable for Adobe. I wouldn't get away with this at my current place which has significantly less resources than them. Don't make excuses for Adobe and it's a weak excuse at best.
I'm not making excuses, I'm describing what companies already do today. If they can get away with it, they just won't support multiple browsers.
If we had even one customer that used Firefox, I would be adamant that we support it at my company. But we don't. We know who our customers are because we're in a B2B relationship and we lock out everyone else (we make a niche product for a niche market in a niche industry; total users are in the hundreds).
Adobe doesn't have that excuse, but they have the brand recognition that people will go out of their way to use their products, so they can get away with not supporting Firefox. It's still stupid, but it's a viable strategy given their position in the market.
That's all I'm saying. I'm not saying it's good to target one browser, I'm saying it's practical, so a lot of companies do it. My response is to not use services that block me out, and to recommend alternatives to friends.
This isn't 2005.
And yet, we're still talking about Adobe.
That's literally the first supported browser they list in OP's screenshot.
Hmm. Good point.
Could be because Safari is using WebKit and so people assume that Safari and Chrome works the same way because back in the day they were quite close.
WebKit is Apple’s fork of KHTML and KJS, both originally made by the KDE project (yes that KDE) for the Konqueror browser.
Google used WebKit (WebCore specifically) when building Chromium, but replaced KJS with a new JavaScript engine called V8. V8 is still used in Chromium today, but also went on to become Node.js
Apple forked KJS, their version is now called JavaScriptCore.
The support for Safari could be because of an assumption that since Chromium was built from Safari, they’d work more or less the same, but they don’t.
It seems more likely that Adobe supports Safari because Safari is the main browser on macOS. Adobe supports Windows and macOS (and I would guess a lot of their users are on macOS), so it doesn't make sense not to support it, regardless of how cumbersome that makes the codebase.
Additionally, Photoshop Web (Beta), which is available to paying customers, has the same levels of browser support.
While we're talking about history, Firefox was originally called Phoenix, then Firebird (trademark infringements), and was born from the ashes of Netscape Navigator (and the original architect behind the Mozilla project did not have much faith in the future of Mozilla and left the company/project).
Microsoft Edge was previously based on EdgeHTML, which was canned within 2 years, and is now based on Chromium. Opera used the Presto engine for a long time, but now uses Chromium, and a bunch of Opera developers used this as an excuse to split and create their own browser with their own—yeah, okay, Vivaldi uses Chromium too. There was a time when Google promoted Firefox on the front page of google.com instead of Internet Explorer. A time obviously before Google Chrome became a thing—after that, Firefox's position as "second-most popular browser" was quickly retired. It's kind of crazy Firefox ever managed to get that much market share considering it was competing with pre-installed browsers like Internet Explorer and Safari; Firefox was never pre-installed on any platform except GNU/Linux.
And Konqueror is still kind of around today. First comes the Navigator, then the Explorer, and then the Konqueror, anybody?
Safari is the only browser available on iPad, and I wonder if they formally support tablets with that web app.
But it could also be as you described.
Another good point. I forgot Adobe is targeting the mobile market as well. However, I doubt Adobe wants to ship a webapp as an official product for mobile devices. Steve Jobs might have wanted to only support webapps on iOS in the beginning, but we're at a point where most users won't accept anything but an app as a first-class experience. It could make sense as a beta product though.
And it's not necessarily that Safari is the only browser available on iOS/iPadOS, but that Webkit is the only browser engine supported, so Google Chrome/Firefox/Brave and others are using Webkit while changing the appearance and some features of the browser. Minor nitpick.
Personally, I'm all for Adobe going to the web with their products. It means I don't need to keep a Windows or macOS computer around to get some of my work done. I do wish Photoshop Web wasn't a completely buggy mess which is impossible to do any real work with. I don't mind if they don't support Firefox, although I would prefer they did.
We're discussing browser engines, so whether the shell is from Google or Brave is irrelevant. You're technically correct I guess, but it's a weird thread to be pedantic in.
Yeah, the "write once run everywhere" nature of the web comes with some pretty big caveats. Despite JavaScript being pretty fast, it's still way slower than native code, and web pages seem to be a lot harder to get right consistently than a desktop app where you're in control of all of the GUI libraries.
I'm still excited about more things being available on the web as a Linux user, but the promise of Web 2.0 hasn't really happened and native apps are still the way to go.
So I just don't touch Adobe products. They don't solve actual problems I have that FOSS apps don't, so I ignore essentially their whole catalogue.
I initially thought you really did mean "only Safari is allowed on iPad", and then I realized you were talking about the browser engine. As I said, it's a nitpick, but not entirely a distinction without a difference. Technically the browsers can have other features like...the ability to choose a search engine not on the blessed Safari default list. Or a pin-unlock screen like Brave has. But for rendering, it matters exactly zero, so the difference is irrelevant in this thread.
I don't know—I think the web has been pretty successful at getting things to run consistently on different operating systems (minus DRM, though that's intentional), but yeah, different screens and different browser engines are definitely pain points. It's why everyone standardizes on Chrome.
What about Electron? Is it any better? It bundles the browser after all, haha, so no worries about compatibility there.
I wish I could! I use DaVinci Resolve where I can, and Affinity Photo/Inkscape for other things, but sometimes it's necessary for collaboration. I personally despise Adobe software for several reasons, but I'm not getting away from it any time soon.
In particular, I'm never going to find a replacement for inDesign.
Electron is worse for different reasons, one major one being security (e.g. my company uses Electron and we haven't updated it for a few years because reasons). But as far as delivery goes, it works pretty well, which is why it's pretty popular (Slack, VSCode, Discord, etc).
But that's the same idea as using some other GUI platform that you can lock down, like game engines, QT, or GTK. So I don't consider Electron the same as a browser because you remove the constantly changing nature of it.
Are you a graphical designer or something? If so, use the tools that help you deliver a professional product. That's why I occasionally use VSCode as a software engineer, if my preferred editor makes things difficult (I use neovim), I'll use VSCode because it's easy to configure for certain use cases. I'm more productive with my preferred tools for day to day usage though.
However, if you're a hobbyist, then you have a lot more leeway. I'm a hobbyist game dev, so I use Godot. It works well for me, and my results don't need to be as professional as I'd get with something like Unreal Engine (i.e. higher performance, better lighting effects, etc).
Oh right, thanks for the info about Electron! I've heard Discord has let their Electron version languish for several years now. I wonder how well React Native works for cross-platform mobile development... it seems like it would be easier than maintaining separate codebases. I've heard things both ways. But that's completely off-topic.
It's, uh, complicated. I have occasion to review or make minor changes to other's work, and sometimes I'm the one creating the work. I get involved in a few different creative fields, mainly... My primary job role right now has me doing web design, and I use Neovim for that. Mainly because I can SSH into my main computer from my laptop and work on the same codebase without splitting up commits, but also because I'm a Vim fanatic.
In my personal life, I use GNU/Linux for everything. I try to get acquainted with the current state of free software for doing what I want to do so I can do it faster/better next time. Some software can replace the proprietary counterpart I use for work, but the biggest problem is collaboration, of course. There aren't good exchange formats for most of these software. The only thing that calls me back to Windows is anti-cheat multiplayer games.
React Native works pretty well, we use it for my company's app. It comes with its own complications, but I think on average it's a time saver.
I approve. :)
I've been messing with my config lately and I think I have most of what I need working again. I used to do Go development, but switched to Python and needed to make a bunch of changes to my env. Even when I use VSCode for the one-off project in another language, I still use a ViM extension.
I use macOS at work because that's what the company provided, but nothing in my job requires any special software. I do need Chrome for testing because that's our primary deployment platform, but other than that I can use whatever I want. So I use 90% FOSS for my work. At home I'm 100% Linux for gaming and hobby game dev, and it works pretty well.
Nice to hear you've had a good experience with React Native! I like the idea of using native components, for both major platforms, with JS (React), meaning I don't need to learn a new language. Really, there's no better proposition than that. We'll see if I can make that my next project...
I know most people use Neovim for the larger extension ecosystem...I think. But I just use an lf integration plugin and nothing else, haha. Before that, I was using netrw but found it slow. I have some basic tab/line width settings for different programming language in my
vimrc
but not much else. I must look into extensions one of these days.Programming is one of those fields that's very easy to do on a free operating system (for the most part), though unfortunately not every field is like that yet. I'd be happy even using proprietary software like the Adobe suite on GNU/Linux if it meant I didn't need to keep macOS and Windows around (though I will express my doubt at this situation changing, ever). One step at a time. I'm just glad I've managed to change my personal workflows entirely to free software.
Eh, learning a new language isn't an issue, I already use several on a day to day basis (Rust, Python, and Go for BE, JavaScript, TypeScript, Kotlin, and Swift for FE), and it's really not an issue to switch between them.
The real value to me of React Native is two fold: one codebase for Android and iOS, and I can share code between React Native and React web. We aren't currently doing a ton of code sharing, but that's because the mobile app was built to be fairly independent of the web app in feature set, but that's changing now that the MVP is out and we're starting to work on more feature parity.
I only have a handful (like 10?). The most important ones are for:
That's about it. My init.lua is pretty basic (<100 lines, probably <50) and is completely hand-crafted, with very few remaps and mostly just indentation settings.
Some people go nuts, but I just like a mostly vanilla ViM experience with a few developer tools. I used to go crazy with all kinds of features, like file browsing, magic buffer handling, etc, but I found that I rarely needed those fancy bits once I got familiar with ViM tools.
And yeah, it's unfortunate that so many industries revolve around a handful of proprietary tools. I know it's possible to, e.g., make a video game, produce a movie, or design a marketing campaign on Linux, but the tools aren't available aren't we m industry standard and often leave a lot to be desired. I'm hopeful that as Linux continues to gain marketshare, more of these types of problems will be solved for Linux users, either by FOSS improving or proprietary software vendors supporting Linux.
Well, I don't know a single programming language well enough yet 🙂
It always trips me up when I'm switching between Python and say, Javascript. Python's syntax is so wildly different to everything else. The main reason I was interested in React Native was having a single codebase, as you say. It would be a real pain to keep two codebases in sync, especially with the haphazard way I write things at the moment...
Code sharing wasn't something I'd thought of, but that's a pretty neat benefit, too.
I've always wanted a really portable Vim setup, so I've stuck to the built-in features for a long time. Hell, I used netrw for a year until I got really annoyed by the keybindings and general sluggishness. I'm still new to programming, so I don't know what IDE features I'm missing! I learned
git
, Vim, and bash long before I did any real programming, haha. I guess I'm more experienced at system administration. Syntax highlighting would be useful though I know Vim already does some of that for some languages.My
init.vim
is 40 lines. The main thing is setting shortcuts to change the spellchecker from American to British English and back again.Technically, Lightworks is a competent video editing tool and it was used for some Hollywood movies like Pulp Fiction. So if you're willing to learn a different workflow, that is a professional tool that has better support than DaVinci Resolve for GNU/Linux. Nuke, Autodesk Maya, and other VFX/3D tools usually have GNU/Linux versions, but those aren't prosumer—they are firmly professional, which is why a license costs like $6K a year.
The major ones that don't have professional counterparts yet are Photoshop, inDesign, and After Effects (if you can't get along with Nuke, Natron, or Blackmagic Fusion as a replacement, which I can't 🙂). I would say Inkscape is a decent replacement for Illustrator, though I don't do much vector work. It helps that
.eps
is a really good exchange format. GIMP is slowly getting to the point where I would consider it to have feature parity with Photoshop at an essential level. Namely, non-destructive editing (3.0 is close, and surely 3.2 can't be that far away). And unfortunately, it doesn't matter how good of a replacement Scribus is for inDesign, because I need to deal with the.indd
format. I'll need to wait for a web version of that.Really, if Adobe supported GNU/Linux, I would be good. I don't see After Effects ever going to the web or supporting my operating system of choice, unfortunately, but everything else is fair game. I'm of course happy to be proven wrong.
core-js
has existed for nearly a decadeSafari is one of the listed supported browsers
"Firefox uses spidermonkey"
So THAT'S why the extension is called grease monkey.
this was a great explanation. I'm fully onboard with the "fuck Google and their web drm nonsense" but there has to be a disconnect from avoiding bad actors and recognizing the reality of the industry. ty for posting.
I feel like it’s necessary to mention that I’m just speculating, and don’t have any affiliation with Adobe, thus I can’t say for certain that I know why they choose to not support Firefox.
I’ve been in the position before though where I’ve chosen not to support non Blink/V8 browsers for the reasons listed above.
The fragmented nature of the web platform makes it a pain to develop for, in a way you don’t necessarily experience with “real” languages.
I have been, and honestly still am, of the opinion that Mozilla should just forego their engine and move to Chromium. Not because one is better than the other - if anything I think Mozilla’s implementations are, as they tend to be more “by the book” - but in unifying the web platform it’d be easier to develop for, and it would bring the added bonus of Google not having as big a monopoly on what goes on in Chromium.
Microsoft moving to Chromium was big in that sense, so I’d love to see an established FOSS vendor like Mozilla exert their influence on the project.
Yes, move all browsers to chromium and give google absolute and total dominion of the internet.
What a fucking brilliant idea.
Problem isnt browsers, anyway. Problem is adobe locking their bullshit behind subscriptions and DRM instead of just being able to buy it and own it like you used to.
Would Mozilla and Microsoft get control over Blink and Chromium? Surely someone has ultimate power over which pull requests are merged into main(or however they do it), and that's Google. Mozilla could fork, but now they're back to the problem of developing their own browser to compete with Chromium.