« Are you a passionate tech user? | Main | Head Rush Ajax ships! »
Code like a girl

Do engineers and programmers care about concepts like beauty and elegance? Should they? Designers have always known that looks matter--that the outside (interface) matters. But deep in the heart of those building the inside--the technology most users never see--lies the sensibility of an artist. In a kind of "Design Eye for the Code Guy" way.
While I'm stereotyping with abandon, I might as well be honest. I've been going to tech conferences for the last 15 years, and I swear the ratio of pocket protectors to Urban Outfitter clothes has shifted dramatically. So maybe it's not accurate to say geeks today are better looking--but they're certainly better dressed. With hipper haircuts.
Does this mean anything? Maybe.
What prompted this post--and it's whimsical title--is a post by Jamis Buck titled Beautiful code, test first, which includes the following:
"He was telling me how he feels like he has to sit and tweak his code over and over until it not only acts right, but looks right. It cannot be merely functional, it must be beautiful, as well."
But the best part was a comment by "Morten" that included the line:
"As for spending too much time on making the code look right down to the last indentation - my code has been called “girl code” for the same reason..."
And there you have it. I think "girl code" is quite a compliment. Because caring about things like beauty makes us better programmers and engineers. We make better things. Things that aren't just functional, but easy to read, elegantly maintainable, easier--and more joyful--to use, and sometimes flat-out sexy. A passion for aesthetics can mean the difference between code that others enjoy working on vs. code that's stressful to look at. And whether we like it or not, most of the world associates an appreciation for beauty more with women than men (especially geek men). Women may have a genetic advantage here.
From one of my favorite books on aesthetics and technology, David Gelernter's Machine Beauty:
"This book explains how beauty drives the computer revolution: how lust for beauty and elegance underpinned the most important discoveries in computational history and continues to push research onward today....The best computer scientists are, like [Henri] Vaillancourt, technologists who crave beauty.
There is the ever-present danger when you discuss beauty in science, mathematics, and technology that readers will assume the word is being used metaphorically... And could a mathematical proof, scientific theory, or piece of software be "beautiful" in the real, literal way that a painting or symphony or rose can be beautiful?
Yes."
And from the back cover:
"Both hardware and software should afford us the greatest opportunity to achieve deep beauty, the kind of beauty that happens when many types of loveliness reinforce one another, when design expresses an underlying technology, a machine logic...
These principles, beautiful in themselves, will set the stage for the next technological revolution, in which the pursuit of elegance will lead to extraordinary innovations."

