You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
So, what is the way out of the tar pit? What is the silver bullet? … it may not be FRP, but we believe there can be no doubt that it is <em>simplicity</em>.
31
+
So, what is the way out of the tar pit? What is the silver bullet? … it may not be FRP, but we believe there can be no doubt that it is <em>simplicity</em>.
As Dijkstra said [<ahref="references.html#Dij97" class="reference">Dij97</a>, EWD1243]
28
28
<blockquote>
29
-
“…we have to keep it crisp, disentangled, and simple if we refuse to be crushed by the complexities of our own making…”
29
+
“…we have to keep it crisp, disentangled, and simple if we refuse to be crushed by the complexities of our own making…”
30
30
</blockquote>
31
31
</p>
32
32
33
33
<p>
34
-
…and the Economist devoted a whole article to software complexity [<ahref="references.html#Eco04" class="reference">Eco04</a>] — noting that by some estimates software problems cost the American economy $59 billion annually.
34
+
…and the Economist devoted a whole article to software complexity [<ahref="references.html#Eco04" class="reference">Eco04</a>] — noting that by some estimates software problems cost the American economy $59 billion annually.
35
35
</p>
36
36
37
37
<p>
38
38
Being able to think and reason about our systems (particularly the effects of changes to those systems) is of <em>crucial</em> importance.
39
39
The dangers of complexity and the importance of simplicity in this regard have also been a popular topic in ACM Turing award lectures.
40
40
In his 1990 lecture Corbato said [<ahref="references.html#Cor91" class="reference">Cor91</a>]:
41
41
<blockquote>
42
-
“The general problem with ambitious systems is complexity.”, “…it is important to emphasize the value of simplicity and elegance, for complexity has a way of compounding difficulties”
42
+
“The general problem with ambitious systems is complexity.”, “…it is important to emphasize the value of simplicity and elegance, for complexity has a way of compounding difficulties”
43
43
</blockquote>
44
44
</p>
45
45
46
46
<p>
47
47
In 1977 Backus [<ahref="references.html#Bac78" class="reference">Bac78</a>] talked about the “complexities and weaknesses” of traditional languages and noted:
48
-
<blockquote>“there is a desperate need for a powerful methodology to help us think about programs. … conventional languages create unnecessary confusion in the way we think about programs”</blockquote>
48
+
<blockquote>“there is a desperate need for a powerful methodology to help us think about programs. … conventional languages create unnecessary confusion in the way we think about programs”</blockquote>
49
49
</p>
50
50
51
51
<p>
52
52
Finally, in his Turing award speech in 1980 Hoare [<ahref="references.html#Hoa81" class="reference">Hoa81</a>] observed:
53
53
<blockquote>
54
-
“…there is one quality that cannot be purchased … — and that is reliability.
54
+
“…there is one quality that cannot be purchased … — and that is reliability.
55
55
The price of reliability is the pursuit of the utmost simplicity”
Copy file name to clipboardExpand all lines: OEBPS/section-3.html
+1-1
Original file line number
Diff line number
Diff line change
@@ -56,7 +56,7 @@ <h2 id="section-3">3 Approaches to Understanding</h2>
56
56
The huge number of different possible inputs usually rules out the possibility of testing them all, hence the unavoidable concern with testing will always be — <em>have you performed the </em>right<em> tests</em>?.
57
57
The only certain answer you will ever get to this question is an answer in the negative — when the system breaks. Again, as Dijkstra observed [<ahref="references.html#Dij71" class="reference">Dij71</a>, EWD303]:
58
58
<blockquote>
59
-
“testing is hopelessly inadequate.…(it) can be used very effectively to show the presence of bugs but never to show their absence.”
59
+
“testing is hopelessly inadequate.…(it) can be used very effectively to show the presence of bugs but never to show their absence.”
0 commit comments