Slashdot Mirror


The Long Death of Fat Clients

snydeq writes "With Adobe's divestment of Flex and mobile Flash and Microsoft's move from Silverlight to Metro, Oracle now seems all alone in believing that a fat client framework — in the form of JavaFX — is a worthwhile investment, writes Andrew Oliver. 'Fewer and fewer options exist for developing purely fat client desktop applications and fewer still for RAD applications with Web-based delivery (aka, "thick clients"). We are on the verge of a purely HTML/JavaScript client world. Or we would be, if it weren't for mobile pushing us back to client-side development.'"

31 of 277 comments (clear)

  1. Um... by Anonymous Coward · · Score: 5, Insightful

    Isn't this whole HTML 5 business basically Browsers becoming fat clients, by your definition?

    1. Re:Um... by Johann+Lau · · Score: 5, Insightful

      Yeah, but *heavily* crippled ones.

      28c3: The coming war on general computation

    2. Re:Um... by Old97 · · Score: 4, Insightful

      Exactly. "Fat" doesn't refer to the footprint as much as it does the proportion of the workload executed in the client. A thin client renders and perhaps it formats, but does it also maintain state? If it does (e.g. HTML5) or you rely on it to do a lot of cross-field validations then I'd say your client is getting "fatter". Its a continuum, but if you lose enough hair at some point we will all agree that you are bald.

      --
      Very often, people confuse simple with simplistic. The nuance is lost on most. - Clement Mok
    3. Re:Um... by mcgrew · · Score: 5, Interesting

      Isn't this whole HTML 5 business basically Browsers becoming fat clients, by your definition?

      They want all your data on their servers is why they keep pusing the "fat client is dead" meme. I doubt they'll ever give up; just like Intel was soundly trounced for suggesting something like UEFI fifteen years ago, followed by Microsoft being soundly trounced for Palladium (UEFI ten yeras ago), and now they're still at at, the bastards.

      The "fat client is dead, the cloud is better!" bullshit is no different. They want to control YOUR computer and YOUR data.

      Rise up and fight this absurd madness!

      What's worse is the "phone apps are making phones fat clients." No, what's making phones "fat clients" is the same thing as making your PC a thin client -- their desire for control over your data. "Want to listen to our radio station on your Android or iPhone? We have an app for that!" when a simple web page served to your browser should work. Point your phone's browser to WQNA and click the aac or mp3 link, you should hear them on your phone. Why can't other stations do that? (BTW, in about five hours they'll be playing ska and raggae; it's a local college station that you can never be sure what genre is going to be played. I once heard Johnny Cash followed by the Dead Kennedies on that station).

      If the data is coming from the internet, like a radio stream, you should need no app. When your data is produced locally, you should need no internet.

      Why are we letting these people from Bizarro World fuck everything up, anyway?

    4. Re:Um... by fermat1313 · · Score: 4, Insightful

      I can't watch youtube at work. Is there a text version of this?

      I like the old "plugin" model of web browsers. If you want to see a JPEG, install JPEGview. If you want to hear an MP3 or AIFF, install a player. Over time though I guess all these plugins have been buried inside the browser code. Now the browser is expected to do it all automatically in one large massive program that eats a gigabyte of RAM.

      If someone came out with a browser out of the box that could only display HTML text with no pictures, sound, etc, do you really think it would get enough use to become traction? Images, sound and video are part of the modern day web browsing experience for the vast majority of users. It's time to get over the origins of the web as a text-only system

      Also, most browsers do have the capability for plug-ins, which meets some of your needs. Ultimately, though, plug-ins present their own privacy and security concerns (think Flash). I'd rather have my basic services provided by a trusted vendor with the resources to properly test their software and with a reputation I can trust.

    5. Re:Um... by CubicleZombie · · Score: 5, Insightful

      I'm currently working on a large JavaScript based application. It's just like every rich client I've ever done, except it's not type safe, or compile safe. Debugging is a pain in the ass. It's slower. I have to make it work in multiple browsers. It's enterprisey and web 2.0ish and pretty, but missing all the powerful UI tools I have under .NET or Swing. As a developer, It just seems like a huge step backwards.

      --
      :wq
    6. Re:Um... by icebraining · · Score: 5, Insightful

      "Letting" them? What exactly do you propose? That we set their offices on fire because they make apps instead of websites?

      They want control over the experience and data, and most people do not want control over their own experience and data. You can warn about the current and potential dangers, but otherwise it's their stuff, if they want to give it away, who are we to decide otherwise?

    7. Re:Um... by icebraining · · Score: 4, Informative

      So? Machine code isn't typed either. Much like for native applications, you can use a statically (and strongly) typed language and compile it down to JavaScript.

      List of languages that compile to JavaScript.

    8. Re:Um... by foniksonik · · Score: 3, Interesting

      Would you want to download and install every web based app you use to your desktop? How about every commerce site?

      Just asking. Actually want to know.

      --
      A fool throws a stone into a well and a thousand sages can not remove it.
    9. Re:Um... by Anonymous Coward · · Score: 5, Insightful

      I totally agree.

      Last week, I posted a comment bemoaning the lack of type safety in JavaScript. I got ruthlessly blasted by people who claimed that it hasn't been proven that type-safety-checking languages are better and that I was a crusty old fart for hanging onto the old ways and refusing to embrace the new paradigms of purely-dynamic typing.

      I have 25 years of experience that tells me that I've avoided hundreds of nasty bugs throughout my career by having C or C++ catch all my type inconsistencies. Those are hundreds of bugs that I didn't have to spend time tracking down in the debugger. I'm dead serious when I say that if I didn't have a strong type-checking compiler all these years, I probably wouldn't have remained a software engineer for more than a couple of years. I would have long ago lost interest in using a debugger all day long to catch my own stupid-ass typing errors that could have been totally preventable if the language had been better designed. It would have been like digging ditches with a spoon -- fuck that job if they're not going to provide you with the proper tools.

      I'm very concerned that the future of the Web seems to rest on a language that doesn't have even the OPTION to use convenient type-checking -- not even at run time. (It would be possible to add this to JavaScript, but they refuse to do so. Note that later versions of PHP bolted on run-time type-checking as an after-thought, so it's obviously possible to do.)

      I'm sure I'll get mercilessly criticized again for posting the most powerful lesson that I've learned in my past 25 years of software engineering: "having the option to use strong typing is FUNDAMENTALLY BETTER than not having that option". Static type checking is luxurious. But if static type checking isn't possible, then at least allow me to specify the type so that it can be dynamically checked. More generally: if you can lock something down without taking away functionality, then DO IT. Use "const" when you can. Use "private" when you can. Use an enum instead of an int if you can. Open files read-only when you can. Have the compiler check types and issue warnings if you can. Etc., etc., etc. It's amazing to realize that the single most important principle in all my years of experience can really be summarized in just a single paragraph.

      And it's so sad to see the web's language of the future (JavaScript) deliberately ignore my most important principle.

    10. Re:Um... by Nethemas+the+Great · · Score: 3, Interesting

      I thought I had lost this argument on ./ Good to know there are a few of us out there still retaining our sanity. HTML5/JavaScript isn't the WORA technology we should be pursuing. It works reasonably well for small, simple clients but trying to apply it to anything requiring a even modest sophistication causes them to get unreasonably expensive to develop, ensure quality, and maintain when compared to Java, C#, C++, etc. and their respective presentation technologies such as WPF and Swing. This really has less to do with "maturity" of the supporting technology and more to do with the fundamental nature of the languages.

      Part of the appeal of HTML5/JavaScript I think are the low barriers to entry, and the "pioneering" or "frontier" romanticism brought out by the anything goes, blank slate, fiddle and tinker until it works approach that's required. In many ways it actually reminds me of the appeal that Minecraft has to so many people. The mature, safe, predictable, and structured/formal languages and technologies just don't carry the same appeal.

      --
      Two of my imaginary friends reproduced once ... with negative results.
    11. Re:Um... by Cryacin · · Score: 3, Interesting

      I think it comes down to the serious question of how much you are going to use it. For an online ordering system where you are only interesting in placing an order once every few months/years, such as business cards or something along those lines, you'd want a web experience. For something like timesheets which you use every day/multiple times a day, a desktop deploy is warranted.

      --
      Science advances one funeral at a time- Max Planck
    12. Re:Um... by MrSteveSD · · Score: 3, Interesting

      I agree with you totally there. The lack of static typing (or even the option of static typing) seems to be almost universal in scripting languages. The issue goes further than just type safety and avoidable bugs though. Static typing allows you to better express your intent, not just to other programmers (which you can do with comments) but to the program itself. This makes it easy for a development environment to provide useful things like auto-completion. Auto-Complete saves so much time and also helps you broaden your knowledge of the available classes and functions.

      Another issue that sometimes pops up in scripting languages is a lack of constants. I remember bringing this issue up on a python forum and they just told me to use variables instead. When I pointed out that you could easily change the value of the "constant" in code by mistake, I was told something along the lines of "well that would be your own stupid fault."

      There seems to be a general attitude in certain circles that the basic protections you get with static typing and constants etc are somehow pointless or unnecessary. Google seems to recognise their importance though, which is no doubt why they created Dart. I believe they have been using some kind of enhanced Javascript internally for some time. I know there was a push to add things like static typing, classes etc to Javascript but it was resisted.

      It seems bizarre to me that with more and more being done in the browser, we are still stuck with a Javascript, a language that increasingly seems ill-suited to the tasks it is being used for.

    13. Re:Um... by jones_supa · · Score: 3, Interesting

      I would happily install some of the big ones (Slashdot, Facebook, YouTube, etc.) as standalone applications. Especially the ones that use a lot of AJAX or Flash would benefit a lot -- at least I'm sick and tired of the sluggish bubblegum.

  2. Yuck! by Dog-Cow · · Score: 4, Insightful

    The summary makes it sound like fat clients are a bad thing. The web is not an application platform! HTML5 efforts to the contrary, it's just not designed for it. A well-written fat client will behave well even when the network is down or slow. Most web apps become useless, if not outright unusable.

    1. Re:Yuck! by Yvanhoe · · Score: 4, Insightful

      It is interesting that web development's big edge today is not in accessing remote content but in providing a compatibility layers on for platforms that do their best to avoid being compatible.

      Once again, millions of man hours will be wasted solving a completely man-made problem...

      --
      The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
    2. Re:Yuck! by 2starr · · Score: 3, Interesting

      Yes, exactly. That article is just a load of utter BS. For "exhibit A" I give you an article from half an hour earlier. Think clients are extremely hot right now in mobile apps! Use the right tool for the job. Sometimes that's a thin client, sometimes it's thick. Stop trying to tell me that one or the other is dead. Neither will be anytime soon.

      --

      "Let your heart soar as high as it will. Refuse to be average." - A. W. Tozer

  3. Re:Yay. by GameboyRMH · · Score: 3, Informative

    Assuming you're running Windows just remove the older versions, newer installers do it automatically but if you have some REALLY old versions on there you'll have to remove them yourself.

    If you're running Linux, well it's your choice to run Sun Java, OpenJDK and...whatever other Java RE you've found, at the same time.

    --
    "When information is power, privacy is freedom" - Jah-Wren Ryel
  4. Yuck!! by Anonymous Coward · · Score: 3, Informative

    Silverlight is dead like VB6 is dead...

    The technology will live on for a long time - it is still the best option for developing RIA LOB applciations.

    I'm a native guy - HTML/Javascript is just not a solid method for developing applications.

  5. Re:Yay. by Dog-Cow · · Score: 4, Insightful

    You are assuming that all his software is compatible with the latest version. That is often not the case. With Java.

  6. fragmentation by recharged95 · · Score: 4, Informative

    Death of the fat-client makes sense for the multimedia, e-commerce world.

    But for real-time, mission critical? I'll stick with fat-clients with a mobile component for now.

  7. Oh god, here we go again with the thin clients by crazyjj · · Score: 5, Insightful

    Thin client computing is like cold fusion. Every so often it's going to be the next big thing...then everyone forgets about it for a while....then it's going to be the next big thing....then everyone forgets about it for a while...rinse....wash...repeat.

    --
    What political party do you join when you don't like Bible-thumpers *or* hippies?
  8. There will always be thin/thick clients by Bigby · · Score: 3, Insightful

    ...just like there will always be death and taxes.

    In fact, both are subjective. You are only arguing about how thin or thick the client will be. It is not a black/white scale...it is grayscale.

  9. Re:Yay. by benf_2004 · · Score: 4, Informative

    I haven't yet found a program which stopped working with newer java.

    Up until last month, we still had to install Java 1.5 on some users' computers because their jobs required them to use a web application that would not work on Java 1.6 or newer. We neither develop nor host the application, so all we could do was keep installing the horribly outdated version of Java and wait for the application to be upgraded to work with Java 1.6.

  10. Another great thing about the US by GodfatherofSoul · · Score: 3, Funny

    We'll NEVER run out of fat clients

    --
    I swear to God...I swear to God! That is NOT how you treat your human!
  11. Circles have no end... by AtlantaSteve · · Score: 4, Insightful

    I've been in software development for about 20 years, and it occurs to me that I've seen the "fat-to-thin-to-fat" cycle of hype run its course at least twice now. Predicting "The End of Fat Clients" (or thin clients for that matter) is like looking at a clock, seeing that it reads 6:00, and then declaring the death of noon.

  12. Here we go again... by dkf · · Score: 3, Insightful

    The wheel turns, but we stay in largely the same place. Sure, the Java fat client might be on the decline, but the Javascript fat client is bloating up rapidly. That'd be OK as it is far less fussy than Java and quite a lot higher level, but JS is a dratted awkward language to write well; it's got too many weird things in scoping that can trip you up horribly if you don't know the magic workaround idioms. (It's also coupled to the DOM and HTML in most peoples' minds, and that's certainly not nice.)

    In any case, fat clients aren't going anywhere. They're just changing the details of their implementation. Similarly, cloud computing is very much the same as a much older concept, bureau computing, but cheaper and with faster networking so people don't notice as much. The IT industry has such a horribly short memory...

    --
    "Little does he know, but there is no 'I' in 'Idiot'!"
  13. Re:Yay. by Anonymous Coward · · Score: 4, Informative

    Everything eclipse based got hit with that when Oracle rightly changed the vendor property of the Sun jvm to oracle, afaik checking that did not even make sense since both version and name of the jvm have their own properties . Sadly no programming language can protect you against stupid programmers, any attempt will be dwarfed by the world producing better idiots.

  14. Web Delivery Dying, Fat clients healthy as ever! by evilviper · · Score: 4, Interesting

    We are on the verge of a purely HTML/JavaScript client world.

    No, no we aren't. We are on the verge of WEB SITES being restricted to using WEB TECHNOLOGIES.

    It was an idiotic idea back in the '90s to believe that people WANTED to open a browser, and visit a web page, to launch their client-side apps. A local app on a fat client is still the be-all, end-all of computing.

    People may tolerate web apps, but they usually don't WANT them... They're just given no other choice by the developer, usually for reasons of ad placement. Companies like Pandora have their web app, but then have a desktop Adobe AIR version of their web app, but ONLY for PAYING customers.

    Hulu was smart enough to release Hulu Desktop to let people get away from their clumsy web interface, but they sure haven't advertised it's existence, and I'd have to call it "quite buggy" even being generous.

    Fat clients remain dominant. Smartphones aren't anything special... They just happen to be a huge new money-making opportunity, so developers aren't going to cut-corners (depending on web apps) to capture that market.

    --
    Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
  15. Re:Yay. by Bigby · · Score: 3, Insightful

    You touched on the core issue. Many of these apps, especially banking apps, used security holes to accomplish certain things. So when Java fixes the security issue, the app stops functioning.

    I have never seen an issue around an API change. Only security fixes.

  16. Re:Yay. by Mechanik · · Score: 3, Informative

    Everything eclipse based got hit with that when Oracle rightly changed the vendor property of the Sun jvm to oracle, afaik checking that did not even make sense since both version and name of the jvm have their own properties . Sadly no programming language can protect you against stupid programmers, any attempt will be dwarfed by the world producing better idiots.

    Speaking as someone who is an Eclipse committer, your representation of the situation is not accurate.

    Sun's JVM has different proprietary options than other JVMs. It also has this notion of PermGen space that other VMs don't have, where various classloader stuff and other things can be stored. Run out of space there, and the JVM blows up.

    When you have a Java application like Eclipse that is really big, it's not hard to run out of PermGen, especially because the default size is so paltry. So, the Eclipse launcher needs to be able to modify this size of the PermGen. However, the special command line option to do this is proprietary to the Sun JVM, and if you pass it to someone else's JVM it's common for that JVM to refuse to run because you gave it an option it didn't recognize.

    So, Eclipse has to:

    1. Check which JVM it is launching with.
    2. Is it the Sun JVM?
    3. If it is, pass PermGen options

    How do you propose checking #2 without checking the vendor name of the JVM?

    Maybe you should look into things more before you call a bunch of experienced, professional, open source programmers stupid idiots.