This article has spawned a lot of discussion about the "gender gap" in programming.
What bothers me about the discussion is that nobody ever states a goal. What is the ideal outcome?
I think the ideal reads something like this: "For any person, they will have some degree of happiness with a given job. Society also has some degree of need for a given job. The best job for the person is the one that best balances their happiness with society's need." You need the clause about society to keep the problem grounded; we can't all be Hedonism-Bot, because the societal demand for that just isn't there. The exact balance is, of course, up for debate.
(My personal ideal "happiness" job, assuming I could cut it, would be video game musician. However, the demand for that is very, very low, so I didn't go that way. Perhaps that is lamentable, but that is life, and the balance I have struck with becoming a programmer is still something I am very grateful for. Improperly realizing your own balance point for this is a big problem; if you want to be a starving artist (one extreme) or a high-powered miserable executive (the other), go for it, there's no true "right answer" for all, but be sure to choose wisely. Had I tried to force video game musician onto my career path, I can't imagine I'd be very happy without an amount of luck I'm not prepared to bet my happiness on.)
The critical aspect of this definition is that it is personal. Given that there are inherent complicated and statistical differences between men and women, that means that as you aggregate the choices of individuals, the resulting ideals may or may not end up 50-50, especially if the job has some aspect that plays to a gender's preferences.
The flip side is if you force a certain ratio onto a given profession, that mathematically requires that you are hurting people; there are people in the discouraged gender that would be happiest in this job, but they were squeezed out, and most critically of all to this discussion, there are people in the privileged gender who would have been happier somewhere else, but were squeezed into this targetted job.
I feel it is vital that we do not allow ourselves to be distracted by the chimera of 50-50; we must strive to find the natural balance, not an artificial one, or people will be hurt. I'm not willing to hurt people by the thousands by putting them in sub-optimal careers to satisfy people with politically-driven gender agendas.
How will we know the natural balance? The best way is to make it equally easy for everybody to get into every profession, then the balance should find itself. There's almost certainly no way to guess the balance in advance.
This isn't a black or white issue. Some women will overpower any barrier, others will be frightened off by the slightest hint of difficulty, and everything in between. (Actually, that goes equally for men, though they may face different difficulties.) We shouldn't expect to see that after a certain amount of improvement, suddenly there is a discontinuous jump in female programming; if there is an imbalance currently and the situation is improved, we should expect to see a gradually increasing number of female programmers.
Here is where it gets interesting. We obviously have an imbalance in graduation rates (the best concrete number we have for female participation). I think it's safe to say that while we may not have true opportunity parity yet, things were improving over the course of the previous decade or two, as more people are more aware of the problem and do more things to make women welcome. I know it was a priority even when I was in college, and certainly any overt discrimination against women would be grounds for extreme discipline. However, if you look at the graph on the bottom of this article, women graduating with computer science degrees, the numbers are not rising.
I'm not ready to draw a conclusion from this, because there will certainly be a delay between making the opportunities more available and people graduating with degrees. But I would submit that if the women graduating with programming degrees doesn't start going up soon (and note the chart ends in 2003, too, so maybe they already are), then we may want to consider the hypothesis that we are already at nearly the optimum balance, and that the difficulties women face in programming culture may be more an effect than a cause; a culture filled with 90% men will have an unavoidable "male" feel and there's nothing you can do about that. I'd question if you even should. Overt discrimination can and should be stomped out, but trying to radically remake programming culture in a more feminine image may be a waste of time if the current social support programs don't have any effect.
Certainly that's a bit of a controversial position, but it strikes me as the one that is best supported by the evidence, pending a significant change in graduation rates.
Given my definition of the ideal job for a person, it is mathematically inevitable that there will be careers at the extrema, with wildly disproportionate representation of the genders. Mere disparity doesn't prove that there is a problem; you need to prove that we're not at the ideal, and that's a much taller order. So: Does programming really have a significant gender problem, or is programming just a male extrema, just as registered nurses are a female extrema? (Note that registered nursing, at ~5% male, makes programming look downright balanced.) I can't give a solid answer, but "there isn't really a problem except one of bad expectations" is certainly in the running.