Yes, calling beautiful code "girl code" is both silly and some might believe sexist. But that doesn't mean there isn't some truth to it. As a female technologist in a heavily male-skewed industry, don't compliment my hair, but if you tell me my code is pretty, I might just give you some tips.
And if it makes you feel better, I'll refer to YOUR gorgeous code as metrosexual. But we'll both know the truth.
[full disclosure: though I'm 100% female, I have personally authored some of the worst-looking code in north america.]
[UPDATE: someone has Code like a girl shirts on CafePress.]
Bonus beauty links:
Virginia Postrel's "the substance of style"
CSS Zen Garden: The Beauty in CSS Design
Flickr "Beauty is Simple" group
Posted by Kathy on March 29, 2006 | Permalink
TrackBack
TrackBack URL for this entry:
http://www.typepad.com/t/trackback/220252/4556924
Listed below are links to weblogs that reference Code like a girl:
» Können Frauen nicht nur besser schreiben, sondern auch besser programmieren? from {Bücher,Unterwegs,Rechner-Basteln,Kochen,...}
Neulich hab ich ja schonmal auf einen Artikel hingewiesen, in dem es darum geht, ob Frauen besser schreiben können als Männer. Kathy Sierra von Creating Passionate Users schaut sich das Thema in Bezug auf eine ganz bestimmte Art von Schreiben an: Pro... [Read More]
Tracked on Mar 30, 2006 5:14:03 AM
» Coding Like a Girl from HTNet
No, thats not an insult. What Im actually referring to is this post from Creating Passionate Users. I think that the captions for the first two pictures was accidentally switched, but dont take my word on it. Im not the arts... [Read More]
Tracked on Mar 31, 2006 1:02:06 AM
» Metrosexual programming! from mauriciogonzatto
- Isso mesmo! Programação metrosexual!- Não!! Eu não estou virando viado! Primeiro uma definição de termos:Metrosexual... [Read More]
Tracked on Mar 31, 2006 12:26:38 PM
» Girly coders from 6th Sense Analytics
If one of your guy friends drop it in to the conversation that you, also bloke, happen to “drive like a girl” then you can bet he isn’t complementing you. He’s actually being politically incorrect by drawing on a few popular stereotypes about ... [Read More]
Tracked on Mar 31, 2006 4:07:37 PM
» Refigerator Code or Girl Code from Developer Testing
It doesn't matter if you call it Refigerator Code or Girl Code or Beautiful Code or simply Clean Code, the meme is out there that is isn't enough to say the code works and then leave it at that. Even... [Read More]
Tracked on Apr 1, 2006 7:56:46 AM
» Code Like a Girl from DRT
[Read More]
Tracked on Apr 6, 2006 1:02:55 AM
» Beautiful Code from Dynamist Blog
Thanks to reader Jon Sweet for sending this link to a post on the Passionate Users blog that defends--in fact, advocates--polished, carefully crafted "girl code." Writes blogger Kathy Sierra, "A passion for aesthetics can mean the difference between co... [Read More]
Tracked on Apr 6, 2006 10:23:09 PM
» Ruby, Rails, and the mainstream from Journal
It seems I have stirred quite a pot around the office with my recent ravings about Rails. Today the tech-head on the board sent me this article about why Rails wont make it into the mainstream and asked for my... [Read More]
Tracked on Apr 7, 2006 6:35:17 AM
» You Code Like a Girl! from The Coding Monkey
Thanks to Virginia Postrel for pointing out this rather interesting post about the aesthetics of code. [Read More]
Tracked on Apr 7, 2006 8:16:36 AM
» Code like a girl... can from thirk
Code like a girl... can everything be described as "beautiful"? [Read More]
Tracked on Apr 10, 2006 8:04:13 AM
» Notes on asthetic the beauty of code from Eddie Bell - Proof Of Concept
I wrote a piece a few days ago about programming as an art form. I found a couple of good articles from here and here talking about similar concepts. They are more specifically about the aesthetic qualities of code, which is something I strongly believ... [Read More]
Tracked on Jul 22, 2006 4:13:10 AM
» assorted sweets from angiemckaig.com
Most businesses self destruct"Yes, you have to pay attention to what's going on out there, but I'd argue you need to pay more attention to what's going on in here. In your own company. In your own products. In yourself and your own vision." A-men. Cre... [Read More]
Tracked on Jul 29, 2006 7:13:33 AM
» Code Like a Girl from BeautyDialogues
I was checking my delicious del.icio.us tags yesterday and came across a post (saved for me by the eagle-eyed Beth Kantor) that spoke directly to my heart ... Code Like a Girl. Reading this post about the joy of writing [Read More]
Tracked on Dec 19, 2006 12:43:28 PM
» Saturday night ramen, and some great blogosphere gems from Betsy Aoki's WebLog
Early on when I started blogging, I used to do this... You know, just wander around blogs I liked. Maybe [Read More]
Tracked on Mar 4, 2007 12:40:19 AM
» Code like a girl from Tom's Blog
I found this interesting article about code beauty and the beauty of technology. It has useful links to follow up on code beauty and its origins. Also, it links you to a cool programmer and blogger community. The best... [Read More]
Tracked on Mar 11, 2007 3:30:04 PM
» Code Like a Girl from Boldly Going
This is both an interesting read, as well as a light-hearted jab upon my business partner, with his pristine code, strives for proper Web page validation, and his critiques on my Web development process: Code like a girl. I code like a man.
... [Read More]
Tracked on Mar 17, 2007 12:52:25 AM
» old links roundup from metamanda>>weblog
All stuff that's been piling up for a while, and I want to keep track of these things. A lot of this is stuff that I might have run across this past spring when I was in the throws of theses and advancements and moving and all kinds of less-than-fun ri... [Read More]
Tracked on Sep 7, 2007 8:42:52 AM
Comments
Thanks for this post. There are lots of us men who think this way! We just keep our heads down. I am also a musician and I use to make furniture for a living. I bring all that with me when I code and teach. I require that my students have good looking code as I believe that code is a form of literature that helps us communicate with each other.
Posted by: Eric Knapp | Mar 29, 2006 5:41:24 PM
I've always been a proponent of the programmer as artist. Here's an interesting post by apotheon on code elegance: http://techrepublic.com.com/5254-6257-0.html?forumID=99&threadID=173898&messageID=1915531&id=3923716
and my response:
http://www.chipstips.com/microblog/index.php/post/61/
Posted by: Sterling Camden | Mar 29, 2006 5:48:22 PM
Kathy,
if there's any truth to the numerous psych studies that have been conducted demonstrating that beautiful infants get picked up and played with more (and consequently stimulated more and learn faster) then your observation about pretty code has even more weight than you think. Consider if the same principle discovered in the infant studies applies across the technological barrier to inanimate code samples... which type of "baby" would you rather have?
of course you could always just hit the "apply source formating" feature if you use DW but I agree with you that being anal about how your code looks and grooming it by hand is like someone that waxes their car in their driveway on a saturday- pride in ownership plus it is also observed by others and contributes to the perceptions that they form about you and your work.
sean
Posted by: Sean Tierney | Mar 29, 2006 6:05:26 PM
It goes WAY beyond code formatting.
Posted by: Sterling Camden | Mar 29, 2006 6:12:38 PM
One of the best complements another engineer ever gave me was, “I like working on your code. It’s easy to read and understand.” Yea, Baby! I am another female engineer lost in a sea of men and having someone appreciate the beauty was something that has stayed with me.
I believe that well structured, clean code is easier to maintain for the simple reason that it’s so readable. Generally the person who first wrote the code isn’t the one who is going to maintain it and even if it is the same person, few people remember a specific function months after it was written.
Kim
Posted by: Kim Greenlee | Mar 29, 2006 6:23:25 PM
Thanks for the pointer to Machine Beauty. Can't my clients just pay me to go through their sites and make their source pretty? I'll start by sending them this URL.
Posted by: Drew Bell | Mar 29, 2006 9:34:25 PM
I agree that code is meant for human consumption, and thus should be beautiful.
But I was surprised that some of the most beautiful designs I've produced (in my opinion) actually derived from making the code testable.
In addition, I really believe that code unittesting especially contributes to writing beautyful code, not only because it constraints you to a cleaner and modular design, but also because it makes re-factoring infinitely easier.
The beauty in code I believe derives as much from these engineering constraints and principles as it does from the programmer's mind.
Posted by: Julien Couvreur | Mar 29, 2006 9:48:38 PM
I love beautiful code! And a beautiful layout, while necessary, is hardly sufficient. It's the conceptual beauty that strikes me: the elegant algorithm that lays bare the essence of a computation like a master sumi-e ink painting can capture a stand of bamboo with amazing economy of brush and ink. (I am more skilled at appreciating this beauty than producing it in either code or ink, but I keep practicing both *arts*).
Posted by: andrew | Mar 29, 2006 10:24:54 PM
I've been telling people for *years* that software engineering is an art as well as a science.
The trouble is, a lot of software developers are so sucked into the science that the art never gets a look in, and that concentration of attention affects the quality of work produced.
You should be able to 'take time out' to spend time making things look good, refactor, refine etc. because this helps in the long term.
Posted by: Chris Aves | Mar 30, 2006 1:01:17 AM
Code should always be polished and shine like a jewel. *Always* go the extra mile, remember code usually needs maintenance.
When someone needs to amend your code they will thank you for it and when you need to amend their code you will thank them for it.
Posted by: anteallach | Mar 30, 2006 1:27:06 AM
This is why I tend to shy away from perl - although you can make perl wonderfully clear, it's also possible to write the same thing so it looks like a right mess. I get too tempted to re-factor to stylistic standards, so could end up wasting days unpicking other people's messy, un-commented code.
Posted by: Matt Moran | Mar 30, 2006 2:37:08 AM
Absolutely true! I've blogged about the same subject a few weeks ago at http://www.hansei-kaizen.be/article/124/clean-up-your-code
Posted by: Nico Mommaerts | Mar 30, 2006 3:13:25 AM
I'm a guy and I'm very much into making my code "beautiful."
Yes, well formatted, commented, readable code is important, but for me the real beauty lies in the structure and is more abstract. I spend a fair amount of time tweaking and reorganizing my code so that the structural beauty increases.
Your reference to this as "girl code" is really funny to me considering my situation. I work in a department of 6 men and 1 woman. Hands down I would say that the code written by the 1 girl in this department is the most ugly spaghetti I have ever seen.
Posted by: Brian Glass | Mar 30, 2006 6:20:22 AM
It's a bit like maths. I have a few mathematician friends and they all agree that there has to be beauty in an equation for it to work. No wonder most (if not all) mathematicians (and many programmers, like Eric) are musicians.
Then again, the readability of a code depends on what the programmer finds beautiful. I like to streamline; for me, a beautiful code shouldn't be full of redondancies. But sometimes the more you streamline, the harder it becomes to understand.
Posted by: Marc André | Mar 30, 2006 6:59:29 AM
That's a funny phrase I've never heard. But I definitely write "girl code". Funny thing is I have yet to see any girl write girl code; usually their code is horrendous (just like most guys' code). Maybe I haven't seen enough code written by girls. Admittedly I need to read more code, period.
Posted by: Hans | Mar 30, 2006 7:05:14 AM
Wow. Untill I read your article I knever thought about the way I code my HTML. But I realise that I like goodlooking HTML, and that I'll tweak until I'm satisfied.. Thanks! :-)
Posted by: Wout | Mar 30, 2006 7:12:47 AM
Creativity is a necessary but not sufficient condition for nearly every profession. Creativity is one of things that makes human beings human. You can take any statement that the "programming is art crowd" makes and apply it to nearly any profession. These people should go away and teach philosophy instead of writing code.
Posted by: Embarassed programmer | Mar 30, 2006 7:26:18 AM
A large part of my day job involves producing technical engineering drawings using AutoCAD. Whilst a process far removed from programming, I can absolutely identify with this process. The majority of engineers, and worse, the majority of CAD technicians, will neglect a drawing's aesthetics whilst producing a technically correct drawing. I obsessively take extra time in a variety of utterly mundane ways to make sure that the technical information portrayed in the drawing looks right and looks good (damnet). It may be true that in any specific instance such changes might be unnoticeable, but when over-viewing the whole drawing I am convinced the difference more than justifies the extra time: a design that is pleasing in the way a detailed OS map, weather chart, or detailed schematic can be.
Posted by: James | Mar 30, 2006 7:34:59 AM
some time ago, I've read someplace that the human mind interpreted "beautifull" as something well adjusted to it's environment. For a simplistic example (just to ilustrate my point), fear aside, most people think the shark to be a beautifull animal and, it's true that he is very well adapted to it's environment. Appliing the same principles to code, of course that the purpose isn't to look from far to a piece of paper with printed code and see a Picasso, it's to make clear and readable code. that is why some people are already talking about "pretty as a design feature/ constrain".
A Beautifull Mathematical formula, for example, isn't one where the "3" are very round, it's a simple, elegant and simplified to it's maximum formula. For example, Einstein's formula E=MC2 is quite beautifull by any mathmatician's standards. All those principles can and should be applied to code.
Posted by: Jaime Cardoso | Mar 30, 2006 7:47:20 AM
It wouldn't be called girl code if you were doing it in python. It'd be called normal. That's why I use python.
Posted by: Karl G | Mar 30, 2006 8:20:37 AM
hmmm. Code like a girl? I'm not sure if I should be slightly offended or not. I'm meticulous in my coding style mainly for the reason that it is easier for me to go back and read and understand 6 months later (really only 20 minutes later because I'm so forgetful).
What does good looking code have to do with coding like a girl? Until your post, I 've always felt that my style was driven by testoterone. Talk about damaged ego....
Posted by: Jon Price | Mar 30, 2006 8:38:18 AM
Another female programmer here. I just wanted to add that in my universe of programmers we talk about if the code is 'elegant'. Often the question arises if we have time to do it the elegant way (aka, the 'right' way) or 'must' do it a more 'ugly' way due to time constraints. I am always on the side that the elegant way will pay off later - but I don't always win!
Posted by: Jeanne | Mar 30, 2006 8:51:36 AM
I don't know about "pretty" code, but I try to make my code handsome, easygoing and fun. Add "spontaneous" and you'll get my personal ad. :-) Good article.
Posted by: ppk | Mar 30, 2006 9:23:56 AM
I've seen a lot more "unaesthetic" code lately (well, over the last ten years), and I wonder if it isn't due to the fact that hardly anybody reads anybody else's code anymore. I learned a lot by perusing the 4.2BSD kernel sources, and a lot of the code posted on the old comp.unix-wizards newgroup was quite elegant too. Nowadays it seem like people just post little snippets of code, often not even a complete (working) example. Contrast that to the code examples of (say) Kernighan and Pike's _Elements of Programming Style_. There's a world of difference.
Posted by: Tracy Nelson | Mar 30, 2006 9:37:36 AM
Back in the 80's (yes, I am older than dirt), I read a brief paper in one of the comp-sci journals. A researcher in Europe had gone to various tech conferences and talked with experienced ("good") programmers. He asked them how they knew that a program was "good". The main answer: beauty; if the code looked good, then it usually was good.
This was an empirical study, no actual research, so the question of why "beauty = good" didn't get addressed. My experience has been that programmers who took the time to make the code "pretty" usually took the time to make it "good".
And there's always the "broken windows" theory: if the neighborhood (program) is crappy then people will not take much care in their own dealings with it. If a program looks "ugly" then perhaps previous programmers didn't take the time to fix everything. Bad neighborhood = get in, get out, before something goes wrong.
Posted by: hobbitt | Mar 30, 2006 9:59:11 AM
Oh great. My trademark is now called girl code? I'm doomed!
Posted by: Timothy Gray | Mar 30, 2006 10:27:07 AM
Anyone remember a fairly well respected OS called VAX/VMS? I seem to recall that the original core development team was David Cutler, Roger Heinen, Richard Hustvedt, Nancy Knonenberg and Cathy Morse. 40% female off the starting blocks...
Posted by: Ian Waring | Mar 30, 2006 10:39:15 AM
Hi! I found your text so insignificant, poorly presented and stupid that I felt I really needed to comment on it. How the [word edited] did I get here and managed to read it? That's a mystery.
Posted by: Somebody | Mar 30, 2006 10:55:02 AM
Wonderful article. It's interesting to me that the Ruby community as a whole seems to have the "code like a girl/metrosexual" value as a whole, though I more associated with that "Japanese aesthetic" that seems to permeate through out.
After all, Ruby's the only language I know that has explicitly been designed for a programmer's happiness.
Forrest
Posted by: Forrest Chang | Mar 30, 2006 11:16:02 AM
Beauty rules, baby!
While we're on the topic, check out these great new geek duds:
http://fractalspin.com/x/home.php
Posted by: Cyndi L | Mar 30, 2006 11:24:04 AM
Talk about the 24 hour rule, I jsut finished reading this book on the train this morning. I had trouble accepting his assertion that men dislike simple, elegant things, but he points out that power steering was originally targetted at women. Nowadays people would look at you funny for suggesting that power steering was emascualting, but there you go. Maybe in 50 years using poorly designed interfaces won't be considered macho.
Posted by: Pete | Mar 30, 2006 12:06:16 PM
How often do you show anyone your code? That alone probably determines how important it is to keep it looking pretty.
I heard software development described like a swan on a lake - from above the surface, you see a beautiful, stately creature gliding across the water. From below, you see webbed feet kicking wildly.
If more people looked at code from below, I bet programmers would care a lot more about how it looks. Based on this, I'd bet that open source projects have much better looking code than proprietary systems.
Posted by: Geoff B | Mar 30, 2006 1:12:20 PM
In Britain, we call this noodling. Noodling is a waste of time. However, if you have the time, noodle away!
Posted by: Eddie | Mar 30, 2006 4:48:37 PM
I've always thought that beginning programming students -- high school or college -- should be given at least one assignment to add a feature to some hideous, buggy, undocumented, uncommented, no-whitespace, sub-literate project, a project so kludgy that any change could cause a cascade of side effects. In other words, real-life experience with a maintenance project so that they learn why "beautiful" "girl" code is not only desirable but necessary. Most professional programming is maintenance programming, where you're lucky to be maintaining your own code.
The most beautiful code I've ever seen -- well formatted and commented -- was written by a man. My husband's couldn't decorate his way out of a cable TV show, but his electrical engineering projects explified simplicity and organization.
Brian Glass: you can't expect a 16-year-old to write much beyond spaghetti code. (You call her a "girl," I assume she's not of legal age, otherwise you'd call her a woman.)
Posted by: SusieJ | Mar 30, 2006 7:26:25 PM
Elegance and beauty are the guiding lights of an older, wiser, and extremely powerful technology: mathematics.
Posted by: Ed Piman | Mar 30, 2006 8:21:02 PM
I guess that makes David HH a real girly man. :-)
Posted by: James Governor | Mar 31, 2006 1:18:27 AM
I've always written code by prototyping, not designing, then refactoring until it looks just right. I think with the proliferation of refactoring tools, agile development, design patterns and shorter timelines, actual design is going out the window in favor of proto/refactor cycles. I think those of us using creative flair are now producing cleaner code than anyone else!!!
Posted by: Paul | Mar 31, 2006 4:11:43 AM
There's also Donald Norman's observation that "attractive things work better" (http://www.jnd.org/dn.mss/emotion_design.html) and Kelly Johnson's principle regarding aircraft, as references (amongst other things) by Paul Graham (http://www.paulgraham.com/taste.html)
By the way, I printed out the little cartoon at the top here and showed it round our office. It caused widespread hilarity, followed by some useful introspection. Good job.
Keith
Posted by: keithb | Mar 31, 2006 4:14:27 AM
It is possible to be a bit extreme about this.
IMHO it is not possible to be a geek and to aim at beauty. The geek vision is too technological and this word in itself is so ugly it says it all.
But not all programmers are geeks. I would propose that the terms are, in fact, mutually exclusive. Real programmers are aesthetes.
Real beauty is an escape into harmony. Aesthetic programming is an escape into the harmony of logical abstractions (although admittedly you have to fight unaccountably hard to keep discordant notes - bugs - from ruining the harmony).
The extreme girly programmer (I confess) is utterly prejudiced in favour of the purely abstract. Where geeks have a soft-spot for messing about with hardware ("toys"), extreme girly programmers find all hardware very concrete, and therefore shockingly, disturbingly ugly. That even can include the iPod.
The extreme aesthetic programmer, although working in computing over decades, can't even connect a monitor to his (her) computer (the sight of the back of the computer is too hideously ugly for him (her)).
Ok, maybe this is a condition. Extreme anti-asperger's syndrome? Maybe its a fear of death? Anyway, roll on the day when we can just think programs into existence, beautifully, abstractly, non-technologically, while lounging, effetely, in floppy hats, eating quiche, on the chaise longue. Softyware.
Posted by: Tom Routen | Mar 31, 2006 5:42:06 AM
Great comments as usual, you guys. Here are a few thoughts:
I think Sterling nailed it with this one-line comment:
"It goes WAY beyond code formatting."
Eddie: One programmer's noodling is another's refinement...but yes, there will always be those who take "beautification" to the extreme. But that's the exception, not the norm.
Forrest: I think the "Japanese aesthetic" is a great way to think about it. (Especially, as you said, given Ruby's history). It just doesn't work as well on a t-shirt... ; )
Cyndi L: thanks so much for that fractalspin link! I was looking for another source for geekgear other than ThinkGeek.
Andrew: wasn't it Alan Kay who said something roughly like, "to be a better programmer, play the violin"? The idea of an artistic appreciation and skill (and music is especially connected to math and programming) as being connected to good engineering and programming...
Timothy: you just have to embrace your inner Martha Stewart. ; )
Geoff B: I'm going to carry that image of "webbed feet kicking wildly" with me forever now.
Ed: The mathematicians I know all seem to agree with that. Just thinking about fractals is a tiny glimpse into that world.
James: David as "girly man"? I'm thinking more GQ (but with that it's-hip-to-be-geek thing going on). Of course, he's not afraid to reveal his emotional side. I'm thinking of a recent set of posts... ; )
Posted by: Kathy Sierra | Mar 31, 2006 10:07:42 AM
Great observation and insight. Software underpins our daily lives yet all too often the code gets sliced up and patched together because project pressures inject the need for shortcuts and "fixes." You don't get that in the consumer sector - a product may have a function, but it has to also look good in order to attract customers. Even things in the industrial sector like bridges, dams and airports that serve a definite purpose get the design eye. We're all for girly code! Well, maybe metrosexual code... :-)
Posted by: Greg Burnell | Mar 31, 2006 4:24:00 PM
I can't say that my code is girly- it is dead sexy! Most female code I've seen is as bad as the guy code. For me, elegant object oriented code is attractive code. Formatting makes it easier to look at. This is refreshing to see- a conversation that recognizes Kay and Norman is gotta be good. With the final running app, a clean, nice looking UI is also better if you have to use it all day.
Posted by: Jim Bennett | Apr 3, 2006 9:55:22 AM
Aw. The "code like a girl" shirts seem be offered in only female styles. We're not all *shaped* like girls.
Posted by: Kevin | Apr 4, 2006 3:35:06 PM
Eddie: You've obviously never had to debug code that's been in a system for 20 years, the original programmers having long retired. Compared to actually fixing the code (or writing a new version from scratch if it's too buggy and obfuscated to fix), maybe refactoring it for style & clarity is a waste of time, but in the long run, making nasty code easier to read & understand will save more time than it wastes. Your code may be around long after you are gone, and the 5-10 minutes you save by not including comments, not correctly indenting, and not following the company's style guide may cost someone days or even weeks later trying to fathom what it's doing and more importantly what it's trying to do and why.
Posted by: Matt Moran | Apr 4, 2006 10:50:33 PM
Very good article, thanks.
I started as a mathematician, and pure mathematicians have always (well, at least since the Greeks) regarded 'elegant' proofs as far preferable to 'inelegant' ones, however accurate the latter may be. And most of those mathematicians were men. The proof (and the code) must not only be correct, it must be seen (and obvious to the trained eye) to be correct. Hence, in coding, the use of indentation (and all the aesthetic debates about which style is most elegant), naming of variables, data structure layout, etc. Some male coders may object to "coding like a girl" (I want the t-shirt -- as long as it's black!) even though they do it anyway.
(In my opinion its only in our sick Western culture that an appreciation for aesthetics is regarded as a 'girly' thing, and that anything 'girly' is seen to be bad for a male to do. Gods protect me from having to maintain 'macho' code...)
Posted by: Chris C | Apr 7, 2006 3:16:26 AM
[in passing] "If architects designed buildings the way programmers wrote programs, the first woodpecker to come along would destroy civilization."
Speaking as someone who has been a software professional, and is now working on becoming a building designer I'd have to say that the focus on quality of coding is only one of the aspects of good software design. "God is in the details", said Mies van der Rohe, the son of a brick mason, and a master of the design of the "details" of buildings, which are not ornaments, but the little elements which hold a building together and keep it weather-tight. He nailed the design of glass curtain wall--did it so well it's become a standard. But only aesthetes who don't care about comfort love his buildings: they are notoriously poorly climate-controlled and way, way, way too bright (all that glass). Moral: "good" architecture--buildings people love--has to be "good" at all levels of scale, not just the detailing, and too much concentration on detailing can take away from the whole building.
I think "good" information systems architecture involves first, attention to the user of your system ("true architecture--the real thing--is only where man stands at the center"--Aalto) --and how software professionals recognize that that in itself includes the physical elements of the system?--and then, attention to design at all levels of scale. Coding is important; the basic reason that MS systems used to be insecure and unreliable was careless, rushed coding. But good coding alone does not make for a good system. At this point, I'd have to say that coding practice is not the problem of computing; the heavy use of interpretive languages allowed by modern fast processors allows us a great deal of leeway in coding. Attention to the user, to the whole system, to the physical system: these have become the problems of computing. And Kernighan's observation "the areas that are difficult are only two: one that it's too hard to write programs that work, and the other that it's too hard to use computers" still seems true, and it has been true for decades; software engineering is still a bloody slow practice, because it demands so much rigor and imagination; material things are much easier to produce.
Posted by: Randolph Fritz | Apr 7, 2006 6:17:51 AM
(Not on topic as to coding, but ...) As evidence of the misidentification of attention to detail and beauty of form as "girly": The best pattern-welded blades and highly engraved presentation-grade firearms. Bugatti automobiles. The Hughes H-1.
Or have I merely been brainwashed by years of sexist propaganda?
Posted by: Timothy | Apr 15, 2006 4:24:04 PM
I am not a coder, but I thoroughly enjoyed the post and the comments, finding little nuggets of insight and clarity that I could take away and ponder at my own speed.
Posted by: Bruce Briant | Apr 16, 2006 12:08:39 PM
As the documentation person, I get to read all sorts of code. And your commenters are right -- it's not just about format or tweaking. Elegant code always follows only one of the object naming standards and does it well. Funny how elegant code is also hundreds/thousands of lines shorter and efficiently maintainable. Unfortunately, I can't call it "girly" code, because the most elegant programmer I know is the geekiest guy in North Carolina.
Posted by: Margherite | Apr 25, 2006 1:33:47 PM
Thanks for this article, you've made my day.
I've spent years tweaking source code, to make it *look* nice, in addition to run well.
I do it for 2 reasons:
1. If somebody else needs to maintain it, they need to pick it up and find stuff, quickly and easily.
2. (and probably more importantly) I'm selfish, and I can't remember why I did things a few weeks after I did them, so well structured and written code comprises CHEAT NOTES for myself!
All I want is a good structure, nice indentation, consistent formatting, and use of the corporate naming convention. Code written this way in my organisation turns out to be a pleasure for others to work on, its more portable, more amenable to re-use, easier to maintain.
The highlights for me have been when others have picked up my code (often without telling me they were going to do it), hacked it around a little, and dropped it into a new product - sometimes on a new processor, and then said afterwards... Gee that was easy!!!
Nice code is like art - it has its own beauty, it needs lots of polishing to get there, and its damn hard to write.
Posted by: Ashleigh | Jun 4, 2006 2:29:53 AM
It has never occurred to me to subdue whatever artistic talents I might have been given just to write what simply amounts to "but it works" code. Art - call it the "girl code" effect if you must - has always been a most important ingredient of my *craft*. I have always considered programming as creative a process as sculpting for lo these 25 years of striving for the perfect result. A friend has for years chided me for writing-rewriting-rewriting what apparently works. I've always meekly countered with "but I can make it *look* better (and therefore possibly faster)". Now that I do this for the joy of it, I can concentrate on bringing out the artist in me rather than the deadline-meeter.
Posted by: Ed Lowe | Jun 12, 2006 10:59:59 AM
We have a pretty high turnover rate where I work, and so a lot of developers leave before they get a chance to do a second iteration of their code. So, pretty much everyone's time is taken up with maintaining legacy stuff. I can say with 100% certainty that
"prettier" the code is, the better chance we have of fixing bugs and adding new features. A lot of the uglier codebases just plain get avoided because we're too afraid to delve into them.
Posted by: jayKayEss | Jun 16, 2006 8:46:21 AM
Quite funny post, thank you very much !
Some people of my team (and I'm quite sure other teams do the same) call the 'nice' code as "Refrigerator code".
It means you are so proud of this code that you could place it on the refrigerator near the last drawing of your child..
Posted by: Stefano | Jul 6, 2006 1:48:04 AM
Excellent article. I write the best-looking code I can without exception (no pun intended). The reason is, as mentioned in the article, bad-looking code is just stressful to read. I'd even go as far as saying it's painful to read. To anyone who thinks writing beautiful code is "noodling" or a waste of time, I say this: in my humble opinion it takes no extra time at all to write beautiful code than it does to write ugly code. It takes me far more time to actually think of how to solve the problem than it does to lay the code out nicely. As for the beauty of the design, that's essential. An ugly design may be quicker to work out, but it will probably turn out to be a false economy. Every time I take a shortcut that leads to ugliness I regret it later.
Posted by: John | Jul 6, 2006 10:56:12 AM
Since most of my code will be reviewed by myself in 1 month or 6 months (sometimes years later) I write as if I'm talking to myself: "This is what I did and how I did it." Keeping it elegantly simple (when possible) makes it easier to understand down the road. This is for both comments and code quality. Why wouldn't you make it as easy for your future self as possible?
Posted by: barry | Jul 6, 2006 1:01:59 PM
A programming language is a system of notation for describing computations. A useful programming language must therefore be suited for both description (i.e., for human writers and readers of programs) and for computation (i.e., for efficient implementation on computers). But human beings and computers are so different that it is difficult to find notational devices that are well suited to the capabilities of both.
R. Tennant
From Principles of Programming Languages, Prentice Hall, 1981
Our design of this introductory computer-science subject reflects two major concerns. First, we want to establish the idea that a computer language is not just a way of getting a computer to perform operations but rather that it is a novel formal medium for expressing ideas about methodology. Thus, programs must be written for people to read, and only incidentally for machines to execute.
H. Abelson and G. Sussman, Structure and Interpretation of Computer Programs, MIT Press 1985.
When I speak about computer programming as an art, I am thinking primarily of it as an art form, in an aesthetic sense. The chief goal of my work as an educator and author is to help people learn how to write beautiful programs ... My feeling is that when we prepare a program, the experience can be just like composing poetry or music ... Some programs are elegant, some are exquisite, some are sparkling. My claim is that it is possible to write grand programs, noble programs, truly magnificent ones! ... computer programming is an art, because it applies accumulated knowledge to the world, because it requires skill and ingenuity, and especially because it produces objects of beauty. Programmers who subconsciously view themselves as artists will enjoy what they do and will do it better.
Donald E. Knuth
"Computer Programming as an Art"
Turing Award Speech, 1974
Posted by: Harold | Jul 14, 2006 9:40:53 AM
I consider myself and aesthetics lover in some obsesive manner and as an IT professional I take that to my work. And yes, it's sometimes weird looking at myself typing more than twice one single piece (a big piece indeed) of code just because it doesn't look the way I want it to. I also take my time on constructing nice and useful (then beautiful to me) GUI's that always have to have my personal touch. And that's perfectly ok to me because I decided for these career because of the fact that you can actually create "things", i.e. software with arts an aesthetics in mind. And, I'm a guy!
Posted by: Ruben | Jul 18, 2006 12:03:48 PM
Code is poetry...
I read that somewhere, and I couldn't agree more...
Posted by: tim | Jul 26, 2006 5:37:35 AM
Woah, easy with the gender propaganda... Let's have some real characteristics of 'girl code':
1. Impossible-to-understand control flow
2. High maintenance, unnecessarily elaborate code
3. driver code that causes blue screens
4. gratuitously commented code
I'm sure we can add lots more to the list... eh ? :-P
Posted by: Jon Perez | Aug 14, 2006 11:35:11 PM
I'm a student. Just a couple weeks ago I submitted a final project, the last requirement for my degree. It's a Java music eduction application. I'm on the high fidget waiting for grading results.
The project was very difficult in many ways for me as an inexperienced programmer. But one of the hardest parts was deciding when it was complete. Determining when to put the lid on feature creep was a bit tricky. Concluding formatting of source and making comments and other informational bits clear and concise was woolly.
But the hardest part was letting it go before I felt the clarity of the relationships between subsystems was as clear in source as I saw it in design. I don't know how to express exactly what I mean. In design, each part fit the others like gears, doing the needed work and no more. In the code, I'm not sure the same clarity was there. Maybe with more experience I'll know better how to do this.
I'm 54 years old, and most of my life I have been a professional musician (piano, guitar & viola). I'm also female, but I don't really think that has much to do with it.
Posted by: jodetoad | Aug 15, 2006 3:47:54 PM
You acknowledge that 'girl code' is sexist. Why not use the good old fashioned term 'aesthetics'?
Posted by: Shamoney | Aug 16, 2006 2:50:50 AM
If nothing else this article has reminded me of two things:
1 - the importance of others being able to read and understand my work in an fast and efficient manner.
2 - yet how far I have to go before that is the natural way I work.
Leave the bullshit stereotypes at the door. Good work, keep 'em comming.
Posted by: Andrew Breese | Aug 20, 2006 5:25:46 PM
"A thing of beauty is a joy forever."
I forget who said it first, but my tennis coach would always say that. (He was an English teacher during the day.)
Same goes for elegant, well-formatted code. You can go back months later, parse it quickly, do your edits, save and get out.
I love coding like a girl! (Today was one of those coding triumph days too.)
Posted by: mapgirl | Aug 25, 2006 9:53:27 AM
Excellent article, and how true !
I've never managed to be a good developper. I've used to do maths for years, though. That makes me think about this:
e(i.Pi)+1=0.
Write it the cursive way, on a paper... You'll see everything: all the strongest and most important maths symbols, in the simpliest formula... That's kind of beautiful, don't you think ?
Posted by: Aeroplanete | Sep 10, 2006 5:25:58 PM
I agree 'girl code' is a must. I spend soooo much time making sure that every indent is perfect that every function looks juuuust right.
But you know what when you scroll through nice code that is properly indented it does help readability a lot AND gives you a sense of pride!
Posted by: nwkeeley | Oct 5, 2006 11:47:58 AM
IF Not (code indentation is important) THEN
Msgbox ("Why does .NET do it for you???")
END IF
------------------------
Remember ASCII art?
Posted by: CodeHawk | Oct 9, 2006 5:35:07 PM
Beauty is the motivation for most scientists, especially mathematics. A theory without beauty is often wrong, and the beauty of it lies in structure: minimum structure and lots of decorations.
I carried the same attitude with me when I gave up with physics and found coding so easy.
I often have changed code because it does not just have to work, like a bridge it can also be beautiful, and the beauty is in structure.
This pays back. Good structures evolve easily.
Posted by: Michel Costabile | Oct 14, 2006 2:48:13 PM
Kathy - great post!
Here's another interesting perspective on how we view ourselves...and our code: You're Ugly and Your Code Is, Too
Posted by: Mandy | Oct 20, 2006 9:48:17 AM
What enormous fun! Reading the comments was almost as good as reading Kathie's initial post, which I found deeply satisfying and full of great references.
I agree with Sterling, the person who said it goes way beyond coding. It doesn't matter whether you are a man or a woman, beauty matters. The inside is reflected on the outside, and I'm excited to see that so many people care so deeply about the aesthetics of their work.
For me, remembering to hold beauty at the center of all I do is analogous to a spiritual path. It keeps me in 'right relation' to myself & everything around me.
Thanks for a great conversation.
Posted by: amy lenzo | Oct 27, 2006 10:54:53 AM
注册香港公司,创立国际品牌,开拓全球贸易,获取更大商机,[url=http://www.mgzc.com/ ]美国签证公司注册[/url],[url=http://www.hksac.net/ ]香港进出口贸易公司注册[/url],专业[url=http://www.hksaa.cn/ ]注册美国香港公司[/url],[url=http://www.rflaws.com/ ]香港瑞丰律师事务所[/url],[url=http://www.hksac.com.hk/ ]会计师协会[/url],有关[url=http://www.hksaa.com.cn/ ]注册香港公司[/url],[url=http://www.hkce.org/ ]香港公司注册商标[/url]登记,[url=http://www.hkce.net/ ]香港公司注册商标[/url]程序,[url=http://www.hkccr.org/ ]国际贸易进出口香港公司注册[/url]说明,[url=http://www.bviltd.org/ ]Hong Kong Company[/url]条件,[url=http://www.bvicr.org/ ]注册香港公司商标[/url]费用,免费[url=http://www.bvicr.com/ ]香港公司登记[/url]咨询,提供[url=http://www.bvicr.net/ ]注册香港公司[/url]服务,[url=http://www.rflaws.org/ ]香港瑞丰律师事务所[/url],[url=http://www.ltdcr.net/ ]香港公司企业登记[/url]权威机构,[url=http://www.ltdcr.org/ ]香港公司注册[/url],我们在[url=http://www.ltdcr.cn/ ]注册海外香港公司[/url]方面丰富经验,[url=http://www.cegcr.com/ ]注册美国香港公司[/url]和协会商会,[url=http://www.cegcr.net/ ]香港公司商标注册[/url]和社团组织,负责[url=http://www.cegcr.org/ ]注册香港公司商标[/url]及银行开户,完善[url=http://www.hkrr.org/ ]注册香港公司,商业财务,会计师,商标注册,贸易投资,法律顾问[/url]制度,[url=http://www.hktmr.com/ ]商标注册[/url],[url=http://www.hkltdcr.com/ ]注册香港美国公司商标[/url],瑞丰会计师事务所[url=http://www.hkltdcr.net/ ]注册美国香港公司[/url]可靠性,[url=http://www.gov.hkrr.org/ ]香港[/url],[url=http://www.bj.hkrr.org/ ]北京[/url],[url=http://www.dl.hkrr.org/ ]大连[/url],[url=http://www.gov.rf.hk/ ]香港信息港[/url],
由会计师[url=http://www.hkltdcr.org/ ]香港公司商标[/url]注册,负责[url=http://www.hkltdcr.cn/ ]注册香港公司企业[/url]全程安排,落实[url=http://www.oveltd.net/ ]香港贸易公司注册[/url]政策,全套[url=http://www.oveltd.com/ ]香港进出口贸易公司注册[/url]说明,[url=http://www.oveltd.org/ ]办理注册香港公司[/url]后续工作,[url=http://www.oveltd.cn/ ]注册香港公司[/url]基金会,[url=http://www.tradeinvests.net/ ]商务资讯[/url],[url=http://www.tradeinvests.com/ ]国际贸易进出口[/url],[url=http://www.ovecr.net/ ]香港商业论坛[/url]慈善基金会,[url=http://www.ovecr.com/ ]香港进出口贸易公司[/url]教育基金会,[url=http://www.ovecr.org/ ]香港注册公司和国际品牌策划[/url],针对[url=http://www.ovecr.cn/ ]香港公司注册和服装服饰[/url],[url=http://www.hklaws.org/ ]香港律师事务所法律顾问[/url],[url=http://www.richfu.org/ ]美国香港公司商标注册[/url][url=http://www.richfu.net/ ]注册香港公司商标[/url],登记[url=http://www.richfu.cn/ ]工商注册香港公司[/url],提供[url=http://www.intlcr.com/ ]香港会计师公司注册[/url],[url=http://www.intlcr.org/ ]香港公司企业注册[/url],[url=http://www.intlcr.net/ ]香港公司注册银行开户[/url],[url=http://www.intlcr.cn/ ]注册香港公司美国企业[/url],[url=http://www.rfhz.com/ ]注册公司[/url],[url=http://www.rfhz.org/ ]香港公司登记注册[/url],[url=http://www.rfhz.net/ ]注册公司[/url],[url=http://www.rfhz.cn/ ]香港公司[/url]等更多资料....
瑞丰专业[url=http://www.hongkongcompanyregistration.com/ ]办理注册香港公司[/url],提供[url=http://www.hongkongcompanyregistration.com.cn/ ]香港公司企业注册[/url]咨询,[url=http://www.rfcpa.org/ ]香港会计师事务所[/url],[url=http://www.hongkongcompanyregistration.cn/ ]注册香港公司商标[/url]说明,[url=http://www.hongkongcompanyregistration.net/ ]注册香港公司商标[/url]程序,[url=http://www.tradeinvests.cn/ ]进出口贸易公司注册[/url],[url=http://www.offshorecompanyregistration.com.cn/ ]注册海外公司离岸公司注册[/url],[url=http://www.hongkongcompanyregistration.org/ ]公司商标注册[/url]条件,[url=http://www.hongkongregistry.com.cn/ ]办理香港公司注册[/url]登记,[url=http://www.offshorecompanyregistration.org/ ]注册海外离岸公司[/url],我们具有[url=http://www.hongkongregistry.com/ ]办理香港公司注册[/url]的丰富经验,致力于[url=http://www.hongkongregistry.cn/ ]注册香港公司[/url]规范制度,[url=http://www.offshorecompanyregistration.cn/ ]办理海外离岸公司注册[/url],努力提高[url=http://www.hongkongregistry.org/ ]办理香港注册公司[/url]业务水平,制订[url=http://www.hongkongregistry.net/ ]办理香港工商登记[/url]优惠政策,发展[url=http://www.rfzc.net/ ]办理香港注册公司[/url]优势,[url=http://www.tradeinvests.org/ ]国际贸易投资进出口公司[/url],认真负责[url=http://www.rfzc.com/ ]注册香港公司[/url]资料完整,确保[url=http://www.rfzc.org/ ]办理香港公司注册[/url]客户利益,保持[url=http://www.rfzc.cn/ ]注册香港公司[/url]稳定,建立[url=http://www.rfzc.com.cn/ ]注册香港公司[/url]制度化,[url=http://www.offshorecompanyregistration.net/ ]海外公司办理离岸公司注册[/url],[url=http://www.ltdcr.com.cn/ ]办理香港公司注册[/url],[url=http://www.rfcpa.hk/ ]香港瑞丰会计师事务所[/url],[url=http://www.ltdcr.hk/ ]香港注册公司[/url],落实[url=http://www.rf.hk/ ]注册香港公司[/url]政策,有关[url=http://www.bvicr.com.cn/ ]登记注册香港公司[/url]工作方式,切实[url=http://www.richfu.com.cn/ ]公司企业注册登记[/url]可行,促进[url=http://www.hkltdcr.com.cn/ ]注册香港美国公司[/url]广泛应用,联系电话00852-25430881
Posted by: 注册香港公司 | Oct 31, 2006 6:53:47 PM
Kathy,
You are absolutely right. This education mechanism has always bothered me in my life. But I believe that most people are fit with this system. Only a few suffer. But I wish you can change this routine. It's the best for creative people. Compare your design pattern book with the bible from "Gang of Four". I read it long time ago and came up with your ideas and finally saw your book, I felt like, I am not alone. Well done...
another misfit
ps, I emailed Vincent Massol about Maven documentation a few month ago and I told him that I wish you and your team could have Kathy Sierra's mentality to explain your great tool...
Posted by: Ramin Farhanian | Nov 3, 2006 11:46:45 PM
注册海外公司、创立国际品牌、开拓全球贸易、获取无限商机:瑞丰在香港注册公司、注册商标方面有着丰富的经验瑞丰律师事务所,为客户提供国际贸易进出口法律顾问,香港瑞丰会计师事务所在香港政府和香港公司注册处按社团组织条例登记,专长香港公司注册咨询,hong
kong company registration的运筹管理,香港离岸贸易投资的税务安排,办理香港公司注册登记相关程序,我们在上海国际贸易进出口公司,北京进出口贸易公司,杭州国际贸易进出口公司,宁波,南京,厦门,大连对外贸易进出口公司设立了公司,为中国工商企业提供完善的商业财务顾问服务。注册香港公司,注册香港公司登记,注册香港公司机构,香港公司注册说明,目前,已有超过250,000个海外离岸公司已在英属维京群岛注册,这使英属维京群岛成为世界上发展最快的海外离岸投资和国际经济贸易中心之一。注册香港公司处,注册香港公司,专业注册香港公司,注册香港公司,美元的使用在已成为国际进出口贸易合法的流通货币。注册香港公司概况,注册香港公司,海外离岸金融,注册香港公司协会,注册香港公司商标,英属维京群岛由50个岛屿组成,注册香港公司,占地59平方英里,大约15个岛有人居住。注册香港公司,该岛的两项支柱产业为旅游业及海外离岸公司注册。香港公司注册,世界众多大银行的进驻及先进的通讯交通设施使英属维京群岛成为理想的海外离岸金融中心。注册海外公司|香港公司注册,注册香港贸易公司,办理注册香港公司,美国是国际经济贸易发达的国家,在那里创立自己的进出口贸易公司,发展外贸出口公司的业务,是很多人梦寐以求的事。注册公司论坛,香港公司注册登记,注册香港公司,专为中国成功人士投资或移民美国搭桥铺路,尽一切努力去实现你们的梦想。国际贸易.投资.进出口,公司注册处,由于国际进出口贸易和外贸出口业务交往日益频繁,很多进出口贸易公司必须通过香港处理一些业务,注册香港公司,但在香港又没有自己的公司,他们往往需要挂靠其它外贸进出口公司处理业务。注册公司,针对这种需求,我们的推出了国际贸易服务计划,详情参看国际贸易和国际投资合作的相关资料。
注册公司是一项工作严谨而文件繁复的事宜,选择一家有专业资格的机构服务办理,使阁下公司在发展的过程中才有可靠的权益保证!注册香港公司,香港注册公司,注册香港公司,世界众多大银行的进驻及先进的通讯交通设施使香港成为理想的海外离岸金融中心。注册香港公司,如上海贸易公司,北京贸易公司,杭州贸易公司,宁波贸易公司,南京贸易公司,厦门贸易公司,大连贸易公司提供服务咨询注册香港公司,注册香港公司,我们在全球拥有二十多家专业会计合作机构,在组建成立公司,公司管理,做帐报税,税务策划等方面拥有丰富的知识经验,具有充份的条件为客户提供全面的商业及财务顾问服务。注册香港公司和工商企业登记,注册香港公司和企业登记注册,注册香港公司和香港工商注册登记咨询,香港注册公司登记,国际贸易|进出口|贸易公司,国际贸易|进出口|贸易公司。如阁下系大陆人士,已经注册成立香港公司,但需要在香港本地开立银行帐户而又不能亲临香港办理,"瑞丰"机构可以为阁下提供(你只需在大陆分行签名见证)开立本港银行帐户服务。注册香港公司,注册香港公司,香港律师事务所,香港公司注册,国际贸易,注册香港公司,香港会计师事务所,注册香港公司,香港贸易,香港公司注册,欢迎光临香港律师事务所资深专业律师咨询更多信息。 注册商标,香港公司,税务咨询,香港公司注册,会计师协会,会计师事务所,
瑞丰专业注册香港公司,提供香港公司注册咨询,香港会计师事务所,注册香港公司说明,注册香港公司程序,注册海外公司|离岸公司注册,香港公司注册条件,香港公司注册登记,注册海外公司|离岸公司注册,我们具有香港公司注册的丰富经验,致力于注册香港公司规范制度,注册海外公司|离岸公司注册,努力提高注册香港公司业务水平,制订注册香港公司优惠政策,发展注册香港公司优势,认真负责注册香港公司资料完整,确保注册香港公司客户利益,保持注册香港公司稳定,建立注册香港公司制度化,注册海外公司|离岸公司注册,香港公司注册,香港会计师事务所,香港注册公司,落实注册香港公司政策,有关注册香港公司工作方式,切实注册香港公司可行,促进注册香港公司广泛应用,联系电话00852-25430881
Posted by: 注册香港公司 | Nov 14, 2006 8:31:34 PM
I still haven't had concrete evidence of What coding like a girl is... Can someone post an example?
Posted by: Ada | Dec 19, 2006 2:37:19 PM
Beauty in code is a hint that the author paused to think about its structure, as the visual layout in most digital languages is connected with the logical layout.
It’s not a guarantee, but in general beautiful code is thought-about code which implies code with a mission and purpose rather than just something which had to be written.
Beauty also has social implications, some of which are potentially embarrassing for a bloke, which is why male programmers often crave beauty but will seldom be caught admitting that in detail. (-:
Discussing beauty with a bloke can be risky for female programmers in various ways, which is another reason for “better halves” to dodge the issue, even though they can produce code which looks & behaves elegantly. Some of it breath-takingly so. (-:
Posted by: Leon Brooks | Dec 20, 2006 7:41:53 PM
"Beauty also has social implications, some of which are potentially embarrassing for a bloke, "
Or not... this "metrosexual" business is just old wine in new bottles. A couple of centuries ago, they would have been called "dandies". I don't know offhand what the ancient Romans would have called them, but I bet they had a word for it.
As far as beauty in code, I suspect we're talking about one of those things where "you know it when you see it". Personally, when I pick up a package, I see beauty in builds and installers that "just work". Also in APIs where I don't actually *need* to know *how* things are implemented, because the published interfaces and docs are enough to make it "just work",
Posted by: David Harmon | Dec 24, 2006 3:49:04 PM
I don't know if anyone will say I write girl code, but I understand the tendency. I cringe when I look at code the repeats itself. Of course others think I am nuts cause I will write a function that has 1 line of code in it. Changing something like strpos("monster", $string)===false into is_monster($string) makes reading the code a lot easier in the future, and makes it much prettier.
Pretty indentation are good for the soul and the stress level.
Posted by: William B Tittle | Jan 3, 2007 3:32:11 PM
Many people clean up their vehicle before taking it to the shop for maintenance. It's common sense: we expect most mechanics, when working on a beautiful, well maintained machine, will take care to fit things carefully and do work they can be proud of (or at least make sure their work doesn't stand out against the beautiful lines of the rest of the machine). Conversely, we expect most mechanics, when working on a beat-up smelly clunker, are more likely to hurriedly slap parts together (and hope no one will notice).
The same psychology applies to the people who will maintain your code. Including yourself. It's easier to accept a kludge on something that already has warts and scars.
By extension, I expect beautiful code to age more gracefully over the years. Beauty is a sign of good health, strength, and longevity.
Posted by: Gc | Jan 23, 2007 6:40:00 PM
Part of my job is coding html templates for web pages I design, and being a designer first, I am certainly guilty of 'girl coding'.
In fact, after I finished one project, the content-maintenance guy came to my office (rather than email me) to compliment me on how easy my code was to read. What a great compliment!
Posted by: Joe | Feb 14, 2007 12:31:13 PM
*DISCLOSURE*
straight male creative director who has spent much of the last decade working with developers and programmers on large sites...
When I first started working with geeks, after years in print design, I noticed something peculiar. They would speak with disdain about "ugly code". This seemed odd to me. I had no idea what they meant at first, only that "ugly" was an esthetic term and it's opposites were "beautiful" and "elegant". When I mentioned this to a programmer he got very defensive, as if I was accusing him of something.
As I worked with them and learned about what they were doing, I realized I was on to something. So I mentioned it again, referring to poetry. I said that prose writing communicates an idea, but poetry communicates much more with much less. It's both functional and elegant. Aside from the implied suggestion that he might be some kind of poet, he thought this analogy had some merit.
Now I think of really good developers and programmers as artists, but I never say it to their face.
Posted by: Michael | Feb 14, 2007 2:23:04 PM
we already had a toast tonight at dinner for all our fallen brothers :-)
thanks for manning the fort while we do our bit here for the motherland.
Posted by: Online Community | Mar 14, 2007 7:42:49 AM
No, thats not an insult. What Im actually referring to is this post from Creating Passionate Users. I think that the captions for the first two pictures was accidentally switched, but dont take my word on it. Im not the arts...
Posted by: canli yayin | Mar 18, 2007 12:34:16 PM
Now I think of really good developers and programmers as artists, but I never say it to their face.
Posted by: cemal | Mar 18, 2007 12:35:38 PM
I learned to code from a male colleague in the office. He was always a stickler for "good code" and explained that elegance and beauty has its place (the proper place) ... Around here, the ultimate compliment is "you write good code". Next time I'm reviewing a nice piece of code, I will tell him that "he codes like a girl", I can't wait to see the reaction.
Posted by: Lyna | Mar 22, 2007 9:23:45 AM
What a waste of energy. Is the user served better by 'pretty code'? Not at all. Pretty code doesn't mean that the code will be easier to extend or easier to work with (which is well formed code).
Coding like a girl is a great insult not only to developers but to girls/women as to imply that they waste their time on trivially enhancing appearance.
Creating code that is easy to read isn't girly or manly, its called functional. Its called not trying to protect your job/ego/mojo by making things hard for other people.
I have seen 'pretty code' where the app would have worked better had the developer spent more time writing better code, instead of using spaces and comments to make (for them) aesthetically pleasing code. Primarily written by men who think they are 'hot stuff coders'.
So just a warning, are you making code pretty for yourself, or for your users and future developers?
Posted by: SomeGuy | Mar 27, 2007 10:36:17 AM
I always liked Jason Lamport's generalized theory of making code easy to use and reuse by making it readable.
http://www.jasonlamport.com/thought/coding_style/
Posted by: Chris Borokowski | Mar 27, 2007 12:18:24 PM
oh my god! I code like a girl.
Until now, I named it "fisher price code", as it was looking like code for kids, easy to read.
I code for the media industry, but media is no industry, people change their minds faster than their hype cloth. Girl coding is not an option, it's a necessity, and it extend to project management too.
Thank you for formilizing the concept, I will show it to my friends... Now I know what t-shirt I will receive for my brithday this time ;)
Posted by: roselan | Mar 27, 2007 12:44:49 PM
My theory of code style, deep interaction design, holds that aesthetics and function of code is as connected as the aesthetics and function of buildings or a handheld tool. It's similar to Knuth's "literate programming" except that the program is only one level of documents, and the affordances (presented as the command grammer the end users sees) constitute a third distinct layer. All three layers must use the same words. For instance, if it's HTTP, you have to use "get", not "go", as the verb on the button you click to get a new page (and it matters not if HTTP thinks of this as a "post", what matters is what the user thinks of it - for each get there's a put somewhere...). You avoid metaphors that you may need later, like spatial ones (don't say "go", "here", "navigation", etc., since you may need to support GIS someday and then you'll need all those words to mean something entirely different) or social ones (don't say "community" to mean all of the people dumb enough to register, don't pretend that a decision made from authority is made "on behalf of a community", it's surprising how many words suggest that). Stick to operational terms.
So, while none of the outputs are "pretty" necessarily, they are appealing in a functional way to the same kind of minds that enjoy protocol design and Japanese food.
Even more appealing is the speed with which the brightest and wisest new users pick this up, and the savagery with which they denounce and defame competing user interfaces that force them to learn more long words that don't mean the same thing on every dialog.
Posted by: Craig Hubley | Mar 27, 2007 2:56:59 PM
"most of the world associates an appreciation for beauty more with women than men (especially geek men). Women may have a genetic advantage here."
Who says? I would think quite the opposite is true. Look at nature - think of the lust that men have for beautiful women, think of Da Vinci,Michelangelo or Picasso (someone mentioned him earlier).
I think most of the world associates women as more beautiful than men, apart from the ancient Greeks, but surely men appreciate beauty (in a women, in the design of a car, in a painting and in code even) just as much as women do.
However, i am a man and my world view can only be from that stand point, so my argument is flawed in the same way as yours.
Posted by: Jonathan Lindsay | Mar 29, 2007 5:24:25 AM
Over twenty years ago, my now-husband and I met at work, two COBOL programmers who believed in the Gospel According to Edward Yourdan.
One of the first things each of us appreciated about the other was coding style: orderly, succinct remarks, ELSEs lining up with their IFs ... Our motto is, "A tidy program is a happy program." It certainly makes for happy maintainers!
He is much tidier than I am -- I attribute it to his having served in the Navy -- so I certainly don't think of neatness as necessarily a female attribute, but I've been around enough to know what a rarity he is. Just last week he stripped, waxed, and buffed the kitchen floor, and he is as proud as proud can be of that floor, bless his heart.
Posted by: JBL | Apr 11, 2007 8:52:54 AM
What a great post. Thank you for writing this. I take a lot of time organizing the code for my templates so that not only is it readable, it makes it easy for the end user to change or personalize. This is because I've had to work with code that looked like the coder was typing with their eyes closed during an earthquake. If making my code look beautiful as well as functional makes it girly then so be it. :)
Posted by: Daria Black | Apr 11, 2007 9:54:54 AM
We LOVE to hear from you, and we think of this blog as a big dinner party. Y'all are our invited guests, but if you're being rude and obnoxious we'll let the bouncer toss you. So please, stick to debating and criticizing ideas rather than personal attacks. Also, if you don't see your comment right away, it means we've turned on moderation to fight the evil spammers. It'll show up soon..
Posted by: fee | Apr 20, 2007 9:46:14 PM
One of the first things each of us appreciated about the other was coding style: orderly, succinct remarks, ELSEs lining up with their IFs ... Our motto is, "A tidy program is a happy program." It certainly makes for happy maintainers!
Posted by: bebek | May 3, 2007 8:11:33 AM
ThankZ
Posted by: Hikaye | May 5, 2007 10:15:17 AM
hardest part was letting it go before I felt the clarity of the relationships between subsystems was as clear in source as I saw it in design. I don't know how to express exactly what I mean. In design, each part fit the others like gears, doing the needed work and no more. In the code, I'm not sure the same clarity was there. Maybe with more experience I'll know better how to do this.
Posted by: oyun | May 8, 2007 11:20:32 AM
I like beautyful code and beautiful girls who write beautyful code even more... just to serve a stereotype.
Posted by: Patrick | May 8, 2007 4:46:01 PM
One programmer's noodling is another's refinement...but yes, there will always be those who take "beautification" to the extreme. But that's the exception, not the norm...
Posted by: sohbet | May 22, 2007 7:38:34 PM
I would associate "coding like a girl" with:
1--> Weight consious. So make your code consume less storage area
2--> A great figure to boast. So, make your code run with minimum clock cycles
3--> Not a great brain. So, do not complicate the logic or algo. Even a blonde should be able to understand the essence (no offence :))
4--> Well sculpted 32-28-32. So, make your code well indented. Particularly the nested If-else blocks.
5-->
Anyone care to add any more?
Posted by: Kashyap | May 31, 2007 3:47:53 AM
I have to say, I like the pictures. And, that's too bad that someone already banked on the, "code like a girl" shirts! Oh well, better luck next time!
Posted by: Web Design Minneapolis | Jun 13, 2007 10:30:07 PM
One programmer's noodling is another's refinement...but yes, there will always be those who take "beautification" to the extreme. But that's the exception, not the norm...
Posted by: Oyunlar | Jun 22, 2007 10:14:28 AM
So please, stick to debating and criticizing ideas rather than personal attacks.
Posted by: Oyun - Araba Oyunu | Jun 30, 2007 6:16:54 AM
The best computer scientists are, like [Henri] Vaillancourt, technologists who crave beauty.
Posted by: İngilizce Eğitimi | Jul 2, 2007 4:21:25 AM
thanks
Posted by: chat | Jul 5, 2007 5:59:25 AM
I picked up your book months ago and it helped get me motivated to take my first HTML/CSS class through O'Reilly media. What I like most about your book is that the language does not intimidate the reader. You are very inspirational! Thank you.
Posted by: Kali | Jul 9, 2007 12:06:52 AM
Cras ultrices metus sit amet velit. Sed a dolor vel tortor aliquam consectetuer. Aliquam erat volutpat. Praesent enim magna, bibendum a, viverra nec, hendrerit lacinia, sapien.
Posted by: İş Elbisesi - İş Elbiseleri | Jul 17, 2007 5:00:14 AM
Without, the night was cold and wet, but in the small parlor of Lakesnam Villa the blinds were drawn and the fire burned brightly.
Posted by: Turkey - Holiday | Jul 23, 2007 3:43:15 AM
The play takes place in Scotland. Duncan, the king of Scotland, is at war with the king of Norway, and as the play opens, he learns of Macbeth’s bravery in battle against a Scot who sided with Norway.
Posted by: Taksim | Jul 23, 2007 3:45:39 AM
The description of his dreams and memories gradually unfolds the developments which have led to the current world order.
Posted by: Oyun Turkiye | Jul 25, 2007 7:54:02 AM
thanks but i not understand you
Posted by: Oyun | Jul 30, 2007 2:48:41 PM
thanks but i not understand you
Posted by: mp3 sohbet | Aug 15, 2007 2:17:15 PM
I forget who said it first, but my tennis coach would always say that. (He was an English teacher during the day.)
Posted by: Sd card | Aug 19, 2007 10:17:35 AM
The best computer scientists are, like [Henri] Vaillancourt, technologists who crave beauty.
Posted by: Pendrive | Aug 19, 2007 10:37:21 AM
I have a mentor. He writes software applications (probably in his sleep, as well). He is one of the most generous teachers I have known. He is quite the humble soul, but he is clearly brilliant. Because of this, I have chosen to [try to] eventually write code at his calibre. When we are passing the code back and forth to add pieces, he explained that he prefers the code to be well-sculpted.
At one point, I sent him my little snippet without proper formatting. He didn't say a word, but set about adjusting my code to match his standard. That's all it took. From that point on, I realized to give him anything but perfectly sculpted code would only add more work for him.
Posted by: harumph | Aug 22, 2007 3:50:21 PM
One of the first things each of us appreciated about the other was coding style: orderly, succinct remarks, ELSEs lining up with their IFs ... Our motto is, "A tidy program is a happy program." It certainly makes for happy maintainers!
Posted by: rüya yorumları | Sep 18, 2007 1:19:44 PM



