You are on page 1of 39

Jack Menendez, I've developed a number of dyn...

(more)
181 upvotes by Dimitry Lukashov, Roger Theriault, Bri Burt, (more)
There are hundreds of different computer languages. Most experienced programmers know a
dozen or so. To understand computer languages we have to know the beginning:
Machine Language : these are the actual instructions, one for one, executed by the
computer. They are simply binary numbers, sometimes called steps, that look like this:
1 110010110011
2 111000101010
3 111101010110

In the beginnings of programming they were toggled in, one by one using switches on the front
of the computer with each switch representing a 1 or 0. Once entered the sequence could be
executed all at once by pressing a button on the computer console. Programming languages were
invented because Machine Language is difficult for humans to understand but it is the only
language that any computer can actually execute, all other languages must be always somehow
translated to Machine Language. Each kind of CPU chip like Intel or IBM has a different
machine language.
Computer Language: A computer language is designed to be more compatible with human
cognition and problem solving than the machine language. The language is written as plain text
with each sentence typically occupying it's own line of text like the following four lines:
1 if (b != 0) {
2

a=2/b;

if (a<0) a=0;

4}

Computer languages come in three types Compiled Languages, Intermediate Languages, and
Interpreted Languages see below.
Compiled Language : A compiled language is a language that is converted by a program, called a
compiler, into machine language before the program executes. Languages like Assembler, C,
C++, Pascal, Fortran, COBOL, C#, Java and many others are compiled, usually directly to
machine code and kept as a file on the computer to be executed when needed. Some compilers
compile to an intermediate language such as C# and Java and then compiled into machine code
as with C# or interpreted. Remember machine language can only run on the machine it is
compiled for, so a program compiled this way for Intel processors cannot run on IBM processors
etc.
Intermediate Language : an intermediate language is the result of compiling some languages but
not directly to Machine Code. The advantage is that the output of the compile, the Intermediate
language, is portable across machine types. An example of the intermediate language is the CLR
for C# or byte code as with Java. One can write a java program that runs on any computer since
the byte-code is interpreted by a program JVM written for the specific machine.
Interpreted Languages : an interpreted language is a language that is read in by another program
that executes the program instructions. The program doing the interpretation is sometimes called
a Virtual Machine or VM as in the JVM for Java. Examples of interpreted languages that have
no compilers i.e., no intermediate language, are JavaScript, Rexx, Perl, PHP, etc. Interpreted
languages are generally portable as long as you have the interpreter or VM to run them.
A Word about State
A computer program can "save" information in the computer's memory. For example, a number

that the program is totalling, but the information can be anything even a name like "Dave". This
information in memory is in addition to the machine language instructions, steps, talked about
earlier. Because the saved information can change as the computer executes the program's
instructions, the information at any given step in the program is called the state.
Procedural versus Object Oriented Languages: The model used by programmers to solve
problems started to change during the 1980s. The earlier model is called procedural
programming where the problem is divided up into smaller chunks kind of like paragraphs in an
essay. The model shifted toward a more advanced way of modeling the world called object
oriented programming, OOP. In OOP, state and the programming statements the deal with it are
grouped together. Many procedural programmers had trouble making the transition to Object
Oriented thinking which is not as easy to learn as procedural. In my experience only about 20%
or less of programmers are able to think in an object oriented style of problem solving. The
importance of OOP is that information can be hidden. The technique of information hiding
makes it practical to write, maintain, and expand much larger programming systems than
possible with other models.
Functional versus Imperative programming; Functional programming comes from a
mathematical framework in computer science, lambda calculus, that was developed to
investigate computability way back before digital computers physically existed. In functional
programming, there is not state kept in the computer code as with imperative
programming. Everything is a function, even mathematical operators like addition and
subtraction can be functions. This results in yet another very different kind of "thinking" when
it comes to solving programming problems. Common Lisp developed in 1956 is still widely
used and is an example of a functional language and is the second oldest programming language

after Fortran. Some modern imperative languages have recently incorporated ideas from
functional programming including Java 8, C#, and VB.NET.

Some Important Languages but by no means all of them:

Assembler: assembler is like Machine Language but easier to read and used and can be compiled
into machine language. Assembler is still used by programmers involved in building the
operating system for computers or engineers interested in the highest performance such as with
game graphics. It is possible to write object oriented programs in assembler. You can do
anything in assembler.
COBOL: a very old procedural language, archaic, relatively verbose compared to modern
language. Even so, most of the worlds business transactions still run as COBOL programs.
Fortran : a very old procedural language, archaic, is a scientific language. There are still a large
number of important applications that run as Fortran dealing with weather, seismic surveys, etc.
C: a procedural language, is one of the most important breakthroughs in languages because it's
compiler was written to be easily portable between machine architectures. Most operating
systems are written mostly in C for this reason. Linux is written in C.
C++: is an early object oriented language and is used today when performance is important such
as in high speed trading algorithms, operating systems, and some scientific programs.
Objective C: is an object oriented language use mostly by Apple and its IOS in iPhones, Ipads
etc.
Java: is a very important object oriented language used to build all kinds of business
applications, cell phone apps, and the back end server code for websites. Java has become

ubiquitous in business enterprise applications and is often mentioned as the modern COBOL.
C#: is Microsoft's object oriented language along with VB.NET. both of which are an alternative
to JAVA.
Haskell is an example of a functional language

2/17/2014 I added a few idea about functional programming and also C

Updated 28 Feb.
Downvote
Comments8+
Share10

Justin Thomas, Software Enginneer and High Ve... (more)


417 upvotes by Dimitry Lukashov, George Reed, Logan Flatt, (more)
I recently was trying to explain this to my dad.

Imagine I want to tell you to make a pot of coffee. How would I do that?

Example 1 - Assembly/Machine Code

Take 15 steps to the cabinet

Using your right hand open the cabinet located one to your right.

Using your left hand take grab the transparent glass coffee pot holding 15 cups of water
5

Walk 2 paces left to the sink.

place your right hand on the sink knob and turn it to cold

fill with 14 cups of water

walk 2 paces right to the coffee pot

open the coffee pot

pour in the water

etc etc etc

or

Example 2 - C

Get a coffee pot.

Add 1/2 L of water

Add 30 g of Coffee

Start the brew

or

Example 3 - (JavaScript, Ruby)

"Dad, Go make a pot of coffee."

All are equally valid, but one is a more convenient language to deal with explaining kitchen
tasks, which is way more concise if I wanted a breakfast of pork chops, potatoes, eggs, and
coffee. Computer languages work in a similar manner--they add conveniences or abstractions
over the parts you don't want to explain every time you are defining a task. Having a kitchen
language enables you to deal with the subject of making things in any kitchen rather than how
they get made specifically in one kitchen with one set of tools. The first would be analogous to
assembly language or machine code. It deals with the exact instructions specific to the kitchen
you are in and the tools you have accessible. C is more like Example 2, having abstractions for
coffee pot and adding water, but not getting into the specifics on what kind of coffee pot or from
where the water comes. The third example is an interpreted language like JavaScript or Ruby,
caring only about the task at the highest level.

I think that better qualifies as layman, rather than all computer specific examples :P

Written 23 Oct, 2012.


Downvote
Comments7+
Share1

Giordon Stark, taught at Caltech

122 upvotes by Julius Bier Kirkegaard, Yao Yujian, Leslie Talmadge, (more)
From Mike Vanier: opinions:

Arabic version here:


Russian version here: .

Ada is a tank. A butt-ugly tank that never breaks down. People laugh uncontrollably if
you tell them you drive Ada, but really, do you want to be driving a sports car in a war
zone? [from Amit Dubey]

Assembly Language is a bare engine; you have to build the car yourself and manually
supply it with gas while it's running, but if you're careful it can go like a bat out of hell.
[From "Subterfug" off Digg - What the Internet is talking about right now:]
Assembly Language: you are the car.

Basic is a simple car useful for short drives to the local shops. Once popular with
learner drivers, it has recently been stripped down to a shell and rebuilt by a major
manufacturer, The new version has been refurbished for longer journeys, leaving only
cosmetic similarities to the original model. [from Przemyslaw Wrzos]

C is a racing car that goes incredibly fast but breaks down every fifty miles.

Cobol is reputed to be a car, but no self-respecting driver will ever admit having driven
one.

C# is a competing model of family station wagons. Once you use this, you're never
allowed to use the competitors' products again.

C++ is a souped-up version of the C racing car with dozens of extra features that only
breaks down every 250 miles, but when it does, nobody can figure out what went wrong.

Eiffel is a car that includes a built-in driving instructor with a French accent. He will
help you quickly identify and learn from your mistakes, but don't you dare argue with
him or he'll insult you and throw you out of the car. [From Daniel Prager with some
embellishments]

