"Yes, but that's niche."

JavaOne 2012 has come to an end though it feels like it hasn't even started yet! What happened, time is a weird thing.

Too many things to report on. James Gosling's appearance at the JavaOne community keynote was seen, by everyone (which is quite a lot) of people I talked to, as the highlight of the conference. It was interesting that the software for the Duke's Choice Award winning Liquid Robotics that James Gosling is now part of and came to talk about is a Swing application that uses the WorldWind libraries. It was also interesting that James Gosling pointed out to the conference: "There are things you can't do using HTML."

That brings me to the wonderful counter argument to the above, which I spend my time running into a lot: "Yes, but that's niche." It's a killer argument, i.e., it kills all discussions completely in one fell swoop. Kind of when you're talking about someone and then this sentence drops into the conversation: "Yes, but she's got cancer now."

Here's one implementation of "Yes, but that's niche":

  • Person A: All applications are moving to the web, tablet, and mobile phone. That's especially true now with HTML5, which is going to wipe away everything everywhere and all applications are going to be browser based.

  • Person B: What about air traffic control applications? Will they run on mobile phones too? And do you see defence applications running in a browser? Don't you agree that there are multiple scenarios imaginable where the Java desktop is the optimal platform for running applications?

  • Person A: Yes, but that's niche.

Here's another implementation, though it contradicts the above [despite often being used by the same people], since JavaFX is a Java desktop technology:

  • Person A: Swing is dead. Everyone is going to be using purely JavaFX and nothing else.

  • Person B: Does JavaFX have a docking framework and a module system? Does it have a plugin system?  These are some of the absolutely basic requirements of Java desktop software once you get to high end systems, e.g., banks, defence force, oil/gas services. Those kinds of applications need a web browser and so they love the JavaFX WebView component and they also love the animated JavaFX charting components. But they need so much more than that, i.e., an application framework. Aren't there requirements that JavaFX isn't meeting since it is a UI toolkit, just like Swing is a UI toolkit, and what they have in common is their lack, i.e., natively, of any kind of application framework? Don't people need more than a single window and a monolithic application structure?

  • Person A: Yes, but that's niche.

In other words, anything that doesn't fit within the currently dominant philosophy is "niche", for no other reason than that it doesn't fit within the currently dominant philosophy... regardless of the actual needs of real developers. Saying "Yes, but that's niche", kills the discussion completely, because it relegates one side of the conversation to the arcane and irrelevant corners of the universe. You're kind of like Cobol now, or something like a wacky cartoon character at a party for grown ups, as soon as "Yes, but that's niche" is said. What's worst about "Yes, but that's niche" is that it doesn't enter into any discussion about user requirements, i.e., there's so few that need this particular solution that we don't even need to talk about them anymore.

Note, of course, that I'm not referring specifically or generically to anyone or anything in particular. Just picking up from conversations I've picked up on as I was scurrying around the Hilton's corridors while looking for the location of my next presentation over the past few days. It does, however, mean that there were people thinking "Yes, but that's niche" while listening to James Gosling pointing out that HTML is not the be-all and end-all of absolutely everything.

And so this all leaves me wondering: How many applications must be part of a niche for the niche to no longer be a niche? And what if there are multiple small niches that have the same requirements? Don't all those small niches together form a larger whole, one that should be taken seriously, i.e., a whole that is not a niche?

Comments:

Yes, but why "that's niche"?
Let me try to answer:

- No Oracle Java SE/ME/FX for Android, Windows Mobile/CE/Phone, nor iOS to date.

Java needs it today, because tomorrow can be too late. Otherwise I see only Java EE survive the Smart-(Phone/TV/Tablet/Anything) era.

Posted by Rob on October 05, 2012 at 02:23 AM PDT #

Interesting point. Really I wished Swing had better support through time as does now JavaFX have. I am missing "modern" components and design tools for Swing as mature as you can find for, say, Apple's Cocoa frameworks. JavaFX seems to slowly fill the gap, but I still regret that it seems mainly targeted to counter Flash more than Cocoa or Microsoft C# that are used for serious heavy applications (or niches if you want ;). My dream would be that JavaFX would be a Swing 2.0 that flawlessly integrates with Swign by not too much breaking the old interfaces, but introducing new features such as animations, key-value bindings, etc. It could also be a integrated to Swing as another L&F. Honestly I find JavaFX promising, but I hope the team will focus on better integration with Swing instead of playing the game copying Flash which goes another path...

