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"."
I support open source 100% but the analysis in the article is very flawed.
If I have an application for any os, I have the same set of worries no matter what. If its windows yes I do have to worry about microsoft developing their own and giving it away. However how many times has microsoft decided to give away stuff ? If its linux I have to worry about someone reverse engineering my product and making an open source knockoff. In the linux case if their is damage to my IP rights, who am I going to sue college kids with no money ?
His scenario is further destroyed by the fact that almost no one is upgrading with every release anymore. Theres alot of people that run win95 still even more that run win98 and a heck of alot running win2k. So if microsoft decides to include your product as a giveaway it could be a very long time before it harms your sales.
The only thing that comes close to sharecropping in the software industry is working for large software companies where you don't have a stake or a say in the management. In that case the platform doesn't matter, youre still screwed.
At work, you are pretty much a sharecropper anyway. Often they provide the operating environment, hardware, software, and everything else while you just do the work. Should they decide to reorganize or just make bad decisions they can terminate you at will. Even worse, often many here at their jobs are Sharecropper^2.
.NET, etc.), Oracle, SAP, etc. mostly out of convenience so they are also a sharecropepr as per the article.
:)
1. They are sharecroppers at their job as said (sharecropper) 2. Their place of employment has chosen Microsoft(SQL Server 2000,
So many of us have no choice but to be sharecropper^2 to feed our families and to survive. The system is flawed!
Even in the Database world: SQL Server 2000, SAP, Sybase, and Oracle are the leaders and the "expert" level database techs are sharecroppers. MySQL or Postgres is laughed at by many employers, I remember one interview "but do you know any real database packages".
So I ask you, are you a Sharecropper^2? But then when you think about it we are like Sharecroppers on the planet earth making some of us Sharecropper^3 even. I wonder who can come up with the highest power of sharecropping?
If you're doing something I don't approve off (ie; developing software for a closed system) you're dumb and I'll use a whole page on this here interweb to tell everyone.
Okay. so he has one or two points, the first is that the corp that owns the OS can develop their own software and give it away to push you out of business. Funny, I can't say I see that MS Paint or even Adobe PhotoShop (btw, by his logic, Adobe are sharecroppers) have prevented PaintShopPro from becoming successfull... I don't see how the inclussion of CD-burner functionality in the latest OS from the softwaregiant we love to hate has slowed down the sale of for instance Nero... and despite the fact that a certain company bundles a browser with their OS, Opera and other alternative browsers seems to be gathering followers by the minute.
His second point is more strained; that the one controlling the OS is the one in controll of all sotware that runs on it. This is, as even I can see, stupid at best and FUD at worst. If this held even remoptly true, each and every firm that makes any sort of software, be it wordprossessors, MP3-rippers or graphicsmanipulators, would provide their own underlying OS to stop others from using it to something else... No one can controll what people run on their computers, no matter what OS.
There will always be a marked for second- and thirdparty developers on all operatingsystems, both closed and open source. The difference is, if you develop for closed source, it's more accepted to actually ask for some money to compensate for the time you too to write the code.
So in the end, I'll say he is plain wrong. There are a number of good reasons to develop for OSS, but this is not one of them.
Everything in the world is controlled by a small, evil group to which, unfortunately, no one you know belongs.
I think this addition to the definition of terms just reinforces Bray's thesis. Using the "detested" Microsoft as the "farmer," we find that the free tools & stuff usually come with high-priced training attached. None of the Microsoft "standards" remain unmolested very long. Of course, the next version of the tools (which can handle the ever-evolving "standards") is often not free. And oh yeah, forget backwards compatibility -- just go look at the history of WinCE, PPC, whatever-they-call-the-Microsoft-handheld-OS-du-jo ur...
In the final analysis, I agree with Bray about the web platform ... to an extent. But go out & view source on websites & you're going to find that a distressing number are written with proprietary tags for MSIE. Those of us who care about web "standards" should be evangelizing for Mozilla or just for "validatable code" in general instead of spending so many hours b*tching about it on /.
As far as *nix or OSS, I'll have to defer to those more experienced with those thank I. My employer chose many moons ago to become a Microsoft shop, because the IT director loves getting paid in proprietary paper :-(
"Obviously, I'm not an IBM computer any more than I'm an ashtray" (Bob Dylan)
I just had a conversation about this topic with one of my co-workers: Seems Microsoft just lets new software markets run until a clear victor is decided by the end users, then they completely redo it and destroy the competition taking the valuable ideas from the previous victor.
One way to go is to cross-platform develop. Most of the development I do is for games and as such I use allegro:
http://www.allegro.cc/
If you go to the site you'll see plenty of mediocre games, but once you realize the power and dev-friendliness behind the allegro library you'll be hooked.
One could create an OpenGL accelerated game (using AllegGL) without changing a line of code! Realistically, you would want to change some code anyway, but everyone interested in game development should check it out.
The only thing it's missing is a bonified network library. It has some out there, just none that I would consider complete or complete & useful.
Can't wait to finish the game and then release it for DOS, Windows 98, ME, 2K, XP, Linux -- possibly Mac and even BeOS! (stability issues with the last two, I believe.)
This analogy is also lost in inhouse development. In this case, no matter what OS platform you develop on, you're still a sharecropper and can't do ANYTHING about it.
You must write for your company's environment. You must follow company specifications. You must use certain driver versions, DLL's, etc. You must use company network drives and directories (that can change on a whim).
Unless you're a solo developer, you're gonna be a sharecropper; you have to do whatever your company tells you to and use their foundation.
I my case, it's "all about the Benjamins." I love coding, don't get me wrong. I started doing it years ago (since middle school) and have continnued doing it only because I love writing code. But I need to get paid, and if it means being a sharecropper, so be it. If it means writing for windows, so be it. If it means writing for *nix, so be it. So long as I get to code in a language I enjoy and do meaningful work, I'm up for anything.
And Microsoft has recently acquired an anti-virus company, so I'm guessing they're going to try to put Norton and McAfee (or whoever owns them now) out of business.
Disclaimer: The opinions expressed are not necessarily my own, as I've not yet had my medication today.
Bray jumps from the Watson/Sherlock experience to branding everyone who uses proprietary tools as a sharecropper. His argument would be more convincing if he cited more than this single case of a big company pulling the rug out from a little company. (Yes, they exist, but they are few compared with the number of working developers.)
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.
Of course, that's wrong. Competition exists. In fact, a case could be made that opportunities for competition in the open source arena is greater than in the proprietary arena because the cost of entry, development and distribution are much lower. (E.g., see Gnome vs KDE)
-- Slashdot: When Public Access TV Says "No"
They can make a press release like this: Windows Version 1000000 will no longer support DirectX in favor of something better, our new super gamer's library. Directx will no longer install on the windows platform. Then...You have to rewrite the game if it is made for their DirectX library (I only use it as an example because many write games in Directx).
But what's that you say, you wrote it for SDL? Microsoft in a daring move announced a brand new hardware interface to the graphic card totally invalidating all the traditional methods of graphics programming. However you are in much better shape because you can take your game to another platform easily.
But you wrote the game in Java you say?
In the most daring move ever Microsoft has totally rewritten the Windows APIs and refused to release the documentation leaving sun unable to write a JVM for Windows XP 6 Alpha (MS's release quality is Alpha software).
The point is if you write your game only for windows, you depend on Microsoft's platform. Since it is their platform they can do what they want. They can change whatever they want. They could render whatever libraries you used inoperable. They are like the game wizards for Windows.
If you're developing software for the Windows platform, then you might be a sharecropper.
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, then you might be a sharecropper.
No body cares, but I feel it is my job to enlighten them and make them care.
I am what you would call Microsoft worst nightmare simply because I show people the alternative which often impresses them.
Just the other day I bought my aunt a PC prepackaged with Lindows and she was pretty excited about it. Showed here the basics and she was off and running.
The world doesn't change overnight...it changes once person at a time.
-----
One is born into aristocracy, but mediocrity can only be achieved through hard work.
Many of his arguments apply to open source OSs also. You're still writing software that supports the "land" owned by someone else (since open source is still owned, unless we're talking public domain operating systems). Open source OSs are often distributed by companies who have a lot of influence - so you're still helping those companies make money, and if those companies choose to supply an alternative program as standard with the distribution which does what yours does, then you're in the same situation as the Watson author. APIs can be broken too.
If you're building for the "Web platform", then you're in trouble if something isn't supported properly by the browser that's used by the vast majority of people; certain companies still unfortunately wield power over web development.
There are some valid points in there (eg, secret APIs), but imo the "sharecropper" analogy applies to everyone except those who wrote the OS they develop for themselves.
However, my Java code is portable. Same goes for LispWorks Common LISP: build once and deploy on all of the OS platforms that I am interested in. Python code is portable.
So, Bray's argument should be don't use proprietary APIs.
I do agree that writing web services avoids lockin problems. I hardly ever write standalone GUI apps anymore - everything is either a web service (SOAP, XML-RPC, or XML over HTTP) or has a web based front end.
-Mark
If Sherlock was someones open source/free software, then it would not be distributed and "integrated" into the OS. Thus both apps would have to compete on fair grounds. On OS should be a totaly open and application agnostic foundations. An OS needs to have all of its internals available for anyone to build upon and not as a means for a monopoly to take over another part of the playing field. Look at how much MS is controlling and how much more they are taking. They "integrated" a browser to suck up that market and broke away from being standards compliant to lock 90% of the desktop market into using thier browser. They are now "integrating" media player to steal the market way from WinAmp and RealPlayer. They have now purchased an anti-virus app to "integrate" into the os to kill off McAfee and Norton. The sad thing is that Norton and McAfee have put all thier eggs into the MS platform and then MS does a move like this and will render Norton's and McAfee's offerings almost worthless. This is the major problem with a monopoly and this is why I don not support them. I am amazed at how many people continue to be blind to this fact. If people started moving to an OS that was open and agnostic to what applications a user wants to run, then the hardware and software vendors would follow and have thier products on those platforms in no time. They will go where the demand is. For the most part they have stayed with the MS platform because of the monopoly. Every new consumer PC that has been sold for years has only been allowed to have an MS OS on it. MS will not stop until they own every major IT market or we stop them. The government will not stop them because all MS has to do us up thier bribes like they did during thier anti-trust case and they will be fine. Start to learn Linux and/or *BSD now. Get your friends and family members to do the same. Email hardware and software makers demanding support for Linux/*BSD. This is the only way to bring choice back.
If Tyranny and Oppression come to this land,
it will be in the guise of fighting a foreign enemy. -James Madison
I believe you are wrong, there is new land to sow (read: open market for software applications) in the form of the web and a new software foundation with a better licensing scheme (read: OSS, GPL, BSD, etc.).
If your objective is to build a plantation (read: monopoly) then yes you are doomed to failure. You will not be allowed to own the land (read: internet, software applications) upon which all other farmers (read: developers) are also working.
The metaphor fits perfectly, its just that you are stuck in the old ideology and its barren and infertile soil (read: the MS monopoly upon which many devlopers are dependant and susceptible to the whim of their master).
Just my opinion
burnin
Browsers are good because they provide a reasonably useful least common denominator.
Browsers are bad for the same reason.
Most web based apps are about as user friendly as an IBM 3270 block mode terminal of the 1970s.
We should be doing better. We have the tools and can always rely on Microsoft to show us the route to avoid.
Hate to say this, but this is exactly I like the Windows OS. While I'm completely familiar and happy with command-line work, I dislike *nix simply because to get a desktop system running to my standards of happiness, I have to look all around the web to find the right apps to install. And not just applications like media players or graphics software, but even (what I consider) low-level stuff like the windowing system, the fonts (for crissake!), the pre-emptive kernel patch so it doesn't lock important operations, the right drivers for all the hardware, etc. ad. infinitem.
It's like DOS all over again. Gotta install the right drivers for the hardware, then manually configure it, then install my Windows system, then install Adobe Font Manager, etc., etc. This is a big reason Windows 95 was so popular -- it finally offered a cohesive system that did all this stuff for you. Admittedly, it took them a few iterations to get it right, but at least they were striving for it. I know KDE and Gnome are doing their part, but until a lot of this stuff becomes a kernel priority, it will lead to different standards and more confusion among end-users.
I'm not saying you don't have to compete. However, in the MS word, you have to complete against an entity that "holds the keys to the kingdom". Surely in a "fair market" of competition, your host should not be able to simultaniously release a competitive product, either integrated or not, while having the ability to break your software. And yet that is what happens with utility software nearly every upgrade cycle... you don't have the information to change your software until *after* you gain a tarnish on your reputation for failure. "But wait, why use this broken piece of software when the feature is integrated!"
Reference the disk compression lawsuit during the DOS era, memory management bruhaha in the same, the DR DOS detection code in 16 bit windows, Symantec's lawsuit in the early 32 bit era and the AOL dialer (vs MS dialer) in early 32 bit. How does it being a corporation who steals code or breaks it deliberately better than a bunch of students who write from scratch?
But it isn't just the utility market that suffers: most companies didn't survive the transition from DOS to 16 bit windows very well because the APIs were not well documented to competitors. The recent suit in fact focused on APIs because of the long history of hiding them or breaking them. If the Office team needs a feature, its easy to get them in "early" (note many of the UI improvements to windows that somehow were "previewed" in office).
So how do you compete when your marketplace is simultaniously being absorbed and your target marketplace is shifting deliberately to prevent your existance. Sure, there are still markets for the utility space, but mostly because of inertia. Have you actually purchased a third party TCP/IP stack, defragmenter or scan utility? The only reason you *might* on the defragmenter is MS licensed a crippled version of diskkeeper. But even there when I upgraded Windows 2000 boxes to SP, the built in disk defrag kept working, but the *purchased extra* one broke. So why would I spend money to buy something that's going to break? I'm not.
Not a single one of your example utilities has been purchased by me for any of my clients or myself in the last 4 years. Nor have I purchased a non MS office suite, database or programming environment. I'm sure a vestigal market will remain... people still have Windows 95 of PC's, and there is always a tiny number of nonconformist OS users. But it won't be a healthy one. I'm just glad that I'm building web based solutions, not desktop ones, because I can fix my code once, in one place, when a new version of the browser (mozilla or IE based)/OS (MS, Apple or *nix like)/utility suite comes out, and look professional. I don't have that luxury when a service pack blindsides my desktop solution and turns it into a GP fault. I guess you could *beg* my clients to upgrade.
Sig under construction since 1998.
Shifts in the IT industry don't happen overnight. Even "the Internet" took years to become widely adopted. That is, years after it managed to hit the mainstream. And this is a sector of technology whose association with radical and fast adoption coined its own "Internet time" phrase. Open Source, and its poster child Linux, are very similar.
This sort of article isn't a call to arms and demand for radical change. It doesn't expect you to mass in to your work's datacenter and reformat everything to *BSD, Linux, or whatever is your favorite OS platform. It doesn't expect you to stomp in to your boss' office and demand "give me OS projects, or give me a pink slip."
But it is a call for change.
If you code on your own, look at OS alternatives. If you have any chance to comment on choices of technology or new trends, mention OS alternatives. If a new project comes up and you have a chance to work with OS technology, jump at the chance.
The environment I'm working now used to be a very conservative Windows shop. Sure there was Unix and Open Source architecture hiding out in the wings. But whenever management's gaze hit on some aspect of the IT infrastructure, it was inevitable that a Windows solution was to follow. Not anymore.
We are currently replacing key pieces of architecture with a mix of OS infrastructure and proprietary applications that run on that infrastructure. We are critical of solutions that are based on Windows. And even in situations where Windows is the safer bet, we are also deploying Linux systems to compare and provide perspective.
Our infrastructure is still involves a lot of Windows. It probably will for years. And there are still a good number of Windows bigots and zealots around pushing for that status quo. But over the years, our environment has changed. Management's outlook has changed. And the scope of available projects have changed.
But it took years to happen.
Hey, I cashed in on it. Open Text got to be a successful vendor of content management software largely because we were the first to do it all through the browser, with no client software. Our stuff didn't do all that much more, but given a choice between client and browser, the people wanted the browser.
People want the browser not for the fact it makes for a simpler application in a GUI sense but for the fact you do not have to install and run it from a desktop. We do nothing but web apps in my company now and the reason is we have 18 different branches and no one wants to push an application out to that many individuals each time there is a fix. A thriving industry has been created by the need to install applications locally on desktops and insure the correct licensing of that software. As a consumer of software, I don't want to pay for those things. In addition, users don't want to have install an application on their desktop when they can go to a website and do the same thing.
The reason this trade-off between functionality and universal access has occurred is that people find more value in server-centric management and universal access today for those simple applications where I am entering some information or retrieving it. I think we will see the rise of "richer" web applications over the next few years because there is a need for better controls if for no other reason then productivity and efficiency gains. Working with large blocks of information on a web page can be very cumbersome to the user. Client-Server computing (VB, Delphi, insert your favorite GUI-centric language here), GUIs became much more functional in what they could do over time, the browser-based application will follow the same path, but now with the added convenience of server-based management and fixes, and universal access for all users. The user, the administrator, and the developer all get what they want. Of course as the author has pointed out we may start seeing web-based GUIs become more unusuable, but that is a design flaw of the developer and can occur on any platform.
What a thinly veiled attempt at a troll.
The RIAA isn't going to shut your own band's site down because you're hosting your own MP3s of original songs. Get real, buddy.
They're in the business of protecting their members, not offensively eliminating non-members. Their tactics are questionable.
Although the RIAA:mafia analogy extends to a certain threshold, the RIAA isn't *actually* the mafia.
The dangers of knowledge trigger emotional distress in human beings.
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.
I invoke Colonel Sanders' Corollary to Godwin's Law!
You must now eat fried chicken 'till doomsday.