Are Web Interfaces "Good Enough"?

BB if you think “web designers do a better job than Sun engineers at making a polished interface” I suggest you look again. Especially at Java 6 7 and SwingLabs(ie Painters) and java.net(ie Timing Framework) and … .

But the great thing about Java - we don’t have to wait for Sun. (Is there still a lot of work? Sure.)

Who says the screenshots are from his machine? Could be grabbed off the web and … hey, that’s a copyright violation, too! Someone call the police!!! :wink:

MaxL - I think you are assuming too much about the model which web applications will work.

For instance, I think it is wrong to assume that web apps will be all served globally/externally to your organization. I would even go as far as saying its wrong to assume all web apps will be served externally from your computer. Offline web apps are here today, some don’t even require web servers to run and offer amazing functionality without the need to be connected to the Internet or even other computers.

There is really no reason that I couldn’t run Google Docs from within a corporate network. Heck, that would be a 5hit load easier than buying hundreds of copies of Office and running the gauntlet of updating upon yet another software release… (or should that be a visit from the M$ tax man?) I guess if Google released the code for their apps, that would an option for people. If they don’t, theres no reason why someone else won’t venture down that path eventually - maybe thats what Microsoft might do with their productivity suite… Hope not! :slight_smile:

The thing about AJAX development is that it is rapidly becoming a lot easier. Morfik, for instance is about to go 1.0, which means that all those v.net and Delphi folks are going to have a way to build AJAX apps without having to learn all the crap that you have to know now. I can’t freaking wait.

As I look at the two example screenshots of torrent, I wonder what would be so hard about adding a few of the missing nuggets to the web interface? I may be ignorant here since I don’t really use torrent that much, but it seems like the web app took a few short cuts. With a little work, it could be close to 95% there. What’s missing? The main things that jump out are a few tiny icons on the left next and some ajax functionality to display the percent downloaded. Granted we can’t see everything from the screen shot since some of the interface is missing and I do see some of the icons are missing at the top. I think a major part of the issue is the web apps are not polished since they are so easy to code.

I just wanted to echo the comments of the poster who points out that selling your soul to Adobe is no better than selling your soul to Microsoft. AJAX may be a hack (and maybe not), but is LAMP any better? Isn’t the core concept behind Linux/Unix/Pic-a-nix (sorry) that small modular tools be combined to produce larger tools, often in an adhoc manner? AJAX is a very good example of the MVC pattern of application design, and Flash somewhat less slow (in addition to being an egregious CPU hog).

Meanwhile, Bruce Eckel can kiss my pale white behind.

“The second problem is that you are relying on Ajax libraries to handle cross-browser issues. If you want to write your own code, you must become an expert on those issues, and at that point much of the leverage of Ajax goes away.”

That’s as idiotic a statement as ever I’ve seen (lately), because it’s not really that hard. If you think it is, you’re, well, slow. The libraries keep you from having to write it yourself, true enough, but there’s nothing wrong with that. Isn’t that what the STL does for C++? Doesn’t Java supply 42,398 mostly-unneeded classes to keep you from “writing your own code?”

On the other hand, what’s wrong about becoming an expert on something? What’s wrong with continuing to learn, so that newly-acquired skills can be applied to current issues in other areas?

Ack. That’s “…and Flash somewhat less SO…”

I shouldn’t try to write so much pre-caffeine.

Of course, Flash CAN be slow. Maybe my fingers are smarter than my head right now.

“I suspect we’ve already seen most of the tricks that Ajax is going to offer.”

That quote from the article reminds me of another quote:

"Everything that can be invented has been invented."
Charles H. Duell, Commissioner, U.S. patent office, 1899

Let’s face it the future is…

OK, we don’t really know what the future is. As somebody wrote previously, the future has been a lot of things when it comes to “multi-platform, easy to write and maintain, highly performant and responsive, simple to deploy UI layers”. Flash? Maybe. AJAX (in all it’s variety)…the current leader in club house. XUL/XAML/XSWT/Xwhatever…perhaps. Flex…it goes on and on.

The point that you made Jeff was dead on: the path of least resistance is usually the one that wins. Today, that’s IE based web applications. Sure people don’t like evil old Microsoft. But most corporations are predominantly MS based in the workstation environment. And there is still a ton, ton, ton of Windows out in the wild last I checked. Sure, alot of people have switched to Firefox in the wild. And that’s why AJAXish (I prefer the term “chubby clients”) are succeeding. They are easy to deploy, typically pretty performant and responsive, multiplatform and with some of the new libraries, they are getting easier to develop. And they are about 85% as good as their equivalent heavy client twins.

And to a lot of people, that is good enough. To us nerdy types, we marvel in our ingenuity in how we created a chubby client out of HTML, CSS and some Javascript…aren’t we awesome? To most users, they are not really impressed, but rather they’re just glad they can get their job done. But to some people, more than we’d care to admit exist, they focus on the 15% that we didn’t get right. We constantly hear “How come the menus aren’t quite like Excel’s?” or “in Application XYZ we did it this way…”. And where I’m coming from is some of the most sophisticated and hard core (IMHO) DHTML clients ever produced.

Traditional wisdom has been that writing true heavy clients is hard. MFC is tough. .Net Winforms etc… is easier but it’s Microsoft. Cocoa is Mac only. Swing is lame, SWT is hard… But if you are truly interested in the absolute best experience for your user, this is the only way to go. You want to get nearly as good? Chubby clients will get you there, but somewhere you’ll make a concession. It’s inevitable and that might not be bad, because perhaps 85% is truly good enough (and you don’t possess the skills or desire to create something in another technology)

What is the future? I predict in 2 years we’ll be having this same debate. In 5 years, it will be the same, but some of the acronyms will be different. And so on. We’ll never escape it, because what solves the problem today is always less cool than some up and coming technology…and rare is the company or the individual that says “let’s wait a while to address that market need, so we can use that really cool new technology”…

Hmmm. Well, while I can appreciate why it seems like native Win32 apps are dead, they’re simply not, and the death of the desktop-hosted binary exe isn’t going to happen anytime soon either. While us developers are mostly using always-on broadband, each with our own super-fast machine and large clear display, that’s not true of the rest of the world by a long shot. I’m not just talking about the difference between US/Europe and some of the developing countries - I’m talking about it not being true even here in the UK.

Many of my own clients (vertical-market application software) have small, standalone systems or half-dozen peer-to-peer networks on which they share client-server applications. There is no need, nor any desire on their part, to go to any kind of web-based paradigm. It doesn’t matter what you can do with AJAX, or Google office, or Flash; these technologies are not solving any problems that these people currently have and they don’t really offer up any exciting new business advantages that these people would make use of. When they need a new feature for their systems, they pay to have it added to their existing system - they’re not going to go to the expense (time/cost/training etc) of having the app replaced with some clever Web 2.0 system just because that’s what most software developers are into doing these days. In many ways they would lose, or compromise, some aspects of functionality in order to become ‘web-enabled’. So why do it?

It’s easy for people in IT to look around at ‘our’ environment and project it onto the rest of the world (in fact, it’s often the case that it’s the result of our wishful thinking as opposed to any hard and fast reality). We always get the fast machines, the latest OSes, the most modern peripherals and we often lose sight of what everyone is making do with. The truth is, the real world I see when I’m out and about during the day includes large companies who actively want a locked-down internal desktop app rather than something that they have to police. It includes smaller companies who are either have no use for remote working, or are fearful/mistrustful of being online all the time, or who are simply looking for a bit of extra functionality in the apps they already have. And it includes companies who work with machinery in such a way that their desktop applications control external devices in their workplace.

I still see, on a regular basis, 20+ year old dBase MSDOS installations. 15 year old Paradox applications, decade-old Access systems. Even given that these are often a pain to support in their own way, most of the time the people that are using these systems are reluctant to change and see no compelling reason to do so. There’s a whole world out there where you probably only get the chance to rewrite/restructure things about once a decade.

While I’m not trying to suggest, Canute-like, that we can resist the relentless progress towards an all-online world, it’s not happening everywhere by any means, and in my experience we’re still a long way from consigning desktop applications (and desktop software development) to the history books.

It all makes for great blogs posts though, Jeff!

In a distant future, we will have a real standard for Web-based Applications (without borrowing HTML), and all the developers will live happily in a chocolate factory.

But if you happen to work now, we have XUL, XAML, XForm, Flex, OpenLaszlo, Html5, and God knows what else… lots of different markups/technologies all based on “slightly different” schemas (mmmh, yes, everybody had a “Panel” and a “Canvas”, so I will just add a “HPanel” and “VPanel” to MY language, to make it better) and “little” parser-specific problems:

  • for XUL you must install Firefox and pray
  • for Html5 you have to install Opera9
  • with Flash you can kiss right-click goodbye
  • with XForm you… you… you… ok, XForm is not really option :slight_smile:

I see dark times…

What about Java web start?

http://en.wikipedia.org/wiki/Java_Web_Start

Able to launch a client UI through a web based interface on any platform.

People always mention Java Web Start, and, in theory, it should be a better experience than DHTML UIs. Nevertheless, in reality, web designers do a better job than Sun engineers at making a polished interface.

Have to agree with much of what Joel said. Great desktop apps are what web apps try to be. Due to statelessness, HTML, js, etc., lots of almost hacks have to be used. The collective framework requires these to make things work.

But the glory and the money are in the web.

Will we indeed still be having the same conversation in 5 years? I hope not. Why is the desktop experience so much better now, and will the gap narrow in the coming years? A few ideas:

  • Responsiveness: going to the network for many operations is inherently so much slower than executing local instructions. Bandwidth isn’t likely to solve the problem, just alleviate it up to a point.

  • Awareness of local environment: being able to open, save, cut, paste, etc. as usual; not having to “log in” to every separate app, etc. These things seem to be fairly well handled by existing Java, XUL, XAML approaches; what is needed is a standard that works everywhere.

  • Native look and feel: most people are using Windows now, but there’s no question that Linux and even Mac OS X are on the rise. Even just assuming most apps will be built with a Windows look-and-feel only, what will give us this? Again, Java (SWT), XUL, XAML–they’re working today, for the most part, but again, no standard.

  • Error handling: probably needs to improve a lot for AJAX calls to be as good as a desktop app. Not sure about prospects for this.

The biggest issue by far, I think, is responsiveness. One of the big reasons people build web-based apps is to cut down or eliminate software distribution and installation problems. To really improve responsiveness, there will need to be better ways to download and run more of the app locally, updating various pieces only when needed, in order to make fewer requests across the network.

naughty, naughty - downloading movies and music :wink:

This thing about most people using just a small precentage of a big app does not really help you very much, since they always seem to use a different small percentage. When building lightweight web-apps to replace heavyweight thick clients, no matter what obscure feature you remove, someone are going to miss it. (This of course applies to non-web-apps too.)

And Foxyshadis, the guys over at IBM are talking quite a lot about Web 3.0 these days, which is supposed to be some kind of 3D/VR-web. Which, if you ask me, sounds pretty evil. Reminds of the home computers they sold in the end of the nineties, where an icon on the desktop would spin around a few times before the folder opened. All bells and whistles getting in the users way. So it seems we’re not quite rid of VRML-ish stuff yet.

I’m gonna bet that one big part will move to XAML and XBAP apps for the web.

I just can’t wait the time to leave the CSS, javascript, HTML world. It’s amazing that in 2007 you can have the same markup, but different outputs in FF and IE (even both in Windows).

Yes there’s a better way, it is called “Smart Clients”, with all the benefits of Web apps and none of their inherent faults. You can build a smart client app in way less than the time required for a Web app, so it should be cheaper given the same scenario for both.

I am an AJAX developer and a .Net Win32 developer. AJAX is a hack, difficult to work with, and doesn’t give enough control over the client system. I liked the way UNIX/X11 would allow you to remotely execute an application and display the UI locally. That rocked. One day Microsoft will probably implement such technology. Java web start looks promising as well.