PS: We are still far from air traffic control on mobile device except they are 27'' wide and no longer mobile then ;)

Posted by jmborer on October 05, 2012 at 03:55 AM PDT #

JavaFX isn't even at niche status ;)

HTML5 though is problematic, yes you CAN do lots of stuff with it but you need to jump through hoops to do quite a bit of these things. So I would say that even a basic business application is hard to do properly with HTML. Sure you can do these things but when compared to the ease of doing these exact same things in Swing...

Posted by Shai Almog on October 05, 2012 at 08:41 PM PDT #

Look this "everything is moving to the web" is the latest in a long line of programing fads. Consider what you lose by making all applications web-based HTML pages run by (say) Javascript.

If you're using Javascript, you lose the ability to write sophisticated apps. If you don't understand what I mean by that, where Javascript just falls short of languages like C++ C# and Java, then you need to write a very complex, very large application in one of them and then imagine trying to do it in Javascript.

HTML 5, if it's anything like the 4 that came before it will see browser implementers- the presumed container of these apps- do their own thing in their own way, resulting in HTML "quirks" for each browser / OS combination. Another way to say this is good programmers will flee this development environment because they have too much ambition to spend their time fiddling with THAT kind of sh*t.

HTML5 , if it's anything like the 4 that came before it, will be YEARS rolling out in bits and pieces here and there.

HTML 5, if it's anything like the 4 that came before it, will lack utterly a decent GUI widget set that a programmer can take seriously.

HTML5, if it's anything like the 4 that came before it, will encourage developers to make everything the user does result in a server hit, reducing the responsiveness of the app to pre-1980s era computing levels.

It's fine to write an app that has, as a useful part of its functions, processing done by remote servers or peers. That's actually the future- real time confederated knowledge. Cool. None of that implies I have to
write that app in the most over-stretched, syntactically impoverished, visually unappealing, verbose, slow, container/language whose position in programming is a sort of a lowest common denominator of information processing and display, just once removed from a client-server green screen terminal.

HTML is with us because it's a good (enough) markup language for static read-only information dispersal. Everything else around it that evolved to pimp it up into an actual application platform, e.g. javascript libraries (snort!) et.al. is exactly what Dr Johnson was talking about when he said about a dog trained to walk on "it's hinder quarters" - the marvel was not that he did the thing well, it's that he could do it at all.

Apps aren't moving to handheld devices for a myriad of reasons. One is handheld devices have interfaces that are barely adequate whereas my keyboard and trackball rule. What's more, interfaces are moving towards bigger better more responsive phidgets and away from "touch screens" because big, complicated phidgets are better. If people become about 1/10th their current size and lose a dimension, say the z-axis, then iPhone touch screens will rule. Until then, the future is moving steadily away from touchscreens and into something ore resembling an actual object in the real world.

Another reason is the graphics in handhelds is slow and sort of shitty. It comes down to size and heat. Good graphics need large (or many small) chips and those large chips need big fat fans blowing over them to keep them cool. Bought a video card lately? It probably has a fan bigger than your handheld with its own power supply and it lives in a case with the rest of your big components with big fans that blow air over them. That's the state of the art for the foreseeable lifetime of HTML 5. When we have bio-based computing the size of your hangnail and 10g wireless internet everywhere, we can revisit this conversation.

Posted by guest on October 11, 2012 at 01:17 PM PDT #

Post a Comment:
  • HTML Syntax: NOT allowed
About

Geertjan Wielenga (@geertjanw) is a Principal Product Manager in the Oracle Developer Tools group living & working in Amsterdam. He is a Java technology enthusiast, evangelist, trainer, speaker, and writer. He blogs here daily.

The focus of this blog is mostly on NetBeans (a development tool primarily for Java programmers), with an occasional reference to NetBeans, and sometimes diverging to topics relating to NetBeans. And then there are days when NetBeans is mentioned, just for a change.

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
12
13
14
23
24
25
26
27
28
29
30
   
       
Today