Erlang is a fleet of cars that all cooperate to get you where you want to go. It takes
practice to be able to drive with one foot in each of several cars, but once you learn how
you can drive over terrain that would be very hard to navigate any other way. In addition,
because you're using so many cars, it doesn't matter if a few of them break down.

Forth is a car you build yourself from a kit. Your car doesn't have to look or behave like
anyone else's car. However, a Forth car will only go backwards.
[By "256byteram", on a comment on Digg - What the Internet is talking about right now
(I couldn't resist):]
FORTH LOVE IF HONK THEN !

Fortran is a pretty primitive car; it'll go very quickly as long as you are only going
along roads that are perfectly straight. It is believed that learning to drive a Fortran car
makes it impossible to learn to drive any other model.

Java is a family station wagon. It's easy to drive, it's not too fast, and you can't hurt
yourself.

Haskell is an incredibly elegantly-designed and beautiful car, which is rumored to be


able to drive over extremely strange terrain. The one time you tried to drive it, it didn't
actually drive along the road; instead, it made copies of itself and the road, with each
successive copy of the road having the car a little further along. It's supposed to be
possible to drive it in a more conventional way, but you don't know enough math to

figure out how.


[Monadic version:]
Haskell is not really a car; it's an abstract machine in which you give a detailed
description of what the process of driving would be like if you were to do it. You have to
put the abstract machine inside another (concrete) machine in order to actually do any
driving. You're not supposed to ask how the concrete machine works. There is also a way
to take multiple abstract machines and make a single abstract machine, which you can
then give to the concrete machine to make multiple trips one after another.

Lisp looks like a car, but with enough tweaking you can turn it into a pretty effective
airplane or submarine.
[from Paul Tanimoto:]
Lisp: At first it doesn't seem to be a car at all, but now and then you spot a few people
driving it around. After a point you decide to learn more about it and you realize it's
actually a car that can make more cars. You tell your friends, but they all laugh and say
these cars look way too weird. You still keep one in your garage, hoping one day they
will take over the streets.

Mathematica is a well-designed car that borrowed a lot from the Lisp car without
giving it nearly the credit it deserved. It can solve equations to determine the most
efficient way to get to the destination, but it costs a fortune

Matlab is a car designed for novice drivers going on short trips over terrain similar to
the terrain the Mathematica car is usually driven over. It is very comfortable when
driving over this terrain, but if you go off the trail even a little the car becomes so hard to
drive that more snobby drivers refuse to even acknowledge that it's a car.

10

Ocaml is a very sexy European car. It's not quite as fast as C, but it never breaks down,
so you end up going further in less time. However, because it's French, none of the
controls are in the usual places.

Perl is supposed to be a pretty cool car, but the driver's manual is incomprehensible.
Also, even if you can figure out how to drive a Perl car, you won't be able to drive
anyone else's.

Adam Ness
Perl is a car that was assembled by a bunch of blind geniuses, each with their own idea
of how to drive a car. As a result, there's 4 different ways to steer, 8 different ways to
accelerate and 3 completely separate braking systems. Someone really proficient with
perl looks like they're doing a beautiful dance while driving, but most people just kind of
stomp on the pedals, pull levers, and turn cranks until they manage to get to where they're
going.

PHP is the Oscar Mayer Wienermobile, it's bizarre and hard to handle but
everybody still wants to drive it. [from "CosmicJustice" off of Digg - What the
Internet is talking about right now]

Prolog is fully automatic: you tell it what your destination looks like, and it does
all the driving for you. [Addendum from Paul Graham:] However, the effort
required to specify most destinations is equivalent to the effort of driving there.
[I forget who suggested this one:]
Prolog is a car with a unique trial-and-error GPS system. It will go down the
road looking for your destination, and if it gets to the end of the street without

11

finding it, it will back up and try the next street over and continue until you get
where you need to go.

Python is a great beginner's car; you can drive it without a license. Unless you
want to drive really fast or on really treacherous terrain, you may never need
another car.

Ruby is a car that was formed when the Perl, Python and Smalltalk cars were
involved in a three-way collision. A Japanese mechanic found the pieces and put
together a car which many drivers think is better than the sum of the parts. Other
drivers, however, grumble that a lot of the controls of the Ruby car have been
duplicated or triplicated, with some of the duplicate controls doing slightly
different things in odd circumstances, making the car harder to drive than it ought
to be. A redesign is rumored to be in the works.

Smalltalk is a small car originally designed for people who were just learning to
drive, but it was designed so well that even experienced drivers enjoy riding in it.
It doesn't drive very fast, but you can take apart any part of it and change it to
make it more like what you wanted it to be. One oddity is that you don't actually
drive it; you send it a message asking it to go somewhere and it either does or tells
you that it didn't understand what you were asking.

Visual Basic is a car that drives you. [from "yivkX360" on Digg - What the
Internet is talking about right now, no doubt channeling Yakov Smirnov]

Written 9 Jan, 2013.


Downvote

12

Comments8+
Share1

Paul Anzel
31 upvotes by Rupert Baines, Dimitry Lukashov, Louis Frayser, (more)
Coming at this as a scientist and not a programmer, I'd like to add a few more to the mix:

First is Matlab--this is increasingly becoming the lingua franca of scientists. It's fairly high level,
with a number of numerical routines fairly well optimized. If you're trying to deal with some
matrix manipulation work or simulations, there's a good chance you'll be doing it in Matlab.

IDL (Interactive Data Language) is similar to Matlab, and popular in the astronomy and geology
communities.

R (and S) are statistical programming languages, popular for those times you need to reduce data
or otherwise do some interesting statistical manipulations.

LabVIEW is a strange programming language where you design things by making "circuits"
instead of typing code. It 's often used for instrument control (both because of the mindset
involved, the fact that it gives you a GUI from the get-go, and National Instruments has gotten
all the I/O stuff figured out for you, particularly for their products).

13

Further notes from a science perspective:

A lot of old legacy code is written in FORTRAN. Thus, you'll see its tracks everywhere.

Python is popular for database work. Also, Abaqus (a popular finite element analysis package)
works with Python code. And if we're talking about FEA package compatability, COMSOL
works with Matlab (and thus we've gone full circle).

Updated 10 Feb.
Downvote
Comments3+
Share1

Isaac Lewis, I made some websites


7.3k upvotes by Ben Hsu, Emil Stolarsky, Dimitry Lukashov, (more)
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.

14

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

15

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

16

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?

Javascript - hey, wasn't that the girl you first kissed, way before even PHP came on the scene? I
wonder what she's doing now. I hear her career's really taken off in the last few years. Would be
cool to catch up some time, if only for old time's sake... (You catch sight of her, dressed head to
toe in designer jQuery)... wow, somebody grew into a beautiful swan...

Updated 5 Jan, 2013.


Downvote
Comments110+
Share273

Mat Brown, aspiring celebrity software en... (more)


255 upvotes by Zachary W. Taylor, Jay Wacker, Mike Stone, (more)
I think any list here would necessarily be incomplete and a bit arbitrary, but I'm going to take a
crack at it anyway:

C, C++ - Low-level operating system, software, libraries. Making things run fast.

Java - Just about everything, but especially cross-platform desktop applications, serverside web applications, and Android

Objective C - Mac OS X applications, iOS apps

17

C# - Windows desktop applications, Microsoft stack web applications (very similar to


Java)

