recentpopularlog in

dijkstra

«    
Rineke Dijkstra, Photographer, Has First Retrospective - NYTimes.com
Rineke 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)
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 
11 weeks ago by noahsussman
E.W.Dijkstra Archive: Transcriptions
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
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
E.W. Dijkstra Archive: On the cruelty of really teaching computing science (EWD 1036)
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
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)
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)
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
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)
Edsger Dijkstra's On the Cruelty of Really Teaching Computer Science' (PDF)
pdf  dijkstra  computing  handwriting 
november 2011 by krakatoa

Copy this bookmark:





private to read