Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

The Poetry Of Programming

michael posted more than 11 years ago | from the coding-in-iambic-pentameter dept.

Programming 416

Lumpish Scholar writes "Sun's Richard Gabriel (possibly the only person with both a Ph.D. in computer science and an MFA in poetry) talks about "the connections between creativity, software, and poetry": "People say, 'Well, how come we can't build software the way we build bridges?' The answer is that we've been building bridges for thousands of years, and while we can make incremental improvements to bridges, the fact is that every bridge is like some other bridge that's been built.... But in software ... we're rolling out -- if not the first -- at most the seventh or eighth version. We've only been building software for 50 years, and almost every time we're creating something new.""

cancel ×

416 comments

Sorry! There are no comments related to the filter you selected.

sp? (-1, Offtopic)

Anonymous Coward | more than 11 years ago | (#4818084)

second post?

Re:sp? (-1, Offtopic)

Anonymous Coward | more than 11 years ago | (#4818089)

Genius. Almost makes up for the goatse link I clicked.

Communism among the hippopotami (-1, Troll)

Anonymous Coward | more than 11 years ago | (#4818120)

Communism is spreading like the disease it is among the wild herds of hippos on the Serengeti. This must be stopped. Your help is needed. Send as much money from your mommy's purse as you can find to:

Francois P.
123 Rue de la Dripping Labial Lips de Deux
Paris, France

I wonder what would happen... (-1, Redundant)

mschoolbus (627182) | more than 11 years ago | (#4818085)

If Microsoft started building bridges!!!

Re:I wonder what would happen... (1)

legoleg (514805) | more than 11 years ago | (#4818103)

Would it make it to the next century?

Re:I wonder what would happen... (2, Funny)

crashandburn99 (562149) | more than 11 years ago | (#4818105)

Would bring a whole new meaning to the term 'Blue Screen of DEATH' crashandburn99

Re:I wonder what would happen... (0)

Anonymous Coward | more than 11 years ago | (#4818114)

Why did you feel the need to share that?

Re:I wonder what would happen... (2, Interesting)

GMC-jimmy (243376) | more than 11 years ago | (#4818118)

I'm only getting a few things coming to mind if software were made similarly to the way bridges are made as this artical suggests.

Copyright infringment, DMCA, patent suits, ect...

They'd invent the Toll Bridge (tm) (2)

systemapex (118750) | more than 11 years ago | (#4818162)

It's quite obvious actually!

Re:I wonder what would happen... (1)

ch-chuck (9622) | more than 11 years ago | (#4818194)

Msft would never actually build the bridge, but they'd happily sell, at competitive price, a set of blueprints for new, inproved Advanced BridgeXP w/ patented extensions to the open High Level Traffic Shaping protocol (sorry, MsHLTS only works with MSHighWay) for a hefty fee and a legal disclaimer ("these blueprints provided AS IS w/o warranty express or implied as to useability or safety..."), but the state and taxpayers would have to do the construction. If any defects in the blueprints are found and corrected the state and taxpayers are responsible for obtaining new blueprints and the costs of implementing any corrections, incl wages of fitters, welders, construction equipment rentals, etc. Licensee of MSBridgeXP accepts all legal responsibilities for the safety of users, and indemnifies MSft of any and all risks. MSBridgeXP is protected by US and International copywrite treaties, and any unlicensed use will be prosecuted to the fullest extent of the law.

Bridges do one thing only (5, Interesting)

Anonymous Coward | more than 11 years ago | (#4818088)

Defy physics between two points. Software changes because what we do with it can change.

Re:Bridges do one thing only (5, Insightful)

Anonymous Coward | more than 11 years ago | (#4818152)

Bridges don't defy physics in anyway. Just because you are ignorant of the physics behind them doesn't mean it doesn't exist.

Re:Bridges do one thing only (-1, Troll)

Anonymous Coward | more than 11 years ago | (#4818195)

Yes, good work modding up as 'Interesting'.

FUCKING RETARDS!

Software Haiku (5, Funny)

Hayzeus (596826) | more than 11 years ago | (#4818093)

Process swiftly crash NULL pointers everywhere O -- Electric Fence!

Re:Software Haiku (1)

Hayzeus (596826) | more than 11 years ago | (#4818134)

...and you'll just have to imagine the line breaks...

Yes (4, Funny)

Anonymous Coward | more than 11 years ago | (#4818102)

Whenever I create software, it takes a lot out of me. Much like Picasso's painting, Michaelangelo's Sistene Chapel, ee cummings literary works (only I use more punctuation marks than she does), I am an artist. My work is meaningful and beautiful, and a part of me, which is why I release it under the GPL. For the GPL, itself, is also a work of art. It brings light to the darkness, it brings joy to the huddled masses of ones and seros yearning to be free.

Re:Yes (0)

Anonymous Coward | more than 11 years ago | (#4818132)

Well, the ode to the GPL there would be karma whoring, but since you're an AC I assume you just trying to prevent others whoring with similar comments.

s-a-r-c-a-s-m (0)

Anonymous Coward | more than 11 years ago | (#4818228)

teaky teaky too.

Re:Yes (5, Funny)

owenb (91248) | more than 11 years ago | (#4818157)

ee cummings literary works (only I use more punctuation marks than she does)

Ah, yes, the great emily ermintrude cummings. Her work was far superior to that upstart edward estlin, wasn't it?

Totally offtopic but interesting... (1)

gravelpup (305775) | more than 11 years ago | (#4818197)

According to this page [gvsu.edu] , it should probably be E.E. Cummings, caps and all.

MFA??? (-1, Flamebait)

Anonymous Coward | more than 11 years ago | (#4818125)

Mother F*cking A**hole?

Re:MFA??? (-1, Offtopic)

Anonymous Coward | more than 11 years ago | (#4818144)

Master of Fuck All, like most Arts grads?

Get real (2, Insightful)

PhysicsGenius (565228) | more than 11 years ago | (#4818128)

Something new every time? Then how come when I browse Freshmeat I see 18,000 IRC clients and a further 5,000 "aim workalikes"?

The problems people face have barely changed in thousands of years. The problems that business (which uses 95% of the software out there) faces haven't changed in 200 years. The requirements are well-known. The solutions exist. The reason the software sucks isn't that you have a PHB, it's that you lack discipline to find and fix all your bugs.

Re:Get real (2)

sphealey (2855) | more than 11 years ago | (#4818186)

The problems people face have barely changed in thousands of years. The problems that business (which uses 95% of the software out there) faces haven't changed in 200 years.
Amen brother. Although I would question the 200 years a bit. I recently documented a bug in an ERP system that violated a fundamental rule of double-entry bookkeeping. Those rules were codifed by the Medici's in the 1500s!

sPh

Re:Get real (0)

Anonymous Coward | more than 11 years ago | (#4818234)

So the internet, and all that comes with it isn't a relatively new problem that standard brick and mortar businesses have to deal with?

Re:Get real (3, Insightful)

fucksl4shd0t (630000) | more than 11 years ago | (#4818259)

So the internet, and all that comes with it isn't a relatively new problem that standard brick and mortar businesses have to deal with?

As a matter of fact, communication and information sharing and dispersal isn't anything new to business. Advertising and marketing are also nothing new to business. If the businesses hadn't spent so much time trying to make the internet "different" and instead applied the same rules and philosophies that have been known for hundreds of years to the internet, perhaps the dot com crash wouldn't have hurt as much? (I think it still would've happened, though)

Just because something appears new from the outside doesn't mean it is new. How long has the word "network" been in the english language, anyway? Anybody know?

Re:Get real (2, Insightful)

redfiche (621966) | more than 11 years ago | (#4818188)

I agree. We don't need to train code poets, we need to train software engineers. The problem with software development is not too much engineering, it's too little.

Re:Get real (2, Insightful)

SpaceRook (630389) | more than 11 years ago | (#4818213)

This is completely true. I've been reading Peopleware [amazon.com] these past couple days. Besides the fact that the authors flat-out say that there are very few new problems in software-engineering (this was in 1987!!!), the real difficulties are often due to bad management and work environment. If you're creating something new "almost every time", you are doing something terribly wrong.

Not at all (0)

Anonymous Coward | more than 11 years ago | (#4818260)

If you're creating something new "almost every time", you are doing something terribly wrong.

It's called research.

Not all of us are writing IRC/AIM clients.

Re:Get real (3, Informative)

Malc (1751) | more than 11 years ago | (#4818249)

Self-discipline seems to be a key factor between good and bad developers. Especially when it comes to languages like C++.

I've met people who are amazingly creative and churn out very innovative code... yet are incapable of testing it and making it production quality. Then I've met overly anal people who snuff out creativity in all the people around them, producing code that is late and uninspiring. The best developers are somewhere in between.

I've noticed that many of the best developers were once or still are musicians... perhaps musical discipline is good training for being a software engineer. I also read an article in the National Post recently that published the results of a reasonably sized study: students educated in the arts including music also achieved higher and better results in maths and science.

Re:Get real (1)

jbrownc1 (589652) | more than 11 years ago | (#4818299)

I don't think he's off-base at all. There's not just one portrait or one still-life or one landscape photo or painting, there's lots of them. They're all the same in one way, but all different as well, as each artist (insert programmer) tries to take the body of work that's out there and distill something better. Doesn't always work out, no doubt.

Maybe if there were an MFA in Software, and if students did study code the way art students study art, then there would be fewer IRC clients and more good IRC clients, as they jumped in on existing projects and helped them along.

I think his call for more iterative development, where the end-user was more involved in the process, would have made all those solutions that deal with the problems that business has faced for "200 years" less buggy to begin with. That and studying code from the "masters", as he suggests.

I'm curious about wheel reinvention (4, Insightful)

Anonymous Coward | more than 11 years ago | (#4818141)

Are we really creating something new each time, or creating things in parallel? I'm not an advanced programmer by any means but I've taken a few classes and noticed that the typical approach is to have students recreate solutions to common problems for the purposes of learning (e.g. The Towers of Hanoi to learn recursion), are we enculturating ourselves to go it alone rather than look at what others have done before us?

Re:I'm curious about wheel reinvention (5, Informative)

Bodrius (191265) | more than 11 years ago | (#4818193)

The approach to studying physics is also replicating well-known experiments with shoddy equipment, no experience, and predicted results.

This is not to educate scientist to repeat the same experiments over and over again. It's just that you cannot be expected to understand complex physics and create new experiments for new theories if you haven't seen and tried the building blocks first-hand.

They don't teach you to solve the Towers of Hanoi because it's a "common problem". They teach you to use recursion to solve problems, and to recognize a "recursion problem" by its characteristics, by using Towers of Hanoi as a common example.

Re:I'm curious about wheel reinvention (1)

aeakett (561176) | more than 11 years ago | (#4818335)

I think that geeks of all sorts (both computer, and engineering for example) have fiercely independent personallities. The difference comes when you consider the costs of development. Engineers tend to deals with physical structures that need to be built and tested. That means that they are more likely to carefully consider their design, and borrow from previous designs (since, if the design fails, the cost of hard materials to build another, slightly tweaked widget would be high). Computer geeks have the luxury of engaging in incremental development, and test as they build. This is (in my opinion) more condusive to "going your own way".

Try building a bridge... (5, Funny)

gUmbi (95629) | more than 11 years ago | (#4818143)

Try building a bridge:

a) with half the crew and materials required
b) in a quarter of the required time
c) that will be retrofitted to support train tracks and a second level
d) that will be backwards compatible with the previous bridge
e) that is better than your competitors bridge

Jason.

Re:Try building a bridge... (4, Funny)

majestynine (605494) | more than 11 years ago | (#4818190)

In Soviet Russia, Bridge builds YOU!

Re:Try building a bridge... (2)

simong_oz (321118) | more than 11 years ago | (#4818283)

it's called civil engineering. Your point is? :-)

ISO9000 (5, Insightful)

e8johan (605347) | more than 11 years ago | (#4818145)

Using ISO9000 (define what to do, do it and document it), proper object orientation software is (should) built like bridges.

Any major software company not reusing components and controlling the design/implementation process will fail. The reuse of components not only benefits the developers, but also the users (just look at KDE or Adobe's software, dialogs and tools are easily reused).

The reuse of software requires direction, thought and documentation. You must know what it is that you try to do, break it down into sections (objects) and define the interfaces and interactions before you sit down and write any code. This is the most common mistake when coding and the biggest problem in open source projects that begin as small personal pets of the project initiator and quickly grows out of hand.

Re:ISO9000 (0)

Anonymous Coward | more than 11 years ago | (#4818174)

(just look at KDE or Adobe's software, dialogs and tools are easily reused)

I assume you are showing them as examples of how bad things can be, right?

One word for you (4, Funny)

Lemmeoutada Collecti (588075) | more than 11 years ago | (#4818185)

Microsoft

Re:One word for you (2)

e8johan (605347) | more than 11 years ago | (#4818290)

I quote myself: "The reuse of software requires direction, thought and documentation".

Microsoft may have good documentation in some aspects (compared to open source alternatives), but they lack direction in many senses; it seems as if they are driven by a wish to add more functionality instead of improving upon the problems they have since before. The backwards compatibility is also an issue, for example Word2k is pretty much Word97, with more features, instead of better features. The changes to the UI is suprisingly small, concidering the new functions that have been added.

Also in the area of thinking Microsoft seems to have problems. For example OLE, OLE2, ActiveX, or DAO and ADO. Repetetive reinvention of the same functionality with an interface change as the direct consequence. Also the structure of Windows and for example the filesystems used have a history dating back to the eighties and the 8086.

If they'd think about what they do, create more flexible solutions from the start and stop caring for software developed in 1984 (run it in a virtual machine, VirtualPC on a 1GHz P3 has more power than the computers used back in '84) they'd probably make better software.

Do not get me started on all the little extras they've introduced in a (from the beginning) clean UI. Just the list of apps in the Win2k Add/Remove Software dialog makes me sick. Yet another area is their business practices, etcetera etcetera ad infinitum...

To sum things up: I do not think that Microsoft has good reuse of components, nor good object orientation.

Advice for programmers (0)

Anonymous Coward | more than 11 years ago | (#4818147)

As I look over this beautiful land
I can't help but realize
That I am alone

Why am I able to waste my energy
To notice life being so beautiful?

Maybe partying will help.

D. Boon

i wonder (5, Funny)

forkboy (8644) | more than 11 years ago | (#4818148)

I bet this guy owns that "Code Poet" shirt from Think Geek.

Wrong (5, Insightful)

Reality Master 101 (179095) | more than 11 years ago | (#4818149)

The answer is that we've been building bridges for thousands of years, and while we can make incremental improvements to bridges, the fact is that every bridge is like some other bridge that's been built.... But in software ... we're rolling out -- if not the first -- at most the seventh or eighth version.

I hear this theory every now and then, and it's just dead wrong. The fundamental problem is that a program is thousands of times more complex than a bridge. Imagine constructing a bridge out of hundreds of thousands, if not millions, of custom-fabricated tiny parts that have to fit together exactly right or the whole thing collapses. That's the correct analogy.

When you also combine that with the fact that you can look at the totality of a bridge and get a "sense" of whether it's done right or not, at best you can only look at a few hundred lines of code at a time.

Re:Wrong (3, Funny)

Mr_Dyqik (156524) | more than 11 years ago | (#4818172)

So it's like NASA's approach to building a satelite then? If you follow one of the more heavily documented programming techniques, maybe.

Re:Wrong (0)

Anonymous Coward | more than 11 years ago | (#4818176)

The fundamental problem is that a program is thousands of times more complex than a bridge.

You don't know a damn thing about bridges do you? Hell, if you think software is developed with "hundreds of thousands, if not millions, of custom-fabricated tiny parts" you don't know a damn thing about software development either. I guess that doesn't leave much of a reason for you to bother posting does it?

Re:Wrong (5, Insightful)

sphealey (2855) | more than 11 years ago | (#4818208)

I hear this theory every now and then, and it's just dead wrong. The fundamental problem is that a program is thousands of times more complex than a bridge. Imagine constructing a bridge out of hundreds of thousands, if not millions, of custom-fabricated tiny parts that have to fit together exactly right or the whole thing collapses. That's the correct analogy.
Sort of like a skyscraper? Or a large jet airliner?

sPh

Re:Wrong (1)

Blindman (36862) | more than 11 years ago | (#4818212)

This is not to mention the fact that all bridges serve the same purpose. No matter what inovations happen in the art of bridge buidling, you are still trying to connect two previously unconnected pieces of land. In the case of software, the problems in some cases have not even been defined yet.

I don't think that I agree with your analogy about custom-fabricated tiny parts, but I do believe that the original analogy is very wrong. A better analogy might be building construction, because of the variability of needs and flexibility of materials.

However, in any case, I thing analogies shoud be stopped just like stopping a train (Oh, nevermind.)

Re:Wrong (3, Informative)

RazzleFrog (537054) | more than 11 years ago | (#4818218)

I am guessing that you are an engineer. Bridges are extremely complex. Every bridge presents a new challenge. Watch a special on the building of the Brooklyn Bridge or the Tacoma Narrows. Read about the challenges of the proper Strait of Messina (Sicily) and Gibraltar bridges.

As for telling whether you can tell if a bridge is right or not, The Koror-Babeldaob Bridge stood for 20 years before collapsing.

Re:Wrong (3, Insightful)

mblase (200735) | more than 11 years ago | (#4818222)

Imagine constructing a bridge out of hundreds of thousands, if not millions, of custom-fabricated tiny parts that have to fit together exactly right or the whole thing collapses.

Sounds like the Golden Gate [pbs.org] to me. Or the Tacoma Narrows [pbs.org] , which is as good an analogy to Microsoft server software as I can possibly imagine.

Re:Wrong (1, Interesting)

Anonymous Coward | more than 11 years ago | (#4818240)

Also, this bit:

"every bridge is like some other bridge that's been built"

Is utterly, utterly wrong - unless you know nothing about bridges and go `yeah, i guess it sorta looks like that one`. In the same way that chinese and japanese looks the same when you don't know anything about either.

Re:Wrong (0)

plasm4 (533422) | more than 11 years ago | (#4818254)

lucky for us programmers that if a program hits a bug the user doesn't fall down a cliff unless you program for nasa i suppose

Re:Wrong (0)

plasm4 (533422) | more than 11 years ago | (#4818314)

I've been awake for too long to not use the preview button

Re:Wrong (1)

jmcwork (564008) | more than 11 years ago | (#4818273)

There are a (relatively) finite number of methods to construct a bridge between two points. Once it has been built, if you carry a 5 kg load across it, then carry a 5000 kg load across, you can be pretty sure that it will support all loads between those two values. The 'artistry' in software means a great deal more testing is required to achieve the same level of confidence. (This example is paraphrased from an article that was in (I believe) Scientific American)

Re:Wrong (1)

Annoyed Coward (620173) | more than 11 years ago | (#4818276)

Absolutely!!

And who says there is no software like bridge. There are servers, applications that are rock solid. They won't break for months (sometimes years), and that is an achievement given the fact that it is complex piece of HiTech around us.

Well, I am not talking about M$ products... u know....:-D

Re:Wrong (3, Insightful)

Malc (1751) | more than 11 years ago | (#4818282)

So you don't re-use the C library, or STL, or Java classes. etc? Over time we are creating more and more reusable parts that avoid custom-fabrication. I don't have to parse configuration files anymore as there is an abundance of good XML parsers that are far more flexible, reliable and robust than something I would custom build in a reasonable length of time. We haven't been making these libraries for long, but we're getting there.

Code Poet (1, Redundant)

WPIDalamar (122110) | more than 11 years ago | (#4818153)

The TRUE code poet... Someone needs to get this guy the Code Poet T-Shirt from thinkgeek!

http://www.thinkgeek.com/tshirts/coder/27ac/

bridges =?= software (5, Interesting)

mblase (200735) | more than 11 years ago | (#4818154)

People say, 'Well, how come we can't build software the way we build bridges?'

Because they're not analogous. Bridges are designed to be used for decades, if not centuries, by hundreds and thousands of people and vehicles without anything more than routine maintenance. The closest equivalent in the technology industry would be the mainframe computer [slashdot.org] .

"Ordinary" software, the kind meant to be used by consumers on their current PC which will be constantly upgraded, routinely unsecured and replaced within five years at best, is more like a gravel-top driveway with grass growing underneath.

The "only"? (5, Informative)

sphealey (2855) | more than 11 years ago | (#4818158)

I would have to seriously question the statement that Mr. Gabriel is "possibly the only person with a Ph.D in Computer Science and an MFA in poetry". Many computer people I have met have a lifelong fascination with language and literature. Particularly the academic types who pursue Ph.D's. I would guess that there are a fair number of people out there with that combination of degrees.

sPh

Re:The "only"? (2)

crimsun (4771) | more than 11 years ago | (#4818244)

I agree with your sentiment, sphealey. There are indeed a lot of people who seamlessly combine the intense analytical nature of science with the flowing creativity of "the arts." I'm one of these "types"--I have degrees in both computer science and English, but my sanity will only permit me to pursue a doctorate in the former. =) Additionally, I once had a professor in my CS curriculum who holds doctorates from UPenn in both CS and English. Aside from the sheer boggling and incredulity that some proponents of either discipline regard, there's a strong undercurrent of resentment akin to the whole too-much-science/technology versus too-much-hand-waving-and-superfluous-literary-theo ry. I've had professors call me out for simply being interested in either (which is by far the most ridiculous load of crock). Who cares? After all, simply pursuing an "advanced degree" requires a strictness and diligence that hints at a passion most people blithely overlook.

I'm reminded of the greats: Feynman, etc. I would add a chemistry professor I had named Holden Thorpe, quite possibly the most brilliant chemist and pianist I've ever met. It's far too small a world to say anything conclusive about being "the only one."

some day (1)

in_ur_face (177250) | more than 11 years ago | (#4818165)

i agree, we are still very young in the computing yet alone programming age. Every program we write bringns something new; whether it be something more efficient, code reuse, or learning a new aspect of a language.

With the recent trends of OOD,OOP... one day we will be able to write code the way people build bridges. Even then we will still find ways to overcome current designs and code.

Software isn't as much like poetry as he suggests (5, Insightful)

tmark (230091) | more than 11 years ago | (#4818166)

Sure, there's a creative aspect. But there's a creative aspect to the bridge-building example he describes. And while maybe on any given program you're working on only the 7th or 8th generation at most, almost any programming task that people deal with has been worked umpteen times - maybe not by them, but by someone. Let's face it, most programming is mundane, whether you work for Bank of America or Playboy, and involves working mostly the same old strategies and structures for slightly different ends. How creative can you get with bubble-sort or linked-lists, or which you've probably used tons of times before ?

The designers of the program - i.e., usually the project managers (*ducks*) or system architects do most of the creative work of conceptualizings how things will work and how they will meet the constraints of the particular problem. The programmers, most of the time, are brick-layers, carpenters and plumbers. Not that there is anything less noble about this latter work, but it's hard to call it creative.

Most of the creativity in software comes from newly emerging fields like, say, robotics, AI, or computational biology, but usually this creativity comes from the algorithms which get hashed out and proven by theoreticians, not rank-and-file programmers.

The closest thing to a proof that programming is mostly not art, that I can come up with, is this: bad programming is mostly identifiable by almost every programmer. But there is nothing close to a consensus as to what defines bad art, or bad poetry, or bad architecture. The latter judgements are far more subjective.

Re:Software isn't as much like poetry as he sugges (3, Interesting)

smcdow (114828) | more than 11 years ago | (#4818271)

The programmers, most of the time, are brick-layers, carpenters and plumbers. Not that there is anything less noble about this latter work, but it's hard to call it creative.

Sounds like you don't do much programming. Nor construction work, either.

I agree with you that the higher level conceptualizing is important and very creative. But there is tons of creativity involved in solving lower-level, everyday-occurance types of problems, be they in software development or construction.

Don't underestimate the importance in this. Creative, clever solutions to those seemingly unimportant (and often hidden) lower-level problems can go a long way towards getting the higher-level system concepts to work as designed. This is true for larger software systems and for building construction.

Re:Software isn't as much like poetry as he sugges (0)

Anonymous Coward | more than 11 years ago | (#4818287)

The designers of the program - i.e., usually the project managers (*ducks*) or system architects do most of the creative work of conceptualizings how things will work and how they will meet the constraints of the particular problem.

Aah, it sounds like you've worked on a properly funded and staffed project!

(Lucky bastard.)

Productivity Ruse (0)

Anonymous Coward | more than 11 years ago | (#4818171)

I wear this tie
just so I can loosen it,
and look disheveled.

That's the game I play,
begging for a promotion,
a brown nose fashion.

I don't do this for the money --
really, I've got nothing to
do with it,
except buy more things
I'm unable to use,
or a nicer car to stow them in
while I fret over broken automatons,
robots that are mine to control.

I'm no diety, no ambassador,
no megalomaniac but a mechanic,
longing to chat idly with a machine
that know my voice,
needs me to operate
and performs better while I'm around,
trying to impress me.

Many years ago I may have been
a miller or a blacksmith,
6 days sweating day until night,
whistling through my ears as the mind
concentrates on placing the hammer,
following the gears and
sparking iron,
never thinking a boorish thought.

Ah, but instead to mill the data!
To forge queries and horde passwords!
It's not the dream of a child,
eyeing the romance of placing ones self in mortal danger,
but it is more than a paycheck:
to be an archivist
and a tradesman.

Must post anon because this is really a piece of shit. -- M

you insensitive clod!! (2)

SuperDuG (134989) | more than 11 years ago | (#4818173)

I have both a Ph.D. in computer science and an MFA in poetry.

Eh? (2)

sporty (27564) | more than 11 years ago | (#4818175)

Did he just compare Windows to FreeBSD to Linux?

I never could understand art :)

That's what I love about programming (4, Insightful)

vadim_t (324782) | more than 11 years ago | (#4818177)

Almost anybody can do something new. Not necessarily something awesome and groundbreaking like the O(1) scheduler, but pretty much anybody with some skill can make their little contribution in the form of a Perl module for example.

I also like that in programming it's fairly easy to reinvent things. For example I'm pretty sure a few people reinvented bubble sort or linked lists while playing with a programming language without having read anything but the manual for that language. Gives you a nice feeling to find that you were able to come up with useful things on your own.

How come we can't .... (5, Funny)

Chillblaine (586808) | more than 11 years ago | (#4818178)

'Well, how come we can't build software the way we build bridges?'

Obvious reasons. Those foolish cavemen (or whoever) that built the first bridges didn't patent the design and copyright the plans. Then hide the bridge in big black boxes so nobody could try design something similar.

They also didn't have to worry about the greedy land owners at either side of the river charging them huge amounts (or just refusing them) to get information on ground they needed to build the bridge ends on.

$DEITY bless the software industry!

Additional notes... (1)

PDHoss (141657) | more than 11 years ago | (#4818182)

"But in software, even with something such as Java(TM) 2, Enterprise Edition or the Java implementation (or almost any of the APIs we define), we're rolling out -- if not the first -- at most the seventh or eighth version."

He then added, "The whole process seems to be very slow and only the engineers with the best memories seem to be able to roll these versions out in a reasonable amount of time. And first getting started in the morning... don't even go there. Also, look at our offices; the furniture looks cheap and it looks like it was set up for the lowest common denominator."

A joke at Java's expense... don't take me seriously, please.

LOL! (-1, Flamebait)

Anonymous Coward | more than 11 years ago | (#4818199)

"The Poetry Of Programming"

*LOL*, I bet those people hasn't wrote any poetry in their life. What kind of BS is this.

RTFA (3, Funny)

Cap'n Canuck (622106) | more than 11 years ago | (#4818323)

Gabriel's written 1000 poems in the last two years, which is about 1000 poems more than you have.

[sarcasm]
I bet youse hasn't written a grammatically correct post in their life.
[/sarcasm]

We need more geeks that are less geeky (4, Insightful)

Junks Jerzey (54586) | more than 11 years ago | (#4818201)

possibly the only person with both a Ph.D. in computer science and an MFA in poetry)

That's wonderful! For some time now I've been thinking that perhaps a computer science degree is exactly what geeks don't need. Heck, they're already wrapped up in the tech world, and they'll spend the rest of their lives coding, so while not get well rounded early on. Get a degree in history or literature or creative writing, then get the computer science degree later.

The uber-geeks are often the most stubborn, the most prone to get into Slashdot arguments, the ones who have the narrowest views. The more interesting techies with wider views often tend to get out of technical fields later on, because mindless code monkeys who think C++ is The Way and develop software by working 12-14 hour days, well, they're just so mind numbing after a while.

Something about bridges (1)

anothertom (629033) | more than 11 years ago | (#4818202)

The fact is that every bridge is like some other bridge that's been built....

Take a look at St.Emmeran's Bridge in Rotterdam or at the great Oresund Bridge in Denmark. These bridges are completely different, innovative and they are huge. Do they have flaws, security holes or bugs? Scyscrapers are a eac completely differnt thing, too. Do they collapse (No - Airplane attacks don't count) misfunction or do they ave to be patched? No. The reason ist that software has to be cheap in the first place.

Re:Something about bridges (0)

Anonymous Coward | more than 11 years ago | (#4818295)

If you are refering to the Erasmus Bridge [glasssteelandstone.com] in Rotterdam, It did need patching. A calculation error was made, causing the cables to vibrate way too much in strong wind. So I guess software engineering is not so unique then...

The obvious bridge/software analogy (2)

dpilot (134227) | more than 11 years ago | (#4818206)

So many posts later, and nobody has mentioned it, yet.

Much software is built like the Tacoma Narrows bridge.

Or, what I once heard about building bridges... Anyone can build a bridge that won't fall down. It takes an engineer to build a bridge that just barely won't fall down. Really a comment on making efficient use of materials.

I would probably suck but... (1)

B1ackDragon (543470) | more than 11 years ago | (#4818209)

I've always wanted to write a poem in code. I never really tried though because a)it would be difficult due to lack of vocabulary (and I dont want it made up of a bunch of unused variable names) and b)it would certainly suck.

Re:I would probably suck but... (1)

Mxyzptlk (138505) | more than 11 years ago | (#4818245)

Take a look at some Perl Poetry [arminco.com] . Perl can be nice, if you put your heart in it :-)

I agree (3, Insightful)

joss (1346) | more than 11 years ago | (#4818221)

Amazing that this can be treated as an innovative thought. It should be common sense. Naturally, there are forms of programming that are much more about engineering than creativity, where the bridge analogy works, but the fun and more worthwhile ones arent. Whenever someone says something like this, a lot of replies here run along the lines of "nonsense, hardly anybody writes anything innovative". All I can say to that is: "just because you're a brainless troll with a boring job, doesn't mean everybody is - it must suck to be you".

Although I agreed with his basic premise, the paper is kinda dumb in parts. For instance he answers
> Wasn't object-oriented software supposed to take the labor out of programming?

As though it was a reasonable question. He should have stuck with his analogies... OO is one way of structuring a program, it doesnt provide a magic cure to anything. One may as well ask "why it is that a good Haiku is difficult to write, after all the structure of the poem is already defined, all one needs to do is fill in the words, doesn't this take the labour out of poetry".

A more interesting paper on programming is http://www.reciprocality.org/Reciprocality/r0/inde x.html

Software like bridges? (3, Funny)

teamhasnoi (554944) | more than 11 years ago | (#4818230)

If software was like bridges, we'd be increasing the number of lanes to drive on by 75%, while going 25% as fast in cars that have a top speed that doubles every six months.

Zen moment: If software is like bridges, what is Hoyles Bridge software like?

reuse is key (2)

smd4985 (203677) | more than 11 years ago | (#4818231)

"You don't look at the source code for great pieces of software. Or look at the architecture of great pieces of software. You don't look at their design."

this is a fundamental flaw with today's practice of software engineering. developers reinvent the wheel way too much - we are starting to reuse low-level abstractions routinely (i.e. java.util) and design patterns do help. but if we want to REALLY start developing increasingly complex systems we need to leverage more complex code that works. i guess general-purpose processors still aren't quick enough to nullify any performance degradation a high-level abstraction may cause, but we'll get there (or the state of the art won't really progress).

Re:reuse is key (0)

plasm4 (533422) | more than 11 years ago | (#4818301)

heh.. it almost sounds like you're advocating vb.net ;)

Old joke comparing building to programing (1)

spdegabrielle (622325) | more than 11 years ago | (#4818236)

If builders build buildings the way programmers write programs... ...the first woodpecker to come along would destroy civilisation.

I spend too much time in IRC? Never. (1)

Jay Addison (631128) | more than 11 years ago | (#4818239)

I'm just glad no-one has come up with that god-awful "( 2b || !2b )" rubbish from all those IRC quote collections. They're the work of the devil - speaking of which, dont even mention that sign of the devil in hex nonsense. On topic though, I think bridges/software and poetry/software are both rather skewed comparions. Sure, we take an engineering approach to building software - but its more like constructing factories or business offices which all have to support different roles. Architects still have a lot of trouble, even today, after thousands of years of practice - you must have heard stories of failed construction in your local news. As for poetry, I think it has a certain amount of validity in that programmers like to have their own styles and methodologies, but even if I manage to finish a project in my own, rather minimalistic and conformist style, I never feel that I've created actual artwork - maybe I'm just in the wrong kind of work though. Cheers, Jay

Re-Inventing Wheels, et al. (1)

ivi (126837) | more than 11 years ago | (#4818242)

With so many new languages being created,
both inside new CPU's & computer languages alike,
no wonder our programs need to be creations
in themselves.

Of course, new applications can require new
creations to implement them... but, once they
have been implemented once... WHAMMO!
It's time to [more or less mechanically]
re-implement them in all the popular
"colors" of language around...

There are more pressing needs out there,
to which our creative minds can be applied.

Arts and Programming (2, Interesting)

General Cluster (450538) | more than 11 years ago | (#4818246)

My degrees were actually in music, not programming. When I got into the professional programming world I found that many of the programmers (not all) whose work I respected the most also had some sort of arts background.

I question though whether it is possible to teach this sort of creativity alongside computer skills in any meaningful way within the confines of a two-year master's program.

Re:Arts and Programming (2)

crimsun (4771) | more than 11 years ago | (#4818292)

I'm willing to bet it is possible. I know a fair number of CS graduate students who delve pretty deeply into literary theory, Classics, etc. Of course we're not speaking of unmotivated folks by any means; one can't well be taught creativity--IMO that's something you yourself recognize and cultivate.

Bridges and Incremental improvement (2, Informative)

eval (8638) | more than 11 years ago | (#4818262)

It's not strictly true that we can only incrementally improve bridges. Consider that steel was first used in a suspension bridge in the late 1800s. Before this, suspension bridges were fairly limited in span length, due to the strength of the materials. Then the Brooklyn Bridge was built (the paradigm) and in fewer than 50 years, the Golden Gate Bridge (and many others). So in only a few decades, the limits of bridge design were expanded by at least an order of magnitude. (That's not much in CPU terms, but in the world of big things like bridges, it's pretty impressive.)

Anyone wanting a good read on the subject of bridges, I suggest "The Great Bridge" by McCullough, the story of the building of the Brooklyn Bridge. Most of it's about Washington Roebling (who took over when his father, John Roebling, the original designer of the bridge, died, before the bridge was actually started). It's a truly inspirational story for anyone that calls themselves an engineer.

I'm creative and you're not (5, Insightful)

nadador (3747) | more than 11 years ago | (#4818267)

If Mr. Gabriel had a degree in Civil Engineering, I think his view would be very different. (Sidebar: mechanical engineers makes bombs, civil engineers make targets. But that's neither here nor there.) Building bridges is not a simple matter, and just because *you* don't understand it, you can't minimize the task.

Half the problem with software engineers is that we are so damn "creative" on certain parts of the development cycle ("oooh, look at my pretty flow chart" or "oooh, look at my pretty implementation of a double linked list even though there's one in the STL" or "oooh, look, I can use function pointers"), but very underwhelmed by other parts of the development cycle. We're so "creative" we have to build everything ourselves.

We'd all like to think we're code poets. We want our jobs to be creative and exciting and spiritually fulfilling. We want to have jobs that stir our souls.

But we don't.

We work for *the man*. We brew his coffee and pick up his dry cleaning. We right code to integrate blah blah blah legacy garbage with the latest blah blah costs too much but has good buzz words blah blah. We right buggy code at work, and a bajillion IRC clients and POP email readers at home. Fifty years into the computing "revolution" and we are no closer to a true "science" of computing than when we started because the "state of the art" is still mostly hunt-peck-compile-crash-debug.

Call me a cynic, but as much as you'd like to think you're a unique, artistic nerd, we're all really just cogs in the wheel.

Artist vs. Craftsman (2)

Cap'n Canuck (622106) | more than 11 years ago | (#4818269)

Gabriel states that writing software should be treated as a creative activity, and gives us an analogy between a software developer and an artist. This is an interesting theory, but as a musician, I'd have to say that true musical genius and innovation belongs to a small set of individuals. The rest of us can enjoy making music, but when you come down to it, for every Monet and Mozart, there are thousands of painters and musicians, making a living by crafting paint and sound - coloursmiths and tunesmiths, if you will.

The same is true of writing code - there are a lot of plodders out there, and few innovators. I'm sure that most of you would put yourself in the latter category, but let's be honest - how many of you have ever had a showing of your code at the Museum of Modern Art?

The other thing problem I had with the article was that Gabriel claims that bridge designers "don't have to reinvent the wheel", while code developers are "creating something new" almost every time. What does that say about code re-use? I'd feel a hell of a lot better driving across a bridge that looks like a bridge, rather than one that has a funky, Escher-esque design quality (never mind that it would probably be a Moebius bridge). Developers don't need to excercise creativity ALL the time - even the best ones.

On the whole, though, I do agree that one should code creatively. Which is just a fancy way of saying "think outside the box".

Call me a cynic but... (3, Interesting)

Hasie (316698) | more than 11 years ago | (#4818275)

"We've only been building software for 50 years, and almost every time we're creating something new."


And we've only been building transistors for 50 years and chips for 30? years, but most chips seem to turn out alright. And this with radical process changes every few years.


I don't think that software is any more difficult to design than anything else - it's just that we don't try to design it! Software is written, not designed/engineered. Stuff is so easy to change later that we neglect the design phase and skip directly to implementation. Things like bridges and chips and most other engineering projects have to be right first time because they are almost impossible to modify later. Imagine what a bridge would look like if it were built like software!


The only way to get round this is to apply sound engineering design principles to software. This means that one has to complete the design before one starts coding/building in the same way as other engineering projects.


If we designed software the way we design bridges we would have much better software (or worse bridges ;).


Soapbox mode off...

arts vs. programming (4, Insightful)

fhwang (90412) | more than 11 years ago | (#4818279)

In school I studied both computer science and fine arts, and I consider the two extremely different. The biggest, most obvious difference is that in programming, you have a very good sense of when you're done. If your specs (either from your client, or your programming assignment) are relatively clear, you can write your code and be more-or-less satisfied that you've met them. You can write automated regression tests if you want to really make sure. (These days I almost always write automated tests.)

But for art? Forget about it. I can't tell you how many hours I spent agonizing in front of a painting or sculpture or comic book page, wondering if it was finished, if it had enough marks or not ...

The two are very different. Not that one is necessarily better than the other, but they're very different.

I think comments like Gabriel's often stem for a desire to get more respect for programming. Gabriel probably compared the respect that artists get, vs. the respect that programmers get, and decided that the way to get more respect for programming is to try to convince everybody that's a sort of art.

His intentions are good, but you end up muddying the waters too much that way ... If everybody did programming the way artists do art, programming would be even more buggy and expensive, which doesn't do anything good for respect for the craft. The way to get more respect for programming is to figure out ways to make us all better programmers. Anything else is just a distraction.

Lack of constraints (3, Interesting)

Hayzeus (596826) | more than 11 years ago | (#4818280)

The fundamental problem with software development is NOT that we're just new to it. The real problem is that the process itself imposes relatively few constraints on the developer. Put another way, there may be hundreds or even thousands of ways to solve a particular problem in software -- not all of them good, obviously, but workable nevertheless. Bridge-building (basically a metaphor for traditional engineering), on the other hand is constrained by basic laws of physics; there are a relatively few ways to build a bridge that will support a reasonable amount of weight.

This lack of constraints peculiar to software development implies a couple of things:

  • Without the confining limits of real-world physics, software development tends toward increasing complexity since there is less to hold back the addition of new functionality over time (or even in the initial design). This is especially true for commercial software, where nifty features are a firm's bread-and-butter.
  • The lack of constraints makes it practically difficult to apply the traditional discipline associated with other branches of engineering. In a commercial environment especially, economic pressures tend to favor features and deadlines over stability. This is probably also true to some extent for personal or Open Source development.
  • Reuse of components can help -- the problem is that a component that doesn't behave EXACTLY the way a given developer wants it to is often discarded in favor of custom code. No electrical engineer would design their own timer circuit when a simple 555 might be adequate. But this kind of thing happens in software development all the time because it's relatively easy to do.

If you buy into my little pet theory, most of the problems associated with software development will likely remain with us for some time to come.

MSA (1)

leoboiko (462141) | more than 11 years ago | (#4818291)

"So, the idea behind the MFA in software is that if we want to get good at writing software, we have to practice it, we have to have a critical literature, and we have to have a critical context. It looks like we may be able to start a program like that in the next year or so at a major university that I'm not free to name. It's probably going to be called a Master of Software Arts."

I want that title.

Poetry and Code (1)

Greenisus (262784) | more than 11 years ago | (#4818307)

I was the editor of my high school's literary magazine back in the day (I was always more of an English person than a math person), and my senior year I submitted a C++ Hello World as a poem to the magazine. Got a lot of strange looks but it got in.

MS bridge standard (1)

Curialis (218588) | more than 11 years ago | (#4818316)

I have built a bridge that works just fine. But now the people on the other side of the bridge have decided they want my bridge to interface with their new Microslick Bridge Interface. This interface seems to be built on the same standard as mine but on their side only 2 of the 3 lanes seems to work. The interface documentation clearly states there are three lanes but one seems to be closed.

After a brief call (with a fee) to the Bridge Support Line it turns out that most people did not use the third lane so that functionality was not implemented. Maybe in the next release of the Interface.

There also seems to be a mandatory toll on the other side of the bridge. Unfortunately the toll booth operators don't seem to speak the same language that everyone on this side of the bridge speaks. It's close but the noun and verb order seems to be reversed. Confusing but we can work around it.

After buying the Bridge Interface Development Kit it seems that this new way of talking to the toll booth operators is more efficient than the way everyone else has used the language before. Who knew.

It also seems that the MS has patented a means of allowing a car to move from point a to point b where a and b are separated by impassable obstacles. So now I must license the technology I am using to interface with the MBI.

I am glad bridge building is so easy.

Not like this bridge, please (1)

fingerbear (602605) | more than 11 years ago | (#4818324)

I don't think building bridges is as easy as he makes it sound. Here's one example [washington.edu] he should take a look at.

can great coders be "taught"? (3, Insightful)

lutzomania (139132) | more than 11 years ago | (#4818327)

I only have a minimal knowledge of coding, but I do know a bit about writing, and this guy's poetry (or at least the excerpt in the interview) is pretty bad. The rhythm is bad, there's no interesting, imagery, etc. But that's just my opinion (he said, knowing he was about to be flamed...).

But can great coders be taught? I don't think so. A debate has been raging within the creative community for years about the value of MFAs. Many people see them as a cynical way for universities to bring in extra money by bilking minimally talented people who want to "learn" how to write.

Just like great writers, great coders seem to have an extra intuitive "something" that the rest of us don't. In my experience, the best software engineer I've worked with doesn't even have a college degree. He started coding and studying math & logic on his own at age twelve and simply evolved from there. He was a kind of computer science savant. His talent was very impressive but very mysterious, just like Faulkner's, or Eliot's, or Bishop's.

Gimme Perl poetry any time! (2, Informative)

tuxliner (589414) | more than 11 years ago | (#4818330)

Perl poetry [arminco.com]

Master of fine arts in software (1)

I am Jack's username (528712) | more than 11 years ago | (#4818339)

"because most of it is creative (in that [programmers] don't really know what we're doing when we start out)... [Bridge building engineers] don't have to reinvent the wheel... study the lives of great software designers." - Richard Gabriel

How not to plan 101.
How to ignore OOP 101.
rms, the early years.

Seriously tho, some good ideas mentioned.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?