PHP - server-side web applications

Perl - general scripting, string processing

Python - general scripting, server-side web applications, mathematic and scientific


applications, Linux desktop applications

Ruby - general scripting, server-side web applications

JavaScript - client-side web applications, server-side web applications

Updated 29 Apr, 2013.


Downvote
Comments11+
Share6

Matt Jones, CTO of Plum Voice


172 upvotes by Dimitry Lukashov, Amer Jwehan, Zhuoran Li, (more)
The most common programming languages can be broken out into three distinct groups: native,
bytecode and interpreted. This grouping doesn't completely constrain their uses but it does a
decent job of identifying where they are commonly used.

Native programming languages are ones that are compiled into native machine language (a.k.a. what your computer uses directly). The most common of these languages are C, C++ and
18

Objective C. They provide the maximum possible performance while still being more or less
human readable (compared to assembly language). Since they are very high performance, they
are used for things where that matters most, such as operating systems and their libraries, servers,
web browsers and games engines.

Bytecode languages are compiled into an intermediate format that can be interpreted by a virtual
machine. This virtual machine allows you to write and compile software once and then run it
anywhere that has a supported virtual machine. The most common bytecode languages are Java
and C#. These languages provide performance that isn't quite as good as C and it's derivatives
but do provide portability and much easier debugging and extra safety from programmer
error. As a result you will see these languages used to build server-side web applications and
GUI applications (especially in the enterprise). Java and C# have also taken hold in mobile
platforms like Android and Windows Phone. Being hardware agnostic allows software written
for these platforms to be portable to other processor architectures (ARM vs x86) without needing
to be recompiled.

