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: datasette-enrichments, datasette-comments, sqlite-chronicle - 8th December 2023
- Datasette Enrichments: a new plugin framework for augmenting your data - 1st December 2023
- llamafile is the new best way to run a LLM on your own computer - 29th November 2023
- Prompt injection explained, November 2023 edition - 27th November 2023
- I'm on the Newsroom Robots podcast, with thoughts on the OpenAI board - 25th November 2023
- Weeknotes: DevDay, GitHub Universe, OpenAI chaos - 22nd November 2023
- Deciphering clues in a news article to understand how it was reported - 22nd November 2023
- Exploring GPTs: ChatGPT in a trench coat? - 15th November 2023
- Financial sustainability for open source projects at GitHub Universe - 10th November 2023
- ospeak: a CLI tool for speaking text in the terminal via OpenAI - 7th November 2023