views:

207

answers:

8

I hear a couple of people using the term 'programming' rather than configuring, for example:

Have you already programmed Apache's Virtual Hosts configuration correctly, with ServerName named FOO?

Program your .vimrc first before starting Vim the first time.

The last is a word-by-word citation from my teacher, but I didn't dare to correct him. Is it OK to use 'programming' instead of 'configuring'?

IMHO this sounds very ugly.

+6  A: 

Well.. ordinary people "program" their VCR, Tivo etc. So for ordinary people program == configure. Note that even programmers don't say "program the javascript". Instead people use words like "develop" or "write" for writing programs in the programming sense.

slebetman
lol +1 for 'ordinary people'
Derek Adair
Well, I program my python. I know, I am a sick, but not as sick as this guy: http://www.huffingtonpost.com/2008/12/10/aiko-the-female-robot-inv_n_149860.html
Hamish Grubijan
VCR and Tivo is just high-level programming. I was talking to an ASM guru the other day who claimed Python and Java was scripting.
Tom R
+1 for VCR programming
Rubens Farias
Good answer. I think it's *prohibited* to use the term 'program'(verb) to rationalize Software development.
Kenny M.
A: 

I'd say that these are incorrect usages of the term 'programming' - as you say this is simply configuration/setup.

middaparka
+1  A: 

I generally tend to prefer the terms 'coding' and the verb 'to code' rather than programming. It's just that bit less fuzzy and has fewer alternative meanings.

Cruachan
+1  A: 

Configuration is just a form of (usually declarative rather than procedural) scripting,, i.e., programming against an API.

In most cases, what we call configuration is not sophisticated enough be worthy of the name "scripting" or "programming", but some systems based on Ruby, Python, or Lisp -- e.g., EMACS -- use the programming language as a configuration language, and then configuration really does blend into programming.

Joshua Fox
It is again configuration via programming.
JCasso
+3  A: 

A definition I like for programming is:

creating a sequence of instructions to enable the computer to do something

So, if you configure anything you are indirectly creating a sequence of instructions. Which IMHO would "qualify" configuring as an indirect type of programming.

EDIT: Also, computer development is far more than computer programming. To develop you need much more than only write instruction, you also need

  • Requirements definition
  • Write specifications
  • Planning
  • a lot more
Diego Dias
Diego Dias, Thanks for your interesting answer! I wasn't using the term 'programming' to replace 'Software Development'. That's not the same thing, as you correctly say.
Kenny M.
Thx. Actually I edited the answer based on the other answers you received (which are the ones I think misunderstood the terms).I perfectly understand what u meant when you said 'programming'.
Diego Dias
+1  A: 

If I'd tell you what kind of things I've heard... For example, during a network security class, we had to generate SSH certificates, and one girl said that the tool that generated the keys "wasn't compiling" (of course it was already compiled and installed, she just had to use it to generate the certificates!... but I suspect that for her, anything that was to be done in the console was "to compile").

So in brief, people will always speak and write badly, just don't follow them.

fortran
+1 For truthfulness. I generally think you should correct those people, but far more often it's just better to simply stay quiet.
Kenny M.
@Kenny M - "I have to correct you there. You should have used the word realistic instead of truthful.". Now wouldn't you be irritated if someone said that sort of thing to you all of the time???
Stephen C
+1  A: 

I completely agree with slebetman, but I'll also add that there might be some age and/or regional issues here.

As a military brat, having lived in the US south, and now working with a bunch of europeans, I frequently run into words used in different ways that I expected. Some of it might be slang to us, but it's completely normal to the person using it, and frequently, when I look up the words in a dictionary, you'll find an alternate definition that makes perfect sense.

In this particular case, from dictionary.com, the last verb definition for 'program' is :

to set, regulate, or modify so as to produce a specific response
or reaction: Program your eating habits to eliminate sweets.

Other times, I'll find that more recent generations have taken words and used them in more limited ways, but the term has a more general meaning. (casket comes to mind, which originally just meant 'small box', but now has death connotations)

Joe
Another example of a word that is now more limited in meaning is fuck - it originally meant to insert something into a hole, usually in the ground. There are many ways to plant seeds and each has, or used to have a specific name. Fucking was planting by digging a small hole. Now it means something completely different.
slebetman
A: 

In a sense, configuration is programming. It is a set of instructions for a computing device that has a very limited language - the set of allowable values for the parameters of the device/software.

One could view the apache server, for example, as a language interpreter, and the parameter values as the source code for that interpreter.

However, the devices are not Turing-equivalent in general (exceptions are things like emacs, where definitely it is) and I would personally reserve "programming" for cases where the language is Turing-equivalent.

Larry Watanabe
I personally believe that most configuration files would be far less crappy, if the designer of those file formats realized that he was not actually designing a data file format but a programming language. So, in some sense, the distinction between programming and configuration is actively harmful.
Jörg W Mittag
@Jorg That's actually a common idiom in tcl: the config file is simply a tcl script that is sourced into a sandboxed interpreter. Having conditionals in the config file is extremely useful although I personally tend to disable looping constructs.
slebetman
before the advent of xml, I used to use lex/yacc as a front end to parse my data files. that way I could put in commands to setup the configuration. In essence, I was basically writing my own language each time I wrote a program.Now, you can generally just use an xml format, and avoid all that trouble.
Larry Watanabe
@slebetman: That's a pretty common idiom in Ruby, Python, Perl, Lua and others as well, which can probably be traced back to Lisp. (What *can't* be traced back to Lisp?) As you point out, having the configuration language be Turing-complete is probably not a good idea. However, having a configuration language being *accidentally* Turing-complete is even worse. `sendmail.cf`, anyone? Apache's `httpd.conf` e.g. contains at least conditionals, if not loops and even higher-order functions. It *is* for all intents and purposes a scripting language. Except it's a *crappy* one, because it's designer
Jörg W Mittag
... didn't *know* that he was designing a scripting language. He thought he was designing a data storage format.
Jörg W Mittag
@Larry: actually, I believe that XML makes a terrible configuration language. XML is brilliant for machine-to-machine communication, but for human-to-machine or machine-to-human, not so much. Also, "just use XML" doesn't free you from designing the configuration language. XML only provides low-level concrete syntax, you still have to design the high-level abstract syntax as well as the semantics. Except that you are wearing a straightjacket made of angle brackets. (Note: if you never expect users to edit the config file, but rather *always* use a frontend, then XML is a brilliant choice ...
Jörg W Mittag
... because now we are talking about data storage and machine-to-machine (configuration frontend to application) communication.)
Jörg W Mittag