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"."
A farmer who works a farm owned by someone else. The owner provides the land, seed, and tools exchange for part of the crops and goods produced on the farm.
Unfortunately there is little land left to start you rown business (read: software company). Perhaps you'll get a garden sooner or later, but in the end the chances are against becoming the next Microsoft plantation.
Damn, need to find some better metaphors here!
--------
Free your mind.
No. You're an indentured servant.
Then what does developing the cygwin libraries make you? A serf? A blockbuster?
Also, an inaccuracy in the article:
"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."
This doesn't even make sense to me. The analogy doesn't work. If I code a game made to work in windows 98, Microsoft can not (at this point) block your game from being run at the OS level (aka "taking away land") but really only through suing you to stop the game from being distributed.
Do I have this wrong? This doesn't sound like being a sharecropper, but living next door to a cranky neighbour who might sue you for keeping your lawn unkempt and lowering neighbouring property values.
sharecroppers.
He gives the story of Watson vs Sherlock. But what if sherlock was someone's open source/free project. What is the difference from the viewpoint of the "sharecropper" between having the rug pulled out from under you by a new piece of software that gets added to windows and a free version that someone develops. To the end user, they both look free (as in beer of course.)
All computer applications fall into one of three baskets: information retrieval, database interaction, and content creation...
Huh. So, when I'm fragging bad guys in Quake, is that "database interaction" or "content creation?"
Browsers are more usable because they're less flexible.
"Gosh, this ball and chain is great! I don't have to run anywhere near as fast as I used to in order to get the same amount of exercise!"
Any sufficiently advanced technology is insufficiently documented.
Like many high profile OSS ranters, he's ignoring the fact that if most workers try to challenge their company's existing model (the sharecropping model) they are likely to be firebranded in their jobs or worse. Fine if you work for yourself or whatever, not fine if you have bills to pay and a status quo to keep.
We'd all love to get paid to do interesting stuff on exciting platforms (I'm an RHCE, but in my current job we don't even have a Linux box in the building). Unfortunately, boring stuff on Windows keeps the rest of us (and our numbers are dwindling) in jobs.
I might be modded a troll, but then some mods have more time and more idealism, others are pragmatic.
"It's not your information. It's information about you" - John Ford, Vice President, Equifax
How about a small pulpit icon, to represent that the following story contains religious views regarding open source software?
While there are many of us who enjoy contributing to open source (myself included), the fact remains that the majority of people who program for a living are constrained to do so on proprietary platforms of one form or another, even if they are working on proprietary applications built on top of open source software.
Articles (and topics) such as these, while nice trollbait and conversation fodder, nonetheless constitute a view that is basically a religious viewpoint - the position that giving up your evil proprietary platforms and converting to one of the true open source ways will save you, while somehow not causing you and your family (and bandwidth hungry habits) to starve to death, is as much a position based on blind faith as any other I've ever heard.
Until the people put Microsoft back into it's place (OS Development only) and also break the DirectX sharecropping the whole point is moot.
But look at who's gotten sharecropped.
Winzip
Realplayer/MusicMatch
Netscape
I can go on..
It's true anytime someone comes up with a good idea MS goes ahead and builds it into their OS. Look at what they did to Java when it came out you had Sun Java and MS said nope.. lets make MS Java and make it work better with windows than Sun Java..
They took HTML and did the same thing.. Now many people have to program for IE and then the Other browsers as time permits.
Basically the inability of the US courts to stop Microsoft from doing what they continue to do is the same as the south winning the civil war.
This is a very poor article, which makes a very poor analogy.
While I agree with the author that developing code for closed source platforms may be helping out a company, I hardly think that makes you a "sharecropper." Just because you write a program for Windows, doesn't mean it becomes Bill Gates' personal property now.
Really, it's worse than this, because the author appears to be trying to incite some kind of revolt in the programming community against all kinds of closed-source development. Uh, hello? If nobody writes these programs, how are the companies that sell software going to make any money? We live in a profit-driven world, and if there's no profit, nobody's going to do it! I think that's fairly obvious by now, just by looking at the operating systems out there. Good profits result in good software, it's just that simple.
Finally, I think the author does an even greater disservice, and exposes his bias, by referring to sharecroppers in a derogatory manner. Those who work the land should never be mocked, because if it weren't for the vast sharecropping industry in the united states, there wouldn't be any food on your plate. Sorry, you can't eat your AOL start-up disk, bucko. Also, it's a historical fact that most sharecroppers were African American, and I think the authors negative reference to them may be a veiled form of racism. I think this reflects badly on the open source software movement, and I don't think Linux Torvulds would approve. Might as well have titled the aticle, "Don't Write Software for Windows, or You're A Coon!" Pathetic.
Consensual sex is boring.
It's an idealistic rant, and as with most idealistic rants you should listen, remember a few points, and then go back to what you were doing. If you get all nutty and won't touch anything but Linux, for example, then you're just hurting yourself. Look at it this way, over 50% of homes in the United States (don't know about other countries) now have PCs, and 95+ percent of them are running Windows. That's a big, big, big market. Getting all high and mighty doesn't make that go away.
It was so wonderful when the browser interfaces came on; the vendors had to discard all those stupid sliders and cascaded menus and eight-way toggles, and only leave the stuff that mattered.
There are badly designed GUI apps, but there are also badly designed web pages, and badly designed web interfaces. I teach at a school that uses a browser-based system for entering grades, scheduling classes, etc. The interface sucks, because it's slow and unresponsive, and you have to click through many web pages in a row in order to get where you want.
There's also a problem with saying web==open. A lot of web applications use proprietary extensions, like Flash. Actually, one of the coolest web apps I've seen recently is a Flash video game on a Harry Potter web site.
Find free books.
I can't say I agree completely with this definition of ShareCropper.
Are You really a Sharecropper if you're developing software using well established standard API's implemented on Windows? Is it really Sharecropping to use the standard TCP/IP stack implementation on Windows? As long as the platform which you are developing for adheres to non proprietary standards, and if you're using platform specific implementations of well established standards, you are still fine. Since you have stuck by the standards, you are screwed only if the standards change, or if the the company owning the implementation decides not to stand by the standards.
So you would be a ShareCropper if you're developing software for any proprietary standard that is owned by a company.
An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
This article has the fundamental flaw of completely ignoring the market place. While it's great that there are folks out there who can make a living creating applications for *nix platforms the bottom line is that that just isn't true for all of us. Look, for example, at the games industry: despite how much we want people to make games for, say, Linux there just isn't the market to support Linux only (or even *nix only) game development right now. If studios want to make their money back on big budget titles (which is what the consuers want to play) then they need to sell a _lot_. That's just not going to happen, as I think Loki amply demonstrated - they did a great job, but even without the costs of initial development (they only did ports) they couldn't keep it together long enough to avoid going out of business. The market just isn't there.
The article ignores this idea completely, to it's detriment.
Behold the Power of Cheese!
How many times has MS given something away????
Let's see... should we start at the beginning?
Imbedded Tiny Basic into MS DOS - removing all language competitors
Included primitive Games with windows
Included Disk Compression, virtually putting Stacker out of business.
Included Lan management software into the operating system, causing pain to 3com, Novell, and others.
Gave away the browser, causing serious financial strain to Netscape
Bought Hotmail (free email), and gave away browser-based email.
Included a bazillion features into the office suite, eliminating lots of specialized software applications.
Gave away SQL for small apps, in the form of MSDE.
Microsoft has made a practice of eliminating competition by giving away software! Where have you been?
What they can do is put out a service pack (or in the probable case of Longhorn, an entire OS release) that breaks your game. Ideally, you release a patch; the problem is the worst case, where you (the developer) have to go out and get an entire new toolchain (new copy of Visual Studio, etc). Even though update prices are usually modest, you may not want to keep lots of VMWare images on your hard drive, multiple toolchains, etc.
So far, the effect has been minimal: people knew from the start that NT4 wasn't W9x, and things acted differently. However their latest moves are much more bold - Longhorn may be radically different from what we see today.
Unix is as much a collection of behaviors as it is lines of code. Moving from a.out to ELF meant patching and recompiling, sure, but the only investment is time, and in many cases you could do it at your leisure. Commercial software can get EOL'd and you have no choice but to plan your migration (witness the many companies happy with NT4, who are now forced to migrate to W2k or XP).
ZOMG I WOULD LOVE TO KNOW ABOUT YOUR FEELINGS ON MACINTOSH VERSUS WINDOWS, VI VERSUS EMACS, AND HOW YOU'RE NOT A DORK
As much as I would enjoy not building MS-centric apps, tools, etc, it pays a lot more than building free stuff. Building only free stuff would be okay if you're independently wealthy and have no life.
Here's an analogy. Say you live on an island of vegetarians. You do happen to have your own land, and decide to raise pigs. That's fine and dandy, until you need to sell your pigs to pay the bills.
Redundant, perhaps, but hey, I get tired of this you-suck-if-you-support-MS ranting. Really, we all do what it takes to pay the bills. Maybe rather than sitting around ranting anti-MS, people could try doing something like making actually useful, easy-to-use-and-configure-for-the-bonehead-masses stuff.
Hmph.
"Would it kill you to put down the toilet seat?" -- Maya Angelou
No, but sticking to one's principles does. Imagine all the things down through history (including OSS) that would have never happened, if they had all said: "The majority is too powerful, let's give up"?
But we're essentially talking about _operating systems_, something that geeks get all hot about but no one else cares. And it isn't even all that easy to explain to someone--even a technical someone--why Linux is "superior" to Windows. Many, many intelligent programmers use Windows for software development, not because they have to, but because they prefer it. So what it all comes down to is that "principles" in this case are pretty thin, like "Which is better, Buffy or X-Files?"
Most people don't care what operating system they're using. They care that they can edit photos or play games or write books or whatever.
I'm not a software developer, but I read the article and (I think) followed the reasoning. The analogy is probably a good one, but part of what is good about it is that you can extend the analogy to explain the major weak spot in the argument. If you develop for Windows, etc., you are a sharecropper---but you get access to a huge farmer's market where only sharecroppers get to sell their produce (products) and where lots and lots of customers come to buy. If not, then you're relegated to a roadside stand on a highway that may potentially get tons of traffic, but isn't seeing that much yet.
This post is dedicated to all of those
I have been in a similar situation.
I do a lot of computer-technician stuff on the side, like fixing servers, installing software, repairing computers.
What I really like to do is work on server programming and linux system configuration, but I generally do not get too much call for that. Most of the money I make on the side is usually gained from fixing whatever crappy software incompatiblity problem introduced in the latest version of Internet Explorer or windows.
In specialized industries (read Apartment Management as one) companies tend to have VERY expensive software that only runs well on one version of windows or on one version of Internet Explorer. When the companies who wrote this software went web based they tried to use ActiveX controls to give them the exact same power over user interfaces that they had when they were developing their stuff in Visual Basic or C.
99% of the support calls I get is to go out and return IE to version 5.5 after it breaks compatibility with some overengineered web based application (that depends heavily on ActiveX for cute menus and the like).
To add insult to injury, software companies in these specialized markets tend to like to keep their customer's data close so they cant switch providers. Usually this means that the web based software is hosted on some machine far far away, that no one but them will ever have a chance at debugging.
People try to use their existing models far after they are outdated, and it only hurts the customer. Just ask anyone in the Appartment Management industry how many times they have been burned by vendors.
-Jonathan
The Ro Factor - Jeep/Linux Weblog
Try:
* Browser
* Disk Defragmenting
* Disk Diagnostics
* Media Player
* Remote Desktop Access
* TCP Stack
* Terminal Emulator
* Accessibility Extensions
* Zip file utility
* I'm sure there are more, that's just from the top of my head...
Each of these *was* a viable community of third party software. Now they are just assumed into the OS. Some still have product out there, because of entrenchment. Microsoft says this is good for the consumer, and frankly I have to agree in most cases. But don't say "how many times", because the OS encloses more space on every revision.
Sig under construction since 1998.
First... sharecropper? No. When I buy a Windows product, its mine. They can't "take it back" or "decide they have a better use for it".
The best you can get away with is there are 2 plots of land available. One is free, the other costs money. Both will become obsolete in a couple of years and you'll have to buy new land. They're both in opposite parts of the country, so if you pay for a piece of land, but want your next one to be free, it'll be expensive to carry all your equipment across the country.
However, when buying land, people don't look at just the initial cost. People want to see how much they'll get from the crops, how much it'll cost to maintain the crops, etc. Many companies, when looking at the total cost of ownership, choose Windows, because they believe it to be cheaper.
Also, working for *n*x*?* (don't worry - I added that last bit myself - I have no idea what it means) most likely means you're a slave. Working for someone else, and not getting paid (yes, there are some jobs out there for Unix-types, and maybe even some more for *n*x-types, but certainly not enough to support every employee in the industry).
I prefer sharecropping to slavery.
Ok, I don't like WebForms and I don't think .NET is upto much but come on! Web interfaces SUCK if you are wanting to create a rich environment for data input. I just spent 6 months doing a project to convert a crappy set of JSPs to Delphi because users hated the browser. GUIs offer hotkeys, popup menus, custom controls, datetime calendar controls, etc. etc. (BTW, does that make me a sharecropper? I develop free software for free platforms in my spare time, but I'm paid to write software in whatever the fuck my employer tells me to on *their* time)
Web applications generally take longer to develop as well. So what's wrong with GUIs?
Right tool for the right job.
People who include licensed software in their products (i.e. Value Added Retailers) might be sharecroppers. But when the code is open sourced and owned by the community, then the developer is at best a squatter. They are working land owned by the state.
The good folks who move from business to business, and make their living installing Linux systems could be called migrant farm workers.
Boy, this is a fun game, we can insult white collar workers by comparing them to different types of farmers.
He kind of misses the fact that there is a market out there, and that, well, growing carrots on your own farm doesn't really help if there is NO MARKET for carrots.
Saying "Do not develop for proprietary platforms" is absurd, that's where the money is, that's what everyone uses at the moment.
In a good software product, the core elements will be portable, and moving to a new platform, if need be, will not be a problem...
it's analogous to a sharecropper using his own techniques to grow food, which are only known to him, and also having his own, smaller farm on the side, as well as having a few leads on new land where people are encouraging him to come over and develop. His big sharecrop might not be great, but he has options.
Saying it is about OSS is rediculous.. if Linux for some reason ceases to be a desirable platform for people, your software business is in the same boat... your farm up and left.
There are many rasons to develop for OSS.. but this isn't one of them. Developing for Apple, or Microsoft, or anyone, yes, you have to worrk if that one vendor stops supporting development.. but to stop supporting developers on your OS is suicide.
Sorry, but the same thing happens in Linux, or BSD, or anything else.
If you want to run NT4, by all means, go ahead.. yes, it's EOL... then again, so is Linux kernel 1.0.
Okay, there might be a software availability issue.. but that was something that companies could sort out license wise long before the EOL date.
I seem to remember that Apple came out with Sherlock, then Karelia decided to do Sherlock one better (thus the name Watson -- Sherlock Holmes sidekick). Gee, guess what? Apple did the _obvious_ enhancement of Sherlock that looks a lot like Watson. Then the Karelia folks whined about Apple doing to Karelia what Karelia tried to do to Apple. Pot = Kettle = Black it seems to me.
Yeah, it isn't any fun when the big guys move into your niche, but you can survive. It does require you to be at the top of your game, however, and to meet the needs of your customers better than the big guys. That isn't easy, but it can be done. Not whining about the situation and focusing on your products would be a better idea to me.
"All the darkness in the world can not quench the light of one small candle."
In any case, what Bray is really saying is that if you develop for open source and/or the web, then no one is going to come along with a new product that mimics or competes with yours.
It is truly scary how many people can't read.
What he's really saying is that there is no vendor for the web or open source that can shift the ground out from underneath you, and either absorb your functionality or just destroy it, without you having any recourse. One of the ways a platform vendor can accomplish this is to build competition directly into the platform, but it's only one way and it's only in reference to the platform vendor, not competition in general. (You're on a level playing field with the other compeition, but you are distinctly underneath the platform vendor.)
There's not a damn thing in that piece about ensuring competition won't exist, because such a thing is neither possible nor desirable!
And as of this writing that's at +4, so at least two or three moderators thought that was right, too...
While this article does a nice job of illustrating some of the problems in today's computing environment, it does a poor job of explaining how to get us to stop being sharecroppers.
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.This is a generalization, and I'm not really sure if he's advising shareware developers, custom app/consultant developers, or everyone under the sun that working with a sharecropper's platform is bad for them. In some cases, moving to OSS makes sense and is viable. It is not, however, always good for the customer or the developer. The purpose of writing 'shareware' was always to make money, so moving to a free platform would seem to be more risky than trying to sell an app on a sharecropper's platform. How much money could Watson have made on Linux/OSS? Wouldn't an OSS alternative pop up if people liked it? Plus, people don't want to buy tons of third-party software for their apps unless they have to, and many shareware apps are cool but not necessary, so I imagine most of them do not experience massive sales and profits. The shareware market will always be a tough one, and it's not just (or even primarily) because of the 'landlord'.
As for custom app developers and end users, they just have to decide which helps them be most productive and is cost efficient. Linux/OSS is actually quite a good alternative in the enterprise, but in small business/home the do-it-yourself tech support and higher learning curve make Linux not an OS for the timid.
That's why the phrase quoted above, about flexibility and usability, is so completely 100% wrong. Browsers are more usable because they're less flexible.BZZZTTT! Wrong! (To quote the article. =) No, browsers are more usable because programmers are less able to *abuse* the interface and do *poor*, not rich, interface design. Traditional apps are not an inherently poor choice for interface design, it's just that interface design is often not given the time and resources it needs. I'm not saying browser-based doesn't/can't work under some situations (and in fact, it can be ideal in any number of situations), but let's not generalize that browser-based is clearly superior to application interfaces, as a well-designed interface can supercede browser-based in functionality and simplicity. I personally like the idea of having a web-based interface when online, and a traditional app to work with data when offline.
All computer applications fall into one of three baskets: information retrieval, database interaction, and content creation. History shows that the Web browser, or something like it, is the right way to do the first two. Which leaves content creation.More generalizations here... The web browser is *one way* to do all three, and whether or not to use it depends on what data and needs you are dealing with, not the operation (input/manipulation/output, really) you are performing. That's like saying 'history has shown that cars are the best way to get between two places'. Makes sense until you want to go from New York to London, or to your neighbor's house.
The article should really speak to a more clearly defined audience, and maybe get a little more specific about *how* to implement some of these ideas. As it stands, I don't really see much of interest in this article, except for yet another proclamation of the superiority of OSS.
My two cents is that we will see more web apps exposing APIs (ala amazon and google) and that these APIs will be used from both traditional and web apps. In other words, the border between browser-based and traditional apps will be blurred, not made more distinct! There's more than one way to skin a cat, and that's a good thing. Apps written in different languages will talk to each other, and which technology to use will become more a matter of preference than necessity.
Now musicians, on the other hand... Up until the Internet, the only way for a band to get national coverage was to buy into the RIAA's sharecropping scheme. Now you can put your band's MP3s on your web site, but chances are that (among other things) the RIAA will see that you're hosting a bunch of MP3s and have your ISP shut you down. Music is a much closer analogy to sharecropping than programming is.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
I develop software for a living. You know... so I can eat. And if someone offers me more money than I'm making now to develop something that isn't proprietary then fine. But right now I make software that makes corporate america work. When we figure out a software solution to world hunger or war... I'll sign up for that. Until then ...$$$$$$
~foooo
OK, so that was a bit of trolling, but the point is that the analogy is a very poor one indeed. The level of analysis in the article is incorrect anyway. Most OSS developers develop a specific solution to a specific problem. And if afterwards someone else could benefit from the intellectual effort already expended, then make it available (as one can witness anytime someone suggests OSS developers *should* do something like improving interfaces; the reaction on Slashdot is often rather belligerent in reply). Fine. However, this model of software production is totally unrelated to platform upon which the software runs. Even if we just consider commercial exploitation, the analogy is senseless. There are enough packages becoming standard in the OSS world (e.g., GIMP & Mozilla) that it makes it pointless to try and roll your own competitor unless you have something very special. And I don't see what stops a better project/contractor team coming down the pike and blowing your efforts out of the ground whatever model of software development you have used and whatever platform you develop for. Sure, writing software for windows my help MS sell my copies of their OS. But I fail to see how this differs from anything else we do without blinking in the real world. I post a chicken recipe on Usenet, am I sharecropper because my labour has supported a not entirely ethical poultry farmer? Where does it end this side of capitalism?
Plays violent online games as: Nerfherder76
This argument is both ignorant AND offensive.
There are market realities to deal with; for example, it's not profitable to sell games on any platform except closed consoles, and PCs running Microsoft Windows. To say, then, that writing games for Windows makes you a 'sharecropper' is just offensive.
The author is telling Software Sharecroppers that they do not deserve to be treated the way they are - they are not Microsoft's/Apple's/whoever's n-----s. And there is not a damn thing racist about it, either. Unless you agree with the idea that there are some people who just deserve second-class citizen status structly on the basis of ethnicity. Discussing the fact that people are racists is not racist.
[100% ISO 646 Compliant]
SVM, ERGO MONSTRO.
Sure they don't. There are several documented instances where they sent infringement notices to ISPs without bothering to check the material on the site. I've heard stories of them sending infrigment notices to any site hosting any .mp3 files. And the ISP will inevitably shut those sites down rather than face legal action.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
Outside of the price of the operating system, Microsoft (or Apple or any other company that develops os's) does not collect part of the revenue the product from the product. This is inherent in the definition of a sharecropper-- "A tenant farmer who gives a share of the crops raised to the landlord in lieu of rent."