Young Programmer, Stop Advocating Free Software!
Lansdowne writes "Clemens Vasters, in an open letter to a young developer he met at a software conference, asks him to consider the consequences of writing software for free. "Software is the immediate result and the manifestation of what your learned and what you know. How much is that worth? Nothing? Think again."" While I don't particularly agree with all of the points made here, this is the type of question that needs to be answered to continue to get people involved in Free/Open/Libre/GNU/whatever source/software/code.
A guy who has already built his reputation and established his "above wage earning" credentials in the industry wants all those that have yet to acquire that valuable resource to stop trying, or at least to start earning wages and preserve the satus quo that has served him so well so far.
Well unless the letter was a very elegant piece of irony (and I doubt it). He should STFU and help these young subversives bring down the pillars of the temple that has so elegantly enslaved us all. Ok that last bit is a little severe but it's pretty close.
"The first thing to do when you find yourself in a hole is stop digging."
...Consider the consequences of writing software for free. "Software is the immediate result and the manifestation of what your learned and what you know. How much is that worth? Nothing? Think again."
Applying this logic to the letter itself, offered for free (the horror!), an interesting conclusion is reached regarding its value.
Mostly because it's money that puts food on the table and a roof over the head. And in the end, those are two very important things in life.
>> "What would the robut do? Frame someone!"
I couldn't agree more wholehearted. Indeed, when I was 20, I thought that all software had to be free. Now that I'm (past) 30, I sometimes wonder where all the paychecks get paid from.
Amen.
People will get it as they get older.
Doing stuff for free is great, as long as it doesn't interfere with putting food in my belly and doesn't stop me from living my life the way I want to.
I think a lot of the people who are screaming free everything haven't yet had the pleasure of being on their own, or being responsible for their house, car, food, clothing, utils, wife, etc.
Of course, I'm sure someone here will correct me, I couldn't possibly know what I'm talking about.
Sent from your iPad.
There are plenty of companies paying programmers good money to write free software. They want the software, and they believe that the quality of the software will increase by releasing the source. Or they believe they will sell more hardware when the software running on it is free. Or they sell support on the software they release.
Nobody asks a programmer to work for free. The author of the letter thinks that releasing code for free equals not getting paid for writing it. Think again.
This is your sig. There are thousands more, but this one is yours.
Your post shows a clear misunderstanding of the software industry and what coders do. The vast majority of coders in the world aren't working on off the shelf software, which by and large Open Source/FOSS software replaces. Most work on bespoke applications for business. I have worked on perhaps 10 different software projects, only one of which had the aim of producing an off the shelf package (which failed to sell by the way), all the others were bespoke projects.
This is where most coders work, this is where most of the money is (unless you happen to write windows or office) and this is why Windows so dominates the desktop environment, because MS made it easy for people to create bespoke applications.
People will write free operating systems and database engines and paint programs, but if I want a bespoke package written to my spec to run my company then I have to pay for it, and that's where coders make their money.
and if that girl suddenly starts liking me because of my "big-load-o-cash"(tm), I probably wont like her anymore.
No one can understand the truth until he drinks of coffee's frothy goodness.
--Sheikh Abd-Al-Kadir, 1587
What if a given person already has a job?
Most OSS developers are very talented (they wouldn't love what they are doing otherwise). They shouldn't have much problems landing a good job.
Or does the old fart indeed think that a guy should found a business on a project they create during their studying days? Does he think that the guy doesn't have what it takes to get a day job, so he should grasp the first straw he can get, i.e. his OSS project.
Getting bundled on a Linux distro is a bigger honor than most of us in OSS will ever get.
Save your wrists today - switch to Dvorak
But, to me, it's like chiding someone for working in the Peace Corps. Sure, you're not going to get rich or much recognition for it, but that doesn't mean it's not a worthwhile thing to do.
I'm a capitalist, I believe in making money from what I do. No question about it. The programming I do does not go for free. In fact, over the years I've been rather well compensated, especially in the good times.
But when I was just getting started... when I was just a "young programmer" I wrote software and gave it away for free. This was long before the idea of GPL and such (AFAIK). My first big give-away success was FRPBBS, a piece of C64 BBS software that was unique in that it focused around running online roleplaying sessions. Those were the days!
That part of my life was absolutely essential to what I do today. I know employ a goodly number of people and contribute to our economy. And I owe a lot of that to the early experiences, encouragement and sheer fun of being able to put my code "out there".
Shall we do away with the Olympics because all endevors should yield an immediate profit? Small minds fail to graps the big picture yet again.
David Whatley
His letter is basically "What's your plan for moving out of your parents' place?"
One line blog. I hear that they're called Twitters now.
Real life programming jobs stink. They're usually not that interesting, but just flat business apps without depth, but with time constraints, byzantine politics, incompetent project managers and bizarrely generic business requirements.
So what do you do in your spare time? You work on your pet project, in which you can apply all the knowledge and nifty things you learned and/or you ever read about. And hey! It looks good on your resume too, because your real job doesn't give you the experience in those new technologies that your future employer/customer wants/needs.
And besides, Open Source is good for everyone, because the guys who do use your stuff can concentrate on delivering value to their customers, ie. writing boring business apps that implement the functionality that their customer asks for in their bizarre and overly vague requirements. And they also save time, so they can meet the deadline that their horse ass project manager has set all on his own.
Everyone wins with Open Source I think. It gives you the opportunity to start programming at a higher level of functionality.
When it is called 'culture', everybody agrees that it's been a good thing for ages.
PS. That's why software patents are bad. They block this culture, this incremental growth in knowledge.
Then again, confining yourself solely to "for-pay" endeavors is probably not the best thing in the world either...there is a balance to be struck somewhere...I can't believe that refusing to contribute to something just because it doesn't "pay in cash" is the best course of life. I mean, just think of where projects like Apache and Linux have gotten us...and just think where they could go if a few more people counted their "pay" in more than monetary terms. Sure, contributing to an open-source project is not likely to pay your bills, and for that reason I don't think a "free only" software world will work...but contributing to an open project now and then certainly cannot be as worthless of an effort as the letter-writer claims it to be.
This is the same issue that many scientists face, and I would guess many other fields. If you measure worth in money than there is less that can be said for giving your work away for free. While there are companies releasing their source for free while posting profits there are many more open source projects making no money and closed source companies making lots of money. If the two are mutually exclusive which matters more to you?
In science there is the opportunity to work in an interesting field while working for a corporation. The problem is the work will become patent encumbered and proprietary as soon as it has any value. To let other people share in the success, and even improve upon it, something like a University grant is required for which the pay is lower.
You do your best every day of your life, make major discoveries and solve complex problems, and then you die. If you work for a corporation it's likely that your work will remain the private property of that corporation long after you're dead, with most people associating your work with the company and not you. However, if you gave up potential money to share your work then it is more likely to live on with little chance that your work will be associated with anyone besides you. So, ecide which you find more compelling.
The money comes from the fact that no matter how long a free or commercial software program is developed and maintained it absolutely will not fit all of the needs of any organization. Currently I work for a company that uses three large closed-source systems for order entry, provisioning, and billing. As configurable as these systems are, I spend all of my time writing applications that apply our business logic on top of them. I am forced to reads/write from the DB, apply custom triggers, rewrite their stored procedures, and in some cases edit or replace ASPX files to attain the integration needed. Not only is this time-consuming, risky, and often inconvenient for users (trigger errors don't often bubble up to the UI in a friendly way), it also violates all kinds of support licenses, which is whole the point of buying these large closed-source systems in the first place.
Now, back in the day we used Tomcat and wrote most of our stuff in-house. We had a need to write a custom security layer for authentication/authorization against both LDAP and a windows domain controller. Nothing like that existed, so we wrote one ourselves using the Tomcat SecurityPrincipal interface and simply pluging in our extensions. Took a day, at most, to write and test, whereas we would have had to jump through hoops for weeks on an IIS system.
That's where your money comes from. Taking what's already written and what nobody wants to write again and adding business-specific logic, and integrating it with other systems. One of our vendors has changed their business model. They make virtually nothing on software sales and support, but they survive on their consultancy business. IBM is also doing this, and you can see by Microsoft's latest ISV push that they recognize this trend as well.
The question now is do I pay for closed-source software and lock myself into consultancy from that one vendor, or do I use an open source package as my base and pick and choose the talent that I bring in to improve and maintain it? If it were my business, I would choose the latter.
I'm 41 years old. I "got" that there is more to life than doing things for money a long, long time ago.
Fortunately, no one is demanding that you not feed yourself, or that you not live your life as you choose. Why the "Straw Man"?
wants to be the first monkey to touch the monolith
The people who contribute to those free OSS projects don't do that because they think it'd be neat if such and such software would exist for someone to use, in most cases (I can't say for sure "in all cases", blame me for being a scientist) they work in a project because that particular piece of software is something they want to use themselves.
See, there's so much I can do on my own. But if I want something done, and by letting you use my code I'll get some of yours in exchange, I've actually gained something, I've gained the hours of work it'd have taken to add that code, correct my bugs, or whatever that other person who uses my code gives me. That's the heart of the GPL.
If I have to put a value of n dollars per line of code, does that mean someone who sends me (or the public repository) y lines is actually giving me/us money? Is code worth a lot? Yes, that's why getting extra code on top of mine is a good value I get for releasing my software for free.
---- Take the Space Quiz!
It's so very Ayn Rand.
Sorry, but in my case, it's true. I work for a small-ish "GIS company" that makes a name for itself by not being a traditional GIS company, but a knowledge company. We serve our customers by providing software that they need... but as I'm reminded all the time from the higher-ups, the value of the company is not really in the software, but in the employees. If all of the programmers suddenly disappeared, it would be practically impossible to replace them.
That said, they also use a lot of free and open source software internally (esp. bugzilla and apache), and see no problems with employees giving back.
I saw a post from some seventeen year old bragging about how he'd been working on open source stuff for a while, and isn't that just fine. But sorry, at seventeen you know so little that you don't even realize how little you know.
Sure, we can all point to Linus and ESR and say "Hey, they've made it big, therefore the business model to which we aspire must be valid!"... It may be valid, but it's hardly useful to refer to anecdotal evidence in support of that point.
So I reiterate - the only people I will personally listen to in this thread are people who can personally attest to living in the REAL world, and living REAL lives, entirely on Open Source dollars.
The point was not that you must make money from everything you do. The point is that you *must* make some money to provide for yourself and your family. In the ideal world promoted by many, and apparently Aiden, no software would carry a monetary cost. In that world, how much are software developers worth? How will professional developers make ends meet? Yes, money is annoying, yes, excessive greed is bad. However, in the real world, one needs money to buy food, clothing, housing, computers, and the other stuff we need or want. Doing open source is fine. But, unless you are lucky in being able to make some money from it, treat it like your hobby, not your job.
As for making money from your education, while I am the first to point out that one should not base one's education solely on one's vocational interest (e.g. take lots and lots of elective courses outside of your focus, feed your mind while you can), if, like me, you spent tens of thousands of your own (not your fellow citizen's via the confiscation of the government) dollars/euros/whatever on that education, it is reasonable that you find some way to actually provide for yourself with the fruits of your education. 'Would you like fries with that?' isn't something a bright and educated person should be saying in the course of their job.
Larry
Before everyone gets all uppity: I think that when it comes to basic underlying architecture, there is no better way to ensure quality and performance, than to get lots of eyes on the the source code. In that respect, open source environments, where there are a large number of volunteers willing to scrutinize implementation details, will guarantee that lurking issues get addressed in due course.
But 'open' doesn't necessarily imply 'free'. As Clemens says, your skills are valuable, and while you're at a stage where coding is 'fun', being able to say 'all the Linux users are using my kernel mod' doesn't pay the rent.
Less is more.
Not only that, not all software that *this guy* writes has to be free. I definitely disagree with the article writer's assumption that "fame" won't get you a job - in CS, employers want porfolios, and working on Open Source is a great way to get that experience before someone will pay you.
Second, even if one *has* a job, working for a free project is (in effect, or in the case of FSF, actually) charity work. I guess computer scientists are the only ones to donate their skills to a good cause? Because Doctors Without Borders doesn't do anything like that. And lawyers never do pro bono work right?
As you say, I'm having a hard time seeing who loses - I've never heard of someone who does good work for a free project and can't parlay that into a job, and the output is (with the exception of anything GUI) top-notch.
And don't forget that women are only interested in your money! That good looking, intelligent girl over there at the bar could never fathom that you have heart and soul and integrity and have contributed something valuable to the world without demanding payment in kind. No, you'd better be making big bucks before thinking about talking to her.
Maybe that's the kind of girl he married and is still bitter about it...
As was pointed out in the letter, a lot of the really useful software ideas have already been realized. Of course, there will always be new hardware, and new drivers for it, etc...but how many new word processors or operating systems will there be?
Even in a world where there was no open source software, there would be precious few closed source solutions, with a handful of programmers maintaining them. Closed source doesn't magically guarantee that every programmer will have a job. Nor does the existance of an open source alternative put all the programmers out of a job.
Already, most programming jobs in America are something OTHER than creating an office suite or an operating system. Programmers do innovate new solutions, usually right on the payroll of the single company that needs that solution. Thats the world of programming in America, and those programmers will have jobs reguardless of the prominence of open source software.
The author's fundmental premise is sound: you need money to earn a living. However, the next premise: if you work on open source, there will be no money, is seriously questionable.
--AC
Not all software has to be free. But there are a few good things that will come from his open source project:
1) Experience.
Seriously. Who would hire a fresh-out-of-college person with no real world experience? At least when they contribute to open source they have some real world experience. If the software gets big, even better. If it is some small piddly OSS project, well, at least you tried. You have guy A who goes off, does what he has to do to pass college, and goes party. You have guy B, who now has a masters, plus 6, 8, or 10 years of real-world programming experience. Who will you hire? Seriously. Don't get a life, it won't get you work. =)
2) Hey, geeks know geeks. You apply for a job, you are the new "project manager" and have to keep several programmers working for you. You introduce yourself to you new team, say that you do this, you know this, and you've worked on this. Right there, you can get a good scoop of respect right there and get your work off to a great start.
3) You could get a job supporting or expanding on whatever project you've been working on. Not likely a full time job, but perhaps a few extra bucks every now and then, eh?
I think this guy is just scared that he soon will be outsourced. I think that because he has chosen to be a programmer, only one of the many things you can do with a CS degree, that he is very afraid that OSS programmers and OSS is taking away his work. Really, programming needs to be in two degrees, "basic" which is a 2 year degree, and advanced, which can be from 4 to 6 years. Programming is a commodity, it is a service industry. The more advanced things are program design(yes, I know, everyone complains about flowcharting it, UML, etc.. when they are in school, but when you gotta write that up and send it off to India, it matters, since it may be the only thing keeping you employed).
I think people get programming confused with an advanced profession because it is so flexible. It can be extremely advanced, from writing compilers, to JITs, etc... There is so much theory out there. But really, it is just doing the same stuff over and over again slightly differently. Yes, there are different languages. No, they are not difficult to learn new ones. Once you know the basics of programming it all falls in pretty quickly. How much you actually use of what new stuff you learned is pretty low on the scale too.
Whether you are writing enterprise apps(which has several methods, procedures, and theories on its own) or a quick one-off web app, it is basically the same stuff. I will say that enterprise apps require more discipline and knowledge than a quick one-off web app, but most of that can be learned in a month or two easily. Yes, univ's stretch it out by you only going to class two or three times a week for several months, and learning many other things while you are there. But if you focus, you can learn it all pretty quick.
Nope. Those companies have OSS for purely commercial reasons. This is a case of complementary economics. When two products are complements of eachother you want your complement product to be cheap so that a consumer can spend more money on your product (example: gas - cars). For IBM, a complementary product is the OS. If the OS is free their customers can spend more money buying servers. As easy as that.
Thanks for browsing at -1
Please vistit my blog: www.framtiden.nu
What about Microsoft. They release a whole slew of free software. For instance there is a version of Windows Media player for Windows, Mac OS, and even Solaris. ... I'd say that all these other companies release their free software for the same reasons that Microsoft releases its free software. To make money in some way.