This is my first article about the Rust programming language, so I wanted to make it a little bit funny and interesting at the same time.
There are lots of great technical articles about Rust, but today we will talk about the keywords defined in Rust and languages that influenced the Rust creation.
Following Wikipedia there are languages that influenced Rust the most.
Rust was influenced by
Alef,C#, C++, Cyclone, Erlang, Haskell, Limbo, Newsqueak, OCaml, Ruby, Scheme, Standard ML, Swift
So, idea is to compare keywords defined in Rust with the keywords defined in “parent” languages and see the match rate and figure out the most “valuable” language. If you are interested you can find all keywords by languages mentioned in the article below.
All comparison result represents in the table, but we can make them more visual.
Keywords comparison table
“Parents” pie chart
“Parents” radar chart
As Java developer I had to include Java in comparison as well, so here we go.
“Parents” pie chart + Java
“Parents” radar chart + Java
Based on chart above and some observations gathered during comparison there are some fun facts:
C# and Swift most influences on Rust development and most critical “parents” of this language.
Erlang is still an important but less valuable “parent” for the Rust.
Rust’s keywords “self” and “Self” must be coming from Swift as this pair presents only there when “self” itself could be found in Swift, Ruby, and Limbo.
Even if Java and Rust share some common pieces there is not influence Java on Rust creation and development
There is no “goto” in Rust which everybody should avoid in Alef, C#, C++, Java.
Rust doesn’t have “new” present in C#, C++, OCaml, Java.
There is no “this” and “void” in Rust which you know by C#, C++, and Java
Rust’s “fn” highly possible goes from Limbo because only Limbo has the same keyword.
Rust’s “macro” must be going from Schema when “match” and “mod’ from OCaml.
Cyclone, Newsqueak, Standard ML are missed in analysis because it is quite difficult to find keywords for them.