dijkstra
Rineke Dijkstra, Photographer, Has First Retrospective - NYTimes.com
8 weeks ago by meghanclare
Rineke #Dijkstra retrospective . Also I found this handy guide to pronouncing artsists' names:
Dijkstra
from twitter
8 weeks ago by meghanclare
E.W.Dijkstra Archive: The Humble Programmer (EWD 340)
11 weeks ago by noahsussman
after having listened to my problems patiently, he agreed that up till that moment there was not much of a programming discipline, but then he went on to explain quietly that automatic computers were here to stay, that we were just at the beginning and could not I be one of the persons called to make programming a respectable discipline in the years to come? This was a turning point in my life and I completed my study of physics formally as quickly as I could. One moral of the above story is, of course, that we must be very careful when we give advice to younger people; sometimes they follow it!
Two opinions about programming date from those [earliest] days [of mainframe computers]. I mention them now, I shall return to them later. The one opinion was that a really competent programmer should be puzzle-minded and very fond of clever tricks; the other opinon was that programming was nothing more than optimizing the efficiency of the computational process, in one direction or the other.
LISP has jokingly been described as "the most intelligent way to misuse a computer". I think that description a great compliment because it transmits the full flavour of liberation: it has assisted a number of our most gifted fellow humans in thinking previously impossible thoughts.
...software seems to be different from many other products, where as a rule a higher quality implies a higher price. Those who want really reliable software will discover that they must find means of avoiding the majority of bugs to start with, and as a result the programming process will become cheaper. If you want more effective programmers, you will discover that they should not waste their time debugging, they should not introduce the bugs to start with. In other words: both goals point to the same change.
Today a usual technique is to make a program and then to test it. But: program testing can be a very effective way to show the presence of bugs, but is hopelessly inadequate for showing their absence. The only effective way to raise the confidence level of a program significantly is to give a convincing proof of its correctness. But one should not first make the program and then prove its correctness, because then the requirement of providing the proof would only increase the poor programmer's burden. On the contrary: the programmer should let correctness proof and program grow hand in hand. Argument three is essentially based on the following observation. If one first asks oneself what the structure of a convincing proof would be and, having found this, then constructs a program satisfying this proof's requirements, then these correctness concerns turn out to be a very effective heuristic guidance. By definition this approach is only applicable when we restrict ourselves to intellectually manageable programs...
The competent programmer is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility, and among other things he avoids clever tricks like the plague.
Hierarchical systems seem to have the property that something considered as an undivided entity on one level, is considered as a composite object on the next lower level of greater detail; as a result the natural grain of space or time that is applicable at each level decreases by an order of magnitude when we shift our attention from one level to the next lower one. We understand walls in terms of bricks, bricks in terms of crystals, crystals in terms of molecules etc. As a result the number of levels that can be distinguished meaningfully in a hierarchical system is kind of proportional to the logarithm of the ratio between the largest and the smallest grain, and therefore, unless this ratio is very large, we cannot expect many levels. In computer programming our basic building block has an associated time grain of less than a microsecond, but our program may take hours of computation time. I do not know of any other technology covering a ratio of 1010 or more: the computer, by virtue of its fantastic speed, seems to be the first to provide us with an environment where highly hierarchical artefacts are both possible and necessary.
dijkstra
lectures
history
philosophy
programming
software
clever
tricks
plague
complexity
simplcity
teaching
learning
future
futurism
1970s
computer
Lisp
bugs
quality
debugging
code
prevention
architecture
reliability
comprehensibility
testing
TDD
design
thinking
hierarchy
systems
hierarchical
abstraction
Two opinions about programming date from those [earliest] days [of mainframe computers]. I mention them now, I shall return to them later. The one opinion was that a really competent programmer should be puzzle-minded and very fond of clever tricks; the other opinon was that programming was nothing more than optimizing the efficiency of the computational process, in one direction or the other.
LISP has jokingly been described as "the most intelligent way to misuse a computer". I think that description a great compliment because it transmits the full flavour of liberation: it has assisted a number of our most gifted fellow humans in thinking previously impossible thoughts.
...software seems to be different from many other products, where as a rule a higher quality implies a higher price. Those who want really reliable software will discover that they must find means of avoiding the majority of bugs to start with, and as a result the programming process will become cheaper. If you want more effective programmers, you will discover that they should not waste their time debugging, they should not introduce the bugs to start with. In other words: both goals point to the same change.
Today a usual technique is to make a program and then to test it. But: program testing can be a very effective way to show the presence of bugs, but is hopelessly inadequate for showing their absence. The only effective way to raise the confidence level of a program significantly is to give a convincing proof of its correctness. But one should not first make the program and then prove its correctness, because then the requirement of providing the proof would only increase the poor programmer's burden. On the contrary: the programmer should let correctness proof and program grow hand in hand. Argument three is essentially based on the following observation. If one first asks oneself what the structure of a convincing proof would be and, having found this, then constructs a program satisfying this proof's requirements, then these correctness concerns turn out to be a very effective heuristic guidance. By definition this approach is only applicable when we restrict ourselves to intellectually manageable programs...
The competent programmer is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility, and among other things he avoids clever tricks like the plague.
Hierarchical systems seem to have the property that something considered as an undivided entity on one level, is considered as a composite object on the next lower level of greater detail; as a result the natural grain of space or time that is applicable at each level decreases by an order of magnitude when we shift our attention from one level to the next lower one. We understand walls in terms of bricks, bricks in terms of crystals, crystals in terms of molecules etc. As a result the number of levels that can be distinguished meaningfully in a hierarchical system is kind of proportional to the logarithm of the ratio between the largest and the smallest grain, and therefore, unless this ratio is very large, we cannot expect many levels. In computer programming our basic building block has an associated time grain of less than a microsecond, but our program may take hours of computation time. I do not know of any other technology covering a ratio of 1010 or more: the computer, by virtue of its fantastic speed, seems to be the first to provide us with an environment where highly hierarchical artefacts are both possible and necessary.
11 weeks ago by noahsussman
E.W.Dijkstra Archive: Transcriptions
12 weeks ago by sysprv
A group of volunteers is undertaking to transcribe the EWDs and other documents to simple HTML files, in order to make them both searchable and accessible to the visually impaired.
ewd
dutch
dijkstra
logic
opinion
mathematics
utexas
archive
computer
science
engineering
rigorous
rigour
12 weeks ago by sysprv
Edsger W. Dijkstra - Wikiquote
12 weeks ago by robquick
Program testing can be used to show the presence of bugs, but never to show their absence!
softwareengineering
softw
programming
dijkstra
quotes
from delicious
12 weeks ago by robquick
Edsger Dijkstra - How do we tell truths that might hurt?
february 2012 by olive
How do we tell truths that might hurt?
programming
software
dijkstra
february 2012 by olive
E.W. Dijkstra Archive: On the cruelty of really teaching computing science (EWD 1036)
february 2012 by kybernetikos
From a bit to a few hundred megabytes, from a microsecond to a half an hour of computing confronts us with completely baffling ratio of 10^9! The programmer is in the unique position that his is the only discipline and profession in which such a gigantic ratio, which totally baffles our imagination, has to be bridged by a single technology. He has to be able to think in terms of conceptual hierarchies that are much deeper than a single mind ever needed to face before. Compared to that number of semantic levels, the average mathematical theory is almost flat. By evoking the need for deep conceptual hierarchies, the automatic computer confronts us with a radically new intellectual challenge that has no precedent in our history.
education
programming
dijkstra
formalmethods
maths
softwareengineering
proof
lecture
february 2012 by kybernetikos
And, Why Didn't Dijkstra Like Lisp? - Kazimir Majorinc's Lisp Programming Blog
february 2012 by mcherm
Dijkstra didn't like Lisp because he didn't like the fundamental Von-Neuman idea of treating data as code. It is fundamentally at odds with the attempt to achieve provably correct programs.
dijkstra
programming
philosophy
via:twitter
blogworthy
february 2012 by mcherm
E.W.Dijkstra Archive: Under the spell of Leibniz's Dream (EWD 1298)
january 2012 by SirPavlova
On the fall of true academia—a blend of theory & practice giving way to mere impoverished practice—& the rise of mathematical formalism thanks to the unforgiving nature of the computer.
computerscience
mathematics
history
people
dijkstra
speech
january 2012 by SirPavlova
E.W. Dijkstra Archive: The end of Computing Science? (EWD1304)
january 2012 by noahsussman
You see, while we all know that unmastered complexity is at the root of the misery, we do not know what degree of simplicity can be obtained
dijkstra
complexity
comprehensibility
software
january 2012 by noahsussman
Smoothsort Demystified
january 2012 by jemfinch
Best article on Smoothsort I've seen. Sadly, even in the O(n) cases, smoothsort is slower than std::sort, likely due to cache behavior.
sorting
smoothsort
dijkstra
algorithms
programming
january 2012 by jemfinch
EWD1036.PDF (application/pdf Object)
november 2011 by krakatoa
Edsger Dijkstra's On the Cruelty of Really Teaching Computer Science' (PDF)
pdf
dijkstra
computing
handwriting
november 2011 by krakatoa