Article makes a false premise: that speed of writing the first version is important.
Much more time is spent maintaining software than writing the first version. Some poor sob is going to have to go and fix all those "silly" mistakes that were made and the bugs they caused (but of course, as we all know, they would have been avoided if the programmer had just been a better programmer). Save yourself (and us) the bother. Please use languages that stop you from shooting yourself in the foot.
(Not that rust will avoid bugs, but it seems to catch a lot of stupid "mistakes" before compile time. We're all humans and make mistakes, please accept that fact before inflicting software on us.)
>Article makes a false premise: that speed of writing the first version is important.
In my experience, project managers care more about how long it's going to take to build than about how maintainable it is. It's literally always the first question they ask:
"How long do you think this will take you?"
I don't believe I've ever heard anyone in management ask, "How maintainable will this be?" I'll ask around. I bet none of my peers have gotten that question either.
Except that normally a new feature does not involve creating a new system. Technical debt significantly impacts velocity of implementing new features in the future.
My equivalent is to use incognito/private browsing (depending on browser of choice). However, once again, browsers are opinionated, and don't offer to save passwords in private/incognito mode (with no overrides). Which means I just avoid the whole experience when possible.
Similarly, things like Focus let you access a throwaway experience even more easily. Still no password saving though.
Switching between profiles in Firefox is the most painful experience ever. Running multiple Firefox profiles simultaneously requires using a terminal command.
Switching between profiles in Chrome involves clicking on an easy to find button, and lets you easily run multiple profiles in parallel. No terminal involved, accessible to anyone.
To be fair, running multiple chrome profiles in parallel kills my (somewhat old) machine (mostly by virtue of having too many tabs in each profile), so Firefox does win there.
It seems a bit awkward to me when Mozilla keep asking for contributors. They're profiting from Firefox (via the huge search engine deal), it's in really poor taste when such organisations then beg for contributors. They have enough money to employ people to keep their product going... Kinda the same with e.g. Facebook's open source projects, although I guess there are worse places to contribute (and FB's projects might actually be useful for other companies work - hence contributing isn't a complete waste of time).
My only exception would be scratching my own itches, but here they're asking for help with company goals.
So, it's not "asking for help", it's informing how you can help.
I'm also not "begging for contributors" or asking to help with "company goals", I'm suggesting ways to help with our current major release. If we're successful, it should make the whole Web better thanks to bringing more competition and choice to the user.
Major open source projects are actually fun to work with for many people. They're very challenging not just because of problems you solve, but also because of the massive project culture and technical infrastructure in place that you learn in the process.
That learning helps people grow as engineers.
Also the feeling that you made an impact on the lives of millions of users is quite awesome.
For others, they're already Firefox users and it's just about fixing a bug that was itching them.
So, generally speaking, there are reasons to help major open source projects, even if they can afford to hire full time engineers as well.
Two side notes:
1) We're way, way smaller than all our competitors. The number of engineers that Google, Apple and Microsoft can hire to work on their browser engines is significantly higher than what Mozilla can do. We can't compete and never will be able to. That's why, beside of our culture and Mozilla Manifesto, we rely on our ability to attract contributors.
2) It's a chicken and egg. Keeping the project really open (not technically open as in - we'll dump the source code to github every once in a while), requires continuous effort. Having a healthy community of contributors is important for our project culture to stay open. If people stop contributing, some things will naturally decay into less open state making it harder in the future for new contributors to come in. And I'm not even talking about code only. Mozilla's marketing, engineering, privacy, security, UX and other projects are working in the open.
My comment wasn't specifically targeted at your blog post, more the general impression I've been getting of Mozilla. And sure, Mozilla is more open than Apple and MS, and probably a bit more open than Google.
But fundamentally, Firefox decisions are made by Mozilla employees, to further the goals of the Mozilla company (which makes money from those decisions - sure, to be hopefully reinvested). Firefox isn't like those other large open source projects where the codebase and thus decisions are owned by many independent (and mostly commercial) entities. Outside contributors have very little say in the product, so I wouldn't say its any better for people to contribute to Firefox vs e.g. Chrome. I.e. Mozilla wants their code - but in the many cases that have become publicised it doesn't seem like Mozilla wants their opinions.
(This is probably just the reality of end-user facing software projects with major UX components. But it's still sad to see contributors being invited in when they'll be ignored in the decision-making.)
// Edit: and it looks like fabrice_d made pretty much the same point while I was writing my comment : )
I think there's a deeper debate that Mitchell is running over the last few years at Mozilla, and that's how to find a balance between "your voice is heard" and "someone is making a decision".
If you voiced your opinion, and the decision has been made that is not in line with it, it's very easy to feel that "my voice didn't matter. Mozilla doesn't want my opinion".
I believe that it's a fallacy of communication.
So, in total. Sure, as the project grows and priorities change, we get to a more structured way of making decisions. It's getting harder for a casual contributor to steer the decision in a completely different direction.
But I do not believe that it's any different from Fedora, Wikipedia, Gnome, KDE, Wordpress or any other open source tech.
When you're a 10-person github project, it's easy to say that anyone can file an issue and change the course of it. When you're a multihundred million users project with 20 years of legacy code, and thousands of contributors, it is harder to see the connection between your opinion and the result.
But I do believe that if you gain trust in the community, and use the right forums (and I realize that finding the right forum to voice your opinion is not easy), you do have an impact.
Even if the final decision is not in line with it, which will happen, unless you and the decision owners are always 100% correct.
If attracting contributors was such a priority for mozilla, you would think that so many screw-the-users-we-are-doing-this-anyways decisions wouldnt come to pass.
Tons of decisions mozilla makes are taken dispite generally negative outside feedback, usually with a vauge convoluted justification with some metric.
Its ok to do what you think is best and right, but if you want an open participation from the outside, its best to not to ignore the feedback users give (note telemetry metrics arnt feedback, especially when interpreted with an agenda, stuff dosent always measure what you think it does). The entire conversation process around mozilla products is ridiculously straight jacketed, and unless you agree with what they have already decided prepare to be ignored, or have your points moderated out of existence. A good example of this tendancy is the conversation surrounding the proposal to track visited urls[1], you either accept that differential privacy is information theoretically secure (it isnt), and you accept that mozilla should have this information (metrics are an unqualified good), or your posts will be removed. Nobody is enthusiastic about contributing to a project that ignores what they care about, even if the people ignoring you think its for the greater good.
It seems to be the general conclusion inside mozilla is that Chrome is winning because of x, we need more x, for any value of x (including values of X which are in direct opposition to an open, free internet), while ignoring the strengths that firefox has and why people are actually choosing to use it over chrome.
As you say, it is 100% hopeless to try to be a better chrome than chrome is, Google outresources you 1000 to 1. I wish that firefox cared more about being firefox, and less about becomming a worse version of chrome.
I understand that this is how you see our actions.
Working on Mozilla, I do not agree with you on multiple points:
> If attracting contributors was such a priority for mozilla, you would think that so many screw-the-users-we-are-doing-this-anyways decisions wouldnt come to pass.
It's way more complex than you present it. Working on a big project, with a solid legacy, will make you face dramatic decisions where each outcome is going to cost. For example, most users, due to their vested interest in one outcome, and lack of understanding of the cost of the other (they're not going to spend countless hours maintaining legacy APIs), would say "Keep legacy extension system forever". But as a module owner of Gecko, you understand the tremendous cost of doing it.
The decision you're making is way more complex and multi-factored that the decision those users made when they voiced their opinion.
Trying to say that "if you care about being open source project, do what users tell you to" is imho only possible if you don't understand the complexity.
> its best to not to ignore the feedback users give (note telemetry metrics arnt feedback, especially when interpreted with an agenda, stuff dosent always measure what you think it does).
I'm not sure if I understand what you're saying here.
Telemetry tells us what happens. Feedback tells us what users want to happen.
Telemetry done right gives us representation of the population, feedback gives us the representation of the sample that voiced their opinion.
Loud minority can sway the discussion in any way (WebVR on Linux is the most important thing for Mozilla to work on!). Telemetry gives a different picture (3% of our users are on Linux, and 0.01% of them uses WebVR at all).
You can also see it in this thread. I wrote a blog post about ways to contribute to an open source project. You'd guess the majority of the conversation should be about technicalities involved in contributing discussed among those who want to contribute but have questions.
Instead, majority is about whether Mozilla is doing what the given person wants it to do on a very high meta-level (I want extensions to work this way, or I want data to be collected that way).
There's a substantial difference between those two - one is about a case where an engineer working on Firefox UI filed a bug about switching the way we react to clicks on a button but had no time to fix it. Maybe it also affects you? Maybe you want to go and write a couple lines of JS to fix it? Cool! Let's talk.
The latter is "I have an opinion on privacy policies at Mozilla, and I voiced it together with a number of other individuals who, when asked, say that there should be always less tracking. We brought our pitchforks and loudly demanded it. Now it seems that Mozilla is, after holding a public discussion for months, adding the telemetry which is not in line with what we told them to do so it means they ignored us! Outrageous!"
I'm not saying that we've always done the right thing (I believe we made very high level mistakes on multiple projects, but I also believe I don't have the full knowledge that went behind those decisions, so tt's easy for me to say).
I'm saying that this post is for people who may want to contribute to Mozilla but didn't know how. Sort of "www.whatcanidoformozilla.com" or "#contribute-newbies" style. And "the feedback" is about high level complex decisions that Mozilla is doing that are not in line with the persons opinion. Much more of a "mozilla.governance" or "mozilla.upper-management.decisions" style.
It's easy to have high-level opinions if you don't aim to understand the full complexity of the topic at hand. I can right now tell a government it should stop a war. Any war. Always.
I can tell the government that I'd prefer the taxes to be lower. Or higher.
I can go to Google and say that I'd prefer it they made Android an open source project again.
That's very easy, because I'm not bored with all the details, I'm ignorant when it comes to understanding all the factors, and I just want the outcome.
But saying that those entities "don't listen", just because they won't do what I say they should is imho a wrong conclusion.
> unless you agree with what they have already decided prepare to be ignored
I'm sorry you have this experience with Mozilla. I believe that your voice is heard more often than you think, and judging if your voice was heard solely on if the decision matches your opinion is wrong.
> It seems to be the general conclusion inside mozilla is that Chrome is winning because of x, we need more x, for any value of x
I do not believe you to be correct here.
Firefox team is working on making Firefox the best Firefox possible. Which means that we're building the product we believe to be the best and that involves taking what's best in Safari, Chrome, Edge, Vivaldi etc. if that fits into our idea of a web browser.
People love to see patterns where there are none (see Apophenia) so for years I've heard that each change we make is "copying" someone else. If we switch the back button to the left "we copied Edge", if we switch to the right "we copied Chrome". If we switch tabs to curved, we copied someone, if we switch to rectangular, we copies someone else and so on.
If we add something that other browsers don't do, there's generally silence, until someone starts claiming that we add unnecessary shit that bloats the browser :)
I tend to believe that the reason for that is there are a lot of people and for each decision a small subset of them that is not happy voices their opinion. And if the crowd is large enough, every opinion will be unpopular with some minority which will start vocally opposing it.
So if you look for feedback, it'll be always there, and predominantly negative for every decision that is a matter of preference.
Now, there are things that aren't a matter of preference in a general sense - performance, stability, security etc. I believe that V8 gained a lot of users by doing those things well, and I don't think there's anything wrong with us aiming to match or bypass V8.
> I wish that firefox cared more about being firefox, and less about becomming a worse version of chrome.
I hope that 57 will fit that description for you :)
I don't know where it'll go, but I believe that the decision which doesn't agree with feedback does not equate not hearing the feedback, or the feedback not mattering.
I hope you understand that it's a complex, multi-factored problem that is not easly solvable with simple solutions.
Anyhoo, I respect your perspective, I'm sorry this is your experience. I hope my personal opinion helped you see that there are other ways to see it.
At the same time, I'm just an engineer on the project, so I can't speak for the high-level decisions as much as I can talk about technical details of the platform and contributing to it. Which I wrote a blog post about. :)
Your post is a load of mimimization of my concerns, and redirection about how I couldnt possibly comprehend these complexities.
What i care about is my experience as a user is being objectively destroyed by these kinds of changes, go on and call me a "loud minority" or say "our metrics indicate [ ... ]". The fact remains that those are dismissive statements that indicate that you really don't care about these issues, so please stop insulting me by pretending you do.
You don't respect my perspective because you beleive my perspective to be uninformed and incorrect.
The plain fact is, as a user, I dont care about how the sausage is made, what i care about is how it tastes to me, you can make the "complexities arising" excuse for practically any (perceived) failure of any complex system. It dosent mean that its acceptable to me as a user who is being essentially told we dont care about your use case anymore. Please try to understand that mozilla are essentially taking everything that I gain utilty from with firefox, and tossing it in the dumpster.
Don't expect me to not be upset about all this going on because its for some grand nebulous greater good that will surely happen Soon(tm).
For what its worth I think you will find this "loud minority" is more influential than your metrics capture, and post 56 you are going to see a lot more people moving to chrome.
> Your post is a load of mimimization of my concerns, and redirection about how I couldnt possibly comprehend these complexities.
I apologize. That was not my intention. Being ESL may played into how I expressed my opinion.
Again, apologies!
> What i care about is my experience as a user is being objectively destroyed by these kinds of changes, go on and call me a "loud minority" or say "our metrics indicate [ ... ]". The fact remains that those are dismissive statements that indicate that you really don't care about these issues, so please stop insulting me by pretending you do.
I certainly didn't mean to insult you. I apologize if that's how it feels.
Being a minority doesn't mean you're "wrong" or "irrelevant". I consider myself a vast minority (I use Linux, I'm a software engineer, I'm a Pole - all those are minorities!) and it certainly makes what I need from software, different than what most people need from software.
Understanding that I'm a minority helps me understand why what I want may not be the best for a product like Firefox.
I genuinely would want Firefox to add client side decorations (being worked on in bug 1283299) before they add color accents for Windows 10 (which I don't use).
But understanding that I'm a minority helps me understand why the priorities of Firefox UI module owners are different.
I don't want to be dismissive, just point out why what you or I want or believe is right, may not always be the best from the perspective of someone who has to decide for the product used by hundreds of millions of users.
> It dosent mean that its acceptable to me as a user who is being essentially told we dont care about your use case anymore.
I agree that what matters for you as a user is the outcome. I don't expect you to be happy about the decision that doesn't give you what you need because of the fact that "it's the right decision" on some other level.
But I ask you to separate your wants and needs as a user from indicating that decision makers are wrong in their decisions when they go against your needs.
And I also disagree that not doing what you want equals "not caring about your use case".
It's not about "care vs. not care". It's about priorities.
If your use case is valid, but not common, it will most likely just wait longer to be fixed (like CSD). If the value of what you ask for is going to bring less value to fewer users than the opposite, then the right decision for the decision maker is to do the opposite. Not because "they don't care", but because there's a more substantial value in it for more people.
> Please try to understand that mozilla are essentially taking everything that I gain utilty from with firefox, and tossing it in the dumpster.
I do understand that. I'm very sad to hear that this is what is happening to you, and I understand your frustration.
Please, try to understand that:
a) I'm not a decision maker, so I can only share my perspective.
b) Even if I was, I would probably have to see the bigger picture and may have to make the same decision.
> Don't expect me to not be upset
I don't. I really don't. I understand you're upset and I believe you have the right to be.
I just ask you to separate being upset, and making decisions based on it, from accusing others of not caring for it is possible to care about your use case, and yet make the rational and valid decision against it based on the value for more use cases.
I believe we're dropping into philosophical conversation about decision making that is getting close to trolley dilemma :)
> For what its worth I think you will find this "loud minority" is more influential than your metrics capture, and post 56 you are going to see a lot more people moving to chrome.
I can't argue here, only trade opinions. I hope that the technical value of the product will make it a good choice for more users than use Firefox today, and that our investment in improving the extension ecosystem will result in replacement for all the features that you miss today.
> I don't want to be dismissive, just point out why what you or I want or believe is right, may not always be the best from the perspective of someone who has to decide for the product used by hundreds of millions of users.
There's also a simpler explanation (and following Popper's criterion - it's way more likely to be the actual reason): mozilla just decided to switch to total populism and now targets for amoeba-like users (that are an overwhelming majority) rather than power users (advanced, tech-savvy, where the share of users with 100+ tabs is higher than 10% compared to those ~0.01% among all users).
Why?
Because it's easier and because this way it will make higher profit (I know that MoFo is a non-profit, that never mattered anyways).
Hey Gandalf! One of the big disconnects in participation is technical vs. non technical. I still believes Mozilla is very welcoming to people that can contribute to building the product. However it's much less willing to let people contribute to decide what should be built.
Not saying it's good or bad - Mozilla has never been a democracy - but I feel this is what people complain a lot about.
At the same time I don't see the situation improving, with more and more product/project management happening behind the scenes in docs/platform that are not even accessible in read-only mode publicly.
> At the same time I don't see the situation improving
I actually do, but as you know, I'm an optimist by nature :)
The path that could lead to Mozilla tech opening for the case you're describing may look like this:
* Fx 57 is successful
* Gecko successfully transitions to be a modern Web engine with its own advantages over other engines
* The new features such as Rust and leapfrogging advancements like Stylo/WebRender etc. add up to make people want to use Gecko/Servo over other engines in their products
* We're successful at building a node/electron like wrapper for Gecko/Servo
* The innovation begins
I don't think it's certain, and I don't know if it'll happen, but I do now that there are people tinkering with things like GeckoView and electron like wrappers, with target for next year.
It's not guaranteed, but I do hope it'll happen.
That's a lot of ifs... And again these are very technical aspects, not strategic/product ones.
Mozilla has been putting 110% of their effort on a Desktop browser recently. Fine, their choice, but I can't help but think that their are cornering themselves in a niche and are missing where the new tech users will be.
As you can guess, I really feel it's a shame that gecko is becoming really good, just not used in a context that matters.
> That's a lot of ifs... And again these are very technical aspects, not strategic/product ones.
Correct. Lots of ifs. And on top of that, ifs from a regular engineer which means I know even less about all the factors in play than I should to predict.
> Mozilla has been putting 110% of their effort on a Desktop browser recently. Fine, their choice, but I can't help but think that their are cornering themselves in a niche and are missing where the new tech users will be.
My personal take is that we have to start somewhere. We can try to come up with a completely new technology, and we're trying to - see Servo.
We can make Gecko the best web engine on the planet.
Or we can try to build amazing products on top of an ok engine.
I believe we have to start somewhere, and stating by bringing Gecko to excellence is not a bad choice.
> As you can guess, I really feel it's a shame that gecko is becoming really good, just not used in a context that matters.
Mozilla is a non-profit organization. Any money that they make, they have to reinvest into Firefox or other Mozilla projects. There's not some guy getting rich from you helping them out. All the help that you invest will eventually fall through to users in some way.
Mozilla Foundation (MoFo) is non-profit. Most of the employees work for Mozilla Corporation, which is owned 100% by MoFo.
It's very clear the MoCo doesn't reinvest all the money they make (they have a lot in the bank). And some are getting rich from it, but that's a different topic.
I don't consider getting paid your wage as "getting rich", if that wage is within industry standards for the job that you're doing.
And yes, the MoCo is not reinvesting all money all the time right away, but they'll have to reinvest it or use it to pay wages at some point. They have no reason to just amass money senselessly.
If they make a surplus, have all wages paid, and don't save it up nor reinvest it, then they can only pay it out to the Mozilla Foundation, where it's again in nonprofit hands.
To be completely fair: many projects at many companies turn out to be failures. Rust could've been bad and Firefox OS could have ended up ruling the world, and suddenly your comment would look very different. There's just a fundamental risk in projects, and viability often only becomes later in hindsight. (Most other companies failures just happen to be a lot less visible since they're not developing in the open.)
Companies like Facebook publish their libraries so they can hire people who are already familiar with the libraries they internally use. As an outsider you can't be an expert in <company internal library> if you don't even whether it exists.
2FA is actually globally enforced for all internal Mozilla accounts, IIRC---it's just not done over U2F. I'm not sure whether the details are public so I can't elaborate further.
Firefox does try to make it easy to build. However they're quite opinionated and want you to use a "bootstrap" script which downloads some stuff into ~/.mozbuild regardless of you potentially already having it.
It is however still very close to a clone & bootstrap & build process, at least on Linux and Mac - i.e. one of the better projects. (For comparison, I recently tried to build Facebook's Infer, and that was even worse than building OpenOffice back in the day.)
Much more time is spent maintaining software than writing the first version. Some poor sob is going to have to go and fix all those "silly" mistakes that were made and the bugs they caused (but of course, as we all know, they would have been avoided if the programmer had just been a better programmer). Save yourself (and us) the bother. Please use languages that stop you from shooting yourself in the foot.
(Not that rust will avoid bugs, but it seems to catch a lot of stupid "mistakes" before compile time. We're all humans and make mistakes, please accept that fact before inflicting software on us.)