Do Women Write Better Code?
JCWDenton writes "The senior vice-president of engineering for computer-database company Ingres-and one of Silicon Valley's highest-ranking female programmers-insists that men and women write code differently. Women are more touchy-feely and considerate of those who will use the code later, she says. They'll intersperse their code ... with helpful comments and directions, explaining why they wrote the lines the way they did and exactly how they did it. The code becomes a type of 'roadmap' for others who might want to alter it or add to it later, says McGrattan, a native of Ireland who has been with Ingres since 1992. Men, on the other hand, have no such pretenses. Often, 'they try to show how clever they are by writing very cryptic code,' she tells the Business Technology Blog. 'They try to obfuscate things in the code,' and don't leave clear directions for people using it later. "
I don't know, I've never even seen a woman programmer. And I work in the field. I bet nobody on Slashdot has either. (this is a joke!)
I've seen all genders write obfuscated code--but it worked. And every single time it was because we were under the gun for a deadline or there was simply no other way to do it. It's preposterous to even try to sound like you have empirical data supporting this blanket assessment. There's a big need to fix testosterone-fueled code at Ingres
I could combat her anecdotal subjective statements (probably describing herself) with my own anecdotes or go on a rant about how many of the great programmers are men (like Donald Knuth and his 'literate programming') but what's the point? Men can be just as meticulous as women can at providing good documentation and women can be just as sloppy.
It's good to have a healthy mix of diversity and I wish that programmers were 50/50 split on gender (trust me, I really really do) but it's not because women are better than men at coding. Prime example of American sexism in one of the few forms it exists today.
My work here is dung.
and see how harmonic they all work together
Men's code is sexist and demeaning whereas woman's code will marry you for the divorce settlement.
they freak out everytime they miss a period.
Do you even lift?
These aren't the 'roids you're looking for.
"Men and women think differently."
This is such shocking news. Unbelievable.
The problem with socialism is that they always run out of other people's money. - Margaret Thatcher
Inflammatory short article to "sex things up" (pun intended); surprising for the WSJ (or maybe not.) Written by a Rebecca Buckman, quoting Emma McGrattan at database company Ingres.
Any such broad classifications such as this should be taken with a *lot* of salt.
That being said, the article reminded me of a large digital systems design project that I had back in college, writing assembly for a 6502 processor in a device we made. My lab partner was a girl (probably only 10% of the class was female) who really, really thought differently than me in a way. It was weird -- some of the things I thought were impossible or not worth doing she would code in 10 hours; and the reverse was true. It was pretty much pure synergy (forgive the cheesy phrase) and we were extremely productive and got along well.
However, to reduce anything like this to gender differences is almost nonsensical. I could have been good lab partners with any number of people that thought differently than me, male or female. Personality is complex, not binary. I know many girls that code beautifully, and many more that can not code at all. This article is kind of interesting cocktail conversation, but nothing more IMHO...
Slashdotter, ID #101. UIDs are in binary, right?
My friends include a woman who writes 100-line SQL statements embedded in a perl-script. You need a magic decoder ring just to see what's there.
// Loop counts from i to j, with increments of one .... } ...and no, his job does not include teaching basics of programming.
A male colleague, OTOH, likes to write code in style such as
for (unsigned int i=0;ij;i = i + 1)
{
There, I've the counterpoint for the article with my own biased view!
Only to idiots, are orders laws.
-- Henning von Tresckow
This article told me I code like a woman. I knew playing all those female characters in RPGs would come back to haunt me.
/cry
And the masses cried out, "09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0!"
I know the plural of "anecdote" is not "data", but in my experiences this is far from true. I have found female coders in my jobs to be downright malevolent in their coding. All women I have worked with that write any sort of code obfuscate the hell out of it, document absolutely nothing, and will barely explain how to even use their product. If everything is not run "their way", then it seems like armageddon.
Case in point. We have a coder who wrote an application for our office. Because of the fact that she refused to use any variable for the Program Files folder (hard coded as "c:\Program Files\") and she insisted that all workstations need a D: partition (to hold a 100kb support file), we had to rebuild 4 servers.
Say what you will about women coders being "touchy feely." I won't fall for it, any more than the NOW propoganda that all women are natural caring mothers, even the coked out alcoholics.
And if I ever come across a woman programmer, I'll prove it.
I also comment obsessively because I want to be able to come back to the code a year later and know, quickly, what I did and why I did it.
Many years ago I was porting someone else's C code from 16 bit to 32 bit and came across "//Why did I do this?" at the top of a couple hundred lines of uncommented code that had multiple embedded while anf for loops, with a pow() and a couple of sizeof()'s in there. I had to print it out and trace it by hand to figure out what he'd done, and why. Took awhile.
Too many comments can be ignored, too few can give you heartburn.
Best Slashdot Co
Forget a male/female issue. I think she needs to hire better programmers period. Anyone in a professional code shop that's deliberately trying to write obfuscated code shouldn't be there and she's not doing her job properly if she's not firing them or getting them into remedial classes of some kind.
If someone wrote an article that was the opposite of this, from a "man's point of view" it would be extremely sexist, and the publisher, writer, and anyone quoted in the article would burn in the ninth layer of hell for being such a terrible person.
This sounds like a severe case of deciding on a problem, and then picking out observations to support it. Let's say you have 1000 coders, and 1/10 of your coders (100 of them) write poorly documented code. Now we'll also consider the gender-split - if 1/10 of the coder population is female, and the statistical 1/10 of the coders writing poorly documented code applies to them as well - this means you'll have 10 female coders writing poor documentation, and 90 male coders writing poor documentation. WOW! NINE TIMES as many male coders who can't document code properly, CLEARLY that means that men can't document code, right? Right?
The same sort of thing applied here at the University I teach at - a certain ethnic minority had a very bad reputation as producing cheaters in Comp.Sci. So for a few years, I carefully recorded every instance of cheating, and kept track of the ethnic background of the people getting caught. You know what? The only reason more people of that background were getting caught is because they represented 85% of the population in the department - the overall percentage of them that were cheating was actually LOWER than others.
Perhaps this McGrattan person should concentrate more on fixing the problems than on blaming them on some group she doesn't like.
-those strings of instructions that result in nifty applications and programs-
Why do you need to explain what code is? This is news for nerds, not news for my mother. Give us some credit please.
Now that I've lived to see this day,
These are the things I must but say.
Die a bachelor, if your options are few,
Never ever love a female programmer,
they'll make a program out of you.
Don't laugh it away, mine has been an object lesson,
They find syntax errors, even in a romantic expression.
Alas! They search logic in love, where there is none,
Your heart may skip a beat and they just hit return.
You are in for trouble if you persist,
You'll just be a pointer in her long linked list.
--
Free Playstation 3, XBox 360 and Nintendo Wii
The problem with slashdot is that most of its users were bullied and stuffed into lockers as kids!
Bah! I can think of three female programmers immediately who I've worked with closely enough to comment on their code. Two of them were C++ programmers and I don't remember their code being anything atypical in terms of comments, though one wrote very elegant code. The third works primarily in Java and somehow manages to turn out hideously unreadable code. Conversely, I've seen numerous men who program in a variety of ways, readable and otherwise.
It's now well established that the human brain builds negative stereotypes more easily than positive ones and that people see what they are expecting and apply a double standard. This person sees what she wants to see.
Aide-toi, le Ciel t'aidera - Jeanne D'Arc.
Not worse, nor better really, just ... different
So yes, I can see women writing 'better' code, but I still think that's more likely to be a matter of training and discipline, as much as anything else. Or perhaps the 'female geek' effect - in a word where you'll be faced with massive prejudice and pressure, the 'female techy' is typically (and yes, I realise this is a broad generalisation) even more hardcore than male counterparts - simply because she's there because she _really_ wants to, and has had to face a lot of uphill struggle to get there. This seems to hold true in petrolhead circles too (see, I can do car analogies too) - the few 'girl racers' I've met, have extremely extreme car mods, and rigs, because they're competing against everyone else _and_ the gender stereotype.
Hey look, you can read Miss McGrattan's own blog entry about the interview and perhaps provide some intelligent, constructive comments. Remember not to obfuscate!
We all know that even if a woman *appears* to document her code well that what is written isn't what she really means!
Or women don't document at all and just expect the men to know what they are thinking.
"Action without philosophy is a lethal weapon; philosophy without action is worthless."
If women code anything like they act in real life, then you'd get a lot of helpful comments like this:
/*If you don't why this function isn't returning your expected result, then hell if I'm going to tell you.
Not only that, but even if the observation (that women write better documented code than men) is true, that would only be a correlation. The gender itself is not causation - if you want to learn something meaningful, find out why the gender is correlated (e.g. women at that company are given more reasonable deadlines, men feel less secure in their positions so they don't care about helping others untangle the 'spaghetti').
Be careful of your thoughts; they could become words at any minute...
One of the better programmers I ever knew was a woman, and also one of the worst. The better one didn't even indent her 'if' statements, much less add comments until I shouted at her and made her review something she had written a few months earlier. The other one, wrote more comments than code... Like she thought she could justify the fact that it didn't work by explaining what it was supposed to do.
Pretty much kills that theory in my book. Men and women often think differently, and even different programmers of the same sex think differently. There are a lot of generalizations one can make about women and men in the world, and argue religiously about whether it is environment or instinct... Somehow I don't think programming style is one of them.
I work on the assumption that the next person to read the code will have at least a vague idea of what the programming language is, and how to speak it, so comments are the subtext to explain what happens, where, and where any obfuscations are. (Deliberately obfuscating is bad; occasionally it's unavoidable, and therefore needs more comment)
Who said women couldn't code?
Cogito, ergo sig.
I think this is a stereotype like any other. You can't say that one group of people always does something in a given way.
I certainly do not write my code in a "cryptic way" to show off. I find it a little insulting to my entire gender to be pigeonholed in that way.
I was taught that when you write code it should be easily understandable and well commented and that's what I do.
Sheesh.
Greg C.
Gregory Casamento
## Chief Maintainer for GNUstep
but i do know that wildly speculative sweeping generalizations provides lots of fodder for utterly useless watercooler chit chat
congrats slashdot for picking a topic everyone feels entitled to comment on and absolutely no one actually says anything useful on
intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
Does this mean you need to spend half an hour telling the database how pretty it is and how much you love it no matter what it says before it will give you a straight answer?
-1 Uncomfortable Truth
Also: I hear that Asians write really efficient code because of their little fingers. And black guys? They could write great code, if only Whitey would stop keeping them down.
If you were blocking sigs, you wouldn't have to read this.
Yeah, been there, wrote my share of spaghetti code to tack on another feature the quickest and least elegant way.
Now add a management that is not willing to invest in refactoring during slower times, and the code will degrade over the years as one quickhack is added to the next.
C - the footgun of programming languages
Actually, this article is almost completely fallacious... Let's look at the facts quoted:
McGrattan boasts that 70% to 80% of the time, she can look at a chunk of computer code and tell if it was written by a man or a woman.
...at Ingres because only about 20% of the engineers are women, McGrattan says. (Most of them are in jobs involving quality assurance or adapting the product to a new locale, she says, and not the "heavy lifting" of writing code.)So, basically, she'd get a higher score if she guessed "man" every time than if she tries to be clever. Clearly, then, she does think some men's code looks like it's been written by a woman, which invalidates to point of the article.
First, Perl is not an acronym, see the FAQ. Second, there have been studies [JFGI] that show that women give directions differently. Men use spatial reasoning (go north 5 miles), women use procedural methods (turn right at the bargain outlet).
Even if this statement is true, which I'm certainly not saying it is, in my experience women are also far more likely to clash with each other. We used to have a single woman programmer in our development department, and everything went smooth. She would make her points, most of the men would usually gang up on her and explain the opposite, it'd be one big fun-fest. About 20 minutes later, a major breakthrough would be achieved where both parties are happy.
Another woman works here now. IF they finish arguing in an hour, it's not because they've come to a conclusion, it's because their throats are sore. They still can't even decide on some simple coding standards that the rest of us have already just been sort of using.
Women together generally makes for a bad experience.
These are just things I've noted, nothing sexist about it.
:(){
Badass Resumes
Women and Men DO think different. The men are evil and women rock tone of this article however is pathetic as are her conclusions.
However you could leverage the fact that men and women think different to gain fault tolerance. If you have two independent programmers do the same work, with the same requirements they will frequently arrive at different solutions. As most know this can be leveraged by comparing the output of both solutions to verify the solution is proper. If one solution was done by a male and the other by a female the probability of difference should go up due to the difference in thought patterns, I would think.
That is a real chance of benefit versus the male hating nonsense she spewed.
This brings me back to my first post college job. It was 1991 and the guy sitting next to me had a picture of Paula Abdul as his desktop background. Someone complained to HR and he was asked to remove it.
At the same time my boss who was also his boss had an anatomical poster "Penises of the Animal Kingdom" on her wall with to scale anatomical drawings of about 10 different species penises - including homo sapien. HR never asked her to remove it, and she was in a position of authority.
Never really bothered me, but did show me that sexism and sexual harassment rules are applied differently to men than to women.
ORLY now. I'm still officially a man (much to my chagrin), and I've always used landmarks to give directions.
-uso.
What you hear in the ear, preach from the rooftop Matthew 10.27b
No, he's saying he 'half-dated' one of them. That means he was dating her but she wasn't actually aware of it...
Sure, women have a different way. In my experience, that is rarely the best, most concise, most efficient way of doing something.
When giving directions, most men will say something like, "Turn north on Smith Street." Technically, it's correct, but most people don't know north from south.
A woman usually navigates via landmarks, such as, "turn right at the Shell station." That can also be confusing if it's *too* generic and the driver is going to be passing a lot of Shell stations. OTOH, it's often a lot easier to see and remember a landmark than a often obscured street sign. That doesn't make it more or less concise than a man's directions.
When giving directions, don't give people your special "short cut route" unless you're having to do so they can avoid construction or other major delay. Short cuts are rarely direct and it's best to have as few turns as possible even it means it's longer mileage-wise. If you write down directions to send, it's best to double check with a map as it's easy to leave out parts when it's somewhere you travel all the time. Or better yet, just Goggle a map, print it out and tuck it into the invite.
As to code, sloppy, lazy code is just that and there's no helping someone with bad habits. But if someone is trying to make it cryptic on purpose to be macho or, more likely, a feeble attempt at job security, they're an idiot. THEY may have to go back one day and rework that code and trust me, they won't remember what they were doing. I think a lot of coders don't document like they should, usually because they're under a deadline. Or they think they won't have a problem because they're working in it all the time. And they almost never go back after the project to document. But consider that, situations change, and you might find yourself changing languages, working for a year or so on another project. THEN just try and go back to ASP after being immersed into ASP.net or Perl or something else. You'll wish you'd paid more attention to documenting.
If you've never been modded as "flamebait" or "troll," you've never tried to argue a minority viewpoint here!
Up to 1960s or so. Military and some businesses would hire rooms of "computers", people working with mechanical calculators and graph paper. The autobiography "Surely you are joking Mr Feynman" has a segment about this. Some of these same women carried over to early vacuum-tube computers. Grace Hopper, inventor of the first widely used compiler, was of this generation.
At one of my early summer jobs in a large corporation there was a gender split between "scientists and engineers" and "programmers". The guys did write code on large "coding sheets" of paper. But the females programmed keypunched the coding sheets, submitted the job decks and collected the printouts, and the guys would analyze the printouts. You were lucky to get one or two turn-arounds a day. The new people had did their own programming on teletypes of terminals (inverted 1974) in school, so declined programming assistants. Some theold guys NEVER touched a keyboard in their careers. They were either promoted into management or laid off during the late 20th century corporate restructurings.
So early programming acquired the "taint" of effeminity and being "trade" taught in vocation school. That taint delayed computer science from becoming as degree offereing at places like MIT, Stanford, and Harvard, some untilt he 1980s. I attended all three of those schools and remember the faculty debates about this. Computer scientists hid out in other departments, typically math and electrical engineering. I guess it was when you started seeing coding superstars like Don Bricklin and Bill Gates (yes Bill wrote a legendary BASIC compiler OFF-LINE that worked within a day of finally getting the hardware) that commercial computer science became more acceptable.
I work with a woman whose name is Ruby Perle. The sad part is that the inherent pun there didn't dawn on me until just this second. I must be slipping...
I have not the slightest doubt that your experience is completely true.
I had an experience like this at Hewlett-Packard in Camas, WA in 1993. I was assigned to tear apart fully-assembled printers so that the parts could be used for prototypes of the next generation. I worked alone in a room filled with printers. No one had access to this room except from me and my (supposedly) male boss.
After a few weeks, I put a close-up picture of Claudia Schiffer on the PC's wallpaper. My boss saw it and flipped out. He ordered me to remove it immediately. I said that I liked it and that no one could be offended because no one had access to the room.
A day later I was fired from Hewlett-Packard for 'creating an environment conducive to sexual harassment'. I couldn't get unemployment benefits.
To this day I hate H-P and I don't believe anything anyone says about it being an advanced or great company. I will never sign off a purchase order for any of their products for any company that I work for. I suspect that most of the so-called great companies in the electronics/computer industry are the same way.
The biggest problem with "brains work differently" is that "differently" is too easily interpreted as "better". People simplify this down to a one dimensional score of IQ. No matter how you rig the scores, one group is going to come out looking "better". Then you get things like how former Harvard President Summers' speech was interpreted. And you get denial for purely political reasons, insistence that everyone is equal because otherwise it would be unfair.
Which is the better chess piece, the knight or the bishop? That's not a good question. It presumes that there's a clear advantage to one or the other when actually it's situational. The knight is regarded as better for closed positions, while the bishop is better for open positions. Nonetheless, chess experts couldn't resist concluding that perhaps the bishop is overall slightly better, and have gone as far as giving computers a blanket preference in that direction. Perhaps the bishop is the better piece for the computer's typical style of massive tactical computation paired with ever more sophisticated but insufficient heuristic rules to compensate for zero understanding of the overall strategic considerations of a chess position. (For instance, computers have been known to continue to grind out move after move in positions where the outcome is already known, positions such as king and knight vs king which is a draw no matter what the players do, because unless specifically programmed to do so, computers do not assess positions from a view of what is possible.) What I wonder is if programming is a situation in which men's or women's style of intelligence seems to work better, or is programming a more varied situation than that?
Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
>Men use spatial reasoning (go north 5 miles), women use procedural methods (turn right at the bargain outlet).
How much of that is social? I would think how a girl grows up is very different from how a boy grows up. If a boy joins boy scouts, goes hunting with dad, etc then he'll see a map as something with directions and distances. If a girl doesnt get these experiences, she may never see a map until she learns how to drive and at that point has internalized her surroundings by using landmarks.
I think many of the things we write up to genetic determinism really have social roots.
Way to miss the forest for the trees everyone.
1) 80% of software cost goes into maintenance.
2) Developers rarely stick with a position for more than 3-5 years.
It's more cost effective to have code that is easy to maintain, thus her focus on READABILITY. I can't tell you how many man-hours have been lost on our projects because our code is stupid and unreadable. Remember every time you've wanted to throw a brick at the guy before you? Yeah, that's stress that I really don't want yo be paying for on my project. Now:
3) Developers spend more time reading code than writing code.
4) Developers absorb code density faster via code examples than they do via documentation.
So, it's better to write self-documenting code, than to document highly analytical code. That means sensible variable/method names as well as collections/relationships that are relevant, at least where OOP is concerned.
Now, most business software is non-algorithmic, i.e. it isn't really computing so much as it is moving data around. The math isn't all that complex when the hardest thing you have to model is your database and the queries used to run it.
Considering all these things, I often hire programmers with better verbal skills, even at the expense of their analytical skills. Women tend to be more verbal than analytical, thus the authors conclusion. It's also easier to teach optimization and performance than it is to teach English grammar/syntax and how to "port" that to a programming language, and as outlined above, this is the part of the software that is not only the most expensive, but will give you the higher ROI over the life of that software. Enterprisey stuff can linger for tens of years, incurring maintenance costs all the while.
Now if the author had looked beneath the surface of what her gut (correctly) told her into the real cognition of what was going on, she might not have pissed off a bunch of insecure slashdot trolls. She might have even realized what was "better" about what she was seeing and how to train the rest of her staff to perform at that level.
but then again, commenting on a katz story is almost as self-serving as the katz story itself. -tensionboy
writing clear, readable code isn't a "guy" thing or a "girl" thing, it's a "good programmer" thing. similarly, writing confusing, obfuscated code isn't a "guy" thing or a "girl" thing, it's a "clueless programmer" thing (unless it's being done for the ioccc, in which case it's totally cool).
do i comment my code? yes, but it's not because i'm "touchy-feely". i hate commenting my code. i hate documenting my work. it's a chore and a bore (and something i often leave until the very end). i do it because it's essential for me to be able to go back to my work in a few months time and understand what the heck it was i was doing/thinking at the time. this was drummed into us at school by our prof, who made code commenting and documentation 15% of the grade. he also required we use informative variable names and write legible code and we'd get dinged heavily if we didn't. i think he was right and so i continue to try to follow his advice every day, and this includes code i write purely for myself, but it goes against my nature.
i'm reminded of one time, early in my career, where i was given a small problem to solve. i solved it, then set about seeing what i could do to make it tighter and more clever, getting very caught up in the process. finally, i was very pleased to have something that used all kinds of nifty, bit-shifting tricks and whatnot and fit all on one line. i was pretty stoked, actually. awesome! it looked cool! the senior programmer mentoring me took a look at it, told me he thought it was way neat, but requested that i redo it all so that it a) was on many lines and 2) made sense to everyone else who'd have to come by later and figure out what i was doing. oh, and could i please be sure to include comments? lesson learned.
soupy twist