What has become quite obvious to me within the past few years is that the whole "move the Web forward" thing seems to be really about coming up with and implementing as many complex features as possible (and advocating for their use in new sites), making it harder over time for smaller efforts at creating independent browsers to produce anything useful.
Perhaps this is a knee-jerk reaction on my part, but I'm against initiatives that resist technological progress, including those that rail against modern web applications.
Not only do these initiatives seem doomed to lose against the nearly unstoppable forward march of technology, but they are coming at the problem from the wrong direction. If it's too hard for independent efforts to succeed, we should not be fighting in vain to hold back progress. Instead we should be working on efforts to increase the abilities of independent contributors. We should be making it easier for anyone to build a modern browser. That's something that more technologists could actually get behind.
Further, while there's nothing wrong with a little nostalgia, let's not forget how far things have come. Many instances of modern web applications are certainly flawed, broken, misguided, overkill. But the web as a platform today is unfathomably better today than it was in the 90s. The applications built on top of it have massively empowered individuals and augmented our productivity. And I'm happy that I can build for the web instead of for Windows.
The fact that some websites do a poor job using the new tools available is a small price to pay.
I dispute the notion that the evolution of the web is at all progress. It has nice things, but so far the main effects are ever increasing bloat and centralisation. There are simpler ways to do this stuff, we're just too caught up in path dependence to see or invent possible alternatives.
> we should be working on efforts to increase the abilities of independent contributors
Unless you mean to make them less independent (say by providing common libraries and rendering engines), then the only way forward is to increase everyone's abilities. This is already an ongoing effort, just see how many programming languages and methodologies are popping up every year.
> the web as a platform today is unfathomably better today than it was in the 90s
The web wasn't even a platform the 90's, of course it's a better platform now. However, it only became a platform by accident. This reminds me of C++'s accidentally Turing complete templates, which later spawned template meta-programming madness.
If a platform was design from the ground up as a platform, it would all be much simpler, perhaps even more capable. But no, we had to piggy back on whatever the market favoured at the time.
---
Here's what I think: a web-ish platform written today wouln't need more than 0.1% of Firefox's 35 million lines of code, or about 30 thousand lines. Or maybe 10 times that amount, to account for optimisation and long tail functionalities —that's still under 1%.
This even has been done. The STEPS projects at http://vpri.org is only 20K lines, including the compiler collection and editing tools. It even runs at acceptable speeds on a laptop.
That would be progress. That would spur the independence of contributors. Too bad the market just isn't ready for this. It probably never will be.
Then let's examine why stuff is so bloated now: is it because we have more features? For the most part we don't. It's just abstractions piled on top of each other, images, and ads.
I'm not even sure the costs are even related to the benefits.
And this is just learning to code.
Which of those costs actually enabled the benefits? Very few, I'd wager. Much of those were avoidable. Or would have been if the market wasn't so short sighted.
> GitHub, JavaScript 30, Khan Academy, RunKit, Flexbox Defense, Codecademy
I reckon some of this does require a scripting engine somewhere. But not all of it. I still believe your examples are possible without JavaScript (even without CSS). A REPL wouldn't need it, if you have the server do the computation (within limits to prevents DOS attacks). It just wouldn't be as pretty.
But that would be unwise. Many of those really are applications, and they deserve a proper application platform. Which the web isn't, despite herculean efforts to the contrary.
A proper application platform needs to give access to simple, relatively low level constructs. Something like web assembly, a raster viewport, input, and sound. Meaning, a virtual machine. Browsers are becoming such anyway. Also, no text handling, no style sheet, no programming language. Let the users implement a web browser on top of the application platform if they really want to.
Actually, I do hope we eventually turn this madness on its head, and implement browsers on top of web assembly engines. This would drastically reduce the effective attack surface (good for security), and do wonders for portability. Wouldn't solve the independence problem, though.
Yeah, it's enough to be infuriating. I've recently been thinking about what it would take to implement a lynx-like browser that had a better understanding of layout and could deal with the modern web.
Hurdle number one is that there's no "Web standard", but rather a great many interrelated standards. At a bare minimum, you need HTTP K₁, SSL/TLS K₂, HTML K₃, XHTML, DOM N, CSS K₄, and ECMAScript K₅. Several of those standards are actually multiple standards, so you'll have to do some digging. That's the easiest hurdle to overcome. Number two is that a few of the standards (including some really fundamental ones like the DOM) are maintained as "living documents", making them moving targets; even the—uh—"dead" documents are subject to speedy revisions (for example, there have been 3 new ECMAScript revisions in the last 3 years). Number three is all the up-and-coming experimental stuff that isn't standardized yet, but if at least one browser supports something, some website somewhere is already using it. Between two and three, you'll need to keep a finger on the rapid pulse of the Web. And on top of all that, you have to support legacy bullshit, deal with malformed documents, and be ever hyper-aware of security threats.
Allowing for off-the-shelf components like libcurl and duktape, I'm sure it's still doable by a single person, but it's a lot of work (much of it frustrating).
If you really need an unchanging version, download some version and use that.
If you do, it's a living standard.
If you don't, then people have to cobble together the latest version from various sources.
The choices aren't "commit everything to master" or "commit everything into various versions".
A strict release cycle also prevents having some hype extension which only a few people actually use since it takes more effort and dedication to get stuff into the standards.
Native Apps provided better UX, easier access on the Home Screen, and is generally 10x faster. What the web responded, or in your words a reaction to people using Native Apps, were to put more Ads, Creepy Ads, more JS tacking, more JS that many had no idea what they were doing, web notification pops up every time you visit a page, mandatory cookies notification, and all sort of other things that makes people no longer wants to consume anything on the Web anymore.
I will have to admit, even without those problem it will be a hard battle against Native Apps, but not only are they not improving the web, they are making it worst.
A Steve Jobs phase constantly pops up in my head when i see this, "The only problem with Microsoft is they just have no taste." It is true for the majority of the web as well.
-Apple limits what your app can do, e.g. apps can't spawn processes (FU Apple, this is bad for security/pricacy), can't do JIT compilation, can't download code, etc...
-Apple rejects apps that compete with their own.
-Apple removes apps that some governments want to have removed.
These are all things an open web avoids.
Now the fun thing is that nothing prevents Apple from turning the web into a walled garden since they don't allow any other rendering engine other than their own. The iOS ecosystem is really a beauty.
> -Apple limits what your app can do, e.g. apps can't spawn processes (FU Apple, this is bad for security/pricacy),
What's the issue with that? Why would I want some random no-name devleoper randomly spawning processes on my device killing my battery life? How is it exclusively better for privacy? What prevents them from executing privacy-invading code as the separate process?
> can't do JIT compilation,
What's the advantage when all the devices, your apps are supposed to be running on, share the same OS, platform, ABI etc? What's the point when the hardware is already limited in scope compared to alternative platforms
>can't download code, etc...
Again, why would you want some random developer be able to download extra code? What prevents them from not misusing it for nefarious purposes? Even assuming that the developer is not malevolent, what prevents a third-party from compromising the developer's "update" servers and pushing malicious code?
>Apple rejects apps that compete with their own.
This is from a bygone era. For every native app on my iPhone, I can list an alternative -
- Apple Photos -> Google Photos/Plex Photos
- iMessage -> Whatsapp, Telegram
- Facetime -> Skype, Allo, Duo
- Mail -> Outlook, Spark, Airmail
- Apple Music -> Spotify, SoundCloud, Wynk, Gaana
- iBooks -> Kindle, Blinkist, Kobo
- Files/iCloud Drive -> Dropbox, Tresorit, Google Drive
- Apple Maps -> Google Maps, Waze
- Keychain -> 1password, lastpass, minikeepass
- Notes -> Evernote, Simplenote, Bear, Ulysses, Notion
- Calendar -> Fantastical, Vantage
- Clock/Timer -> Klok, Timeglass
- Reminders -> Todoist, Due, Things 3
- Video -> VLC
- iTunes U -> Coursera, Udacity
- Camera -> Halide, Camera Plus, Retrica
- Weather -> Dark Sky, AccuWeather
- Podcasts -> Overcasts, Pocket Casts
- iTunes Store -> I'm not sure there's a perfect alternative but I can purchase music and movies from non-apple services as long as they provide it (and give apple their cut)
- Settings -> Do we even need an alternative?
- Voice Memos -> Recordium, Just Press Record
- Pages/Numbers/Keynote -> Word/Excel/Powerpoint, Google Sheets/Slides/Docs
- Apple Health -> I haven't gone looking for alternative but a lot of apps maintain their own data sources. I'm not sure what really prevents them from sharing data across or maybe they just don't want to? In any case I, sure as hell, trust only Apple with a centralized data source when it comes to my health tracking
- iMovie -> Videoshop
- Stocks -> Stock Tracker
Do I need to go on? Some apps, which are indeed competitors to native apps, have been rejected but "is a competitor" doesn't appear to be the exclusive basis for rejection.>Apple removes apps that some governments want to have removed.
True. Agreed
> they don't allow any other rendering engine other than their own
I am a developer and as much joy it would be to have Blink/V8 running on iOS, I'm totally fine with the decision apple made. In the absence of strong disincentives, companies and developers would try to get away with as much shenanigans as possible. I would absolutely not be happy if Google pushes a battery-killing update.
Sure Apple has its fair share of problem but out of all the big tech co's they are, by far, the best when it comes to preserving privacy, security and the least likely to pull shenanigans or gotcha's on their users.
Why do you want Apple to be in control of your device though? Wouldn't you rather be able to let an app do something that it needs to, when you need it to? Or, would you honestly prefer Apple to make all of your decisions for you?
If you really want Apple to be in control of your devices and not you, that's fine... but can you understand why other people might not want that?
Are there any Apple decisions that you disagree with?
Also, how about a replacement for the most important apps?
- Contacts
- Phone Dialer
- Messages
- Safari
Can you even uninstall those? Are other apps even allowed to receive phone calls or SMS text? (To replace Safari - I'd require that it never get launched from a hyperlink in an SMS text message.)I'd like to replace these because Apple only gives you the most bare-bones features for them and they strong-arm you into using Apple Maps and Safari from them. I'm guessing you're fine with that though.
> [Apple is the] least likely to pull shenanigans or gotcha's on their users.
Pffft. Do you know the history of Apple? Their whole business model is a shenanigan on the users. I look forward to when their time is over.
But yeah, I would like to be able to change default apps in iOS. That would be great.
I don't but I'm not hesitant to cede some control of my device to Apple in order to not be a technology janitor. I do not want absolute control of my device which is not even possible with any commercially available device anyway. (And no, Android does not give you absolute control of the device)
>Wouldn't you rather be able to let an app do something that it needs to, when you need it to?
Does Apple's current model really hamper any app to do something that it needs to, when I need it to?
>Or, would you honestly prefer Apple to make all of your decisions for you?
Again, I am happy to meet Apple in a middle ground where it makes some decisions for me and I make some decisions. I am happy to decide which apps gets access to contacts, notifications, location etc etc. What gives the assumption that you are in all control of decisions on an android device? Remove the Google Play Services and 3/4th of the ecosystem falls flats on its face.
>If you really want Apple to be in control of your devices and not you, that's fine... but can you understand why other people might not want that?
I totally get that part. I never denied that.
>Are there any Apple decisions that you disagree with?
Plenty. Touchbar is useless. Removal of headphone jack was rushed. Before iOS 8, I was practically in the android camp because iOS devices were severely limited then compared to now. iOS's notification game is weak. There is no need for iOS to block the whole screen for an incoming cellular call. Devices can get very difficult to repair.
>Also, how about a replacement for the most important apps?
You moved the goal posts. Original reply was against the assertion that apple does not permit certain apps because of "competition" which is not true. Otherwise Spotify, Evernote, Todoist etc won't exist. Greater than 3/4th of native apps have proper substitutes available in the App Store. You expanded the argument to include apps whose functionality is not replaceable because of ideological grounds or design choices. I never posited that Apple permits all apps. This would be akin to me demanding an alternative for Google Play Services with comparable functionality. Anyways -
- Contacts -> Full Contacts
- Phone Dialer -> Simpler Dialer (Not a true replacement though)
- Message -> True. No Alternative as in you can't access SMS/iMessage
- Safari -> Chrome/Firefox. Does an ordinary user care if they are running Webkit or Gecko? V8 or Rhino? As long as you are getting the feature of your favourite browser (chrome syncs your data between devices just like safari would between apple devices) why do you care if its Chakra or v8? OTOH, I'm glad that Apple does not let Google roll it's own javascript engine in iOS Chrome. Otherwise surfing youtube on Chrome iOS would like garnish the battery life. This hits Android devices too which do not have a VPx capable hardware decoder.
>Can you even uninstall those? Are other apps even allowed to receive phone calls or SMS text? (To replace Safari - I'd require that it never get launched from a hyperlink in an SMS text message.)
No. You've got a valid point.>I'd like to replace these because Apple only gives you the most bare-bones features for them and they strong-arm you into using Apple Maps and Safari from them. I'm guessing you're fine with that though.
I just sent a link on iMessage from my desktop to iPhone. Clicking on the link opens the location in Google Maps and not Apple Maps. If there's a specific case which forces Apple Maps I'd like to know. Every app I know and use (Outlook, food delivery, taxi services, online stores) force open Google Maps on my device and not Apple Maps. The only time I actually opened Apple Maps since owning an iPhone for 2 years is when I went to see if navigation is being provided in my area or not. Practically it doesn't exist for me. Even Apple's own Workflow app gives me Google Maps directions (I can choose between both when setting up the workflow)
>Pffft. Do you know the history of Apple? Their whole business model is a shenanigan on the users. I look forward to when their time is over.
Please give me concrete examples of "Their whole business model is a shenanigan on the users." There are few ups and downs but overall, interaction with Apple is much more pleasant than dealing with other tech companies. That they are expensive is not a shenanigan. You know what you are in for when you're purchasing an apple device. I've yet to see Apple engage in deceptive practices or misleading claims or gotachas like Sony which claimed all multimedia support on my TV but turns out only mp4 and mkv are supported on only an NTFS formatted partition. And if you are using a hard drive you can only use specific USB ports because not all ports provide maximum current. Half of this info was buried in the manual and half I had to figure out manually by taking a USB Voltmeter to my TV. Or like Canon which claimed "full compatibility across all Operating Systems" but turns out duplex printing is not supported on mac os or linux which was confirmed to me in a forum post. Or like Dell which claimed 2560x1440p @ 60hz on my monitor but conveniently failed to mention, on the box or in the quick start, that it's supported only on DP and if you've got to use HDMI then you have to go out of your way to create custom profiles and what not. This was not even mentioned in the manual and I had to scavenge for it in the dell forums.
The closest I've come to a "gotcha" with Apple is the lack of DP MST support in mac OS some years back and which was not readily confirmed in apple support article. The only other egregious issue I can remember is the refusal to acknowledge and fix the iPhone 6 bending issue. For all other issues, Apple generally came forth with an acceptable solution (like free bumper case for iPhone 4 cellular connectivity problems, free display replacements for the staingate thing, free motherboard replacements for the 2011/2012 Macbook Pro Graphic Card issues, 6s free battery replacement even after 3 years if you have the "defective" first batch phones). Unlike, say LG which threw a tantrum on replacing the motherboard of my mother's nexus 5x, or OnePlus which quoted a repair bill higher than the cost of a new device, or HTC which promised to repair the device in 3 days but delivered only after a fortnight, or Logitech which claimed to process a refund within a week but took 45 day. OTOH, I have had exactly one interaction with Apple support over the past 5 years and they replaced my phone in 24 hours (while claiming 7 days). And this is when Apple does not even sell directly to consumers in my country. I can only image what the support would be like when the middle men are removed. This is compounded by the fact that every other person in my close circle, who has interacted with Apple support, speaks highly of them. So my one single interaction is not an outlier.
>I look forward to when their time is over. I look forward to that time too but alas, I'm pretty sure that I'd be gone from this earth by then.
Apple has its fair share of issues (tax avoidance, being stingy with new product launches etc; I can jot down a whole list) but hands down the products are a joy to use and the company pleasant to interact with, for an average consumer, compared to any other option available on the market.
Processes (unlike threads) are for memory protection. There's no relation between the number of processes and battery life.
> What's the advantage when all the devices, your apps are supposed to be running on, share the same OS, platform, ABI etc? What's the point when the hardware is already limited in scope compared to alternative platforms
What if you want your users to be allowed to write code?
> Again, why would you want some random developer be able to download extra code?
Again, to allow users to share code (e.g. allow game mods).
> What prevents them from not misusing it for nefarious purposes?
The same thing that prevents them from having native code doing nefarious stuff: nothing.
> what prevents a third-party from compromising the developer's "update" servers and pushing malicious code?
Nothing, just like an native app can be compromised. That's why Native Apps are in a different process, and that's (one of the reasons) why Native Apps should be able to create their own processes (e.g. run a game mod in a separate process from the rest of the game).
> This is from a bygone era.
Okay, but this may happen again.
From a vendor's perspective:
- Web apps often have a reduced support burden relative to equivalent desktop apps because you have easier solutions for complete control over deployments: environments, live versions of software in play (often only one).
- Subscription payment models are convenient for vendors: they can help smooth out revenue but, critically, can also increase lifetime value of customers.
From the customer's perspective:
- One less software system to deploy, manage, and support,
- Managing backups is (should be!) taken care of for you,
- Lower on premise hardware costs,
- Your stuff is available from anywhere you have access to a browser,
- Can enable frictionless collaborative working.
With that said, it's arguable that a purely web-based SaaS model isn't necessarily a good fit:
- The problem of lock in is often worse. Even if you have options to export your data, is it in a format that makes it easy to import into a competing offering?
- Poor (or no) offline support, and unreliable operation with choppy connectivity.
- TCO can be higher, despite reduction in on premise support costs.
- Subscription payments can quickly mount up to death by a thousand cuts with respect to costs.
- Your data is not only offsite, but may not be stored in the same country or even on the same continent: a deal-breaker in some scenarios.
- Susceptibility to attack via DDoS, and other methods: at best service can be degraded or rendered unavailable, at worst your data can be compromised.
SaaS is like anything else: it can work really well (Office 365[1], GitHub, GMail), or it can be decidedly ropey (Google Docs), or anywhere in between.
[1] Within certain constraints - to me Office 365 still feels weak as a collaborative tool.
> Poor (or no) offline support, and unreliable operation with choppy connectivity.
is also being solved - with additional complexity for browsers, of course.
The big advantage of such browsers being the zero-risk of JavaScript doing sneaky things ( like keylogging )
Facebook already has far more cash and profit than they know what to do with. $38 billion currently, rapidly climbing. They'll add ~$20 billion to that in 2018. They could do a new browser just for kicks if they wanted to, and they have the vast global reach to generate some uptake.
Whether either could claw meaningful share away from Chrome is an entirely different question.
Samsung, Tencent and Alibaba all have the resources to launch entirely new browsers if it made sense.
The bottleneck is engineers who have the know how to build it.
Building your own browser could be a shitty business decision if you can't compete with Chrome for ad dollars.
A browser makes sense if you can bundle it with an OS.
Android : chrome, ios: safari and Windows: Edge
Facebook makes a shit ton of money from ads people click on chrome.
- uc mobile on Android now uses the blink engine, it used to use Webkit. - uc mini ( I think that's the name) has server renderer but it's "uc engine" is a derivative of gecko (not checked recently)
Quite similar to Chrome, but has support for ad blockers etc.
But yeah, from scratch is hard... Google didn't even do that, they started from webkit.
Also, I would try to make it as modular as possible. E.g. layout engine, css engine, js engine etc. as libraries, use the system codecs instead of bundling own codecs, and so on.
And it would help to have an extensive test suite, which you could take from other browsers.
The only way to ship a browser that doesn't render "web apps" would be to simply not support scripting of any kind. That would permanently break much of the web unless you offered a way to opt in to scripting the way current browser users who run script blockers can. But then you just have a regular browser with script blocking turned on by default.
Having different engines for "static" and "web app" documents, and defining a proprietary standard for the former as a restrictive subset of HTML would be unnecessarily complex and hostile to web developers.
You could autodetect a "lean html" site, or you could use a marker such as "<html lean>" like AMP does.
I don't think this is hostile to developers at all, unless AMP is already hostile. You would have a subset of the web platform, yes, but if you only use that you are likely to have a faster and leaner website - even without a new engine. I would view it as a guideline or a best practice, rather than a restiction.
Side note: I think the co-mingling of documents and apps is the source of a lot of problems today. Why can ads inject arbitrary javascript into my website?! On mobile, I am regularly redirected to annoying ads that proclaim my phone is infected, and make my phone vibrate and make noise. A news article shouldn't be able to do that!
That's a restriction. If site authors have to abide by that or else not have their content render in your browser, you're restricting their freedom to publish the content they want or make their own decisions about what code they choose to write.
But if you still have a "backup engine" that will run it anyway, then what's the point?
>I don't think this is hostile to developers at all, unless AMP is already hostile.
I would think Chrome was hostile if it gave preference to AMP over standard HTML. Those aren't decisions that browsers should make.
>Why can ads inject arbitrary javascript into my website?!
Because that's what the site authors decided to publish. Like it or not, that's the way the web is intended to work - you request a URL, you get back whatever the server decides that URL points to. Changing that dynamic would change the web at a fundamental level.
I further think, if you sell it right, you could get people running sites like blogs, documentation, wikis, to opt in to "strict" or "lite" or "document" mode, but that is an orthogonal issue.
> Because that's what the site authors decided to publish. Like it or not, that's the way the web is intended to work
I'd argue that the web wasn't intended to involve executing code, but rather it was originally envisioned to be a means of viewing documents.
That's fair - but it doesn't imply that it was intended to not execute code, so much as that it wasn't feasible to consider at the time. The web wasn't originally intended to display images either, but it evolved over time. Certainly, in either case, javascript was never intended to carry the burdens it's been made to, but people found it useful to have a Turing capable language as part of the web, and here we are for better or worse.
And the web in the near future when WebAssembly takes off is going to execute binaries compiled from arbitrary languages, of which javascript will be only one option. That's going to be awesome in both senses of the word. Not what the web was originally intended for, and certainly not the best of all possible worlds, but I would argue that it's still better than static documents alone, in terms of the possibilities it provides to publishers and users.
And maybe the pendulum will swing the other way at some point. Maybe people will choose to write lighter pages and not use unnecessary code. But if they don't, that's still their choice to make, not yours or a browsers to make on their behalf. And unlike with C, C++, Java, etc, you can turn javascript off if you want and still use some of the web.
An extremely light and content-focused spec like Gopher would exclude a lot of websites that we would consider light. Terms used to describe light subsets of web capabilities, like “DHTML,” do not appear to be well defined.
My initial attempt would be to exclude XHR/fetch, dynamic URL/history manipulation (window.history), and loading resources from other domains. But the latter would probably exclude things I don’t oppose (like CDNs) and things I don’t necessarily support but which would surely drastically impede adoption (like third party ads/analytics services).
Can you propose a better and more viable spec?
I think the prevailing opinion on Hacker News is exactly that.
If at the same time you could encourage widespread adoption of your HTML subset, then you may be onto something. This is essentially what Google did with AMP, their incentive being their caching network and apparent favoring in search results.
I don't plan to go quite as far this time, but do plan to try and convince all my friends and family to get on board. It'll be a harder task for sure since Chrome is not IE6, but as the resident IT guy that everyone asks for help, I know I have some sway.
I'm just waiting for Quantum to land on Android, because I know enough of them will have issues with the current version and I want to skip over those problems to leave a good first impression.
On my phone, scrolling by swiping is slow, it scrolls such a short distance. Meaning going down a long NH page takes many swipes. All other Android browsers seem to get it right. Fonts also seem "off".
It's these small things that make the experience frustrating.
I truly want to use it, but it seems the designers of the app don't use other browsers, or have no interest in making the switch and Android FF easier.
This is the thing that made me switch to it from Chrome. Something as experience-breaking as refreshing the page isn't something that the user should encounter just through energetic scrolling.
That being said, I agree with you and really like that FF doesn't have a motion for refresh. It's mildly annoying sometimes, but usually it's only on sites very clearly constructed around the mechanism which have no other way of refreshing the page without going somewhere else first. HN is convenient enough on mobile with FF because you can just tap on the HN Title to refresh the page. Other pages are not as kind.
Firefox, Pale Moon, and Chrome all have a refresh command in the "3 dots" menu. I usually use that.
I'm a quite energetic swiper and, to be honest, I have never found a situation where I wanted to return to the top and ended up refreshing due to too much swiping. But YMMV, I guess.
"on sites very clearly constructed around the mechanism"
Browsers have refresh buttons for that.
At this point if Chrome implemented the "open tab in background" feature (when I click on a link in an e-mail I don't want to switch directly to the browser) I would probably switch back.
I use FF Mobile because I want competition and I do like the features Firefox offers, but the performance and UX on Android are definitely lacking relative to Chrome.
Focus is meant for average users, who don't necessarily understand what Private Browsing does.
Having it as an Android Webview wrapper is nice, because it makes the APK really small. This way, users don't have to have two full browser APKs installed.
And well, it's not like it sways webpage owners one way or the other much, to have users use Firefox when they have all trackers and as a result essentially also all ads blocked. They don't make revenue off of those users, so why should they worry about making their webpage work for those users?
I've given up on it now.
I abandoned Firefox last year to the Chrome Opera, So i have been bitting my fingers for years, Firefox was slow, and I knew Chrome was better, and I had waited.
I used to force the usage of Firefox as the resident IT, with over 150 computer's default browser and later grew to 250. But every year since the introduction of Chrome, I have had more resistant, Chrome was faster, and better from those employees who knew IT, and may be 4 years ago, someone who is absolutely computer Illiterate came and asked if she could use this Google thing (Chrome). I asked for a reason, because I was curious how she knew, it turns out someone helped her using Chrome, and the speed was much better. She since then loved using it. And that wasn't only case, there were many other similar examples. And others from friends and family as well.
It was at that time I gave up.
Before then many within the Mozilla communities were begging for a better, more performant browser. That was right after Firefox 3, the goal of Firefox 4, the project of e10s. We thought JS was the problem, we advocated Spidermonkey being faster in benchmarks, but not much in UI or general feel of the Browser.
Mozilla then literally gave up making a better browser and its users, and went on to built Firefox OS. Their ideology of Javascript is the best, build an OS with JS. It was pure luck they had a small group of people crazy enough to work on Rust, and Servo as an experiment which later turned into what we had today, Quantum.
From the outside it was what i call a management and vision issue. And Mozilla left a very bad taste in my month. There used to be Article from Ars every month showing the decline of Firefox usage. I kept wondering at some point they should become worry as with less market share means less money from Search Engine, I dont think they see that as a problem until fairly recently.
It wasn't until a month ago, someone on HN posted an comment on Mozilla that helped me Grief. It was never their intention to have the best browsers, or to care for user experience, that wasn't their main Goal. Their goal, as it always has been, is an Open Web; all others are secondary and merely the results for their first goal. They weren't here to compete, they were merely here to make sure the Web is open.
It is good they are now back to Focus on Firefox. With WebRender, more Quantum parts, Firefox's future is bright. I am using Firefox now, but I wont be advocating for it any more, I guess everyone just choose what they want.
Sorry for a long rant, but that is the results of someone who has been following them since Netscape era.
> It was pure luck they had a small group of people crazy enough to work on Rust, and Servo as an experiment which later turned into what we had today, Quantum.
This is the crux of it. You see this as luck, but it wasn't luck at all! Someone had to say "we're going to fund this crazy work that might not pan out". They did so explicitly because they saw the same things you saw: Chrome was fast and it was getting harder to keep adding the features and standards required while being secure and fast.
Building Firefox OS wasn't completely at odds with wanting to build the best browser, because Firefox OS was fundamentally still a browser. There were other problems that caused the initiative to fail.
So here's the thing, Mozilla has had hits and misses. Rust and Servo were a long-term bet that is paying off. The decision to make the bet was not pure luck, but a real choice.
I assume (like me) a lot web of developers aren’t using Windows, but we can at least help people out by making sure our applications work fine on those browsers. Since IE 9, with a polyfill, most things just work unless you need some very recent HTML5 APIs.
Microsoft provides free VMs for testing different browsers here: https://developer.microsoft.com/en-us/microsoft-edge/tools/v...
I view that as an advantage. That's why I use LTSB whenever I set up a Windows desktop for anyone at work.
Generally though it's ui and feature set is minimal compared to chrome and Firefox but it'd rendering engine is decent.
They also haven't actually replaced IE11 which still has plenty of usage out in the wild. MS had a good start but they continue to stumble in their efforts today. Firefox has done much better with 1/1000th of the resources which should say something.
So far, this is the only thing that really drives me bonkers about iOS and has for a long time. I'd love to be able to use an actual third-party browser with a third-party rendering engine, even if it meant having to install a particular signing certificate or some such. Doubly so for using browser-specific extensions. Who knows, maybe iOS 15?
(While I'm wishing for ponies, the ability to change OS-level default applications would be nice.)
I understand it would be a lot of effort for little gain. But if more developers would offer their stuff as self-signable "xcode projects" (maybe even just a .dylib and some wrapper source), it would be really cool.
The Unix workstation versions (HP-UX, AIX, etc.) were built with a commercial equivalent to Winelib: a library that implemented Win32 APIs on top of Unix and X11.
I have no idea how they managed to build the IE code on a compiler that wasn't MSVC.
Not entirely true: Every browser developer is free to use whatever engine they like on iOS. Mozilla could use Gecko, Google could use Blink. They just don’t do it, because what’s not allowed is JITs (because security), thus 3rd-party JS-engines would always be slow.
So the reason everybody uses WebKit on iOS is not that they are forbidden own engines, but only JITs, so Apples is faster.
2.5.6 Apps that browse the web must use the appropriate WebKit framework and WebKit Javascript.
The JIT thing was true, but a few years back, they lifted this restriction, see "4.7 HTML5 Games, Bots, etc." for its current incarnation which also says "your app must use WebKit and JavaScript Core to run third party software".
Which is why viewport values like maximum-scale, minimum-scale, and user-scalable do not work on iOS10+, no matter the browser.
Note I'm not trolling, I'm seriously asking the question. I think it's assumed to be true but not necessarily true. I'm probably wrong.
As a counter example AFAIK there is no python standard that lots of teams make competing implementations. There is basically one python and a few incomplete copies but those copies have little to no say in the spec.
Then we have C++ where there are independent implementations but every implementation embraces and extends with optional non-standard features you can enable.
Linux doesn't seem to have much of a standard. Is there a spec? Are there multiple implementations or are there just multiple distributions of the same implementation.
There's effectively no spec or standard for phones. There's 2 proprietary OSes, Android and iOS. Android happens to be open source but there's no spec that multiple teams can implement AFAIK. There's just an API that Google decides on it's own what to add/change. I guess you're free to make another implementation by copying the API but there's no spec to follow you'd just have to try to keep up.
Would Android and/or Linux be better if there was a standard, committees deciding what gets in it and multiple implementations?
You could argue the Python/Linux case are safer because:
* They are themselves independent open source projects. While Chromium is open source, if Google pulled out, I'd expect the remaining development effort to be on par with e.g. Pale Moon
* You could argue there _are_ multiple implementations of Linux-as-OS, if you're not just looking at the kernel. See Ubuntu, Red Hat, Arch, Alpine, etc. There's no standards body (unless you count stuff like POSIX or LSB, but then they are only subsets of functionality compared to what users expect of a full OS) but still things become standard by community consensus (e.g. systemd)
I don't think that's quite true, for several reasons:
* The biggest external contributors (Opera, Samsung, and Intel) put in more development effort than Pale Moon has, by a wide margin. (I think non-Google contributors to Chromium outnumber those working on Opera's Presto at its peak, though less than Opera's desktop product and Presto at that time.)
* Last time we saw any browser vendor leave the browser engine business (i.e., Opera killing Presto), we saw plenty of people jumping ship to keep working on browser engines (and not just those let go), so if we were hypothetically in a Chromium monoculture it's unlikely that Google pulling out would stop every Googler currently contributing from continuing to do so.
Also, when it comes to the Linux kernel, remember that both Windows and FreeBSD implement the Linux kernel syscall ABI too, which you can argue means they are alternative implementations of the kernel.
When Chrome started taking off in 2010, they introduced unique ID per browser user that's sent to their servers. This has nothing to do with the web standards, but it's non optional added feature.
When gmail took off in Canada, Gmail started requesting an actual phone number, to open an email account.
The above are examples when company starts having advantage.
When a company starts having monopolies, expect stuff like mandatory signons just to browse and such.
In China for example, you must register with RL creds if you want to post for the masses online.
TLDR: monocultures are bad, monopolies are bad.
So a competitor like Linux or Firefox is helpful even if market share never gets very high.
C++ has standards and all compilers implement them and people stick to standards, no idea what you are talking about when you say "embraces and extends with optional non-standard features".
Linux implements the user interface standard called Posix api and portable programs stick to it.
How do you know what you are writing against is going to work tomorrow, if there is no standard?
Not sure that applies to language implementations. Imagine if C++ started trying to send user data to some organisation.
The problem is that then bugs in your implementation become part of the de facto standard that defines your platform. Downstream code is very likely to depend on those bugs. You can't fix those bugs without breaking things. Your platform accumulates warts at a higher rate than it otherwise would. Any attempt to make major changes to the platform implementation becomes incredibly difficult because of the need to maintain bug-for-bug compatibility.
All these things have clearly happened to Python. It's one reason why despite massive efforts over a long time, there is no fully compatible Python JIT today.
If you follow Chromium development you will quite often see developers consider whether it's going to be safe to fix some bug in Chromium's behavior. Quite often part of the justification that it is safe is "Firefox doesn't have this bug, so major Web sites probably don't depend on it".
Here is the thing. Many people simply do not care about things like open source even though they may use it.
Even when Stallman and Linus started many people didn't. Now the difference is these guys are doers and helped created a uniquely rich ecosystem that gives real choice to every forward generation and something to build on.
But open source typically works with small team starting things and then growing. The out of control complexity, sometime gratuitous is a real blocker as you need large teams to implement right off the bat.
Since open source cannot pay anyone or afford large teams in the beginning so this effectively rules out open source alternatives and choice. This is a pretty nasty outcome, but people have to care about these things just like Stallman and others did and fight it persistently with an eye on consequences of decisions taken today and undue complexity.
The web in terms of browsers and corporate sponsored projects like Systemd come to mind. Both will need large teams to develop alternatives ie other corporates, and thus de facto rule out open source projects and choice.
Linux kernel devs spend a lot of energy trying to maintain compatibility with warts, and still break things once in a while. Also the Linux kernel interface, while complex, is nowhere near as complex as the platform-level API for iOS/Android/Web.
Chromium has not, and will not, accept Rust code in the tree.
Market forces can ensure that competition will exist as long as barriers to entry are kept low enough that people can afford to compete. The larger the barriers are, the more aggressively an incumbent can be abusive without needing to fear competition.
I got random high cpu usage from firefox. Some random pages just spiked the cpu and everything slowed down. Same thing on both my workstation and laptop.
I also didnt find a way to make opensearch working. In chrome i can just type part of the url of a website, press tab and write a search query and get a search on the website.
That is so worked into my daily routine. It just became an annoyance and a dealbreaker. :(
I really really want to switch. But chrome works really well and my browser is such an important tool for me so i really want to use the absolute best.
The benchmarks I've looked at seem to indicate that this shouldn't be the case, but I'm thinking maybe Google has put in some "real life application" optimizations for certain configurations that can't be measured easily with benchmarks? Maybe they've learned some lessons from Angular? Just spitballin' here.
Kinda like how Apple managed for a long time to make everything a lot more "buttery" than the competition, even though they usually pushed hardware with specs that aren't at the tippy top.
Additionally, I think whatever version of flash is bundled with Chrome is less CPU-inflaming than the actual current version of flash, as flash sites seem to perform worse on Quantum as well, and Quantum relies are your system-installed flash.
https://blog.chromium.org/2017/04/real-world-javascript-perf...
I actually just ran their "real-world" test (http://browserbench.org/Speedometer/), and the results were:
Chrome 62: 39.6 ± 3.4 rpm
Firefox 59: 27.0 ± 5.6 rpm
So there may definitely be something to this theory. Would be good to have a larger sample size though.I don't think it does. It could just do (and do better) with a single client implementation, as long as it wasn't controlled by a single company.
Honestly, I'd rather see Mozilla go away and stop making software completely because I don't like them, their politics, the way they turn people into ideologues who beg you to use their inferior product or the way they do just about anything.
If the pain of everybody using the same browser is real, people will get around to building a worthy competitor to Chrome. I suspect that the issue is a bit overblown though.
Firefox Quantum is a worthy competitor to Chrome. So is Safari on Mac. Not sure about Edge as I haven't used it.
> half the Mozilla fans in this thread aren't shoving Firefox down anyone's threat.
They don't have to when the top comment patronizes everybody by telling them what's "ideal". Gimme a break!
> Firefox Quantum is a worthy competitor to Chrome.
No it's not.
> No it's not.
How does saying that help or inform in any way? I didn't elaborate on Firefox 57 because but others had in the thread and the post itself is about the browser.
Ideally they should hold equivalent usage share which implies that as currently usage is heavily tilted towards Google Chrome, the best way in which you can help Mozilla is to use their browser and get your friends and family to use it too, unless there's a deal-breaker reason they can't. Your vote (usage) counts, so use it!