[PYTHON] When learning a programming language, it's a good idea to first look at the family tree of the programming language.

What is the pedigree of programming language?

It is a genealogy that shows when and what language a programming was born under.

Here is the family tree of the programming language

There are several sites that have a programming family tree, but this time I will introduce this site.

diagram & history of programming languages (Genealogy of programming languages)

program_diagram.PNG

Two versions are listed, one for the major languages only and one with over 150 languages. As of August 2020, it is listed up to 2018.

Pick up several languages

Let's pick up some languages from the diagram of the major languages.

C language (K & R)

--Birth: 1978 --Affected languages: Algol 60 --Affected languages: C ++, Python (and many other descendants)

note) The C language was born in 1972, but the linked figure adopts the year when "The C Programming Language" (original title: The C Programming Language, commonly known as K & R) was published. (Reference: C language --Wikipedia, [Programming language C --Wikipedia](https://ja .wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0% E8% A8% 80% E8% AA% 9EC))

Python

--Birth: 1991 --Affected languages: C, C ++, Pascal --Influenced languages: Ruby

Ruby

--Birth: 1995 --Affected languages: Perl, Eiffel, Python --Affected languages: Swift

Java

--Birth: 1995 --Affected languages: C ++ --Affected languages: JavaScript, C #, Kotlin

JavaScript

--Birth: 1995 --Affected languages: Java --Influenced languages: Kotlin

When learning a programming language (second language or later), it is a good idea to first look at the family diagram of the programming language.

As for the title, it is recommended that you check this family tree first when learning a second or subsequent programming language.

Reason

――Because you can grasp the difficulty of learning by how far the programming language you already know and the newly learned language are. ――If you are newer than a programming language you already know, you can proceed with learning while expecting a new and convenient syntax. ――If you are older than the programming language you already know, you can proceed with learning while being prepared for the lack of useful functions.

is.

In my case, I tried to learn Ruby when I had 5 years of experience in Java and Perl was able to write a little in batch. At that time, I learned that Ruby was influenced by Perl, which helped me understand the syntax. On the other hand, I had a hard time with that part because I had almost no knowledge of functional languages, but I think it was good to be able to predict that in advance.

Afterword

"First Ruby ”(Author: Yugui) has a family tree of programming languages related to Ruby. This figure was very helpful in understanding Ruby.

When I was looking for diagrams in other languages, I found the one linked to.

Programming languages have evolved significantly over the last few decades.

Recommended Posts

When learning a programming language, it's a good idea to first look at the family tree of the programming language.
Take a look at the Python built-in exception tree structure
Let's take a look at the feature map of YOLO v3
Take a look at the built-in exception tree structure in Python 3.8.2
[Machine learning pictorial book] A memo when performing the Python exercise at the end of the book while checking the data
About the order of learning programming languages (from beginner to intermediate) Part 2
How to put a line number at the beginning of a CSV file
Words that may be confusing to read at first glance ~ Mainly in the field of Web / machine learning ~
[Words spelled to me when I was in the first grade ①] I'm not afraid to build a programming environment.
I tried to understand the learning function of neural networks carefully without using a machine learning library (first half).
The story of IPv6 address that I want to keep at a minimum
A programming beginner tried to find out the execution time of sorting etc.
The first thing to check when a No Reverse Match occurs in Django