The Extinction of the Programming Species
Max Goff writes "Given the recent chatter surrounding the extinction of the U.S. programmer, /. readers might also be interested in a series of articles I recently penned for java.net -- the Blacksmith and the Bookkeeper (part 1, part 2 and part 3) -- in which I posit that the postmodern programmer (the entire sub-species, not just those domiciled in the U.S.) shares much with the
blacksmith of old, and will become just as extinct in relatively short order. It is not due to work visas or outsourcing, but has much more to do with the evolution of work itself."
Programmers can't reproduce without sex, and sadly, we're not getting any.
Somebody else RTFA! I don't want to know how I'm gonna die.
People should not fear what they do not understand; people should fear because they do not understand.
Tools come and go. Knowledgeable people are here to stay. The problem is many people pretend to have knowledge in fields they're not experts.
It's the same with diet/exercise. As the years go on new diets/plans come and go yet the old school traditional "just eat less crap, more good and get off your ass" philosophy is still here.
Wanna make sure you're employable as a software developer? Make sure you're actually knowledgeable about the science *and* the field. It's good to know about things like Java/C++/etc but it's equally important to know about design theory, algorithms, math, etc.
So if you signed up for some 6 month "computer science" program well don't blame the industry for your unemployable status. Code monkeys are a dime-a-dozen.
Tom
Someday, I'll have a real sig.
It is not due to work visas or outsourcing, but has much more to do with the evolution of work itself
Nonsense. It has to do with the wholesale re-negotiation of the social contract between business and the society it sells to.
Business is no longer satisfied with the simple model of building a product and selling it. That would require work, investment, long-term planning and respect for the skill, education and loyalty of their employees.
Much better, business says, to sell all of that and simply manufacture brands. The modern workplace is therefore obsolete, because business does not want to pay for it. It's really that simple. People are only useful if they are opening their wallets at a cash register. They are not worthy to be employed and paid a fair wage.
There are voluminous statistics to support this, but a few should be sufficient. In the last few years, corporate assets have increased 288%. Employee compensation has increased 9%.
Over half of the working-age population is either a temp, part-time, unemployed or out of the workforce entirely. Read it again: HALF OF THE WORKING-AGE POPULATION IS NOT EMPLOYED FULL-TIME. Companies have no respect for anything: skills, education, experience are all totally meaningless to these companies. ALL that matters is money. That's why it takes five interviews and a credit-check to get hired, but only an e-mail to be fired.
Unless, of course, we're discussing the price tags of all these "brands." Then, it's "you get what you pay for." Like $2500 for a mattress and $4500 for a television, $175 for a basket of groceries and $50,000 for a car. It's nonsense, of course, but everyone's too busy arguing about the problem. Nobody is interested in hearing the facts. All that matters is money.
Business isn't willing to pay for products, innovation and careers, so we get brands, mortgage commercials and layoffs.
The reader comments on these articles are themselves interesting. I especially think this one is telling: "As a Java programmer I haven't looked up searching and sorting algorithms in Knuth". Being a Java programmer myself, I can certainly appreciate having these kinds of algorithms in a standard library. I still think you should spend some time with Knuth or some other book (or online documentation) and understand how they work. That's one problem I see, not enough programmers today learning the fundamentals and just letting the libraries do all the hard lifting for them.
Eric
Thanks to All-Bran, William Shatner 'goes like no man has gone before'
At first I thought, "Of course! Everybody knows that." My wife and I were just chatting about that last night before bed. (Maybe the rest of you should use romantic talk like that, and you'd get some more often.)
Then I realized that the author knew way more words than I do. He must be right.
sigs, as if you care.
A proof of the demise of the programmer the article points out:
The advent of the Codeless Development Environment (CDE)
I wonder if these "Codeless Development" environments are they themselves written in a codeless environment. If you have ever coded in a pure gui environments with boxes and connectors and such you will quickly learn the limitations.
They have been predicting the demise of programmers since the invention of COBOL in the 60s. It was supposed to turn ordinary business users into programmers thanks to its easy, English-like syntax. We're still waiting. Now this writer is talking about "codeless development environments" which are (like the 5GLs and expert systems of yesteryear) supposed to replace programmers.
Look, that technology is already here!!
Behold, a program which is capable of designing a new program!!
#include <stdio.h>
int main ( void )
{
FILE * output = fopen ( "c:\\newprogram.c", "w" );
fprintf ( output, "#include <stdio.h>\nint main ( void )\n{\nprintf(\"hello world!\");\nreturn 0;\n}" );
fclose ( output );
return 0;
}
Were all doomed you fools!!
Now this writer is talking about "codeless development environments" which are (like the 5GLs and expert systems of yesteryear) supposed to replace programmers.
The way I see it, if the current demand for software systems doesn't change, this argument may possibly hold *SOME* water. However, users keep pushing what they want onto the cutting edge of what current systems can do.
For an analagous example, look at processing power. When companies come out with faster processors, do we just run the same applications, but now just faster? No. Not only do our standard applications do new and *cough cough* wonderful things, We find new and exciting uses for our extra processing power. which in turn pushes the need for even faster processors.
It seems that the extra time made available by the eases of case tools, intelligent IDEs and more intuitive syntax is being put to use implementing more sophisticated architectures, developing more robust business logic and implementing more useable software overall.
Without the increase in productivity associated with evolving programming tools (ie languages,environments,frameworks) would we have more programmers working on projects of the same scale as today, or the same number of programmers working on projects with less usability?
You do realize that historically it is normal for around 35-40% of the non-institutionalized working age (ie not imprisoned or commited) population not be employed?
t xt
ftp://ftp.bls.gov/pub/special.requests/lf/aat1.
And if you'd like to see about part-time workers you can get recent statistics here:
http://www.bls.gov/webapps/legacy/cpsatab5.htm
Please note, there's nothing wrong with a part of the population being employed part time by choice. The BLS statistics differentiate these as people employed part time for economic/non-economic reasons... if you look at the stats you'll see around 4-5 million people are employed part-time for economic reasons. You can find those stats here:
http://www.bls.gov/webapps/legacy/cpsatab5.htm
According to the BLS the labor force is around 150 million:
http://www.bls.gov/webapps/legacy/cpsatab1.htm
Out of a labor force of around 150 million that means that we have about 3-4% of the labor force working part time because they can't get full time work. While I'd prefer this to be a lower percentage, it doesn't seem to be a great and shocking problem.
Also, would you please source your data above. Absent primary sourcing I've absolutely no reaon to believe your facts.
First of all, your argument comparing programmers to blacksmiths is already a counter-proof for what you are saying.
Sure, we don't have many blacksmiths, but let's look at the role of a blacksmith:
All they did was make things out of metal. They were what we now replaced with machines. The few innovative blacksmiths, who created new advances, were what are now engineers. Nothing has changed - only evolved. And what was once a role for a person is no longer.
Now, you are saying that there will be no need for programmers in the same sense of how we no longer need blacksmiths. But I ask you, do we have a programmer re-type every line of code for each and every piece of software that is sold? Because that would be the role of a 'blacksmith' programmer.
A programmer (or large group of) writes the first piece of software, which must usually be innovative, or better then what exists, in order to provide a use. Sure, there are countless pieces of code being re-written, or written poorly, but that is more for learning than for business, at least if they plan to survive. And when there are copies of software in the mainstream it is merely for economical competition, which will never change.
With the open source movement, or even with API's of old, there is no need to write every line of code over again, but rather to use them to make whatever new piece of software it is that you are planning to make. This involves making software that has never existed, which cannot be automated.
So I conclude that software programmers have never from the start been blacksmiths, or at least have not been for a very long time. What we provide is a constantly changing, evolving, and adapting use of logic in the form of code. No automation will ever replace that.
The number of programmers will not be decreasing to extremely low numbers either, since the more advanced software becomes the harder it is for individuals to create it. Large groups are required, for long periods of time (How long does it take to make a new game or operating system compared to 20 years ago).
You argument is not only wrong in practice, but wrong in theory. It's ridiculous.
Now that I've studied for more than 4 years, I learn it is going to be useless.
College isn't a trade school, and you shouldn't treat it that way. The most important thing you learn in college is how to learn. In many, if not most, fields what you learn in college is outdated by the time you finish (if it wasn't when you started) but it does (or should) give you a strong background from which to learn other things. In graduate school you learn how to learn things that nobody knows yet.
As an example, an undergraduate physics degree from a pretty decent school will get you to about the mid-1950s as far as physics knowledge, with a few little tastes of stuff from the 70s(and maybe even the present, if you work in someone's lab). You can fake your way into a lot of engineering jobs from there, and if you go to graduate school, you catch up to maybe the 70s (or even 80s and 90s) in a lot of areas, and you take one small piece of physics right up to the present day and become a world expert on it, adding new knowledge at the leading edge. All the stuff you learn along the way provides important context and background knowledge, but the most important thing you learn is how to obtain new knowledge. If you need any of that stuff that you didn't have time to learn (because the field has gotten very large) you at least get the tools to go back and catch up quickly. Computer Engineering has to be much the same, if not more so, since things are changing even faster than in physics.
The premise of the article is also similar to the kinds of arguments people were making in the '80s about expert systems:
"We can develop inference systems for all these professions with voluminous, but highly specialized knowlege bases, and then we won't need the highly trained professionals anymore".
This also harkens to a software engineering fantasy that we can standardize and simplify hard problems. There are many who disagree with this point of view, including Fred Brooks.
An interesting take on the failures of software is Jaron Lanier's One Half of a Manifesto. (Actually even more enlightening is the debate that ensued around the manifesto (responses, reply).
I think the author was rewarded in school for writing long sentences with big, trendy words. This sort of ridiculous blather is the result.
Some of my favorites:
uh-huh
Sure, they'll mechanize that one any day...
mt