Paradigms

As far as I can tell there are four major programming paradigms, functional, object oriented, metaprogramming and procedural. I’m basically going to go over each and give my opinions of them in turn.

FUNCTIONAL: The most famous example of this is the various LISP dialects. It basically is programming using mathematical functions and takes a lot of stuff from lambda calculus. It’s got to be the most interesting paradigm I’ve tried so far and I’m quite sad that I haven’t used it much. It essentially feels like building up something grand from simple pieces. I’m probably saying this horribly wrong due to my aforementioned lack of experience though.

PROCEDURAL: The most famous example of this is C, though I think BASIC is a bit better example. Procedural is essentially feeding in commands for the computer to do, giving directions for driving would be a good analogy here. It’s the paradigm I’m most familiar with however, like all of them, I may be completely wrong on these things, I’m just saying how I think of them.

OBJECT-ORIENTED: Best examples are probably smalltalk and ruby. This is one of my favorite paradigms, it essentially states that everything is an object and every object has parts. For example, pick up, say…a book. you can seperate this book into, say, front cover, index, content, autor’s notes, back cover. All of those are encompassed within the single book object. Object oriented programming is very useful in games where you can really put each thing in it’s own object and create objects accordingly.

METAPROGRAMMING: Best example I can think of for this is LISP. Metaprogramming is writing programs to write programs, I’ve never had the pleasure of exploring this paradigm so I sadly can’t say anything much about it.

Bonus! I’m going to list some languages and their major paradigm(s) to give you a better idea of what’s what.

C: procedural
C++: Procedural/Object Oriented
LISP:Functional
Python: Procedural/Object Oriented
Ruby: Object Oriented
Smalltalk: Object Oriented
BASIC(classic): Procedural
Haskell: Functional
Perl: Procedural
BASH/SH: Procedural

If I’ve made any mistakes *PLEASE* tell me in the comments so that I can fix them

Advertisements
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: