Discussion Locked

Should our clients be thin or rich?

0 helpful
22 replies
Closed to new repliesThis discussion is closed. It stays readable, but it takes no new replies.
As Web Application architectures progressively improve in terms of usability and performance. Where is the future of the client. Should we aim for the zero footprint thin client or will the future be in the rich client technologies like Flash?

22 replies

by jaqui

If you want it to be 100% available, go with the zero footprint model.

if you want to become locked into using something you have zero control over [ flash is an axample ]
then go for the rich client.

The zero footprint model doesn't mean a dead looking tool, check the links I have in my TR links, CSS Play website, by Stu Nichols has some interesting effects, all done with CSS only, no clientside scripting. [ some of the examples will only work with Mozilla's browsers, as IE doesn't meet w3c standards very well. ]

by frip

www.csszengarden.com is a great example of CSS. I like the thin client, especially with the usability you can get from AJAX, but is thin client the future? If I were to write an application using thin client technology will it be dated in 2 years time?

by jaqui

concidering that 20 odd years ago the world started moving away from thin client. [ dumb terminals on mainframe systems ] And just within the last couple of years thin client has been growing in popularity, I would say thin client will be around for about..20 years. :)

There will still be people who go rich client, but the issue with that is the loss of control over the foundation of the app / service. Who wants to be forced into an upgrade so another company can make more money?

by johnnysacks

We've all seen web applications that try to do too much in an HTML interface. They're a nuisance to use for any practical purpose.
If not, compare the Oracle 10G web administration interface with their Java based Oracle Enterprise Manager. The web interface is the absolute last resort for a DBA who desperately needs access from a remote spot, nobody other than a glutton for punishment would use it on a daily basis.

I would hope that someone is capable of making an informed decision on which architecture needs to be used to solve the problem at hand rather than basing it on marketing buzz and stupid HTML trick eye candy.

The argument for AJAX adds another layer of complexity to any web app that aspires to be a REAL rich client interface.
There are back end services that need to be developed, tested, and debugged in a language like Java, C#, or VB.NET combined with HUGE amounts of client side JavaScript which needs to be supported in (I would expect) at least IE and Mozilla browsers. All this to make an application which barely approaches the functionality of a true rich client platform (doesn't anyone remember PowerBuilder?)

by dancoo

I still think there's nothing to compare to it for strongly database-related apps. VB.NET / C# is starting to catch up, but really isn't nearly there yet.

I'm also using AJAX, and boy, it's a pain compared to writing in PowerBuilder!

by too old for it

Just helped complete a global deployment of a new PC environment.

Other than AS400 access, everything is thick client. Sorry!!

by frip

Didn't the tech world move to thicker clients because the users wanted more control over their applications. Is there a risk that the thin client will only be able to go so far in meeting the users' requirements.

I'm not familiar with Flash, but isn't the fact that they do take some control away the point. I will soon be looking at the latest Microsoft stuff which they tell me will be able to do the same rich client stuff and since I'm tied into Microsoft at the back end anyway - am I really losing out?

I'm guessing you're not a Microsoft fan...

by jaqui

that I'm strictly open source. :)

and, You can give users the type of control they want over an application, generally it's ui changes more than anything else, even with a thin client app. that just requires setting the app up to use accounts and store preferences variables.
[ creating multiple css options that have a number of minor differences in the ui design, adding a colour picker for them to alter basic colour scheme are both simple things with a small footprint on the server. ]

Most CMS scripts have these options, TR's script is unusual in that it doesn't allow for user interface customisation on a per user basis.

by frip

I prefer open source when working on my own stuff at home, but in the corporate field my company are committed to Microsoft.
Do you believe that a thin client application can provide the same level of usability as a rich one? Not just look and feel, but all aspects of user interaction. And are you more at risk to problems caused by companies like Microsoft failing to follow standards in IE, if you are just using a browser?

by frip

I think that settles the debate...in Hollywood they want it all. What a great quote! :-)

by jaqui

some things you won't get with a thin client app, like sounds on mouse clicks.

if going browser based, you would have to throw ie into quirks mode by sending < xml? > tag at the top of the page and put ie only code in.

the true benefit of the browser based thin client model is that the app is portable, across all os, and all browsers, with standards compliant code as well as the ie code in it. this makes such an app a pruduct that can be sold, generating another revenue stream for the company, with zero people left out of usage because of os requirements.

The risks with the browser based thin client are more due to the nature of the connection, if it's not using ssl it's more accessible to packet sniffing on the web. Though the rich client has some of that risk, mostly it's defeated by the proprietary ui code. [ the person running the sniffer would have to be using the same tech, and catch every packet to get the data instead of being able to read any packet to see if there is any likelyhood of the data being send.

by dogknees

Only thing is, high speed internet access (or for some any at all) still isn't ubiquitous, and it won't be for a long time yet.

I'll believe in the thin client when I see a full function application (think Access, Excel, Photoshop, Autocad,...) with a web-style interface. That is with every feature that exists in the apps today. Things like customizable/draggable/dockable toolbars and menus. A proper multiple document interface with tiled/cascaded windows, etc....

When we see everyone with access speed high enough to provide this level of functionality and a web protocol that can deliver the functionality, we might be able to move to thin clients.

Regards

by brian.kiser

In my opinion, I think it's very clear-cut. You will need to do both, probably. If your application will require a complex user interface, then you'll need to go thick client/smart client. Writing web apps that do simple things like dropdowns from databases is a real pain because you have to write not just in your language of choice, but also use JavaScript or AJAX or whatever. Web apps that do significant work are cumbersome to write and will never have the slick interface of a thick client.

