DEV Community


Posted on

Python(/Programming Languages) and Human Languages(English)

What makes Python so similar to the language we use every day?

We know Python is a general purpose programming language. Its design philosophy revolves around readability and indentation, space at the beginning of a line. At its core, it is like Python whispers a familiar tune, echoing the very language we use to navigate the world – human language.

Human languages are “Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa! A means to communicate to create understanding." This is according to two people, Laura and Dan, sitting right here at the time of writing this. That is the best I can do on explaining what human languages are. I know you know what a human language is by the virtue of you as a human being on earth reading this.

Aliens on the other hand??? Eeeeeeeeeeeeh yup!!!

Python is considered to be a beginner friendly programming language as it is easy to read and understand the flow of execution especially for English speakers. Not sure whether it is the case in other languages? Now looking at it, it is ironic that the majority of the programming languages I have come across are oriented to English speakers. For non-English speakers, what is your experience with programming languages in your language? I started here myself, Towards a Universal Python: Translating the Natural Modality of Python into Other Human Languages.

For the sake of my laziness in having to rewrite this article so far, we will use the English language as a representative of human languages. Do forgive me!

If you think about it, any human language somewhat, be it English, Swahili, or Mandarin, rests on a foundation of building blocks – letters, numbers, and symbols. They are the basic foundation of building meaning using that language. Python, too, dances to this. Its fundamental units, the data types like integers, floats, and strings, act as its alphabet, forming the bedrock of complex programs. As we all know programming languages are built to process data into useful information which comes in the forms of bits,0s and 1s, state of on and off.

  • Human Language Building Blocks
    Human Language Building Blocks

  • Datatypes:

    1. Integer - 4, 99, 100
    2. Float - 4.0, 99.78, 100.29
    3. String - “Let Us”
    4. Boolean - True(1), False(0)

Human languages take these seemingly simple elements and turn them into words, sentences and stories giving meaning. This meaning is given by the characters mixed together to form words that are then structured according to the language’s syntax and semantics. Python on the other hand is built around the same structure where instructions that give meaning to the data types are built around the data type following the language’s syntax and semantics.

So can I go ahead and say that these two share the following concepts but not limited to:

  1. Building Blocks - Just like any alphabet/symbols/numerals constructs words, Python's data types (int, float, string) serve as the fundamental elements for building complex instructions.
  2. Meaning & Structure - Similar to how words combine with syntax and semantics to convey meaning in human languages, Python follows a specific grammatical structure (syntax) and rules of interpretation (semantics) to give meaning to the combinations of data types and instructions.
  3. Flow of Execution - The emphasis on readability and the clear flow of execution in Python mirrors how human languages strive for clarity and logical progression in spoken or written communication.
  4. Abstraction - Python, and many other high-level languages, utilize abstraction to hide the underlying machinery of bits and bytes, allowing programmers to focus on the bigger picture logic, just like human languages allow us to express complex ideas without dwelling on the mechanics of sound or symbols.
  5. Evolution - Both human languages and programming languages evolve over time. New words and expressions arise in languages, while features and libraries are added to programming languages. Exploring the parallels in how these changes occur and impact usage and understanding could be another interesting angle.
  6. Limitation - Despite the similarities, it's important to acknowledge the differences. Human languages have ambiguity and nuance that programming languages struggle with. Conversely, programming languages offer precision and determinism that are often absent in human communication.

So, is Python truly a linguistic twin to the human languages? Perhaps not a perfect mirror image, but certainly a close cousin.

I could be wrong but I think I am onto something. It's a conversation worth having, reminding us that even in the cold logic of machines, there beats a familiar rhythm.

Exploring the Possibilities: Andrew Muhoro.

Top comments (0)