E.W.Dijkstra: Simplicity is a great virtue ... complexity sells better.
E.W. Dijkstra's discourse advocates for integrating diverse disciplines into computing science, promoting its recognition as a formal branch of mathematics, and emphasizing simplicity and enjoyment in the simplification process.
Read original articleE.W. Dijkstra's discourse at a summer school reflects on the nature of computing science, emphasizing its multifaceted aspects and the confusion surrounding its identity. He critiques the current state of computing education, suggesting that it should encompass various disciplines, including philosophy, psychology, and economics, rather than focusing solely on technical skills. Dijkstra argues that computing should evolve into a formal branch of mathematics, where methodological concerns take precedence over mere factual knowledge. He envisions a future where computing science significantly influences mathematics, akin to the historical impact of physics. However, he acknowledges the challenges of achieving simplicity in a field that often values complexity, both in academia and industry. Dijkstra encourages a shift in perspective, advocating for the pursuit of elegance in computing, which he believes is essential for success. He concludes with a call to prioritize enjoyment in the simplification process, rather than succumbing to the pressures of complexity.
- Dijkstra emphasizes the need for computing science to integrate various disciplines beyond technical skills.
- He advocates for computing to be recognized as a formal branch of mathematics focused on effective reasoning.
- The discourse highlights the tension between the appreciation of simplicity and the prevailing preference for complexity in academia.
- Dijkstra encourages finding joy in the process of simplification within computing science.
- He envisions a future where computing has a profound influence on mathematics, surpassing historical impacts from physics.
Related
Edsger W. Dijkstra
Edsger W. Dijkstra was a Dutch computer scientist known for his contributions to programming and theoretical computer science, including the shortest path algorithm and the first ALGOL 60 compiler. He received the Turing Award in 1972.
Why Does Everyone Hate Haskell, Jazz, and Pure Math?
The article argues that Haskell, jazz, and pure mathematics, often seen as elitist, are crucial for innovation, leading to practical advancements in programming and music, benefiting society overall.
What Is Theoretical Computer Science?
Moshe Y. Vardi argues that theoretical computer science (TCS) is a distinct field essential for understanding computing technology, emphasizing its practical applications and historical evolution, rather than being a subset of mathematics.
Mathematics, Philosophy, and Artificial Intelligence
Gian-Carlo Rota and David Sharp discuss the shift towards interdisciplinary collaboration in science, the emergence of a new discipline, and the need for educational reform to foster creativity and adaptability.
What I learned covering computer science in 2024
Ben Brubaker reflects on computer science in 2024, highlighting its theoretical foundations, advancements in quantum complexity, improvements in classic algorithms, and the need for broader accessibility to theoretical concepts.
- Many commenters agree that achieving simplicity in software design is challenging and often requires significant effort.
- There is a critique of the tech industry's tendency to favor complexity, often due to poor design practices.
- Some express skepticism about the practicality of Dijkstra's ideals in real-world applications, noting that "fun" does not always lead to meaningful advancements.
- Several comments highlight the philosophical implications of Dijkstra's work, suggesting it raises questions about the nature of computing and its societal impact.
- There is a recognition that while Dijkstra's ideas are inspirational, they may not always align with the realities of modern software development.
Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better.
Another good quote is;
To which we may add that, the less the new science is understood, the higher these expectations. We all know, how computing is now expected to cure all ills of the world and more, and how as far as these expectations are concerned, even the sky is no longer accepted as the limit.
The analogy raises, for instance, the questions which current computer-related research will later be identified as computing's alchemy, and whether this identification can be speeded up,
Describes the current ML/AI craze perfectly.
Whoever it was, I think the same holds for software: creating simple software is harder than making complex software.
On the foolishness of "natural language programming".
https://www.cs.utexas.edu/~EWD/transcriptions/EWD06xx/EWD667...
In back office / cloud / IT type stuff I wonder if complex things like Kubernetes win over simpler approaches precisely because they are more expensive and labor intensive. As a result of being labor intensive they pick up more users who after investing in climbing their learning curve become champions. Simpler or more “fire and forget” systems require less labor and so win fewer converts.
I'm pretty much the polar opposite of djikstra, all application almost no theory, but he was a real one...
Personally, I'd prefer if everything he represented was properly demarcated by 'mathematics', leaving its complex, material, physical realisation to 'computer science'. The failure to do this has indoctrinated a generation of people into a mysticism I'm not found of, to say the least.
Honestly that sounds pretty nice.
The hard sciences seem to lead to more real-world applications quicker. Software science only seems to advance when used by tech companies to sell ads. But there's not that many applications for software to perform that function, so there's not really that many material improvements.
They keep coming up with new ways to advertise (who'd have imagined an interactive navigation map that advertises burgers?). But the computer technology that controls the lives of the common man has not progressed much past the 90s. The hardware has gotten denser, sure, but the software has bloated at the same pace, without providing a significantly improved or different user experience. It's still just clicking windows and paging through media, with basically the same software working the same way, just re-written 20 times over.
These new forms of generative AI certainly have the capability to sort out information more efficiently, and skip a lot of the more manual programming required to provide features. But AI was never necessary to take a prompt and turn it into an action, as all the car nav systems in the world have shown for years. Yet for some reason I can't quite fathom, only cars have audible user interfaces? And we traded tactile interfaces for glass screens... because it's prettier?
I don't care about simplicity or complexity, any more than I care about how antibiotics are produced. I care that I can take a pill and get better.
Similarly, it would be great if it were just a little bit easier to do simple things, like check my bank statement, without worrying about "cyber threats", or jumping through hoops when the next password replacement fails, or having to upgrade my app for the 3rd time this week before I'm allowed to check the bank statement, or having to click through offers for yet another credit card, or navigate a complex tree of "features" that varies from app to app, and month to month. I just want to read my god damn statement.
I don't know if the philosophy of producing this technology will ever be resolved. But I've stopped caring. The state of computer science today is, I've given up hoping for something advanced. I'll settle for something that isn't painful.
Please consider using the original title: is "On the nature of Computing Science."
The essay is about much more than simplicity versus complexity.
...and compare it to say, Paul Graham's 'the other road ahead' https://www.paulgraham.com/road.html (2001)
Related
Edsger W. Dijkstra
Edsger W. Dijkstra was a Dutch computer scientist known for his contributions to programming and theoretical computer science, including the shortest path algorithm and the first ALGOL 60 compiler. He received the Turing Award in 1972.
Why Does Everyone Hate Haskell, Jazz, and Pure Math?
The article argues that Haskell, jazz, and pure mathematics, often seen as elitist, are crucial for innovation, leading to practical advancements in programming and music, benefiting society overall.
What Is Theoretical Computer Science?
Moshe Y. Vardi argues that theoretical computer science (TCS) is a distinct field essential for understanding computing technology, emphasizing its practical applications and historical evolution, rather than being a subset of mathematics.
Mathematics, Philosophy, and Artificial Intelligence
Gian-Carlo Rota and David Sharp discuss the shift towards interdisciplinary collaboration in science, the emergence of a new discipline, and the need for educational reform to foster creativity and adaptability.
What I learned covering computer science in 2024
Ben Brubaker reflects on computer science in 2024, highlighting its theoretical foundations, advancements in quantum complexity, improvements in classic algorithms, and the need for broader accessibility to theoretical concepts.