Have language researchers gotten it all wrong?
Derek Parnell
derek at psych.ward
Sun Jul 5 16:36:51 PDT 2009
On Sun, 05 Jul 2009 14:02:54 -0700, Walter Bright wrote:
> Certainly, this is a very interesting topic for D's development.
>
> http://www.reddit.com/r/programming/comments/8yeb0/cacm_almost_the_entire_software_community_has/
Yes, it is interesting and no, language researchers have not got it /all/
wrong.
If /bug/ is defined as application behaviour that is contrary to its
specification, then what we developers need when creating applications is a
toolset that enables us to translate specifications into programs.
Currently, a large part of that //toolset// is human skill - understanding
a specification, selecting the appropriate algorithm, selecting the
appropriate implementation of algorithms, avoiding scope creep, manually
copying specification excerpts to code (eg. text of error messages, scalar
factors, etc...) ... and the list goes on. These are areas in which
research is sorely needed. Writing code is a minor part of application
development.
One can write code which works 100% correctly, according to the developer's
understanding of the issue being addressed, but it doesn't mean that the
application will satisfy the people who commissioned it.
Static typing can help us avoid a specific subset of bug-types, and unit
testing can also help us avoid another specific subset of bugs. These two
sub-sets are not disjoint. They are also not the entire set of bug-types
possible.
Another important consideration, and this comes from over 30 years in the
development world, many programs are not required to be 100% correct.
Customers are often happy to trade-off time and cost for a small number of
known bugs. The existence of bugs is not the main issue, but the impact of
those bugs are. If they are trivial (from the point of view of the people
paying for the development) then spending money on avoiding them is not
rational. This is often hard for us quality purists to accept, and I grate
every time I'm asked to compromise. But that's how the system works.
This I suspect is why dynamic typed languages are proving popular, because
you can get a 99% correct program shipped without having to spend 200% of
the money available.
--
Derek Parnell
Melbourne, Australia
skype: derek.j.parnell
More information about the Digitalmars-d
mailing list