Before we give this the traditional Hacker News baptism by fire, keep in mind that this is apparently just one guy's project, and he's very junior:
Waterfox was started back in March 2011 by Alex Kontos,
a then 16 year old student. He had a fascination for
the web and wanted to help expand on the ideals of what
Mozilla had for a free and open web.
Someone building a web browser for 4 years has definitely come across some negative criticism by now. The best criticism we can offer him is that which is constructive.
> wanted to help expand on the ideals of what Mozilla had for a free and open web
At 16(or even at 20) understanding free and open web and the importance of it and take action for consecutive 4 years is really awesome. We need more clones of you. Thanks Alex Kontos.
Not to say that gecko wasn't a substantial work in itself, but in Phoenix, everything but gecko was new code.
This doesn't even cover how much "Netscape" code was actually in seamonkey in the first place, and how much was the other way around from Netscape 6 on.
> Given that most of Firefox is in JS so the actual code that you end up running is the JIT output, I'd be very skeptical it's any faster.
Most of Firefox is JS? Almost all of the lines of code are C++, as far as I'm aware. Certainly the UI is drawn using XUL/XBL/web-stuff, but how often is web performance bounded by UI performance? It's bounded by the performance of the rendering engine, and that is C++.
> (And if it were, I'd assume Mozilla would just Intel C for the official builds, too?)
Seems unlikely, given the output of ICC is crippled for non-Intel x86 chips (which de-facto means AMD nowadays).
> Significant parts of the functionality are written in JS.
Such as?
> It's often bounded by JS performance. JS performance depends on the JIT output, much less so the speed with which the JIT itself runs.
On what? Last I looked, even things like FB & Gmail are largely bound by performance of C++ code. Sure, there's a few hot JS functions high-up in the profiles (esp. in the large data structures they build up when initially loading), but by and large time is spent in C++ code, not JS.
Bookmarks, Tab management, all UX, PDF viewer, Search, Prefs, Sync, parts of SafeBrowsing, WebRTC, Update Handling, Login and Form manager, Devtools, Reader Mode, and uh I think I've proven my point.
But none of those things will ever really bottleneck the browser except for maybe the PDF viewer. The performance of bookmarks, tab management, search, and basically all your other examples doesn't matter. The parts of the browser that benefit from speed are written in C++.
Not that I'm convinced simply compiling with ICC will actually have a noticeable impact on the day-to-day performance of the browser, but it might speed up layout and other specific CPU-bound tasks. I'd love to see some benchmarks, but I think it's silly to shrug it off by saying that it won't matter because the browser UI is written in JavaScript.
It seems a joke but is also, sadly, a fact. Chrome bookmarks manager is lightspeed if compared to Firefox, to not mention total lack of usability on Firefox's part, so 1995.
I was against them writing significant portions of Firefox in Javascript from the beginning. Maybe a generator from JS to native for templating interfaces or something. I could see some compromise to aid the web crowd in extending Firefox. Shouldn't be what's running, though, given the inefficiency.
It sounds very much like a quality of implementation issue. There's no good reason why you can't deal with ten of thousands of bookmarks in JS with good performance.
Possibly but why would you want to in an app mostly written in efficient, native code? The typical reason for scripting engines is easier configuration by users or less skilled programmers. So, the user interface made a bit of sense being JS. All this other stuff that mostly stays the same? Not so much.
I paused when I read Intel compiler - that thing is a steaming pile of crap, or at least was for godawful number of releases for a long time and I don't expect it to ever work in the real world with a non-trivial amount of C++ code base. And then I read about a Mozilla header causing it to ICE!
Years ago, I was forced to make a company's product faster by "simply" recompiling it with ICC. It was losing in the benchmarks department and they were told by customer to go away until they could compete. Addicted to easy money they blamed the compiler (VC on Windows, gcc on Linux - how conveniently both were bad at optimizing.) I had a hell of a time getting the compiler to be consistent - it would, for example, ICE on code after re-ordering headers! Their support was atrocious too - but that wasn't entirely their fault, at that level of messiness only a complete rewrite of the compilers by non-PhDs might have saved it.
The problem is that expecting code to just be randomly faster by compiling it with ICC is a pointless endeavor.
For numerical code, ICC is amazing. But that's mainly because the automatic vectorization is far beyond anything clang can spit out (which is already better than gcc at automatic vectorization).
Even then, icc really benefits when you use its proprietary pragmas for hints.
I had the exact opposite experience with Intel's "steaming pile of crap" as you put it. We had a computationally intensive app that was sped up by 25% compared to the version produced by MS compiler. This was few years ago though.
We used the Intel compiler at my last job and also had some good speedups. But we also ran into a lot of bugs where it would generate non-working code at the higher optimization levels.
For us, the performance was worth the effort of working around the bugs. But that's probably not the case for most projects.
Yep, I could totally see it speeding up computationally intensive code - but try downloading it and using it to compile entire code bases with medium to high level of complexity - like ACE/TAO or Qt or any other OSS project. It might compile at low optimization settings but then it's not faster and the moment you try to use optimizations it makes your life hell.
For a number of years it also produced code that ran much slower on AMD processors. The Intel compiler is used to compile a bunch of benchmark tools that tech sites use in their reviews, so this (in conjunction with certain other brutal strategies on Intel's part to pressure and bribe vendors into selling Intel only) basically contributed to the destruction of AMD's market share in the early-to-mid 2000s.
For those who don't want to click a link or are using screen-readers (because yay textual content as an image!):
> Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.
I remember the dread I felt when I read that news, but it went away real quick .. I'm not even sure it was the whole story. I expected more backlash against intel for rigging a whole market that way.
Apparently there's a court order, as part of a settlement with the FTC [2], intended to stop the cheating, but apparently as of 2010, Intel still wasn't honouring it.
I had a huge page that was killing Firefox with an out of memory exception (that was a few years ago). Googled for 64 bit Firefox and got Waterfox, which solved that problem. So that's another selling point.
Even if I don't use Waterfox, I'm glad it exists. Browsers are very close to including DRM content and advertisements. When that happens I don't want to be stuck without an alternative. Thank you (if the developer is reading) for the effort and I hope you continue with this.
"What makes Waterfox so fast? It's built with Intel's C++ compiler. One of the most powerful compilers out there. This enables us to make the fastest possible web browser for all the code changes we make."
This is a huge claim to make with no evidence to back it up.
It's also a shallow comment. For one program, a compiler could compile faster code than another. Pick another another program and you may get the reverse result.
Plus I imagine the code is going to trail behind Firefox a bit. Is that worth probably a few milliseconds here and there?
I'm always interested by alternative 'Foxes, but I'm intrigued as to why the installer is about 25MB bigger than Firefox. What's in there that makes it a 50% bigger installer?
ICL creates huge libraries, especially with all the flags I use (-O3 -no-prec-div -Qparallel -arch:SSE3 -QaxCORE-AVX2,CORE-AVX-I,AVX,SSE4.2,SSE4.1,SSSE3). XUL generated like this is about 150MB (and for comparison offical Firefox XUL DLL is about 37MB)!
I'm pretty sure this is because internally, it has multiple copies of the assembly supporting different instruction sets. So it will have a lib with < SSE3, and then another copy of the same code with the SSE4.x optimizations applied. That way you get the speed benefit of SSE4.x on machines that have it, but it can still fallback to SSE3-only if it doesn't have that ISA.
The Microsoft compiler works similarly. This is why "Release mode" builds with optimization on produce bigger binaries than "Debug mode" builds.
I used to use this a year or two ago but quit because it was always lagging behind the official releases. In many cases it wasn't his fault - I remember a few times he had found bugs in the intel compiler that prevented him from releasing new builds - but the reason for the wait doesn't really matter when the advantages are so negligible as they are in this case.
Assuming you compare apples to apples (IE put them both in the same precision modes, tell them both to actually follow the standard[1], etc), it's not appreciably faster for anything except really specialized kernels.
[1] A lot of compilers take "liberties" with the standard by default in the name of performance.
See for example, IBM's qstrict and qstrict_induction.
The default at O2 and above is Qstrict and Qnostrict_induction (IE "change the semantics of my program").
So if you really want to compare performance numbers between compilers, you have to normalize them to something first, be it "go crazy and do what you want to my program" or "follow the standard"
People who compare compiler benchmarks rarely actually do this.
Note that the use cases of the compilers are very different, so it's probably reasonable for IBM/Intel/etc to have these as defaults and GCC/LLVM to have different defaults, but it doesn't change what you would want to compare if you want to compare generated code performance.
It took me a while to understand that when you wrote “IE”, you did not mean “Internet Explorer”, but “i.e.” (an abbreviation of the latin phrase “id est”, meaning “that is”).
I'm assuming the largely useless animation on the homepage is meant to make Chrome or Firefox start eating CPU and increase the perceived need for a new browser? I opened the tab, walked away for two minutes and came back to a hot and angry Chrome on my MBP.
I saw the screenshot and was hoping for crapware-free Firefox, but upon downloading it, the damned Hello icon was there in the toolbar. Presumably later versions will add Pocket too, once they start working off a later upstream Firefox version.
Have you looked at Pale Moon[1]? They're known to be stripping out a lot of components from core browser (no Australis or even Tab Group, though the latter is available as an addon). Biggest weak point is the lack of non-Windows build, but non-official versions are usually available in the forum.
Rumor: "Pale Moon is just a rebranded rebuild of an old Firefox version"
FALSE
Pale Moon has been on a divergent path with its own code for a long time already. It was a rebuild in 2009, yes. It was a rebuild with minor changes in the Firefox 4.0 era, yes. But we've come a very long way since then with an increasing amount of different code being carried over each time it was re-based on later Firefox code. It's a true fork now and has been employing rapid development (as opposed to rapid release) to solidify this independent direction with its own focus and attempt at keeping the browser sane, lean, and offering users choice and stability.
At the same time, Pale Moon's focus on security and evolving networking standards has added features and kept pace with those developments in other browsers, by e.g. adding TLS 1.1/1.2 support a while back, by offering OCSP-stapling, by keeping a close eye on encryption and the browser's security by continuing to port or re-implement security fixes that apply to Pale Moon as a browser. It is neither old nor outdated, it is not a "rebuild" and it does not use obsolete technologies or have security holes.
They're released on a much slower schedule (once a year) and get security fixes backported. They're intended for big organizations that don't want 6-weekly updates and are willing to live with outdated software.
But obviously its also handy if you want to fork and can't deal with re-basing every 6 weeks. Especially if you don't intend to update your fork a lot. You still get the free security fixes.
I must point out that the "hello icon" is for all intents and purposes a hyperlink (it's not a frontend for more code).
If you're avoiding Firefox because of the crapware specter, you've been badly misinformed. Later versions are going to split out the Pocket nonsense into a separate plugin as well, so the browser goes back to being clean.
This gave me flashbacks to early Firefox download campaigns, and the excitement that surrounded each milestone download count. Seems like such a distant memory now.
I installed it and it is first firefox on my machine in a long time. It seems fast ... I tried hogs like theverge and they seem to be a tiny bit faster then on chrome, my goto browser.
Looks interesting however the first thing I did after launching it was opening preferences which caused an immediate crash with no error / debugging message or anything.
I haven't seen speed benchmarks or anything like that, but out of the six browsers on my computer (Chrome, Vivaldi, Waterfox, Firefox, Tor, IE) I'd be using Waterfox if I wasn't so Google-dependent. It's fast, with a good UI, and somewhat less clunky than Firefox. Plus it's less likely than Chrome to be spying on me.
I switched to Opera to escape some of Google's tentacles, and that was a smooth transition. If you want a compromise, it's worth a shot.
I then went the whole hog to Firefox.
uBlock Origin, Self Destructing Cookies, and a VPN (PrivateInternetAccess) and I figure I'm getting as good as I can.
The lack of Flash is a non-issue nowadays for me, especially now the BBC are trialing HTML5.
(Although I generally use get_iplayer anyway.)
My primary issue with Firefox is it seems to be really poorly optimised for multicore CPUs. That's entirely anecdotal, but Opera runs just fine on a low clockspeed quadcore system whereas FF is unusable for me.
On my main machine, I get one core with moderate to high usage, and next to nothing on the other cores. Even if it's maxing out one core and lagging.
I have tried Waterfox and Palemoon, but ended up settling on Cyberfox. There are optimized 32 and 64 bit builds for both Intel and AMD CPUs which match the latest version of standard Firefox.
K-Meleon has been around for a while and does subjectively feel much faster than Firefox and Chrome and passes most tests(Acid etc) out of all the alternative browsers.
Unfortunately, I've grown too used to some Chrome and Mozilla plugins so I haven't switched full time.
My favorite alternate browser right now is Vivaldi [1]. It's made more for power users with a lot of customization options. It's built by Opera's former CEO.
? Where did you see more customizable options in Vivaldi. Their technical preview is just basically a Chrome reskin and a very clunky reskin, for that matter.
Well they're still doing a better job at it than Opera is and functionality wise it seems fairly close to old Opera releases(Vertical Tab, Sidebar...).
Features include customizable mouse gestures, tabs on the left/right/top/bottom, tabs with preview, tab stacking, tab page tiling, black color theme, custom shortcut keys, web panels, speed dial, etc.
I remember Waterfox a few years ago. It made sense to me as I saw it to be an unofficial 64 bit version when Mozilla was offering 32 bit Firefox only. Things changed in the meantime and the current Waterfox offering is not that compelling anymore.
I do apologise about that, now that I'm two revisions behind performance isn't going to keep up with the latest versions of Firefox. Hopefully Intel will release an update to ICL soon so I can catch up :-)
Rumor: "Pale Moon is just a rebranded rebuild of an old Firefox version"
FALSE
Pale Moon has been on a divergent path with its own code for a long time already. It was a rebuild in 2009, yes. It was a rebuild with minor changes in the Firefox 4.0 era, yes. But we've come a very long way since then with an increasing amount of different code being carried over each time it was re-based on later Firefox code. It's a true fork now and has been employing rapid development (as opposed to rapid release) to solidify this independent direction with its own focus and attempt at keeping the browser sane, lean, and offering users choice and stability.
At the same time, Pale Moon's focus on security and evolving networking standards has added features and kept pace with those developments in other browsers, by e.g. adding TLS 1.1/1.2 support a while back, by offering OCSP-stapling, by keeping a close eye on encryption and the browser's security by continuing to port or re-implement security fixes that apply to Pale Moon as a browser. It is neither old nor outdated, it is not a "rebuild" and it does not use obsolete technologies or have security holes.
"What makes Waterfox so fast? It's built with Intel's C++ compiler. One of the most powerful compilers out there. This enables us to make the fastest possible web browser for all the code changes we make. This potent combination makes for an unparalleled browsing experience."
Mm-Hm. How's that working out?
https://www.waterfoxproject.org/blog/
"Just a quick heads up why there hasn’t been any news from me in regards to the latest Firefox release. Mozilla have a new tuple header that they’ve created and gets used fairly frequently and unfortunately, this causes an internal compiler error as can be seen here." [Written by Alex Kontos
November 9th, 2015]
Always a pleasure to count the number of clicks needed before you can establish that the only platforms are Mac and Windows.
Why so critical? He's making a bold claim, but you're not even responding to that. You're just attacking him because he's using a different compiler suite? If you know of problems with the Intel compiler suite, how about you let us know what they are instead of passively aggressively pointing to a single recent problem which from the bug report I'm not sure is the fault of Intel's compiler not being conformant or not functioning with a recent feature, or GCC accepting a non-conformant structure, and whether being cross-compiler portable in that way is even a goal of the Firefox team.
> Always a pleasure to count the number of clicks needed before you can establish that the only platforms are Mac and Windows.
Would you like to guess how many clicks it takes to determine that for Firefox itself when you aren't currently running Linux? It used to be you could easily get to a directory listing of Firefox builds. Apparently it's harder to find now, and Firefox just starts an auto-download for your OS and architecture based on your user agent, and if you search for how to install on Linux, they make it clear that may not be the best way to install ("Use the method that works best for your distro", which may be through the distro package manager).