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.
The Imperative Paradigm
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.
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.