I honestly have no idea.
From my perspective, they're doing a great job. They've made some pretty big improvements with Firefox (multiprocess Firefox is finally close to shipping source). They've launched an entirely new language (Rust) along with an entirely new browser engine (Servo). And they were one of the big movers behind Let's Encrypt.
Honestly, I think most of the hate is about some perceived SJW-behavior. I don't know why Mozilla has that reputation (I suppose over Eich being pushed out?), but somehow it does.
Servo is slowly getting there: https://servo.org/
I've long thought about using Servo to create a GUI toolkit, but not using JS. The rendering part of web browsers is actually pretty darn fast and advanced, its everything else that makes slow resource hogs. In theory you could use a web renderer while writing everything in a fast native language, completely bypassing all the other stuff web browsers have.
If your colleagues like numbers, I love this one: one of the devs of Servo wrote a very interesting blog post about using Rust at Mozilla. She analyzed all the critical bugs that ever occurred in the styling component of Firefox, and found out that 51 out of 69 of them (that's 74%!) would not have been possible, had Rust been used since the beginning.
Mozilla Research is working on a new browser engine based on the Rust programming language: https://servo.org/
Parts of Servo are being moved over to Firefox as they are ready, and also existing parts of Firefox are being re-written in Rust: https://wiki.mozilla.org/Quantum
Some of these changes have already shipped in 55 and 56. One of the reason 57 is disabling legacy add-ons is to ship more of these, and to accelerate the pace.
One of the traps to avoid here, that Netscape fell into during the big Mozilla Suite rewrite, is to delay working on the shipping product while the "next generation" project is being developed. Joel Spolsky wrote an opinionated blog post about this years ago, which I don't 100% agree with but I think he got the gist right: https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/
Tor利用者に対する攻撃(対処済み)はWindows版のみで、kernel32.dllを直接アクセスするものだという
Firefox 0-day in the wild is being used to attack Tor users
なお"FirefoxをRustで全部書き直す"というのはうろ覚えの間違いだった
GeckoをRustyで書き直した実験プロジェクトServoが活動中で、Firefoxに適用するかどうかは未定(多分やらない)という話だった
https://servo.org/
https://github.com/servo/servo
this project been around for a few years anyway...
>Servo, the Parallel Browser Engine Project Servo is a modern, high-performance browser engine designed for both application and embedded use.
>Sponsored by Mozilla and written in the new systems programming language Rust, the Servo project aims to achieve better parallelism, security, modularity, and performance.
ref: https://servo.org
gecko engine already has some bits n pieces from servo;
> Quantum is not a new web browser. Quantum is Mozilla's project to build the next-generation web engine for Firefox users, building on the Gecko engine as a solid foundation. Quantum will leverage the fearless concurrency of Rust and high-performance components of Servo to bring more parallelization and GPU offloading to Firefox.
> As the project evolves we'll be adopting more of Servo's components, and leveraging the research that helped build them, to make Firefox faster and more reliable than ever. Servo is a research project and doesn’t yet have all the functionality users expect from a full-featured web browser. By taking an incremental approach and merging proven components from Servo to Gecko as they are ready, users won't have to wait long to start seeing dramatic improvements to Firefox stability and performance. We're going to ship major improvements in 2017, and we'll iterate from there.
The initial work on Firefox Quantum (57) was focused on desktop, including Linux ^(which I'm typing this on right now), so that's where you'll see the most improvement, but lots of the changes apply equally to Android and will show up there eventually.
In some cases, like when we're replacing fundamental parts of the browser engine with new modules from the Servo project, we'll ship both the old and new components side-by-side on desktop to ensure that the output is the same or that we can fall back to the original code if the replacement isn't fully ready, yet. During this maturation process we'll sometimes only ship the original, known-good module to Android to avoid bloating the size of the APK with redundant modules.
When Firefox was first designed it was out of the question that there would be devices with multiple cores. Later on in order to hold up Moore's law companies made new CPU's which had multiple cores.
With smartphones this went on even further. Instead of faster cores mobiles usually get more cores. Most high end smartphones have 8 cores already while modern Intel CPU's still only have 4 cores. Firefox wasn't designed to use all of them.
Over the last several years Firefox is starting to catch up, but roughly in November you can expect a major advancement in performance. By that time components from Servo will land into Firefox with Project Quantum making it able to use the newer multi-core CPU's better and use the GPU which often has barely anything to do while browsing.
Firefox may or may not at this point, I'm not sure. However, Mozilla is developing Servo, which is a threaded browser engine made with a programming language they created to address the exact needs they had (fast, memory safe, multi-threaded.)
Firefox may not be doing much right now, but once Servo reaches a complete and usable state, we might see a new browser (or a new Firefox version) come from Mozilla that raises the bar on browsers entirely. Some parts of Firefox have already been rewritten in Rust and exist in current iterations.
> Truly one of the joys of being a developer is the endless bitching over precise semantics.
Actually, that's not a joy of being a developer, but being a human. People have been arguing about what words even mean since the days of the ancient Greeks. I think the ancient Buddhists put it best when they said that ultimately all semantics are relative, and instead of bitching about the dictionary meanings of words, it is better to understand what the other person is trying to say.
Obviously, what people are saying here is that a web browser based on chromium isn't really a new web browser, in that it is derivative, unlike say Servo is actually a novel implementation of a web browser.
>why is chromium not written in Rust?
Because chrome is a google project, and Rust is being developed by Mozilla, who are developing their next-generation browser in Rust (in fact it is one of the main reasons Rust is being developed).
Chrome OS is more than just a browser on a locked-down Linux system. It's literally an entire OS built on chromium, meaning it relies on V8/blink quite a bit. Firefox OS was actually very close in concept, focusing on mobile.
Chrome OS works so well because Chromium is easily embedded (think electron, CEF, Node, etc). Gecko was, at one time, embeddable, but because of its history as an internet suite, rather than a stand-alone engine, it's a lot harder to work with independently of the browser component.
However, servo is an engine that can be embedded independently of any other components. I recall reading that 1:1 compatability with the Chromium Embedding Framework (CEF) is a project goal, and this issue seems to support that. Here's an example of an application build by embedding servo, and building a UI around it.
Servo is not ready for real-world use yet, and probably won't be for at least another year. However, it's being developed with portability in mind, and if someone wanted to, a "Firefox OS 2.0" would be quite possible.
I'm guessing the way Rust works isn't something that can easily be ported to another language like C++ which is why a new language was required.
The Rust compiler is pretty slow I've heard, but it doesn't take hours to compile projects like Servo.
Hi there, Lochlainn. My name's Chris Van Wiemeersch. I work at Mozilla on the WebVR team. I've been very interested in FOVE since trying a demo of a developer kit headset at the FOVE booth at SVVR the other year ago.
I placed a preorder and am eagerly waiting for its arrival. We have two full-time developers working on WebVR in Firefox (and other help on the Servo project).
We've got the Oculus Rift (DK2 + CV1), HTC Vive (OpenVR), and OSVR HDK2 working w/ WebVR content in Firefox. If you could send a headset to one of our offices (SF or Vancouver), we'd love to dive in and see to support FOVE. If you're interested in WebVR, feel free to reach me at @cvanw on Twitter or cvan AT mozilla com. I'll be keeping my eyes out! °_°
Vivaldi is a shitty-ass proprietary UI on top of a barely modified Chromium. If you want an actual "experimental browser", look at the work being done on Servo, a new browser engine by Mozilla written in Rust, which will hopefully eventually make its way into Firefox.
> A new engine is a game changer though. > > We have to make sure we keep supporting progress.
I think the better bet for investment in this area would be Servo.
The web platform has been growing significantly year over year for decades now such that it's huge. Starting from scratch and getting to parity with the current engines is going to take significant effort over a long period of time. Of novel engines Servo is probably the closest.
It was made by Mozilla (who has rendering engine experts and expertise in implementing standards) built from the start to be efficient and very parallelizable (this is possible to do safely because it's written in Rust).
That being said, there's no reason to abandon Gecko; it's a good, performant engine. Firefox's main disadvantage nowadays is that devs are using non-standard, Chrome-only tech, or they just aren't testing in any other browser.
One thing I see that nobody has mentioned yet is that a lot of the Rust devs they laid off were working on Servo, from which a lot of work was copied over to Firefox Quantum, but it could form the base of a brand new browser.
The Servo project has had contributions from some big names including Samsung, Let’s Encrypt, and others.
Servo was recently adopted by the Linux Foundation, so it’s in good hands. From what I can tell, it could be a great competitor to Electron based applications as well.
You can donate directly to Servo here.
57 is using the same engine Firefox always has, Gecko. The biggest change is the introduction of Stylo, the CSS rendering component of Servo, which is an experimental browser engine built by Mozilla. Over time, more parts of Servo will be replacing old parts of Gecko.
Firefox will almost certainly never use Blink*, Chrome's engine. If it did, it would be an admission of failure.
^(*The exception to this could be Firefox Focus, but I mean this in terms of Firefox on the desktop)
I think you are referring to the Servo browser engine that was started by the Mozilla team and now it's part of the Linux Foundation?
It is based on Firefox and it's being written in Rust.
Also Mozilla could have just decide to use their Servo engine to become something similar as it's already like a very trimmed version of the browser, but they just didn't do it and abandoned the project altogether after the latest restructuring.
Seems like we were talking about different Servos, I was referring to the Servo Engine and you are talking about a Servo Motor (the ones used in robotics).
Somebody already told you how to ream about COM ports communications, that's the way to go but I must say is a stretch from AHK, while you can create a wrapper around it you'd be better off with something entirely different (depending on the controller of your motor).
> WebRender is a not so brand new rendering engine Mozilla has been implementing in Mozilla Firefox as part of a project they call "Quantum" since 2016. It did not originate at Mozilla, WebRender was originally developed by the Linux Foundation-funded Servo web engine project.
lol ok
There's not many other browsers, aside from firefox, honestly. The only non-chromium browser is Servo, but that is experimental, so if you don't like using unstable browsers, you will likely have to search for one yourself.
This also made me wonder how Servo is coming along. Turns out it's coming along nicely, despite still having lots of stuff not implemented and some funky inline element backgrounds bleeding out.
Yes, I just rewrote that a bit to say that GNOME Web has too many features, and they're adding more.
https://servo.org/ looks interesting, thanks. Or I could just see how easy it is to remove huge chunks of Firefox or ungoogled-chromium and build my own copy.
Mozilla invented Rust to rewrite Firefox in it. This is an ongoing effort, with at least one key component and some less important ones already replaced. They also have a proof-of-concept browser engine n Rust, which arguably is a large projects.
Haskell can keep your codebase clean, but initial design must be really good. Also, a truly iron will is needed to keep sexy but too fresh or needlessly abstract things away from production code -- see Boring Haskell Manifesto.
You can look into the servo engine project. I may be mistaken but it's the future core of Firefox. Written from scratch in Rust, parts are pulled and integrated into Firefox as they mature.
I don't think it'll be ready for production usage anytime soon. However, if you really want to stick with Firefox's internals, you can look into how to embed and/or extend it to fit your needs.
Servo is the new browser engine written in Rust and used by Firefox. Although I guess instead of embedding Chromium in your app (like with Electron), you'd be embedding Firefox. It'd be interesting to see if an Electron-equivalent with Servo was possible.
Did you just compared 8 lines script to one of the most complex pieces of software out there? What is wrong with you?
Oh, and by the way, there is language created for creating browser and “expand possibilities”. And each major browser also allows for plugins - just check out how many of them is “it would be interesting whether it is possible”.
> managed in a similar way to the web standards themselves
So not very well then?
If "1 web platform core" could be managed well, I would argue Servo would be better suited for the purpose.
> Is the web platform now so complicated we can confidently say we will never see a major new browser engine in our lifetimes?
Servo is new. Unless progress on it slows down significantly, I'm confident we'll see it complete in our lifetime.
Mozilla is switching out their whole render engine which is a significant chunk of what makes up a web browser. I am not sure if they have plans to switch out SpiderMonkey too. I am not browser engineer, but I don't see why you couldn't build a new browser that is i.e. V8 + Servo for example.
This also underscores one of the many important reasons that competition in this spaces is good. I expect Servo to be a bit of a paradigm shift since it is being built on top of Rust's fearless concurrency. This kind of stuff pushes the whole community forward in a similar way to when per tab processes was introduced.
Servo is a completely separate browser engine. It's not a new version of Firefox, though it is the source of some of the Quantum projects including WebRender. By starting Servo you can see WebRender working when it's completely integrated with the engine.
Servo will not even look at your Firefox files. It uses it's own config/profile system.
I think writing projects on your own is not effective for learning and is wasted time. The best way to do it is to find a Free Software project that has bugs for beginners and try to contribute there. This way your time is invested in something useful, you get code review and learn a lot from it and you see a real live project with it's good stuff and bad stuff. If you want to use some new trick of the language and don't exactly know how to do it, you grep the source code for the specific feature and see it used in another place. Contributing to another project also helps you learn about frameworks, build system, debugging and testing patterns.
I recommend the obvious: Servo, it has some good starter bugs for Rust. If not, just go to the most popular Rust repositories in GitHub.
Very important: the project needs to be popular so it has easy bugs and devs that are willing to mentor you.
I don't share your view. Mozilla isn't just Firefox, it's also Thunderbird, supporting free software and privacy, they fight against DRM, they implement the Rust programming language etc... They are not perfect, they made bad decisions, they invested lot if FirefoxOS which is a big fail (but they are not the only one who failed on the mobile).
Regarding their income, they redistribute a huge part of their profits in a clever way (i.e.: to improve the security of other open source projects).
In my opinion, implementing Hello and Pocket were mistakes and so it would be with any native extensions. Extensions should ALWAYS be optional. Native AdBlock would be quite stupid because there are already widely known and used AdBlockers and competiting with them, imposing a solution would cause these other extensions to disappear (and lack of competition is always bad).
Regarding performances, even if Mozilla is late compared to the competition, the current performances aren't bad and without a benchmark tool most people wouldn't even notice any difference (unless they install tons of extensions). Also they are working on project like Servo for years... it's just a matter of time for having it ready.
You mean Servo? It's still in very heavy development, but it's certainly a possibility once it's more stable and there are Python bindings for it.
I'm definitely keeping an eye on it, and adding support for two engines means it's a lot easier to add a third one in the future!