Ninety percent of everything is crap
15th May 2003
Via the comments on Robert C. Martin’s One per Pixel, I came across Sturgeon’s Law from the Pragmatic Programmers: Ninety percent of everything is crap
. The article has the following to say about software development:
Abstraction is the key to success in designing and programming computer systems. Your favorite programming language should allow you to easily map an abstract problem domain onto the more constrained solution domain of data structures and logic.
This simple message is exactly the point put across in the classic text book Structure and Interpretation of Computer Programs, which I had to review as part of a recent coursework assignment on the Scheme programming language. The pragmatic programmers article goes on to discuss how todays most popular languages, C++ and Java, do a very bad job of helping to build abstractions: Typing public static void main (String[] args)
is hardly the most intuitive way of defining the entry point of a program!
One of the things I liked most about SICP was its constant theme that no one language is perfect for any one job, and there is no harm in defining new languages to fit new problem spaces. The Lisp / Scheme / Functional style of programming seems to revolve around building the language up towards the problem, rather than hacking at the problem until it has been expressed in the language.
I guess what I’m trying to say is that over the past few weeks I’ve really learnt to appreciate the importance of accepting and studying a wide range of different languages and programming techniques. Just because anything can be written in a language (which should be true of any language that is Turing complete) doesn’t mean there aren’t more effective ways of solving a problem available if you look elsewhere.
More recent articles
- Weeknotes: more datasette-secrets, plus a mystery video project - 7th May 2024
- Weeknotes: Llama 3, AI for Data Journalism, llm-evals and datasette-secrets - 23rd April 2024
- Options for accessing Llama 3 from the terminal using LLM - 22nd April 2024
- AI for Data Journalism: demonstrating what we can do with this stuff right now - 17th April 2024
- Three major LLM releases in 24 hours (plus weeknotes) - 10th April 2024
- Building files-to-prompt entirely using Claude 3 Opus - 8th April 2024
- Running OCR against PDFs and images directly in your browser - 30th March 2024
- llm cmd undo last git commit - a new plugin for LLM - 26th March 2024
- Building and testing C extensions for SQLite with ChatGPT Code Interpreter - 23rd March 2024
- Claude and ChatGPT for ad-hoc sidequests - 22nd March 2024