Interpreted languages (or scripting languages) provide the most high level programming
environment. Most often, these languages are used when performance is less of a concern than
rate of development, maintainability or developer skill level. Given their high-level nature, they
are easiest for users to pick up and understand and, because of this, there are a HUGE number of
popular interpreted languages. Given that, I will only mention a few examples: Javascript, PHP,
Perl, Python and Ruby. Along with the huge number of languages there are an equally broad
number of uses even for one language. For example, Javascript is used both as the client-side

19

scripting language in your web browser and also on the server-side in web and database servers
in tools like node.js and mongoDB. Some scripting languages are used to build both commandline and GUI applications and as back-end web server scripting languages (PHP, Perl, Python,
Ruby). As computers continue to get faster, these languages are taking more and more ground
from the lower level languages mentioned above. Ultimately, ease of use continues to win out
over performance except in the most low-level cases.

Written 23 Oct, 2012.


Downvote
Comments4+
Share

Lance Diduck, quantitative algorithmic tradi... (more)


15 upvotes by Jos Carlos Joaquim, Aziz Yusupov, Scott VanKirk, (more)
Just to comment on the top five from tiobe:
C-- this is a big crescent wrench you find in a garage sale. Not complicated. Everyone has one. If
you can't adjust the wrench to your liking use it as a hammer. It won't break. And is never
obsolete. You need to supply your own screwdriver.
Objective-C-- this is the Pittman arm puller. There's only one thing this tool does. Just that
recently there is a manufacturer who sold a lot of product requiring this tool. When that product
goes away so will objective C
C++ -- the swiss army knife. Even has the big crescent wrench attached. And a Pittman arm

20

puller if you can find it amongst the 1000's of other gadgets. Does EVERYTHING. But there's
no comprehensive instruction manual. The inventors are still trying to figure it out themselves.
Java: the complete tool chest with the wheeled cart every weekend mechanic has in his garage.
His wife picked it out at Sears. Has almost everything you need. Just Pittman arm pullers, swiss
army knives and big crescent wrenches are missing. And these aren't in the catalog. Solves 95%
of the worlds problems except you always happen to be in the 5%
C#-- Same as Java but Java is metric. This tool chest is in inches. Only useful in one country. But
its a big country

Written 21 Apr.
Downvote
Comments1+
Share

Rupert Baines, Thinking on next challenge. Wi... (more)


159 upvotes by Mikael Bengtsson, Stanton Champion, Isaac Lewis, (more)
I love Isaac Lewis answer

