CARVIEW |
September 21, 2004
Turn your application Inside-Out
How I wish developers would spend more time obsessing over user interface patterns instead of design patterns. To that end, here's another great UI Patterns and Techniques site to bookmark alongside Welie's GUI Design patterns.
This link arrives courtesy of Andy's unicode obsessed weblog. It's rare to find a Java developer who is enthused about GUI development; rarer still is the Java developer who defends smart client development in the face of "browser is good enough" criticisms from the likes of Joel Spolsky, Tim Bray, and John Gruber:
Gmail?s threading and searching are indeed nice, but its overall look-and-feel is far inferior to that of a real desktop mail client. What it has going for it is what all webmail apps have ? zero installation, zero maintenance, access from any computer, anywhere (including from work, a major factor for personal email). Gmail is simply better than the other major web-based mail apps; but Yahoo and Hotmail and the others are still ragingly popular.What these guys fail to grasp is that once the .NET runtime becomes ubiquitous-- and it's only a matter of time until that happens-- that's exactly how you install a smart client app! You simply type the URL, and the app launches. No dependencies, no installation, and most importantly, none of the tedious glass ceiling restrictions the browser places on development. All the assemblies are automatically downloaded via HTTP, and all communication between the app and the server occurs via HTTP. When is a browser not a browser? When it's a smart client application.What I missed when I dismissed them a decade ago is that web apps don?t need to beat desktop apps on the same terms. What?s happened is that they?re beating them on an entirely different set of terms. It?s all about the fact that you just type the URL and there?s your email.
It's a have your cake (rich UI) and eat it too (trivial deployment) solution-- as long as you're running Windows. The reality is, though, that most organizations don't give a damn about OS independence; what they do care about is no-hassle, zero footprint deployment of applications that make the user's life easier. Now that the dot-com bubble euphoria has completely worn off, we can be more objective about how crappy the browser's UI is for a lot of user tasks. Let's turn our applications inside-out: steal the UI metaphors you like from the web browser and harness it as an embedded windows forms control. Don't let the browser's limitations determine what you can do.
But "the .NET runtime" will probably never be as ubiquitous as needed to be compared to a web app. Unless you're talking about an intranet application, that is. IE6 and Firefox cover enough computers to be considered "all of them". .NET does not and may very well never reach that point.
And even if somehow every computer did have the .NET runtime (doubtful) and some how they all had the same version of the .NET runtime (dang near unpossible in the next 7 years), you still won't be able to sit down at an internet caf?, rent a computer, and install an application with a URL like you can current check your GMail.
That "no installation" part is the beauty of what the original post was talking about. No muss, no fuss. Sure, .NET promises something similar eventually, but so did Java and it had a much wider target audience (i.e. not just current versions of Windows).
Shannon J Hager on September 21, 2004 10:36 PMThere was a time when not every computer had a web browser, too.
".NET promises something similar eventually"
It's here today. We build smart clients at work. Do you know how I deploy them? I copy files to a webserver. The user launches an .exe by typing a URL into their browser, or clicking on a bookmark:
https://internal.company.com/myapp/myapp.exe
.. and then the app loads. But don't take my word for it, try it yourself:
https://www.sellsbrothers.com/wahoo/wahoo.exe
Jeff Atwood on September 21, 2004 11:26 PMDoes that wahoo.exe link actually work? It didn't work for me. Nor would it work for a huge percentage of the population, a larger percentage than those for whom it would work.
Even if it did, there wouldn't really be a real difference between that and linking to a download, would there? That's not exactly impressive. ClickOnce (or whatever it will be called) is impressive but still doesn't address the cross-platform problem.
For internal applications that probably shouldn't have been web apps in the first place, "smart clients" are definitely a better replacement. I don't have the luxury of doing intranet development anymore, so in the "rich vs. reach" argument, "reach" always wins for me.
"How I wish developers would spend more time obsessing over user interface patterns instead of design patterns"
Oh yes please! Because the world needs more pretty apps that are poorly written because the developers had no architecture or design skills.
Form follow functionality. UI patterns are important but let's not pretend that a pretty app is more important than one that actually works.
I wish I was privy to all these pretty-but-functionless apps being developed (examples?). From where I'm sitting, I see mountains of complex, ugly software. I'd like a few throwaway apps that did one or two things well while looking cool.
Dang, I just summarized Apple's entire business philosophy. :)
Jeff Atwood on September 27, 2004 10:49 PMYeah, wahoo loads fine for me. There is a bit of a shortcut in IE, which hooks the IEExec.exe helper and makes it a one-click operation.
In Mozilla you have to "Save As..." on the .exe file and then double-click on it to launch it. Should work though, if you have the .NET framework.
Jeff Atwood on September 27, 2004 11:59 PMI haven't tried wahoo in 2 or 3 years, at the time, you had to make security changes in order for it to work via the URL. I believe it originally worked during the first betas of .net v1 but security in .net or IE was cranked up a little shortly thereafter. From that point on, the percentage of people who have Windows + IE + .NET installed (which is already a huge requirement compared to "just type the URL and there?s your email") would not be able to run via the URL unless they downloaded a program to change security settings (which automatically disqualifies it from the "just type the URL and there?s your email" race) or the user would have to change the settings themselves (another disqualification. non-admins and my mom don't want to hear all that, they want to "just type the URL and there?s your email").
Wahoo does not work via IE for me but not if I download it. When I download and try to run it, I get "File or assembly name WahooControl, or one of its dependencies, was not found."
Shannon J Hager on September 28, 2004 11:46 PMOh, right. My mistake. You have to download and open the EXE via the browser prompt. The base path for a smart client is the URL. It has to know where it was "born" to retrieve any dependent assemblies.
That's really odd that it doesn't work via direct click in IE though. Works OK for me in XP SP2 and IE6, as one would hope. And for what it's worth, the Smart Client apps we deploy via our intranet work great for a couple hundred users running NT4/IE5.5 and XP/IE6.*
* Technically .NET 1.1 doesn't support NT4 as a client platform, but we just switched to .NET 1.1 two months ago (don't ask) and most of our NT4 clients are being rapidly phased out.
Jeff Atwood on September 29, 2004 12:12 AMOver the last 6 years I have been consulting for large and small firms in the financial industry (e.g. hedge funds, investments banks, etc.) and have found that all (100%) of them have been investing more and more time in migrating from Windows or older UNIXes to Linux or Solaris on both servers AND workstations. This is not all corporations out there by any means, but a much larger percentage than I personally expected.
One major thing the blogger here is forgetting about is security! If I were a CIO I would NEVER dream of letting my employees access public .NET apps from a URL for them to do whatever they want. The Browser model of security is not great, but it is far better than having random apps run on your corporate networks! So in a nutshell the web-based public/personal email sites will still have the upper hand here and will do for the foreseeable future.
I am not saying that the visual look and feel is great at all these sites, but, honestly - who gives a damn if it looks like a desktop rich client that was designed by a small number of UI folk using their own preconceived ideas of what a rich UI should look like? To me and almost all my family (which are all non-techie other than myself) don't care as long as it functions the way they want it to!
.NET fans face it: apps on the corporate-level will be in-house developed or highly controlled by internal/outsourced IT watchdogs in any self-respecting business with an IT organization. .NET fans should NOT be competing with websites because their applications are VERY different indeed!
S. Potter on July 19, 2006 08:31 AMUI PATTERNS AND TECHNIQUESsite,a new designe patter for you...
vehicle-tracking-system on April 15, 2008 09:22 AMNet fans have a glance on this website and you will hhave something good for youself.
chattanooga-mortgage on April 21, 2008 03:19 AM
Wow, it is 2008 and I've just read this!!! Nice post and so useful!
Content (c) 2009 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved. |