Jump to content

  • Log In with Google      Sign In   
  • Create Account

The 'Thick Client' is dead...


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
31 replies to this topic

#1 Glass_Knife   Moderators   -  Reputation: 4443

Posted 17 September 2013 - 10:04 AM

Going through layoffs, and someone got a new job doing Java Swing GUI stuff.  He commented that it worried him because Java Swing is dead, as well as thick client programming in general, and he didn't want his skill set to transition into the 'dinosaur' category. This seemed like a bold statement, so I was just curious about what everyone is doing out there (besides games).  I realize that games are still PC, console, and tablet, but what about business software?  Is anyone still making applications, or is everyone really moving towards big-data and the cloud?  

 

If you are still making client-side apps, what platform/language are you using?


Edited by Glass_Knife, 17 September 2013 - 10:04 AM.

I think, therefore I am. I think? - "George Carlin"
Indie Game Programming

Sponsor:

#2 dublindan   Members   -  Reputation: 457

Posted 17 September 2013 - 11:46 AM

In my experience, native clients are not dead, at least in some industries when it makes sense (eg visualisation heavy or processing heavy applications and applications where offline access is desired). I've seen plenty of desktop GUI applications been built in Qt. I haven't seen that much in Java lately, but I'm sure it exists. Mobile native apps are also very popular.

 

There is definitely a trend of things moving to web apps, but I don't think its over yet for thick clients. It will probably become ever-more niche though in the coming years.


Edited by dublindan, 17 September 2013 - 11:46 AM.


#3 creatures-of-gaia.com   Members   -  Reputation: 377

Posted 17 September 2013 - 11:52 AM

I think his worries are premature. Thick clients, and java GUI are still a big part of the world and are going to stay a few decades at least. There are even tools like GWT to "be able" to write java swing like stuff in order to be compile in web techs. Native clients still are ahead in terms of capabilities, libraries, performance... and there are already so many that are using it, its an inertia that is going to stay for a while. Java skills are also portable to more hype techs like Android, so I wouldn't worry that much. My 2 cents.


Edited by art4games.net, 17 September 2013 - 11:56 AM.


#4 Glass_Knife   Moderators   -  Reputation: 4443

Posted 17 September 2013 - 11:56 AM

That's what I thought.  But I think you need to check your place every few years, make sure you're staying up on the latest trends.  I was hoping he was premature.


I think, therefore I am. I think? - "George Carlin"
Indie Game Programming

#5 frob   Moderators   -  Reputation: 21323

Posted 17 September 2013 - 11:56 AM

It won't ever be gone.  There is a pendulum that keeps swinging back and forth between server-side and client-side.  

 

The pendulum swings about every five years or so, and has done so since the 1960s. 

 

The players are always slightly different, but it seems the grass is always greener on the other side.  Look at all the problems we are facing today, many of them could be solved if we moved the processing effort over to the other side.


Check out my personal indie blog at bryanwagstaff.com.

#6 creatures-of-gaia.com   Members   -  Reputation: 377

Posted 17 September 2013 - 11:58 AM

Old techs also have their advantages. Some banks pay a lot to find good ol' fortran experts because nobody learns this anymore and their software jungle too complicated to change.



#7 Aztral   Members   -  Reputation: 631

Posted 17 September 2013 - 11:59 AM

We write architectural design software in C++ with Qt.  It's a very, very thick client application.  We also have a pretty large (and quickly getting larger) iOS application based on Unity written primarily in C# with occasional native code.



#8 Glass_Knife   Moderators   -  Reputation: 4443

Posted 17 September 2013 - 12:52 PM

I suspect there is a lot more C++/Qt out there than people think.  I mentioned that as one technology still in use today, and was greeted with blank stares that seemed to say "Qt?  I've never heard of that Javascript library."

 

But frob, you're right about the client/server pendulum.  I'm sure it will swing the other way soon.


Edited by Glass_Knife, 17 September 2013 - 12:53 PM.

I think, therefore I am. I think? - "George Carlin"
Indie Game Programming

#9 ysg   Members   -  Reputation: 192

Posted 17 September 2013 - 12:56 PM

I suspect there is a lot more C++/Qt out there than people think. I mentioned that as one technology still in use today, and was greeted with blank stares that seemed to say "Qt? I've never heard of that Javascript library."

But frob, you're right about the client/server pendulum. I'm sure it will swing the other way soon.

Your OS is a "thick client" of sorts :) .

And Java isn't exactly similar to some dialect of Lisp that is used in only one majorish project.

#10 markr   Crossbones+   -  Reputation: 1653

Posted 17 September 2013 - 03:09 PM

There is a bit of thick client out there.

 

What remains to be seen, is how many companies will start using HTML / JS for a "thick client", which is certainly as expressive as Java / Swing etc, ever was, but offers more convenient (possibly) automatic updating and a better variety of platforms (i.e. it works on iDevices).

 

The idea of "thin client" was to make the client as dumb as possible - maybe even like a X-terminal or RDP client. This has some advantages but places a lot of load on the server and means you've got a lot of scope for server-side problems. Unix terminals (text-only, like "glass tty") were also a form of thin-client, being extremely dumb but requiring very little comms bandwidth.

 

So I think HTML is the new thick client.



#11 ChaosEngine   Crossbones+   -  Reputation: 2357

Posted 17 September 2013 - 04:21 PM

As a dissenting view, I'd say that thick client is on the way out, with a few caveats. Productivity apps that are cpu intensive (CAD, photo editing, 3d modelling) will almost certainly remain on the desktop for a while longer (although even in those areas people are already trying experimental web apps).

 

But for your standard LOB app? Based on user requests and job postings, that's definitely going the way of the web. 

The users want to be able to access the app from whatever machine they're using. Previously web versions were pale shadows of the desktop app, but increasingly that's no longer the case. 

 

I'd certainly say that Java as a desktop tech is not only on the way out, it's been dead for years. Most people I know don't even have java installed on their machine. 

 

And I don't necessarily agree with Frob that it's a pendulum that will swing back. It certainly has in the past, but that's primarily because of how bad for productivity think clients have been. 

 

 

In case anyone thinks I'm just promoting my own corner, I'm not. I've been a desktop developer for over a decade, and having to move to html5/javascript scares the shit out of me. 

 

edit: and to answer the OP question, I'm writing a thick client that uses C# and winforms, mixed with a legacy C++ MFC app (wrapped in C++/CLI) with an NHibernate backend.


Edited by ChaosEngine, 17 September 2013 - 04:25 PM.

if you think programming is like sex, you probably haven't done much of either.-------------- - capn_midnight

#12 alnite   Crossbones+   -  Reputation: 2108

Posted 17 September 2013 - 07:34 PM

I was just curious about what everyone is doing out there (besides games). 

 

Enterprisey server-side apps with the latest and coolest technologies with bad names.

 

 

I realize that games are still PC, console, and tablet, but what about business software?  Is anyone still making applications, or is everyone really moving towards big-data and the cloud?

 

For some industries, yes, because it's better business for them.  For games, may not so because games still need that extra processing power that clients have.  However, the distribution and piracy verification is starting to get centralized. 

 

I do share his sentiment.  I was making games, and pretty big on developing client side apps.  Later a few years ago, I am starting to realize that I feel like chasing constantly-evolving technologies.  I have no idea how many APIs I have learned: DirectX, OpenGL, Win32, .NET, J2ME, Blackberry, Android, iOS, all for what? If some executivies of Big Co decided to retire their APIs, your life has just gotten tougher.  Now you gotta relearning "Hello World" using their all-new-and-improved API 7.0.  Or, if a clever guy somewhere decided to release his toy that suddenly becomes the new mainstream gadget.  Everyone is seeking for a Senior iOS Developer, because that's a cool title.

 

It hit me when I got laid off a few years ago.  Suddenly my skills are irrelevant to the latest trend, and it's hard to land a job, despite having shipped half a dozen games, despite loads of previous experiences.

 

Tech changes are not just to blame.  The human resources poor mentality is also partly to blame.  When a company is looking for a person with 5 years of XYZ experience, that's exactly what they are looking for.  "You have 10 years of C++/DirectX/etc making all kinds of cool stuff, awesome.  But you don't know Spring?  Sorry, denied".  Their loss.

 

That's not all why I switch, however.  The biggest drive is me wanting to become a well-rounded developer.  Having been developing thick clients since I learned programming, I knew almost nothing when it comes to server side, databases, and all that.  And I figured server technologies are less volatile.  HTML has been around for how many years?  Javascript should have been replaced years ago, but apparently people keep figuring out crafty stuff with it.  But thank goodness for NoSQL.

 

For one thing, server-side apps are easier to manage.  If you apply a fix, everyone gets it.  If you apply an update, everyone gets it.  You don't have to worry about backward compatibility.



#13 Nypyren   Crossbones+   -  Reputation: 4303

Posted 17 September 2013 - 08:06 PM

That's not all why I switch, however.  The biggest drive is me wanting to become a well-rounded developer.  Having been developing thick clients since I learned programming, I knew almost nothing when it comes to server side, databases, and all that.


I feel like this is an extremely important aspect of the discussion and needs to be focused on more. Thin clients, thick clients, and web services use vastly different approaches, but techniques commonly used in one area can apply in interesting ways to the others. If a team is only experienced in one area, they may be missing the fact that there are much better ways to develop their software.

#14 TheChubu   Crossbones+   -  Reputation: 4353

Posted 17 September 2013 - 09:31 PM

Well... Swing will be there until JavaFX picks up, and JavaFX won't pick up until Java 8, if it picks up at all.

 

It won't ever be gone.  There is a pendulum that keeps swinging back and forth between server-side and client-side.  

 

The thick client is dead! Long live the thick client!


"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

 

My journals: dustArtemis ECS framework and Making a Terrain Generator


#15 Endurion   Crossbones+   -  Reputation: 3575

Posted 18 September 2013 - 01:09 AM

So far basically none of the thin client solutions have convinced me. They were either unusably slow, lacked features in Browser A, did not work at all in Browser B, etc.

And once you're cut off the net you're hosed. That can't be the future.

 

 

For cute little apps web may be fine, although none of the big players (read browser implementors) will ever really try to actually implement a fully functional cross platform. HTML5? Puhleeaze. W3C? Design from idiots for idiots. (Good read: http://www.alexstjohn.com/WP/2013/07/25/the-advent-of-web-3d/)

 

After 15 years of browsers mankind should've been able to come up with something more useful than the cruft HTML and javaScript is.


Fruny: Ftagn! Ia! Ia! std::time_put_byname! Mglui naflftagn std::codecvt eY'ha-nthlei!,char,mbstate_t>

#16 Buster2000   Members   -  Reputation: 1665

Posted 18 September 2013 - 01:53 AM

I work for a massive financial trading company.  Our trading platform is the biggest spreadbetting platform in the world and is written in Java (small portions such as charts are written in HTML5 or Flex) and runs entirely in the browser (Clients can log into their accounts from any desktop).

We also have a mobile platform.  Over the past two years the mobile platform has taken 30% of the trades we do and is rapidly climbing.  The mobile teams are now larger than the desktop client team and are seen as the most important assets in the company at the moment.



#17 RivieraKid   Members   -  Reputation: 375

Posted 18 September 2013 - 04:16 AM

what difference does it make?

 

your still achieving the same result. So you have to do a bit of message passing client -> server and be more concerned about parallel performance, big diff. Your skills should still transfer.



#18 markr   Crossbones+   -  Reputation: 1653

Posted 18 September 2013 - 05:16 AM

A thick-client system I worked on used a client application which was:

 

* Difficult to install - requiring lots of dependencies as well as windows (think Oracle client libraries etc)

* Had poor performance

* Difficult to develop - due to a large number of hands over a long time, leaving the code in a big complicated mess

* A problem to deploy - every desktop needed the client updated independently. And that spare machine in the back room that nobody uses (in case one of the day-to-day PCs failed) always was out-of-date.

 

I think that we can beat some of these things by using web technologies, but the standard software problems remain.

 

Our thick-client app never worked without access to the server anyway. In fact it hit the server unreasonably hard that it made problems for the thin-client parts.

 

Now everyone is using AJAX etc, which if used improperly just makes we apps more complicated to maintain with no benefit. But we can do whatever we like, it's up to us to make our architecture not suck!



#19 Krohm   Crossbones+   -  Reputation: 3119

Posted 19 September 2013 - 12:56 AM


After 15 years of browsers mankind should've been able to come up with something more useful than the cruft HTML and javaScript is.
Seconded.

#20 mhagain   Crossbones+   -  Reputation: 7978

Posted 19 September 2013 - 04:00 AM

A thick-client system I worked on used a client application which was:

 

* Difficult to install - requiring lots of dependencies as well as windows (think Oracle client libraries etc)

* Had poor performance

* Difficult to develop - due to a large number of hands over a long time, leaving the code in a big complicated mess

* A problem to deploy - every desktop needed the client updated independently. And that spare machine in the back room that nobody uses (in case one of the day-to-day PCs failed) always was out-of-date.

 

I think that we can beat some of these things by using web technologies, but the standard software problems remain.

 

Our thick-client app never worked without access to the server anyway. In fact it hit the server unreasonably hard that it made problems for the thin-client parts.

 

Now everyone is using AJAX etc, which if used improperly just makes we apps more complicated to maintain with no benefit. But we can do whatever we like, it's up to us to make our architecture not suck!

 

Unfortunately I've seen thin-client systems exhibit many of the same (or at least similar) issues - browser versioning and compatibility issues are large, plug-ins are a painful nuisance, browser support from some major players tends to lag well behind, and heaven help you if you need to use two such systems which have incompatible browser version or plug-in version requirements.


It appears that the gentleman thought C++ was extremely difficult and he was overjoyed that the machine was absorbing it; he understood that good C++ is difficult but the best C++ is well-nigh unintelligible.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS