Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Re (tilly) 1: Artistic Method

by tilly (Archbishop)
on Mar 30, 2001 at 01:48 UTC ( #68215=note: print w/replies, xml ) Need Help??

in reply to Artistic Method

I think it is valuable to reflect on the process of programming, just as you reflect on the process of creation in art. However I don't think that the parallel carries on too well from there.

The difference is that with physical artwork, you are creating a concrete something. It has form, mass, and these attributes are intrinsic to the experience.

By contrast programming has no real form or mass. If I write:

perl -MLWP::Simple -e 'getprint(" +e_id=36197")'
How big is that program? It is one line, right? But no, I pulled in LWP::Simple. Which pulled in more. And if I am going to talk about that, I pulled in Perl. And Perl used the operating system. Plus I used machines and networks over a good chunk of the US. Some of which include a webserver and database in (IIRC) California.

Does it even make sense to ask how big it is? Probably not. What makes sense is to ask how big that functionality was for me.

The answer is one line.

Were I to name 2 opposing pulls in programming, I would have to name building on what was done before, and reorganizing or reconceptualizing what was already done. At any given time these dynamics oppose each other. The first is a building dynamic. The second is creative destruction. Between the two of them you (hopefully) find solutions and then boil them down to easily repeated patterns that allow you to solve hard problems with ease.

Being from math I see parallels there. For some food for thought see The path to mastery. Like art, what you don't see is often as important as what you do...

Replies are listed 'Best First'.
Re: Re (tilly) 1: Artistic Method
by Dragonfly (Priest) on Mar 30, 2001 at 02:01 UTC
    Ah, yes, and when I look at that line of code, I see just as much subtlety and nuance as I do when I look at a Japanese brush painting. Your code means exactly what you intended, it is correct the first time, and you have found the harmony that occurs when everything is in balance.

    Most of the best one-liners I've seen started as much more than that, and were eventually expressed by the programmer in a program that completely disguises the amount of study and care that went into mastery of that code. Your one-liner looks simple, no? But it is most certainly not. Others who have studied your form, either in practice, or appreciation, can see that.

      I agree that is a very well formed program. But the work that went into it wasn't mine. If you want to put that on the shoulders of one person, that person would probably be Gisle Aas. (Who in turn depended on others.)

      That is an amazing thing about programming. People can and do build off of other people's work. I can take that example, read it over the phone to someone, and in a matter of minutes they can tailor it to their needs.

      Now people often remark that Perl is known for amazing one-liners. But few ask why it is.

      I would argue that it is because Larry Wall did a very good job of reconceptualizing what people need to know to write useful programs, and did a good job of allowing people to contribute to that and then build off of each other's work.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://68215]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (2)
As of 2022-05-20 01:50 GMT
Find Nodes?
    Voting Booth?
    Do you prefer to work remotely?

    Results (72 votes). Check out past polls.