An indigestible programming language is a bad language

When I was on my Gap Year, I came across this book while practicing on codecademy. I only looked at the chapter on Ruby, and at that time I thought knowing Go was already quite geeky.

A year later, when the company I am currently working for was refactoring the backend, we considered using Scala. One of my friends, thinking that game development had higher salaries, decided to learn Erlang. I attended a sharing session at a Thoughtworks event and heard about Clojure.

Upon revisiting this book, I suddenly realized it covered Ruby, Io, Prolog, Scala, Erlang, Clojure, Haskell.

I felt like I had been looking at the sky from the bottom of a well. Upon flipping through this book again, I realized that I don’t really need to read it.

So if you are just curious and want to satisfy your curiosity, you can take a look, but if you want to seriously learn, it’s better to skip it.


In the realm of programming languages, there are various categories that they typically fall into:

  1. Paradigms
  • Functional
  • Object-Oriented
  • Prototypical
  1. Data Structures and Algorithms
  2. Data Structures
    • Types
    • Linked Lists
    • Hash Tables
  3. Procedures
    • Conditionals
    • Loops
  4. Concurrency

Regarding concurrency, since procedures do not align with human thinking, apparently there is currently no good way to handle it. Even if it gets resolved in the future, it would probably be accomplished by some genius who writes good abstractions, making it as simple for someone as average as me to handle as writing an if else statement.

In my opinion, the popularity of a programming language is closely tied to the following factors:

  1. Commercial promotion (Java|OC)
  2. Security and stability
  3. Ease of human readability

There’s no need to elaborate on the first two points; talking about them too much will just bring tears.

In “Seven Languages in Seven Weeks”, it is mentioned that:
“In many ways, Clojure is the wise kung fu master, the oracle on the hill, or the enigmatic Jedi trainer.”

I learned about the benefits of Lisp from “Hackers and Painters” and it is hailed as the “God-like editor” by Emacs users.

However, even though it is praised to the skies, it still hasn’t become popular. This is a problem that deserves deep thought.

From the perspective of syntax sugar, I remember one time when I used Swift, a programmer from the previous generation (C/C++/Java), without any negative connotation, was astonished just by seeing the return value become -> and the variable type appearing after the variable name. As for myself, I fully accepted syntax sugars like Go Swift, but I also felt that the prefix expression in Lisp was quite uncomfortable. It was manageable with simple expressions, but once it got lengthy, I got dizzy, and the trailing parentheses made me feel like I was dealing with something heretical. This shows how difficult it is for programmers to accept new syntax once they are accustomed to a certain system.

“Code is meant to be read by people.”

So I think that languages with anti-human readability approaches will not disappear, but at least they won’t become popular among humans.

That’s why Mazi took a different approach and focused on how to make programmers enjoy writing code.

Therefore, there is no best language, only the most suitable language.

Of course, the above points do not apply to a situation where computers advance to the point of being able to write code, as that would be beyond the paradigm of humans.

Translated by gpt-3.5-turbo