Paul Rubin wrote: > Steven D'Aprano <steve at REMOVETHIScyber.com.au> 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
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4