4 programming paradigms
I recently came accross a very interesting and fast paced video about 4 paradigms within programming by Aja Hammerly at RubyHACK 2018. It was interesting because it divided different programming languages into 4 types:
- Object-oriented like Ruby and Python
- everything is an object with a state and behaviour
- objects can interact
- strengths are modeling, reusability, and ease of testing
- Functional like Lisp and Racket
- purely functional in that input leads directly to output
- works on data by way of procedures
- strengths are concurrency, easier to test, reusability, and brevity
- Logic and constrained like Prolog
- is about what NOT how
- contains formalized logic and pattern matching
- utilizes facts and clauses
- strengths are flexibility and constraints
- Procedural like Assembly
- everything is stored in registers
- computations on items in registers
- strengths are simple, scripting, and easy to write
The video did a excellent job in highlighting the differences in programming philosophy and why some programming languages are better for various types of software projects. But for those interested in learning more about this, I strongly recommend to watch the video. Here is the link to the video. And for those who are interested in the presenter, Aja Hammerly, here is the link to her website.
I know this is a shorter blog post so stay tuned in the next few weeks for more to come.