Don't Be a Sharecropper
An anonymous reader writes "Tim Bray, best known as an XML Heavy, has an
entertaining rant about why you should be developing for *n*x, OSS, or (especially) the Web. Because if you're on a proprietary platform, you're a "sharecropper"."
What it comes down to is this: if you want to develop software, you can build for the Web and/or Unix and/or OSS platforms; or alternatively, you can be a sharecropper.
Your choice, but I think it's an easy one.
Especially since the users out there want you to do the right thing.
What Robb actually said, in a conversation about Mac software outputs like Ranchero and Watson and his own Spring, was that building for the Apple OS feels like being a sharecropper.
What's a Sharecropper?
I found a good definition at InterAction Design:
It's a lousy position to be in, because you're never going to make much, and if the land's owner finds something better to do with the land, you're history.
A practical example of this is Watson, the product mentioned above, which did very nicely, thank you, on the Macintosh, until the owner of the land brought out Sherlock, a very nice program that did many of the same things.
Are You a Sharecropper?
If you're developing software for the Windows platform, yes.
Or for the Apple platform, or the Oracle platform, or the SAP platform, or, well, any platform that is owned and operated by a company.
They own the ground you're building on, and if they decide they don't like you, or they can do something better with the ground, you're toast.
They can ship their own product and give it away till you go bust, then start charging for it; and use secret APIs you can't see; and they can break the published APIs you use.
All of these things have historically been done by platform vendors.
How Not to be a Sharecropper
If you develop server-side software that runs on Unix (by which I mean any platform that runs bash and creates processes with fork(), which includes GNU/Linux, Solaris, AIX, and many others), you're not a sharecropper.
They're not 100% compatible, but they're enough alike that you can move around and nobody really owns the turf.
You're not a sharecropper if you're building around the Apache webserver and the increasingly-large suite of associated software.
Nobody owns it, and it runs on anything; nuff said.
You're not a sharecropper, especially not a sharecropper, if you're building on the Web platform.
If you can define your value-add as a series of interactions via a browser, or an interchange of XML messages, nobody can whip the land out from under you.
Good For the Customers, Too
It's pretty obvious that it's healthier not to be a sharecropper vendor. But a little thought shows that it's better not to be a customer on a sharecropper's platform.
When something good and new comes along, the chances are less that it'll be scooped and monopolized by the landlord, and greater that it'll develop into a healthy ecosystem.
But it's especially good for the customers to be on the Web platform.
The notion of routing everything through the browser (with one significant exception, which I'll discuss below) is incredibly user-centric, user-friendly, and user-empowering.
Because once they know how to use the "Back" button, to click on highlighted text, and to fill out a form, then they don't need much training in how to use your application.
Reactionaries
But there are those who want to break out of the browser mold and go back in
A practical example of this is Watson, the product mentioned above, which did very nicely, thank you, on the Macintosh, until the owner of the land brought out Sherlock, a very nice program that did many of the same things.
Going with that analogy in a competitive environment, if you make a useful widget and someone else makes an improved version...your version has to change or it is history. The Linux and open source worlds are also impacted by this -- Example: The current switch to ALSA from OSS. Part of the OSS to ALSA switch is philosophical, though ALSA does have some damn nice features.
The main difference in the non-competitive and competitive worlds is that since the 'land' is not owned the best widget can be chosen -- though not necessarily. Either way, the results can be similar; new app comes along and old app turns into worm food.
That said, the effects are quite different in a non-competitive world; I used to work for a company that was hit heavily when Microsoft bundled an acceptable replacement of my old company's utility. Sure, if MS didn't do it then someone else could have done it later...though the new commer would have to compete. Microsoft didn't have to...so the company went from ~100 down to ~25 in the space of a year. I've heard it's a 2 person group now providing another set of tools.
A firewall can not protect you from yourself. Turn off what you do not need. Do not use the firewall to do your work.
Tim Bray might be an "XML Heavy," but he's obviously never set foot on a farm. He throws around the word "sharecropper" as if there's a stigma attached to it, when in reality sharecropping is a way of life for some people, just the same as working an assembly line or in the mines is a way of life for others.
My wife's family owns a 600-acre farm in southern Illinois. We have a sharecropping family that has farmed the land for over three generations. They have lived rent-free, all utilities and taxes paid, during this entire time. They are paid a fair wage in addition to bonuses from the farm's profits. College, if they choose to attend, is paid for. Their income, once the fringe benefits are added back, is probably greater than the average income for all professions in the St. Louis area. I can say for a fact their income is higher than most unemployed IT workers, and there has never been a layoff since the early 1800's.
I believe Mr. Bray was trying to be politically correct by using the term "sharecropper" when he really meant "indentured servant." Let's face it: Anybody who works for somebody is an indentured servant, especially if you are tied to said employer for necessities in life such as health insurance. Unless you have the good fortune to be in perfect health and can secure your own health insurance, you are, in fact, indentured to your employer if you depend on their group status for insurance.
Is it the job of an OS to provide AV detection? What is wrong with MS just leaving it to Norton and McAfee? Those two companies have spent tons of money on R&D and keeping up with the latest viruses. Now MS will use thier monopoly to destroy the market for those two companies and remove competition and choice. However, I use Linux exclusively at home so I don't worry about getting viruses.
I do think that thanks to Mozilla being such a great browser that more sites are doing better. However, that is not always the case. I am a programmer at a fortune 500 company and I constantly pull my hair out over these ASP script kiddies that get hired. The make a web page and say, "it works in IE", and then that is that. There are also still problmes with site that use JavaScript and people don't know how to write simple JavaScript. A lot of sites will use things like form_name.foo when they NEED to use document.form_name.foo. Last week I tried to order some stuff from www.tigerdirect.com and when I tried to use thier shipping calculator, I got a ton of JavaScript errors and was not able to choose the best shipping method. The shipping calculator didn't work because they tried to acces a form element without going through the document object. IE allows this non-standard practice, but Mozilla dies. This is the type of stuff I mean when I say that IE being non-standards compilant has hurt the web an made browser lock-in for many sites.
If Tyranny and Oppression come to this land,
it will be in the guise of fighting a foreign enemy. -James Madison
True enough. Much of the work done in OS projects is without payment. Some people enjoy working their favorite projects and will do it for free.
But then, some people are also working OS projects while picking up a paycheck from their respective employers. RedHat fosters this. IBM fosters this. Sure. But then, there's also the US Government. Cisco Systems. And other commercial entities.
Working a project doesn't mean you're prepping it as a shrink-wrapped product.
In my own environment, I scuttled a push to license MS Project for our branch. We didn't need it, but it was all the management knew about. I found a web-based, GPL'd project management application that met our needs. The manaagement has been thrilled with it and are pushing to put it in to production.
Our pilot of the application has been fairly successful. However, there are some changes and tweaks we'd like to see done. I don't have time to work it myself. So my management is looking at putting some of our web developers on it. That code will be returned to the project.
That's right. My employer wants to pay for OS development. Not because we're going to sell it. Because we're going to scratch an itch.