Purpose Of Programming

What is the Purpose of Programming? I mean, why do you do it and where is it going? Where should it be going?

I'm not just asking about the mechanics of programming but the ethics and direction of programming: where is it leading to?

Maybe there are already loads of pages dealing with this, but maybe there's more to be said... contributions now requested!

ObQuote? from the TronMovie (Also see AlanKayIsTron)
Dr. Walter Gibbs
User requests are what computers are for!
Ed Dillinger
Doing our business is what computers are for.

The PurposeOfProgramming is to use computers to solve problems caused by computers -- PhlIp

ethics of programming

I think my thoughts on this can be summed up in one word... Huh? -- AnonymousIdentity

OK, try this: what is the difference between coding a spider to crawl newsgroups and mine e-mail addresses to spam and writing a tool like Wiki to enable community-based collaboration. -- anon2

GlyphLefkowitz wrote an essay on this subject. http://www.twistedmatrix.com/users/glyph/rant/softethics.html -- ChrisArmstrong

For me, the purpose of programming is a) making a living and b) pleasure. In my case, I think, the pleasure derives from the abstract problem solving aspects. The making a living derives from Qsent Inc. -- RobertChurch, celebrating PayDay

Would you write spamming software, if the problem itself were interesting? I think that's what the author means by "the ethics of programming." -- BrentNewhall

See Also: AnalogyBetweenProgrammingAndManufacturing

I have a theory that software engineering is one of the few industries that are concerned with turning money into time - by spending money we (supposedly) save other people time by automating processes they'd otherwise have to do by some other means that would take them longer. (Concorde flight crews are another.)

The trouble with the theory is that the processes we automate are far too often unnecessary anyway...

-- KatieLucas

The purpose of programming is to automate processes.

The question of the morality and ethics or im-/un- of such processes are another topic. (And a quite worthy topic, at that.)

The practice of programming is one of teaching the computer to do something.

Thus, in an important sense, you must know how to do it before you can teach a computer to do it. -- JeffGrigg

The purpose of programming is to create. The languages, machines, compilers and interpreters are only tools; brushes to painters. Going to work every morning except on Saturday and Sunday... that's a program. Sure, it's more like training a neural net, but that's still a program. The computer version of programming, (coding) is mostly used for process automation/communication facilitation. But that's only because the tools (programming languages) that we have now are so crude. And even then, there's a lot of work being done at Universities (don't know about industry) in terms of AI/AL/simulations that is very creation oriented.

Consider that there has been no real evolution in terms of the way we program. Object oriented existed in another form in the 70's (struct/function pointers in C), garbage collection is really not a new idea (scheme, prolog). The only thing that has changed are the environments. And even then, I hear Xerox at Palo Alto used to have similar stuff in the 70's. the rest is all functions.

How about a neural net based programming language, where a program is really about defining training? How about a language designed for parallel processing, or for web crawling? While there might be java classes/perl modules for some of these, the whole point of the language is abstraction.

-- FranckBinard

As I see it, the ultimate purpose of programming is to make everyone unemployed. This may sound shocking and nasty, at first, but with some thought you should realize it is not. Even with all the mundane tasks of our society automated we will still have, at the very least, the same amount of resources available to us. If the structure of our society allows it, we will not all suddenly face poverty. Instead, we will be freed to become more human. Creativity, invention and ideas will flourish and we will all end up better people.

Programmers have the burden of the greatest mission ever conceived. The freedom of the human race.

-- Setok

As I see it, the purpose of programming is electronic procreation of neural activity: the epitome of a program is one that runs after the programmer is done, after the programmer is gone (from the company), and after the programmer is retired. That's why programming logic that will run millions of times as millions of users click a web page is so exciting: you multiply your mind's designs by millions: you've mastered volume. That's why scheduling your program to run every night until the end of time is so exciting, you've now mastered time, and become "immortal". A little bit like art, but in a less conspicuous manner.

-- Michael Hay, San Francisco, CA

As I see it, the purpose of programming is to build machines out of bytes that are impossible or too expensive to build out of atoms. Computers are machines that can imitate any other machine. Programming is the act of making them do that.

-- EricHodges

The purpose of programming is to turn caffeine into error messages.

Programming is a path with a heart. It is pretty cool that one gets paid for it as well. -- LourensCoetzer

Programming supports Truth. Truth is understanding in the light of all information. For example without programming we wouldn't have the Internet, which gives people a massive searchable resource where they can research almost anything, comparing facts and evaluating sources, finding shining truths despite the muddy pool of lies and misconceptions. Eventually Truth *will* prevail.

Programming supports Love. Love is where two or more beings join together. For example without programming we wouldn't have email, which allows people to communicate and thereby brings them together even when their governments have put 30 foot barbed wire fences between them. Eventually Love *will* prevail.

