Paul Rubin wrote: > Steven D'Aprano <[EMAIL PROTECTED]> writes: > >>But there is a difference: writing assembly is *hard*, which is why we >>prefer not to do it. Are you suggesting that functional programming is >>significantly easier to do than declarative? > > > I think you mean imperative. Yes, there is a community that believes > that writing bug-free programs in functional style is easier than > writing them in imperative style. Writing buggy programs might be > easier in imperative style, but in some application areas, that's not > good enough. > > Why don't you read the Hughes paper I cited instead of taking cheap > shots at it without reading it, if you want to understand the issues > better.
Just some comments from my own experiences concerning bugs and writing dependable software. It pretty much depends on a number of things and isn't just a matter of good design or what language is used. * The dependability of the hardware * The dependability of the OS * The stability of the language used * The programmers knowledge of the language used * Program design * How many programmers are working on the same project * How many extensions are used and written by other people * The stability of those extensions * Rate of change of the program design, and all underlying parts. A small program with no external modules and written by a single person can be fairly dependable, or as dependable as the underlying language, OS, and hardware. But as soon as the softwares complexity increases and/or multiple programmers are used, either directly or indirectly through third party extensions, then the probability of bugs increases substantially. Given *enough* time, effort, and testing, without changing the design, even a large program can be nearly as dependable as the least dependable part of the platform it is running on. ("enough" could be a long time here.) To increase reliability to nearly 100%, you need to run different versions of a program on several different platforms simultaneously and use only the results that have a majority agreement. Or to put it another way; risk management by ... "keep it simple", "don't have too many cooks", "get second opinions", and "don't put all your eggs in one basket". Cheers, Ron -- http://mail.python.org/mailman/listinfo/python-list