You think I am speaking old news here? After all, everybody and his sister have been screaming on the street lately about the death of desktop programming.
The majority, if not all, of those screamers have always been "web app" developers. Who listens to those? They aren't even real developers, right? They don't know any better. They don't even know how to use malloc() and free() properly! Poor souls... writing foreach loops in their toy languages, acting like little girls trying mom's makeup while she's at work. Surely they have been naturally pissed at us, real engineers, creating real applications, allocating and releasing our own memory, passing pointer-to-pointer parameters.
Sure we've been looking down at web-app "developers", rumor has it that some of them are known to be ex-taxi drivers. Do you trust those folks proclaiming that the desktop was dead? Besides, tell me this, what has been MORE glamorous in IT, more than web apps, since the rise of Yahoo? However, get this: the desktop is dead.
Who is Ev?
You are hearing this from a seasoned desktop developer. Yes, from one of those cynical dudes who always puts "online applications" in quotes, because, you know, they are not "real" apps. Oh! Another classic: I am someone who never considered JavaScript to be a "real language". How about that?
Even more! I've been in love with Microsoft as long as I care to remember! (still reading?) I used to jump on every new technology coming out of Redmond. Heck, I even seriously believed that every programmer should have a good understanding of his hardware and have some assembly language credentials. Moreover, I believed that C++ was a godfather of all programming languages and Java was just a simplistic subset of it, meant to be used by the average Joe with an average degree in something remotely technical, a language created by a corporation for other corporations to have their pathetic RDBMS-wrapping software development done cheaply by armies of disposable chimps. Well, while the former still holds true, the desktop is dead anyway.
Who Killed the Desktop?
Do you know who killed it? Microsoft did. Yes, I am pointing my finger at Redmond, and I am neglecting the advances in HTTP-based approaches to problem solving. The desktop is dead not because the Web is great. Nope. The Web still sucks. After all, the majority of it was created by non-real developers, remember?
The desktop used to be very much alive, but it has been getting worse and worse. It took a long time, but finally the desktop has gotten so bad, that *even Web-based* UI now looks decent and usable!
Forget for a second about collaboration, information sharing and all those other goodies that the Web gives you. They are not important in this context. I am talking about overall user experience; User Interface, primarily. Besides, you can collaborate, share and do whatever you please by using your favorite desktop application - there isn't a technical obstacle in doing that. Take any 1st person shooter and its multiplayer capabilities, people have been killing each other online for years. Need another example? One word: iTunes.
Standard Runtime Support.
Why has the desktop gotten so much worse? What's broken? Well, try installing something on it. Actually, you should dig a bit deeper: try to develop something for it and then have people to download, install and use it. Do you know what kind of runtime support you get *standard*? Old school circa 1991! Yep, that is what you get. Do not point your finger at .NET, it is still a subset of Win32. It is built mostly on top of Win32, and it is still not available for us to use! Yes, .NET runtime is not part of the most popular Desktop out there - Windows XP.
Microsoft made a strategic mistake by NOT bundling .NET 1.0 into the initial XP release. Moreover, even jumbo-sized Service Pack 2 did not include the newest .NET.
Here we go folks: The only standard runtime available to a desktop application is still old and rusty Win32 API. Otherwise...
Otherwise your poor users, those who still prefer desktop apps, they will have to download and install that fat .NET runtime just to try out your little piece of software. Easy to do, you say? We'll get to downloading and installing in a second.
Downloading Software
The downloading! My favorite area where Desktops suck. Have you noticed how scary the downloading process got lately? In some cases your users will face 3 (three!) scary dialog boxes, warning them that they are about to (potentially) screw themselves in the butt by installing your "potentially dangerous" software. Well... let's hope our users are brave and they will make their way through.
Let them run the installer. But where is it? I mean, where did it go?
- "I just downloaded it and it went somewhere. Where?".
Sounds familiar? No? If not, you just haven't developed any desktop software yet. A lot, and I mean it, tons of users are not capable of figuring out where your little precious installer goes. This is why big desktop software companies have step-by-step instructions up on their sites, on how to well... check this out, on how to download an installer and find out where it goes.
Desktop Security.
If Microsoft really wanted us all to develop more desktop applications for Windows, why wouldn't Internet Explorer let you drag&drop our awesome desktop applications from a page to... well... to the desktop? After all, people have managed to learn how not to put everything they see in their mouth, learned how to stop on red and go on green, how to find a restroom in an unknown restaraunt and wipe off their little popas when they're done. They'll learn not to drop viruses on their desktops.
Ok, a user finds your installer, clicks or double clicks... Waits...
-"Did you download this binary off the Internet?! Are you crazy!? It's me, Vista, talking to you, stupid person! Do you trust this software you just downloaded? How about I make your screen go dark and you type your administrative password? I would also like to play a gunshot in your speakers at maximum volume, but some people here in Redmond figured it was a bit too much."
Buying desktop software versus using online apps these days looks like if you were going to a supermarket to buy "Exedrin" (desktop) and to accept the trouble of staying in line to a register, only to have a cashier bitch-slap you, hysterically screaming in your face:
- "Are you sure you want these pills!?!? Are you sure?! What if they cause testicular cancer?!"
... Meanwhile, less effective "Advil" (online apps) is free and you don't need to go anywhere... Do you want to be in business making Exedrin? Me - not anymore. Exedrin is dead.
- User: "Here! Here! Shut up, you crazy OS that came preloaded on my laptop! Take my password! I still want to install that scary desktop app!"
- Vista: "The password is correct, so if you insist... Oh, in order to protect you better, may I ask you to wear a condom, while using that desktop app? It came from the Internet, by the way..."
Windows Installer and New Computers in US
Pretty easy, huh? Well... easy that is, assuming your user does not happen to be one of those victimized PC owners, who purchased their PCs somewhere on US soil, where most computers come pre-damaged with sacks of crapware, such as 3rd party software firewalls, "internet security" suites, anti-spyware and adware programs and other internet-disabling, I/O consuming, eating-your-dual-Gz-for-lunch junk. Those programs intercept and twist the calls of your application into the same old and rusty Win32 API, throwing more and more scary and confusing dialog boxes at your user.
And the poor bastard (assuming you still haven't lost the sucker at this point) has to deal and calm down this zoo of monsters that infected his PC to look after the "safety" of his Desktop.
Do you still want to be on the market to make Exedrin? Seriously. Would you? In case you still not convinced, let me remind you what's ahead.
For starters, you'll hear about some strange application, called "Windows Installer" (MSI), that mysteriously would try to pop up and "repair" your application later on for no apparent reason? That, perhaps, is a side effect of your poor user trying to install more than one (!) application on his desktop, causing MSI to keep things running properly. Secondly, the state of most Windows machines, especially those that have been running for a while, say 2 years, without professional "assistance" is absurdly bad: registry is a mess, reboot times are ridiculously long and (real life example) Windows Installer tries to repair Microsoft Office every time a user touches your application.
And you know what? A User is getting tired of this crap. He finds that clunky and slow Ajax-spiced UI of most web sites is by leaps and bounds far less annoying. He likes to maximize the browser window and never having to face all this ugly and slow shit that Microsoft, Dell and friends have put for him in there. My point is that Windows is a very fragile platform that people are learning to avoid messing with. Windows makes it hard for users to explore various software options. Can you honestly say that you would be comfortable installing and uninstalling 50 random desktop apps in one day? Personally I use VMWare for that.
The Finale
Stupid user... Using those inferior clunky web apps... Ignoring the superior "user experience" provided by "rich" desktop applications.
And you know what, I can't blame him. Although I could not resist the urge to use desktop-based notepad.exe to rant about this crappy deal. Blogstop's HTML "editor" (yet more quotes) is kind of... not quite ready to have a text typed in.
Wednesday, August 1, 2007
Subscribe to:
Post Comments (Atom)
15 comments:
I made this claim a while back. I had no good reason for it though, more of a feeling. So, thanks for providing me with some ammunition. Well said.
You wrote like a sentence, this guy made a well-written supported argument. He's not just providing you munitions, he's providing you content.
This is pretty funny, but not universal. On the Mac, you usually download app bundles which need no installation, the OS doesn't bother you about running them, and by default everything not only downloads to the desktop, but automatically gets opened after it's downloaded, so things are easy to find. I think it's more fair to say that "Vista desktop apps are dead" than "desktop apps are dead".
It would be nice to have a way to easily install apps we know are not spyware/viruses. Sort of exactly like how Linux-based distros already work (Debian, Ubuntu with apt-get and the synaptic package manager front-end).
That would never work in Windows, because is Microsoft going to test every app out there? They would want developers to pay them for the Microsoft seal of approval, and of course the spyware authors would happily oblige.
Someone did make a win-get (like apt-get) for Windows, but it doesn't even support for example Active Virus Shield (the best free antivirus software for Windows, based on Kaspersky), because Active Virus Shield requires an activation code before installing.
Anyway though, a hybrid web-desktop environment is emerging, with Adobe Flex/Flash, and Java, and now Microsoft Silverlight. That means C/C++ is less relevant than it used to be.
I have disagree with Ross. Despite my years of experience with Unix and Windows, and my computer science degree, I found the application installation process on the Mac as bad or worse than on Windows at first.
Some apps are DMGs. Others are in one of several different compressed formats. The various compressed formats may map to different apps. A few utilities are supposed to be installed through Fink or DarwinPorts (whats' the difference). Some apps you drag to your Application folder. Others give you a link to your application folder and say: "drag me there". Some have an actual installer. In almost every case I have a few cleanup actions after: e.g. ejecting the DMG and deleting the downloaded file, or finding the unarchived directory and deleting it.
You're ridiculous. I ship a desktop app built on .Net. The users don't care that they download the .Net framework along with the app. Hasn't made a lick of difference in adoption. How about nonlinear editing systems? Want to try that online? How about photoshop? Want to store your whole music collection online? The balance of the UI experience has been going back and forth between client and server since the days of mainframes. Get some perspective and take a walk on the beach.
- Ex microsoft dev (now at a startup in video.. we ship both web & desktop apps)..
LOL, the end of desktop applications. Every year someone claims this and every year it gets more amusing :D
The same exact issues apply to the web also. Some 3rd party apps will probably come along in some form, maybe Python plugins/scripts but hopefully ones that have to be manually turned on and added. The downloading problem is just what happens when you don't design a program for complete beginners.
I don't see web apps becoming better until IE6 finally dies and maybe then all that effort can go into improving webapps for just IE7/Firefox (or whatever is popular at that time).
It seems to me that maybe web apps require a whole new platform. I really don't think the web brower will do to ever host web apps since the problem IS the web browser.
You have a point there. The only thing that's even worse than the Windows situation is downloading and installing software on a Mac.
That dmg stuff is simply insane. Users don't know what to do with it and if it opens on its own (which doesn't always happen) that's even worse, because they start the app thinking they're alright, but the app isn't actually installed, and the next time they look for it, it's gone.
But the Mac does more. It makes sure you cannot easily use web apps either. Every time my girlfriend opens a pdf in the browser, it's stored on her Mac desktop. She has hundereds of PDFs cluttering her desktop. And you cannot maximise the browser window either because Steve Jobs knows better than you how large a browser window should be.
How about programs that run on platforms all the way from DOS, to Win 3.1, to Win9X, Win2000, XP and Vista?
The answer: QuickBasic 4. We still develop apps and they run on all Microsoft platforms from the lowliest to the newest.
Eat your heart out!-))
Hi Eugueny,
I replied to this post with a long article on the future of desktop applications and the ISV market.
Hi,I wrote some comments about your article and the Antonio's reply in his blog. It's a great discussion.I would like to known your oppinion. Thanks.
Hi,
I was so impressed by your post that I went straight to translate it into Japanese, my native language, without your permission to enable the people read it easily.
Well, actually, I'll be really glad if you would permit me for keeping the translation up on my space. After all, many of them also seemed to get interested in your thoughts.
Kentaro, I am flattered. :) Do whatever you like.
don't be silly...desktop apps are more alive than ever.
It's just that right now the most popular desktop application happens to be the Web Browser.
Desktop apps will die only when they bring back the VT-100.
Post a Comment