March 14, 2007
Torrent, my favorite BitTorrent client, now offers a web UI. See if you can spot the differences between the Web UI and the Windows UI:
After spending about a year interacting with Torrent exclusively through Remote Desktop, I was pleasantly surprised to discover how good the web UI is. It aggressively exploits the latest Ajax techniques to replicate most of the rich GUI functionality of Torrent in a browser. But the web UI is still a pale shadow of the full-blown Windows UI. There are small but important details missing throughout, and part of the pleasure of using Torrent was luxuriating in its intense attention to detail, its wealth of well-designed data readouts. Using the web UI is like drinking watered-down beer. It doesn't satisfy.
But does it matter? Despite my nitpicking, I can do everything I need to do remotely through the web UI.
I do sometimes miss the fit and finish of the complete Windows UI. But if the only way to achieve full fidelity is to log in to the machine as a user via Remote Desktop, it's hardly worth the effort. Remote GUI technology has never caught on, either in Windows (RDP), in UNIX (X11), or even on the Mac (ARD). This approach has always felt like overkill, and it doesn't seem workable based on the historical evidence.
So the Web user interface is about 80% there, and even without new web browsers we can probably get 95% there. This is Good Enough for most people and it's certainly good enough for developers, who have voted to develop almost every significant new application as a web application.
I'm actually a little bit sad about this, myself. To me the Web is great but Web-based applications with their sucky, high-latency, inconsistent user interfaces are a huge step backwards in daily usability. I love my rich client applications and would go nuts if I had to use web versions of the applications I use daily: Visual Studio, CityDesk, Outlook, Corel PhotoPaint, QuickBooks. But that's what developers are going to give us. Nobody (by which, again, I mean "fewer than 10,000,000 people") wants to develop for the Windows API any more. Venture Capitalists won't invest in Windows applications because they're so afraid of competition from Microsoft. And most users don't seem to care about crappy Web UIs as much as I do.
None of this bodes well for Microsoft and the profits it enjoyed thanks to its API power. The new API is HTML, and the new winners in the application development marketplace will be the people who can make HTML sing.
Bruce Eckel read the same tea leaves as Joel Spolsky, and concludes that the future of rich web applications lies not in HTML, but in Flash:
- The typical user only touches a fraction of the functionality in most applications. Switching to an online spreadsheet like EditGrid or WikiCalc is hardly a catastrophic loss when you only used 1 percent of Excel's functionality to begin with.
- Online applications may be awkward, but they do one key thing that local applications can never do: embed snippets of live content in a web page. Instacalc may never be Excel, but so what? It's a completely different use case. Instacalc is ideal for embedding bite-sized, interactive nuggets of calculation next to a paragraph of text on a web page. It's the YouTube of spreadsheets.
Like Joel, I think the future of many-- but not all-- applications is in the browser. Web apps are good enough today for most tasks, and they're getting better every year. The web browser is the giant black hole of the computing universe, and like it or not, your application is caught in its immense gravitational pull along with the rest of us.
As useful and as clever as Torrent's web UI is, I'm still deeply disappointed. I'm disappointed that, with all the technology at our disposal, we can't come up with some way to deliver a full-fidelity user interface over the wire for an application as nifty as Torrent. I'll belatedly agree that web interfaces are "good enough"-- but after all these years of progress, why should we have to settle for something that's merely "good enough"? There has to be a better way out there somewhere.
Posted by Jeff Atwood
Venture capitalists won't invest in Windows applications because of fear of competition from Microsoft?
But, um, er, a "web app" running on IIS written in ASP.NET and requiring the latest Internet Explorer with all patches is actually a Windows application. (Unless somehow there actually is a lowest common denominator across many browsers and web servers - but that means that no web browser is allowed to implement anything that the others don't have.)
In the meantime, either Vista will be the biggest flop in computing history, or *something* will be running on the desktop.
On the other hand, Joel did say something else that is still true: abstractions leak. The web-app SOA abstraction does leak, and no matter how well you plug your leaks, there's always one more leak needing plugged.
Still, it's nice to see the Sun slogan "the network is the computer" ws just ahead of its time, and they wern't as mad as everyone said. ;)
As far as my near-religious opinion about remote use of torrent clients is concerned: i prefer the combination of OpenSSH, screen and rtorrent (http://libtorrent.rakshasa.no). Perfect for those running *nix boxen at home.
Why you always put the word "orange" in your Captcha Control? Is there no other word you can think of for the captcha image. I mean if there is only 1 word coming again and again then there is no use of the captcha control! It should have random words and not 1 word. 1 could easily write a program which will fill the word "orange" without even bothering to read the captcha.
You seem to have misunderstood what Bruce Eckel was getting at. With Flex 2, your rich (i.e. thick) client RUNS IN YOUR WEB BROWSER. It leverages the capabilities of the Flash plugin, which something like 97% of current internet users already have installed, in order to provide all the benefits of a true thick client combined with the ease of deployment of a web application.
The last part of your post laments the fact that "we can't come up with some way to deliver a full-fidelity user interface over the wire for an application as nifty as Torrent". Ummmm - in fact, we can. With Flex 2... which is what Bruce Eckel was talking about, and you did not seem to comprehend. You might want to look into Flex 2 sometime soon.
Do you know why Flash sucks and will suck forever?
Flash is inconsistent and unintegrable by design:
- web pages (what user gets) have open code, while flash does not
- flash plugins cannot act like other native elements in browser, e.g. images, to catch right clicks and mouse gestures - they are alien to browser
- flash cannot be disabled or saved separately with standard (default) means - such inconveniences with images killed Netscape!
- flash takes most of CPU time on huge objects
- flash is used 90% for ads
- the rest 9.9% of wholeflash sites have no integration with standard browser tools - bookmarks, navigation, copying, saving etc; users hate this
- 0.1% of flash use are separate content instances (games, etc) which can be loaded into a separate flash player as well.
That's why flash must die.
And as for web apps they suck for similar reason:
- they not always cope with standard browser tools
- in 99.99% cases you cannot save a web app in its current state
- they are inpredictable - nobody knows when they choose to update or to insert ads; as for my The Bat!, it will run and looks the same yet even in 2099, as well as i don't update it
- they are too server-dependent (not 100% reliability and privacy)
So, while there will satisfy 90% users, there will always be a niche for the rest 10% or more, who now use Linux/2003 Server as a workstation, Firefox/Opera as a browser, Greasemonkey or other user script tools, ad blockers etc. And it is a huge potential market for all kind of customizers. All browsers suck by design.
Well, did you heard about NeoSwiff ? a href="http://www.globfx.com/products/neoswiff/"http://www.globfx.com/products/neoswiff//a
Writing Flash applications in C# solves many problems in my opinion
How many of the supposed 8 per cent of users who have disabled JS have also disabled Flash?
SEO can't do much with Flash. Administrators want their websites ranking high in searches. In house Flash/Web stuff doesn't need this, but then again, "inhouse", doesn't need Flash, it can use the bigger stuff.
It is kinda nice when you just tell the user, "close your browser and then open it again", to fix most problems.
I agree that web technologies fail to provide that last 10% that we expect out of windows apps. And microsoft recognizes this and has created WPF/E, which in my observations is essentially a flash application foundation.
Something to look at.
It's the YouTube of spreadsheets.
Don't you mean YouTube is the Instacalc of video? :-)
Everybody having Vista and .NET 3.0? Not that I plan to not having the first ever, I even have no stinking .NET 1.0 at all. If you want to do browser based stuff using widgets, XUL is the way to go, not that .NET crap. For the rest, let's see where Flex will get.
Oh, and yes, Flash does suck hard on the whole "open" issue.
This is a great discussion. I wanted to point out that with the release of OpenLaszlo 4.0, there is now a 100% open-source framework that allows you to take advantage of Flash's strengths when you need it (video and audio playback for example), and have the _same_ source code compiled into a DHTML application. The DHTML kernel is quite good, with cross-browser support for things like vector graphics, mousewheels, context menus and reliable cross-browser opacity among other things. We like to say 'we work hard so you don't have to' meaning we take care of abstracting away all the browser and Flash player warts. Instead of worrying about runtime issues (or even which runtime you want to use - Flash or DHTML), you can concentrate on building great UIs.
I don't know if you can build an adequate replacement to a native desktop Bittorrent client, but it certainly won't hurt to try again! As browsers improve, I expect the line between native and web applications to disappear.
I don't think you missed Bruce's point at all - and I must say I find it somewhat amusing he cites an OpenLaszlo app as an example of why you should use Flex 2/Flash! Where are all the Flex deployments on the open web? I don't see a lot of them. Certainly, there's a ton more AJAX out there, with more showing up every day. And, there are many more OpenLaszlo apps on the open web, at places like pandora.com, walmart.com and monster.com.
The other part of the mission was to make it easy to add new runtimes. In the coming months, you can expect to see support expand beyond Flash and Ajax into places like the mobile space. In fact, if you're going to be at JavaOne, come by for a visit - I'll be co-presenting Project Orbit, Sun's new Java mobile runtime for OpenLaszlo.
What runtime would you like to see added next?
I'm glad Max came in with "take advantage of Flash's strengths when you need it (video and audio playback for example), and have the _same_ source code compiled into a DHTML application". I think Eckel's points are good, but I'm not so sure about his conclusion.
Perhaps OpenLaszlo's fate will be a strong indicator of how this is going to pan out.
i'll be thankful if u help me getting a horror interface of my forum
I sure hope those screen-shots weren't made by you or that you paid for the movies :)
I DON'T WANT my web apps to look like my desktop apps.
What few bits and pieces are you missing in the WebUI exactly? The Done % bar and the Pieces graph? I see no obvious reason why these can't be implemented using Ajax if one wanted to. The tiny icons on the 'folders' and the shaded tabs? Ditto.
It's not a question if it can be done, it's rather a question if it was worth the extra overhead in the first place. There is a reason why today's MS Office measures in gigabytes rather than floppy disks.
Average Joe just wants to write a letter and download a .torrent, like you said, via the path of least resistance.
Let's not forget the cross-platform issue as well. I just got done going 1.0 with a .NET WinForms app for a trading card game. The end user feedback has been good, but of course I get a lot of "Where's the MAC version?" for this? I initially looked into updating the code to make it Mono compatible to target the Mac/*NIX users. But when given the choice, most of them said make it a web based app.
So that's the route I'm taking. Sure this is no Visual Studio type app, and I'm sure that there will always be a group of apps that need to remain desktop based, but with the power our machines have nowadays and the minimal processing actually needed, the convenience of web based apps becomes apparent.
The better way is stop using HTTP to build applications with. HTTP was never intended as an application protocol, its a document protocol. I beleive others have pointed this out. Web *Browser*. Browse for documents, information. Browsers not applications, merely render content.
All previous and new solutions WORK AROUND this problem. ASP, AJAX, Javascipt, etc. are bandaids to this issue.
Now its a big pile of dodo rolling down a hill. Can't stop it, just jump in and go with the flow and do your best.
I agree with Jon Raynor. Why is there a push to build desktop apps in a web browser? If you want a fat app, build a fat app. Too much web "functionality" relies on hacks, workarounds, and flat out sloppy software design in order to emulate a desktop environment.
Disagree that X11 remoting has never really caught on... in environments where Linux/Unix workstations are widely used, it's an invaluable feature. I frequently use it to access applications on my personal desktop machine from whatever computer happens to be handy...
What sad is that Rich internet application slowly start to solve problems we already soved for desktop systems and on the other side of the equation we managed to solve the deployment problem of desktop applications which is probably the main motivation for web-based ones anyway
I blogged about it on my Dr. Dobb's blog: