Quick Comparison of Programming Languages
The ZedLX programming language has been specifically designed for kids, to be fun to use and easy to learn. No other language on this list has been designed with considerations for kids and young adults.
The most superficial comparison between languages can be made on a syntactic level. The syntax of a programming language specifies how various language constructs are written.
Python is the only language on the list that uses somewhat different, but still similar syntax. Python does not have a free-form syntax.
While ZedLX is more similar to the rest of the programming languages, its syntax is not entirely in C-style. Instead, it leans somewhat towards the Python-style syntax.
Similarity of Syntax
Since syntax of all the most popular programming languages in existence shows only small differences, most people usually don't experience a lot of syntactic issues when switching between languages.
Syntax of a programming language is easy to learn. The hard thing to learn is how to effectively utilize all the common programming language features. All the mentioned languages have the same basic features: expressions, loops, variables, functions, types, etc. The advanced features are also very similar.
Level of Abstraction
The syntax of a programming language is mostly a superficial issue. On a deeper level, we can divide languages by the level of abstraction.
The C programming language has a low level of abstraction.
The C++ programming language has a mix of low level and high-level features.
ZedLX is a high-level language. Its level of abstraction is even higher than in the other languages. This is by design, as the authors of the language opine that learning computer programming should start at the highest possible level of abstraction. Some old-school programmers might disagree with such opinions.
Static vs Dynamic Type System
A very important distinction amongst popular programming languages is in type systems.
The languages C, C++, Java and C# use a static type system.
ZedLX uses a static type system. It helps beginners to detect errors in their programs.
For this comparison, we will examine another important distinction among popular programming languages: argument passing convention.
The languages C and C++ use call-by-value.
ZedLX always uses call-by-value, therefore it is more similar to C and C++. Call-by-value is more beginner-friendly than object-sharing.
In C and C++ the situation is actually a bit more complicated, but let's not get into too many details.
Differences Between C and C++
People always wonder what is the difference between C and C++.
C language is much older than C++. The C++ programming language can be thought of as created by adding many useful features to the C language.
Therefore, it is easy to write a C program that is also a valid C++ program. On the opposite, if you were writing a C++ program, the moment you use any C++ feature, the program becomes an invalid C program.
All the added features make C++ a much bigger language than C. Of course, the added features are quite useful, so most programmers prefer to have them available. The number of features in C++ is so big that many of them are commonly unused. In fact, there are very few people who can say that they know the entire C++ language well. The C++ language is so big.
As the added features make the language more elegant, it is much easier to write programs in C++ than in C. It is also much easier to learn programming basics in C++ than in C.
For complete beginners, the C programming language is very hard to master. The language is both very small and hard to learn at the same time, because it is missing many features that make programming easier.
The C language is such a small language that a person can learn the entire language and still be a bad programmer.
Learning Computer Programming
Learning computer programming is not the same as learning a programming language. Learning a particular programming language is of lesser importance.
The important thing to learn is how to effectively use various features of programming languages to create programs that have the functionality you have imagined.
Learning computer programming is a long and never-ending process. The more you learn, the better programs you can create.
ZedLX is designed as a programming language for kids and other beginners. It is a programming language for learning computer programming.
ZedLX helps kids and adults to learn programming with very simple, clean and beginner-friendly syntax, error messages designed for beginners, well designed type system, and a lot more.
A person who has mastered ZedLX will have no trouble switching to any other mentioned programming language.
On a superficial level, it can immediately be noticed that ZedLX has built-in computer graphics functions. All other mentioned languages don't have this feature. To use computer graphics in other languages, a suitable library needs to be included and the library initialization procedure must be performed. This task is usually too complex for total beginners, so ZedLX does it all automatically.
The built-in computer graphics is less important for its own sake, but it can be very useful as a visualization aid for other more important programming concepts.
Without computer graphics, too many chapters with nothing else but text and number processing would be required. That sounds boring, doesn't it?
Computer graphics is fun, so why not use it. ZedLX enables using computer graphics from the first lesson onward. Kids love ZedLX.
There are, of course, many other differences between programming languages, but this short chapter covers only the most important ones.
This chapter has talked about syntactic differences, differences in level of abstraction, static and dynamic typing, and argument passing convention.
Of course, at this stage of learning, you cannot know the exact meaning of those terms. Except, perhaps, you have figured out the meaning of the word 'syntax'. The best way, and probably the only way to understand all the differences between programming languages is to learn computer programming.