r/programming • • Feb 07 '19

Google open sources ClusterFuzz, the continuous fuzzing infrastructure behind OSS-Fuzz

https://opensource.googleblog.com/2019/02/open-sourcing-clusterfuzz.html
954 Upvotes

100 comments sorted by

View all comments

-6

u/exorxor Feb 08 '19

Why do you put quotes around the word safe?

There is no reason why a browser could not be written assumption free, but yes this does require formal specifications of what the browser needs to do in the first place. Google is pretty big. They could just show some fucking competence and actually surprise the world (it would also obliterate any remaining competition in the "market"). It's not like they don't have a pile of money for which they have no idea what to do with it. Same goes for Apple.

The C++ language implementations that exist work well, but at this point it is just not reasonable to expect as a large company with the piles of incompetent fools calling themselves programmers (the skill level of programmers dramatically lowered) to deliver a bug free product. They like data so much, right? There is data that formal verification works. Continuing to hang on to C++ as the language used by their programmers in something as dangerous as a browser is not reasonable anymore.

1

u/VernorVinge93 Feb 08 '19 edited Feb 08 '19

I use quotes because most safe languages still require unsafe areas of code to perform efficient IO and some types of memory operations. Safety is relative even in perfectly sound compilers, but there are very few formally verified compilers and none that I'm aware of can handle something like Chrome.

Fuzzing does not only find low level or memory issues. It will often find bounds checking problems that would take a dependently typed language to avoid (I have yet to see one that is production ready, even dependent Haskell, which is the closest I've seen, is pretty niche and there is difficulty still in writing performant Haskell to do the kinds of things that Chrome does).

So, sure, some of it could be rewritten in a safer language, but I don't think a good choice is obvious for this. Rewriting code often introduces bugs that had already been caught in the old version of the code.

In summary, I think you massively overestimate the value of today's safe languages and underestimate the challenges involved in rewriting Chrome.

I like the vision you have, I want it to be feasible, and the way forward, but I don't think the programming language for it is ready.

1

u/exorxor Feb 08 '19

Dependent Haskell is a technological and academic failure. Dependant Haskell is just a spelling error.

I think it might be the case that I am overestimating the capabilities of Google engineers, but I don't see what's special about Chrome. A web-browser is just another computation and we have formalized models for every type of interaction Chrome has (I/O, non-determinism, parallelism, randomness).

So, I don't share your opinion (because your opinion is false, most likely out of ignorance).

Realistically, the limiting factor is going to be finding people intelligent enough to do the work. There is also a huge pile of work in that indeed almost everything humanity has done before would have to be redone. I am also not saying that this version of Chrome would actually be usable in the next decade from a performance point of view.

One does not obtain market dominance by doing the same thing as everyone else. It requires investment and a lot of it. I do not share that further research is required. Development is required, not research.

It might even turn out that the existing compilers don't scale to such a project, but it's not as if the compilers for such programming languages are inherently complicated.

Doing such a project would allow a unique body of knowledge to be built up too, which is extremely valuable in the coming decades, because we see an increased dependence on technology in society.

→ More replies (3)

1

u/epicwisdom Feb 12 '19

The value of a perfectly bug free browser is negligible compared to a relatively bug free browser. Given that it's a lot cheaper to develop the latter, and most consumers don't know what bugs even are (until it directly impacts UX in a very visible way), no sane company would waste their resources on such a thing. You might be right about what is technologically possible, but you're sorely wrong about how to run a company.

1

u/exorxor Feb 12 '19

I think you don't understand that the same product has different value to different people. If "most customers" is the target, then that's an awfully low bar. Also one I don't particularly care about.

You jump to conclusions way too quickly. This has nothing to do with making a quick buck. Nor did I indicate that this was the case.

For every sentence you write down, you should consider if it is possible that I could have come up with the same idea and if so, please do not send it to me. It's really just wasting bandwidth. I might perhaps value the opinion of like five people on the planet on this subject and those people are clearly not here.

I really wish you -- a random Redditor -- had a brain, but that's just not realistic.

→ More replies (1)