But his uncle (approaching retirement, sometimes doesn't get the joke) has barged in on the
conversation, as Uncles so often do, and is reminiscing about the ones he remembers:

21

Fortran. At a time when women didn't work, Fortran was a pioneer: a spinster but she still has a
good job at the University, working in the Science Faculty, old-fashioned but still going to
conferences & doing good stuff. A bit pedantic perhaps: everything had to be laid out "just so"
in neat lines or she wouldn't accept it and she would only name her cats with particular letters of
the alphabet.

Algol. A contemporary of Fortran's. Whatever did happen to her?

Cobol The girl his father said he ought to date. Sensible, corporate, but GOD - was she
dull.... Pompous, verbose, only cared about money. She is still working, incredible as it seems:
some over-paid job in a bank, doing those things no-one else understands. Indispensable some
say. But still as dull as ever.

LISP. It was that time when everything seemed possible, everyone was open to new things:
music was changing, society was changing... and there was LISP.... She was different, exciting,
radical.... (He has a wistful look on his face). She's still around, maybe in an Ashram or visiting
Essalin or staying with some rich old friend in Greenwich Village or Nob Hill. Ageing maybe
but still eccentric, still unique, still compelling...

ADA What a tightass. Senior Military offficer and rumored to still be around the MilitaryIndustrial complex.

APL He hasn't thought of her in years... He had friends who infatuated with her but he always

22

found her a bit odd, a bit cryptic, a bit too sure of her own cleverness.

BCPL and B - Who would have thought that C had a ma and a grandma? They breed fast that
family. Sadly, both of these died young - but, a family lives on through its children and they left
some great kids, doing really well.

BASIC A good friend. Nothing flash. Retired now.

BBC BASIC her English sister, Uncle mostly remembers her as so polite, so English, and in a
"refained BBC accent" - like Downton Abbey.

Visual Basic Her daughter. Married into The Family (and sometimes seen together with
C#). Many people prefer not to talk about her.

UPDATE

To reflect the comments

Smalltalk. That weird, avant-garde kid, into strange fashion. At the time, aloof, a bit odd and not
many people got her - but now you realise she was just so far ahead of her time and so
influential. Think "The Velvet Underground" - Smalltalk is the programming equivalent (as
Brian Eno said "the first Velvet Underground album only sold 10,000 copies, but everyone who

23

bought it formed a band"). She influenced a lot of the modern languages, but do they have the
originality she had? Or the element of risk and excitement she had at the time? Do they heck. But
they have made more money and are undeniably slicker and friendlier.

SNOBOL

A poet. Elegant, cyptic - but could say things in a few lines other people couldn't do

in pages of turgid prose. Wordy-wordy-wrappinghood. e e cummings. T S Eliot. Never really got


much appreciation, but in some circles they remember her fondly.

Pascal. Your grade-school teacher. A bit prim, a bit prissy but at the time you thought she was
the way everyone should be. Funnily enough, none of the grown-ups had the same high
impressions and afterwards you can see why.

Modula - Pascal's daughter. Died young

Forth - she was a strange girl. Creative, idiosynratic, flexible (the things she did sometimes!
WOW! It could blow your mind).
But a little bit Ayn Rand, a little bit survivalist: everything had to be self-reliant. None of this cooperation malarkey. Last you heard she was somewhere in Patagonia, where she'd built a
complete city from first principles, using just the forest & natural resources, from her own
unique design, her own energy and a lot of bloody-minded persistence.
That said, you still have a beautiful bracelet she made for you, from metals she smelted herself,
from rocks she dug up in the woods & forests:
"FORTH LOVE IF SMILE THEN !"

24

-----------Others mention: PL/1, RPG, AdPac, Prolog

Updated 25 Oct, 2012.


Downvote
Comments8+
Share4

Tamil Selvan, Common Lisper.


453 upvotes by Duc Nguyen, Satoru Logic, Radu Voicilas, (more)
C

-> Fine Tune the Engine.

C++

-> Getting Big Salary $$$$$.

Java

-> To Get back our money from those Bank guys.

Python

-> Nursery Rhyme (Even older people find wisdom in it...)

Ruby

-> To Get money from those Venture Capitalists.

PHP

-> Used in Mom-and-Pop Shops.

Erlang

-> Do multiple things at Same Time

Perl

-> Used as Duct Tape.

Common Lisp

-> You can do everything in it but don't know what to do.

25

Haskell

-> For those guys in Maths department.

OCaml

-> For those guys who studied Compiler Design.

Objective -C

-> Serving Steve Jobs's Fans.

JavaScript

-> Web thingy, used everywhere, innovatively used in startups

Based on Popular Request:


C#

-> a Solution for those who don't have clue about IT.
(Believing M$ will take care of your IT, instead of you)

Scala

-> Somebody (http://paulgraham.com/javacover....) told Java is


a bit of disciplinarian . So geeks want to change the image.
thus they invented Scala.

Updated 22 Oct, 2012.


Downvote
Comments7+
Share9

Ivan Pierre, polymorphic analyst programmer


5 upvotes by Chad Cooper, Douglas Crets, Henk Poley, (more)
Well, I saw a lot in the various types of syntactic preferences. A little in interpreted vs. compiled.
But the more important is the paradigm they support. Generally it comes with a certain writing
style.

26

From very old basic


1 10 A = 0
2 20 FOR I = 1 to 5
3 30 A = A + I
4 40 NEXT I
5 50 PRINT A

to a functional view in Clojure


1 (reduce + (range 5))

Or a verbose Java object oriented


1 public Class Example {
2

public static void main (String [] arg) {

int a = 0;

for(int i=1; i<=5; i++) {

a += i;

System.out.println(a);

9}

27

These are different way of thinking, even if they do exacly the same thing (well...)

Just a little tour, you'll remember some additional languages :D


Programming paradigm

Have a good trip

PS : nobody noticed PROLOG ? just a natural step next to LISP.

Updated 21 Nov, 2012.


Downvote
Comment1
Share

Jessica Wright
3 upvotes by Sam Grossman, Hari S Radhakrishnan, and Justin Smith.
Some of the top programming languages being used currently are Swift Programming Language,
the Rust Programming Language, and Hack Programming Language. This link has many more
types of top programming languages and information on each language. Programming
Languages Battle

Written 22 Jun.

28

Downvote
Comment
Share

Satyajit Malugu, Jack of many languages


73 upvotes by Josh Siegle, Jason Hurley, Matthew Benson, (more)

C is what the OS is primarily based on be it windows, linux or mac. It is somewhat harder


to program in and one can say its out of fashion. Think of this as Sanskrit, its still present
in many Indo-Aryan languages but few people actually use it on daily basis.

C++ is a better C and the most popular. If the program speed is your main concern, this is
the default.

Java is a better C++/C though it's based on a fundamentally different concept of object
oriented programming

C# is MSFT's flavor of Java and I would say better than Java

HTML is what the web is all about - its not a programming language but markup - it
describes how content should be presented.

JavaScript - Workhorse of the browser, most of the modern websites the heavy lifting an
user can see is done through JavaScript. When I am typing an answer here the window
automatically resizes that's the magic of JavaScript.

Perl- Though this is still based on C, it views the world in a task oriented approach, think
swiss army knife

29

Ruby - similar to Perl but more object oriented than any of the languages mentioned
above. Also pretty expressive i.e language provides many modes of doing the same thing.

Python - Very similar to Ruby with importance to cleanliness. Yeah, add an extra space
and your code won't work! At the same time very easy to comprehend, if you observe
algorithm examples in Wikipedia most of them are written in Python and one require
minimal background to follow the code.

Lisp, Scala, Scheme, Groovy - these are languages are more closer to mathematics than
any other.

Note: For developers Programming languages are very personal and each may have a differing
opinion.

Updated 20 Oct, 2012.


Downvote
Comments9+
Share

Lakshmi Narasimhan Parthasarathy, loves lambdas, crunches closur... (more)


12 upvotes by Tim Peterson, Ben Hsu, Bulat Bochkariov, (more)
Can't get as simple as this. http://paulgraham.com/fix.html.

The major ones not in the list:


PHP - almost Perl like, but exclusively for web development.
30

Javascript - for the effects which happen in your browser, like say, fade out. Is no way related to
Java, except for the superficial syntax resemblence.

Written 16 Jan, 2012.


Downvote
Comment1
Share

Dan Shafer
4 upvotes by Sheri Fresonke Harper, Gavyn Long, Janusz Ostrycharz, (more)
There are some great answers here and the array is indicative of the fact that when you ask about
"major" programming languages, the conversation can get far afield. I'd wager that over 90% of
the languages listed in all of the answers combined are not "major" in the sense that they have
fairly small numbers of trained coders, small support communities, relatively few applications or
sites built with them, and in general are really pretty minor languages.

That's not to say they're not useful, interesting, creative and in some cases even brilliant. But
"major"? Nope.

The major programming languages in terms of popularity are almost certainly (in no particular
order):

31

C (including C#, C++, Objective-C)


Java
PHP
JavaScript
COBOL

Close candidates probably include:

Ruby
Python
BASIC
Perl

I personally don't consider SQL a programming language but if it's in the running, it's in the top
tier.

Written 23 Oct, 2012.


Downvote
Comment1
Share

Will Johnson

32

13 upvotes by Dimitry Lukashov, Louis Frayser, Sheri Fresonke Harper, (more)


I hate to break it to y'all but COBOL is alive and well and living in 30 to 40 percent of all
business application shops. BASIC is also present and working in 20 to 40 percent of all
business shops.

Sorry but the newer languages cannot replace 30 years of business programming logic that the
users know how to operate.

Written 23 Oct, 2012.


Downvote
Comments3+
Share

Josep Llodr Grimalt, Engineer


10 upvotes by Satyajit Malugu, Youness Khordale, Venkatesh Rao, (more)
Here you have a list of the most used programming languages at the moment:

http://langpop.com/

Besides the languages mentioned, I would add:

PHP: Widely used, a server-side scripting language focused on web development.

33

Objective-C: An object oriented language based on C and Smalltalk. Native MacOs and
iOS applications are written in Objective-C.

Written 12 Jan, 2012.


Downvote
Comment
Share

Ben Hsu, software developer and curious... (more)


6 upvotes by Er Galvao Abbott, Jason Levine, Tikhon Jelvis, (more)
Yegge's "Tour de Babel" would be a good post to read for this:

https://sites.google.com/site/st...

Its missing PHP (good for pulling data out of a database and dumping it into a web page), and
JavaScript (good for in browser apps)

Written 19 Oct, 2012.


Downvote
Comment
Share

34

Revett Eldred
10 upvotes by Rupert Baines, Dan Shafer, Thomas Foster, (more)
I'm surprised that nobody has mentioned VB Script which, statistically, is the language most
people who aren't professional programmers will likely use. It is the basis of all Microsoft
Office macros.

JavaScript (what Microsoft calls JScript) has been mentioned. It is what anybody who fiddles
around making their own websites will likely use as it coexists harmoniously with
HTML. (Which isn't a programming language at all but has some of the same characteristics:
cryptic, semi-readable notations; comment capability; and the need for extensive debugging to
the point of pulling out one's hair.)

VB Script and JavaScript are quite similar; learn one and you can quickly learn the other. In
fact, they are similar enough that if you are an occasional programmer (OK, I know, I know...)
who jumps back and forth between them, it becomes very confusing because of the subtle
differences.

People keep inventing even more scripting languages. I can't figure out why.

I suppose, if you are a serious, dyed-in-the-wool programmer, you don't regard scripting
languages as programming languages at all.

35

I started in 1963 programming a Univac 1004 by plugging in patch cables like in an old-style
telephone switchboard. I don't recall the application, but I remember being thrilled when I got
promoted to doing "real" programming using assembler language on an IBM 1800. Then I
advanced to assembler on a Burroughs B383 in a service bureau in London. I almost put Aston
Martin out of business by showing they were making 300 pounds profit on each vehicle when in
fact it was 300 pounds loss. I forgot the stupid printing mask. There are, I suppose, benefits to
higher level languages.

Written 3 Apr.
Downvote
Comments2+
Share

James Arlow, Sensual Programmer


1 upvote by Mostafa Hany Gomaa.
Python is a plain, spoiled rich girl. She looks nice, but doesn't have any impressive features, and
she's not going to do anything remotely strenuous to help you out.

Written 21 Jun.
Downvote
Comment1

36

Share

Tim Bushell, find me on Google page 1001


4 upvotes by Anthony Tauro, Tolga Kurt, Berk Cinar, (more)
I'm going to stick Visual Basic.NET in here. This is a major programming language and anything
you can do with C# you can do with VB. So any time you see "C#" above (why so infrequently?)
you can mentally add "VB".

It may not be elegant or beautiful; it may still distinguish between a method that returns a value
(function) and one that does not (sub); and it does use words instead parenthesis to terminate
statements... but it gets the job done. That's why it is still used by millions of developers world
wide to create functional business and web apps.

It's baby brother version VB is also used to add programming capabilities to Microsoft's Office
suite - giving access to some of the benefits of automation to heavy Excel and Access users.

So the language has been around, is still very popular and capable.

It is also a very good language to teach programming. The very fact it does not use parenthesis
like curly brackets but rather words, helps younger students structure their programs more easily
- i.e. see structure. I say this with a great deal of experience. This will be controversial with
some, who think that C or Java are the best languages to teach programming - but these are really

37

just good languages for teaching programming concepts to existing programmers at a higher
level of education. If you want to learn to program, VB is a very good route. That's not to say
that C# and Java can't be used to teach.

Anyone who thinks VB is not a major programming language has forgotten that they probably
used it at least once in their life.

Updated 21 Apr, 2013.


Downvote
Comments2+
Share

Fazli Sameer, Simple citizen of the earth, I... (more)


1 upvote by Matthew Benson.
long before all the fancy new programming languages came on the scene i started my life as an
Assembler language Programmer with IBM in Colombo, Sri Lanka, in 1970. From there I moved
into FORTRAN, COBOL, RPG, PASCAL, & BASIC until 1985 after which I moved into IT
management. It was great fun coding for 15 years.

Written 27 Mar, 2013.


Downvote
Comment

38

Share

Manigandan Balachandran, CS Undergrad


3 upvotes by Bharadwaj Thirumall, Praveen Kishor, and Akansha Satyarthi.
This reminds me of an old quip :

FORTRAN is a non-typed language.


C is a weakly typed language.
Ada is a strongly typed language.
C++ is a strongly hyped language

Written 23 Jan, 2013.


Downvote
Comment
Share

Wil Young
1 upvote by Gavyn Long.
Where are all the old IBMers? PL/1. IBM's attempt to design one language to replace both
COBOL and FORTRAN.

39

You might also like