Hacker News new | past | comments | ask | show | jobs | submit login
Waterfox – A fast browser (waterfoxproject.org)
150 points by talles on Nov 12, 2015 | hide | past | favorite | 108 comments



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.
Be constructive, not snarky.


Well, he's 20 now. And he's stuck with it for four years? That's pretty impressive.


Still young; he's probably still a student. People react differently to negative criticism, of course, but to some it can be devastating.


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.


Only in the context of our fleeting industry.


Yes. That really impressive. That's really a rare trait. The more impressive thing is the following from https://www.waterfoxproject.org/#about

> 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.


Wasn't Blake Ross 16 when he wrote Phoenix/Firefox?


Wrote is a strong word, given he had the Netscape code.


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.

If anything, I could have used stronger words.


So this is basically older versions of Firefox compiled with the Intel C++ Compiler?

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.

They certainly don't provide any objective data that it is.

(And if it were, I'd assume Mozilla would just Intel C for the official builds, too?)


> 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).


>Almost all of the lines of code are C++

Significant parts of the functionality are written in JS.

>but how often is web performance bounded by UI performance?

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.

The rendering engine may be a factor, but there HW acceleration also factors in. It's far from being clear cut.

Media decoding already uses optimized assembler, nothing for the compiler to do there.

I'd suppose most of the gain would be in layout?

>Seems unlikely, given the output of ICC is crippled for non-Intel x86 chips (which de-facto means AMD nowadays).

You can patch that out. I'd hope this Waterfox is doing that...

Even so, Mozilla provides a stub installer that downloads the right binary nowadays. It could check the chip vendor and get the appropriate binary.


> 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.


>Such as?

Looks for .js and .jsm in the source tree.

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.


Explains why it barely handles my hundreds of bookmarks, though. Maybe I need to rewrite that part in native code haha.


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.


Chrome bookmark manager stores a lot less though.


Is there a limit on it or something?


I meant meta data, Firefox has tags and more time information IIRC, thus does more and thus is prone to be "slower".


Ahh. That makes sense.


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.

The VTUNE profiler is amazing though


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.


Getting a recent qt to make clean with any compiler is a pain.


What's sort of problems did you have? I haven't tried since 5.3, but it worked fine just following the directions on the wiki:

https://wiki.qt.io/Building_Qt_5_from_Git


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.


It still does, as far as I'm aware. The current optimisation notice is <https://software.intel.com/en-us/articles/optimization-notic....

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.


There's an excellent summary on Reddit [1].

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.

[1] https://np.reddit.com/r/pcmasterrace/comments/3s5r4d/is_nvid...

[2] https://www.ftc.gov/news-events/press-releases/2010/08/ftc-s...


Speed is your selling point, but I don't see any benchmarks!


I used to have them on the website but I just felt like if they were on there people would think they were biased. A user had some benchmarks a few versions back: https://www.reddit.com/r/waterfox/comments/2xle7k/browser_be...


You're much better off putting them up, even if people might think they're biased.

Without any benchmarks, it just seems like you want this to be faster, without providing any evidence that it is.


It works by placebo!


I love placebos, they always work!


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.


As of version 42, 64-bit Firefox is available on all tier-1 desktop platforms (Linux+GTK, Mac, Windows).


> "Finally found an alternative to @firefox that supports Adobe Flash without all the errors - @Waterfoxproject works just wonderfully :)"

...no thanks, unless they want to share details of their sandboxing tech.


They either don't sandbox at all or they backported the new 64-bit NPAPI Sandbox from Mozilla:

https://bugzilla.mozilla.org/show_bug.cgi?id=1185532#c29


I wonder what "all the errors" are that affect Flash on Firefox. Being derived from Firefox, why would Waterfox have better support for Flash?


I think it's just referring to having to manually enable Flash since Firefox will warn you that it's insecure.


Yeah I think I'm going to remove it.. it was originally meant to be light-hearted but looking at it now it definitely looks arrogant


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 like your website though.


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.


Is the Intel Compiler even appreciably faster these days? I thought CLang and GCC had basically caught up...


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”).


It can be for compute bound processes compiled on and for the latest Xeon servers.

But, for end user apps with syscalls everywhere, I don't think the difference is notably different.


Hmmm, I don't think there are many syscalls in the Firefox rendering engine.


That's what I was thinking; wouldn't Firefox be basically in userspace, and therefore not be much faster using an Intel compiler?


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 was just hoping to make the website look nice, is all.


The actual reason is you're an Apple hipster. On a proper desktop PC, Chrome doesn't get hot and hungry. Ever.


My PC must not be "proper".

Aw, snap.


Ah, that must be why all the developers at my Microsoft-based workplace running Windows 7 complain about it so much.


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.

Meh.


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.

[1]: https://www.palemoon.org/


They don't have Australis because they're based on an older Firefox ESR.

Stripping out features that are lazily-loaded JS files and in return being stuck with outdated stuff feels like a very weird tradeoff to me.


It's not outdated.

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.

https://forum.palemoon.org/viewtopic.php?f=4&t=7818&p=50895


What does "ESR" mean?


https://www.mozilla.org/en-US/firefox/organizations/

Extended Support Release

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.


Ah, same as "LTS" then. Thanks.



> Biggest weak point is the lack of non-Windows build

Indeed. I'm a Mac user, so that makes it a non-starter. =/


Pocket is being unbundled/moved to an addon that can be removed easier: https://bugzilla.mozilla.org/show_bug.cgi?id=1215694


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.



> "4,000,000 downloads and counting"

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 didn't find any info on where they compare performance with firefox. Any links?


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.

Thank you Alex, keep up the good work!


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.

https://cyberfox.8pecxstudios.com/


The latest official version of Firefox have windows x64 builds on the beta and dev / aurora channels (and have for well over a year now): https://www.mozilla.org/en-US/firefox/beta/all/


There's a project page to make a stable win64 release: https://wiki.mozilla.org/Firefox/win64

The goal says before the end of 2015... tick tock


"Download for PC"

Hey, I have a PC! It runs Linux. Care to change the above to "Download for Windows"?


How does Waterfox compare to something lean and mean such as: K-Meleon ? https://en.wikipedia.org/wiki/K-Meleon

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.


I almost thought it's their brand new browser with the Rust/Servo engine. Please make it happen, Mozilla.


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.

[1] https://vivaldi.com


? 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...).


A beta was just released on the 10th.

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.


What's fast about it? I see a larger download, slower to start, choppy animations, and worse performance on JS benchmarks than Firefox latest.


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 :-)


I prefer http://palemoon.org They offer a 64bit version.


PaleMoon is even more outdated, it's an old Firefox ESR.


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.

https://forum.palemoon.org/viewtopic.php?f=4&t=7818&p=50895


You should do your own research rather than believing their nonsense claims. Start by diffing their code against various Firefox releases.


Genuine question - why is the final file size almost 1/3+ that of Firefox?


literally a branded makefile


"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.


> Mm-Hm. How's that working out?

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).


You should try using something non-mainstream

"Always a pleasure to count the number of clicks needed before you can establish that the only platforms are Linux, Mac and Windows."


Once you get obscure enough it becomes easy though. Generally anything that bothers to support Haiku and QNX mentions it.

I think FreeBSD is definitely the sweet spot for counting clicks.


I'm a Plan 9 user. We don't even click.


I found this browser to be faster than Chrome and Safari.


Already at version 40?? I thought it's new?




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: