Hacker News new | past | comments | ask | show | jobs | submit login

And it's obviously not the developers' fault, but the clients/customers'.

You want a 100% bug-free web browser? OK, so let's define precisely and formally what the browser is supposed to do. Then, you'll sign a very expensive contract, and in 6 months to 1 year, I'll deliver the software, with a formal proof it works as expected. Of course, the requirements won't change during the development process, and any update after delivery will be costly and will take time.

Now, who would want to pay thousands of dollars for a web browser that will be delivered in a year and that will be obsolete as soon as a new fancy web tech will be used everywhere else? I can't really blame the customer/client either.

But the thing is, "agile" requirements rely on craftmanship, not on engineering. You can only engineer durable things. Buildings would crash constantly, too, if they had to be updated each other week, ASAP, and while keeping the costs as low as possible.




Your general argument seems reasonable, but it also doesn't necessarily contradict the GP's point.

If we're going to build something non-trivial that is correct, we first need to specify what a "correct" result would be, in some rigorous, comprehensive, unambiguous form. That in itself is already beyond the vast majority of software development projects, though not necessarily outliers like very high reliability systems.

That is partly because the cost of doing so is prohibitive for most projects. This is a common argument against more widespread use of formal methods.

However, it's also partly because for most projects the desired real world outcomes simply don't have some convenient formalisation. The potential for requirements changing along the way is just one reason for that, though of course it's a particularly common and powerful one. There's also the practical reality that a lot of the time when we build software, we're not exactly sure what we want it to do. What should the correct hyphenation algorithm for a word processor be? How smart do we want the aliens in our game to be when our heroes attempt a flanking manoeuvre? If you're a self-driving car on a road with a 30 legal limit but most drivers around you are doing 40, how fast should you go and why? Once we get into questions of subjective preferences and/or ethical choices, there often isn't one right answer (or sometimes any right answer), so how do we decide what constitutes correct behaviour from the software?


What fun proposal! No one wants it but it is exactly what we need.

It should do a bunch of really creative things then further new fancy web tech shouldn't exist. Something like: Distribute documents signed by their author in a truly robust way. It should have A review and certification system and It should help monetize publishing in a truly transparent way.

Write it in hardware design language and run it in an emulator. :-)


I think you're underestimating the amount of work involved in creating a web browser by multiple orders of magnitude.

If it really took a year to make a bug-free browser, we would have 100 of them instead of 0.


In the early days of the web 94 I worked on web project for British Telecom.

I was told that some one had said well this protocol is all very well but we need to build our own slightly different improved version.

Luckily this was stomped on from a great Hight by senior people at BT Labs


If you want to see extreme cases of this look at code of games. It's no wonder they are so buggy when released.




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

Search: