There are many programming languages in use in the world. I already know the commonly used programming languages such as Java, JavaScript, C#, C++, Python, Ruby, PHP, Lua, etc. Programming Language Paradigm is Burmese. The way of writing is like a model of thinking. A little confused. I will explain again. For example, the most commonly used imperative programming language. Paradigms such as Object Object Oriented Programming, procedural programming, etc. If the Paradigm goes away, a language. Thinking is different. For example, in the OO paradigm, everything is considered as an object and the solution is produced. Procedural Language (Cobol, VB). One thing to be aware of is that many later programming languages support multi-paradigm. For example, C# supports the OO paradigm and includes constructs for functional programming.
As software development becomes more complicated, it is no longer convenient to solve all problems with a single paradigm. For example, Java police. Spring, a prominent web application framework, uses the AspectJ programming language, which uses the Aspect Oriented Programming Paradigm, and uses transaction management and log writing. What this shows is that we need to clear everything from one paradigm. It’s not all right. Programming languages are becoming more modern. can be evolved at the same time. Evolved means adding new elements and idioms to the language according to the times. The language that doesn’t do that is left. For example, PHP does not support the new OO paradigm. He will support OO Paradigm only when the later versions arrive. Construct and language elements were added. According to Evolution Theory, we can only survive by evolving. If it evolves too much, the programmers may have a learning curve. Therefore, if you look at it from the language designer’s side, you can think about adding a construct. C# evolves a lot and Java evolves very slowly. I want to say. It’s okay. It’s a consequence. Java Police. There are languages that are optimized using the JVM. For example Clojure, Scala, Groovy. Paradigm is easy to say that you have to write a program like basic thinking. For example, we are C. You can write object oriented programs. If only there was object thinking. But C doesn’t directly support the OO paradigm, so it won’t be easy to write. Therefore, it would be more convenient to write OO thinking using a language that directly supports the OO paradigm. If you learn a language with the same paradigm, it is easy to learn another language, but when you learn another language with a different paradigm, it is not as easy as learning the same language because of the difference in concept and thinking. When you know programming languages that are multi-paradigm, you will be able to think more broadly about what problem should be solved and how to solve it because of the Cross Pollination Effect. As a good programmer, it is not convenient to be proficient in only one programming language. Learning different Paradigm languages or different programming languages will eliminate the big mistake of thinking that only the language I’m using is the best. For example, when implementing the Observer Pattern in C#, it will be easier than Java, because C# has events and delegates. Mulicast subscribe facility can be provided by delegate, event, so the code will be simpler.
The prominent Major Paradigms are as follows.
Imperative
Object Oriented
Functional
Logic
The Imperative Paradigm
Programming languages built based on the Von Neumann architecture of computers are defined as imperative paradigms. Java, C, C++, C#, JavaScript, Python, Ruby are included. The main core concept is that programs are written using assignment statements and side effects. I work line after line, these languages. I have a question about the assignment. I don’t want to do it. Why? You have to do it because you are strange. In functional programming languages (pure functional languages), you can’t write statements with completely destructive side effects. Another thing is that it works line after line. Isn’t it all like this? Logic programming languages do not execute line by line. Depending on the given fact and predicate, there should be an inference using forward chaining and backward chaining. Inferencing is the process of finding and calculating predicates from the knowledge base to evaluate them as true or false based on given facts and logic.
Object Oriented
The most popular paradigm today is the OO paradigm. He sees everything in the problem as an object. I see and think about it. The advantage is that it can be easily reused (by means of inheritance and composition). Can support maintainable (by means of encapsulation) and so on. The first OO programming language was SIMULA. He. What appeared next was Smalltalk. The Virutal Machine concept is becoming more and more popular at Smalltak. Before that, even JIT (Just In Time) Compilation was available in LISP. Java programmers should know that VM Concept is where I started. OO Paradigm’s languages are Smalltalk, C++, Java, C#, JavaScript, VB.NET, Python, PHP, Ruby, Scala, etc. OO programming languages are pure OO. I still need to divide it into Impure OO. Pure Object Oriented Language is all objects in the language. For example, in Smalltalk, there is no primitive type. All are objects. Objects like Loop and conditional statements. The meaning of methods 1+2 is object literal 1 police. + method parameter. Object 2 is given. The good thing is that according to the concept, everything is consistent and clear. Java, C#, etc. are impure OO languages. The modern programming languages that give the Pure OO concept are Ruby. Scala. JavaScript is used as an Object Based OO language. If it’s an OOP language, at least encapsulation and inheritance. Polymorphism is given.
Functional
Functional programming paradigm. He is green. LISP, ML, Scala, etc. are in it. He took the mathematical function concept and wrote programs. Pure functional programming languages don’t provide side effects like destructive assignment. According to the theory, variables become mutable, and as the value is changed from there to here, there are bugs in the program. This kind of concept is made less destructive assignment using encapsulation in OO paradigm. Since they are mathematical functions, it is easy to prove them. Therefore, functional programs can have fewer bugs and can be easily verified. But if you look at it from the other side, not giving side effects is not convenient in a case like IO. That’s why pure functional languages are not in the mainstream. Later, hybrid OO+functional languages were combined with OOP. The obvious language is Scala.
Logic
He is used on the side of AI. Mainly axioms (facts that are known for sure). predicate (which point. If the point is axiom, what could be the function). For example, grandfather is a man. This is an axiom. It’s a predicate, whether the boy is male or not. If the goal is that the grandfather is a man, then he is a hero. According to the knowledge base, of course it will be answered. The prominent logic programming languages are Prolog and Godel.
Although not in the mentioned paradigm, 2 things that are becoming more common are AOP (Aspect Oriented Programming). Node.js (Asynchronous Programming). AOP has cross cutting concerns and aspects. A programming paradigm that works. Node.js is not a language, but according to his thinking, I want to write asynchronous programming. Unique. Filled up.