Programming Languages: In layman’s terms, what are the major programming languages, and what are they used for?
(reposted from this Quora answer because it’s just great)
Programmers have a surprisingly intimate relationship with the programming languages they use. Your programming language will frustrate you, and enlighten you. Over time you will learn your programming language’s inner workings and little quirks. It will get inside your head, too, and change the way your mind works.
Choose the right programming language and together you will create something new and beautiful. Choose wrongly and things can get very messy indeed.
In other words, choosing a programming language is much like choosing a romantic partner…
(Note: I’m a straight guy. If you’re not, feel free to do a mental find/replace with whatever you’re into).
PHP is your teenage sweetheart, the girl you first awkwardly fumbled around with that one summer. Just don’t try and start a more serious relationship - this girl has serious issues.
Perl is PHP’s older sister. She might be a bit old for you, but she was pretty popular back in the 90s. In a long-term relationship with Larry Wall, so her standards have dropped, and she’s looking seriously fugly now. “I don’t care what y’all say, I still love her!”, he says. No-one else does.
Ruby is the cool kid of the scripting family. When you first saw her, she took your breath away with her beauty. She was fun, too. At the time she seemed a bit slow and ditzy - though she’s matured a lot in the last few years.
Python is Ruby’s more sensible sister. She’s elegant, classy, and sophisticated. She’s perhaps too perfect. Most guys are like “dude, how can you not like Python!?”. Sure, you like Python. You just consider her the boring version of the edgy and romantic Ruby.
Java is a successful career woman. Some people who’ve worked with her feel she owes her position less to ability and more to her knack for impressing the middle-management types. You might feel that she’s the sensible type you should settle down with. Just prepare for years of “NO THAT DOESNT GO THERE GOD YOU ALWAYS USE THE WRONG TYPE INTERFACE AND YOU MISSED A SEMICOLON” nagging.
C++ is Java’s cousin. Similar to Java in many ways, the main difference being she grew up in a more innocent time and doesn’t believe in using protection. By “protection”, I mean automatic memory management, of course. What did you think I meant?
C is C++’s mom. Mention her name to some old grey beard hackers and they’re sure to reminisce with a twinkle in their eye.
Objective C is another member of the C family. She joined that weird church a while back, and won’t date anyone outside of it.
Haskell, Clojure, Scheme and their friends are those hipster, artsy, intellectual girls you probably spent a blissful college summer with a few years ago. The first girls who really challenged you. Of course, it could never have become something more serious (you tell yourself). Though you’ll always be left asking “what if?”
You might be put off C# due to her family’s reputation. But they’ve gone legit, the last few years, they tell you. Once you’re one of us, you’re one of us, you hear? You need a database? Her brother MSSQL will hook you up. Need a place to stay? Heck, her daddy will even buy you your own mansion on Azure avenue. What’s that, you’re having second thoughts about all these overly friendly relatives? No, you can never leave. You’re part of the family, now, ya hear?