With that said, web apps have their place, too. If you have a situation where you have a simple input screen and needs to be accessed by people "on the go" or accessed from regular people on the Internet, then you should probably go with a thin client web app.

I am absolutely certain about that, and it should be common advice that you get from others. What I'm not so certain about is where the industry is going. If Microsoft has its way, smart clients are the future. And since I see no alternatives at this point, I'd be inclined to agree.

by frip

My understanding of the new technologies Microsoft is pushing at the moment (Avalon or WPF) is that the client will be tied into a MS OS. OK if you're already there, but not ideal for everyone.

If your application was to be used internally (i.e. no need for web deployment), but needs a user friendly, quick interface you should go thick client. I think that's a given.

But what if the app is complex and it does need to be web deployed and OS independent. What is the best technology to satisfy this requirement?

by brian.kiser

I have to apologize. Because I've been on a MS operating system for most of my career, I tend to think of that as the only OS. If you're on another OS, I would go with Java. When I did Java, we had Swing for thick client apps, but I think it's been replaced with something better since then. I wouldn't consider a lesser-known technology because usually they are abandoned over time, and programmers are hard to find.

You're saying the app is complex, and NEEDS to be web deployed and OS independent. Except for the OS independence, I would definitely say use a smart client with no-touch deployment. If MS tools are out of the picture, I'd still go with Java. I think they have something akin to smart clients--look at Java webstart.

What platform are you actually on? Or are you putting out a product for multiple platforms? Or just trying to stay away from "evil" Microsoft?

by schuylkill

As someone who has to support a bunch of apps for a corporation, my view is: if the app is mission-critical, it should be a rich client. If it is an add-on or "nice-to-have", then I prefer the smallest footprint possible. My acconting software must be a rich client, but giving users remote access to their e-mail (not a critical function in my company) is best filled by a webmail product of some sort. Of course, developers and software vendors will have a different list of what is misssion-critical than network admins (and users will have yet another list), but the install, maintenance, and support needs of a particular app weigh very heavily in my mind when I am picking apps.

by wayne m.

For typical applications, I contend there are two issues that precluding the viability of thin client, the low level of user interface support in HTML and brwosers, and the reliance on a "connectioness" model. For data intensive applications, I would add network response time.

The HTML display primitives are too basic for most needs and typically require download of custom code to do standard operations at the client. Some examples of this are the default behavior of a drop down list, lack of standard data validations such as character only, numeric only, date entry, simple range validation of numeric and date entries, spelling and grammar checking, and lack of a standard data validation phase (perhaps performing custom validation code) performed by the browser. To overcome these things, we either pay a penalty to download code to do these things on the client, or have operations deferred to the server.

A second issue is the "connectionless" model. The part that is connectionless is the part at the client, while back at the server we do handstands to recreate a connected service. This implementation is reverse of what is needed for applications. The client should operate as connected, while the server acts in a connectionless manner. The client machine has the resources to maintain the connection, instead we keep bulking up the server to maintain as many parallel connections as possible, and pay penalties as they are cached and retrieved from disk and constantly resent back to the client. In an application, a user will constantly revisit the same pages throughout the work day. Each time the user currently returns to a page, the client machine must retrieve both the common page code and the custom data displayed on the page. In many cases, the select lists and validation code on the page dwarfs the actual data. Constantly having to stop and wait for a page to display is one of the biggest user complaints with web-based applications.

As noted above, for many applications, the amount of unique data on a page is often quite small. There are some applications, though that are data intensive. A software development system is an example of this. I doubt there is a developer out there who would want to work on a thin client compiler.

I think there needs to be a major new infrastructure put into place where thin client can become truly useful. I think to be successful, thin client needs a full suite of generic capability built into the client (for those with long memories, think of extending the capabilities of a 3270 terminal). I do not think we will ever have enough bandwidth, low enough response time, or enough server storage to have all processing pushed back to the server.

by jaqui

.. when I see a full function application (think Access, Excel, Photoshop, Autocad,..

I guess you didn't see Autocad 2001?
Autodesk went with the server based web app model, you installed a ui that connected to their server to run it.

they went back to the install on local machine, since no-one wanted the heavy data transfer and monthly access fees the web based version incurred.

by frip

Although we have a business requirement to be OS independent for the client, we are MS dependent on the back end.

The client needs to be flexible and user friendly, but is not heavy on graphics. I'm a bit wary of Java due to its interpreted nature - although that goes for C# to some extent as well.

I guess the more specific question is given a Microsoft back end with a web service API, what will the industry be expecting the technology of the client to be in 2 years time?

by brian.kiser

Just kidding. (I love MS tools and don't have a problem with the company.)

In my brief 1-year of programming Java, I learned that anything requiring intensive graphic work was SLOW, but web apps seem to be plenty fast enough. If you're consuming a web service, sounds like you are writing a thin-client web app. Just stay away from Applets, and write your standard 3-tier Java app and you'll be fine. Java has good performance on the web, and Java is "mainstream", like the Microsoft languages, so you don't have to worry about it disappearing in a year.

by andychill

I believe Rich client will need a local database at each remote site. For example 150 local networks connected to one head office would require 151 databases all of the same size i.e. large. If the local server dies then that remote site can not function and the function can not be performed anywhere else unless a local install and database are installed at the new site.

Is this the case?

This discussion is closed to new replies.