Programming supports Peace. Peace is wherever there is balance between systems. If you are concentrating on fixing the problems facing humanity you have no time for those who create them. A programmer can look at a buggy, unbalanced situation and, by applying transformations, converge on a solution which produces equality and balance. If only world leaders were programmers instead of warriors, eventually Peace would prevail.

Programming can be restated as the electronic modeling of real things. Eventually everything will come to be modeled, and we will truly begin to understand the fabric of the universe. God is a programmer. -- MikeAmy?

Are you going to bogart that joint all day? Pass it around, man.

The art of discovering physical laws is analogous to discovering the laws governing the electron flows in a cpu executing a computer game. They (physicists) just never get the game! -vic

Programming extends the human will. It's about reifying what can be conceived.

Programming is a way to satisfy human ego "I can command anything, even a dumb machine". -- Sasi

(When I was in Junior High School, this what I found most attractive about computers, and programming. I've matured since then. ...which doesn't make the statement untrue. -- another speaker ;-)

Engineers create, doctors repair, lawyers learn, bankers pretend, cops exercise etc. Engineers do a dual creation - in the mind first and then in the physical world. Programming is when both creations are virtual.. It is, at times, an kinda unreal(escapist?) form of living too, since it's a machine who is your primary work-mate during most of the day.

-- ShineKannikkatt?

Ask N people why (for what purpose) they do some X (here: programming) and you will in all likelihood get N different answers. It's the people, that have purposes, not tasks. Though one might argue, that some tasks better fit the purposes of many than others.

-- GunnarZarncke

Programming at $75k/year while spending $15k/year to live leaves $60k/year net savings before tax which can eventually be spent on vet school at $42k/year thus avoiding the terrible professional school debt problem! -- JohnDuncan

Programming is the way we -- GarryHamilton

Yep. But it's not just "...so that the time can be used for more valuable things", it's also to drop the time to the point where something becomes practical at all (e.g. modern algorithms for factoring larger numbers than otherwise feasible at all), or more generally, to lower the barriers limiting activities.

Amongst zillions of examples, much of what average people do with home computers today (multi-font publishing, graphics/image/video manipulation, etc) was possible 3 decades ago, but generally only to professionals and at much higher cost.

Of course, it helps to remember that ProgrammingIsInTheMind. -- Geraldo Melo

That idea is in your mind. You are [one of] TheKooks.

[You might wish to read that page before you pass judgement.]

The purpose is to make semi-automonous objects in the abstract playground of the computer -- which is absolutely not the mind. In other words: it is applied philosophy (or experimental philosophy). ...And what is the purpose of philosophy if not to make a better way to live?

I've learned, from a very brilliant man that software can be an art, where the programmer express himself through functionality and design. We, humans, have been using software to make processes more efficient, increasing revenues. Extending our thought about programming, humanity has been very successful in increasing revenue gainings with better programming tools and techniques. But we are facing new challenges, such as climate changes, in a planet with limited resources. It is my felling that software, as well as technology will help us to learn to associate success with natural resource usage optimization, and not only revenue increase or economic growth. I mean, programming can be whatever we intend to be, depend on who is creating the product and for what reason.

I classify the ranking techniques of software design/tool option choice into these four categories:

Of course, there can be a mix. The metrics one chooses to measure "goodness" often depends on one's choice. (I lean toward "economic".)


You should add Arbitrary Personal Preference to the list. It's the most common reason for software design and tool option choices, but some explicit or implicit combination of your categories are usually used to justify it.

Ok, done. I should point out that often people are not aware that others just think differently than they do, and thus use their preferences as a default until told otherwise. Thus, I'm hesitant to call it "arbitrary" in a general sense.

The primary purpose of programming (in a typical organization) is to communicate an algorithm to another human being (and/or a future instance of oneself). The secondary purpose is to communicate an algorithm to a machine (computer).

If it were the other way around, then we'd usually be using machine language, assembler, or some other low-level language.

(Running "correctly" is perhaps the primary purpose, but that's mostly a given in these discussions and mostly comes into play if "correctly" is critical, such as banking or life-support software. Such software may lead one to use more labor-intensive techniques over pure or quick grokkability.)


The purpose of programming is to make a computer do something.

{...so that humans don't have to do it.}

A computer is a general purpose machine; programming gives it a specific purpose.

Sometimes I think the purpose of programming is to keep social media pundits or SEO "consultants" in a job... then I wake up screaming.

Purpose: to act as a bridge to reconnect us, re-inventing society and making a true democracy.
Half-assed programming was a time-filler that, like knitting, must date to the beginning of the human experience. [Vernor Vinge A Fire On The Deep]

View edit of December 23, 2014 or FindPage with title or text search