Ninety percent of everything is crap
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
- ChatGPT should include inline tips - 30th May 2023
- Lawyer cites fake cases invented by ChatGPT, judge is not amused - 27th May 2023
- llm, ttok and strip-tags - CLI tools for working with ChatGPT and other LLMs - 18th May 2023
- Delimiters won't save you from prompt injection - 11th May 2023
- Weeknotes: sqlite-utils 3.31, download-esm, Python in a sandbox - 10th May 2023
- Leaked Google document: "We Have No Moat, And Neither Does OpenAI" - 4th May 2023
- Midjourney 5.1 - 4th May 2023
- Prompt injection explained, with video, slides, and a transcript - 2nd May 2023
- download-esm: a tool for downloading ECMAScript modules - 2nd May 2023
- Let's be bear or bunny - 1st May 2023