The Source for Java Technology Collaboration
User: Password:



Joshua Marinacci

Joshua Marinacci's Blog

2004: the year of the Net-App

Posted by joshy on January 05, 2004 at 01:33 PM | Comments (5)

A lot of people have put out lists of what they expect to see for the new year. Instead of going across the industry I'm going to focus on one topic in particular: networked applications. I really think that 2004 is the year of the netapp. Now sure, I know what you're thinking: "I thought 1994 was the birth of the most popular networked application ever: the webbrowser. You're about ten years too late". I'm not talking about the webbrowser. It's a general purpose application that isn't very good at anything, but good enough for almost everything. I really think the last few years have shown a desire for specific networked applications that, in the long run, will blow the pants off ye old browser.

We've seen the apex of business applications. Crunching numbers and wordproccesors just don't interest people anymore. The growth is dealing with small nuggets of information, and lots of them. Most consumer apps involve media manipulation or communication in some form, almost always over a network. It's not quite 'the network is the computer', but it's certainly the case that 'without the network there is nothing for the computer to do'. Dedicated networked applications, not just general purpose webbrowsers, really seem to be the way to go.

But this is still a lot to cover in a blog entry. I'm going to narrow it down even more. Being a UI guy I have ask myself: what are they going to look like? Thinking about this over my vacation here are my predictions of what we will see in the coming wave of dedicated networked applications:

  • Search: Searching is important. By definition, networked apps give us access to something that our desktop can't, one of which is holding huge datasets. Thus searching those datasets will be of the utmost importance. I expect every application to have a search feature in it. Google has conditioned us think in terms of keywords ANDed together. iTunes has popularized incremental (keystroke) searching. I think eventually all GUI toolkits will have a custom search widget to support this behavior right out of the box. I also think that Lucene is one of the coolest open source libraries ever.
  • HTML will be heavily used. This means both the browsing metaphor where appropriate (bookmarks, forward and back buttons, clickable links) and literally HTML rendering in the middle of the application. The iTunes Music Store, Sherlock, RSS readers, and even chat applications are all using HTML for the display of formatted text and graphics. I think this trend will continue, especially as HTML rendering engines become more embedded in our operating systems and programming languages.
  • Connectedness All netapps need a sense of when they are online and when they aren't, and when to pass that information on. Since it will be a long time before we are permanently connected, and etiquette may dictate not even then, we will need connectedness built right into the UI. Chat apps have logged in / away / offline status indicators. Gnutella clients tell you when you are searching and when people are searching you. Even email tells you the state of the network with it's greyed out folders and a checked for mail alert sound. The sense of connection state will become integral to the UI.
  • Drag and drop I know, it's not a new UI component, but it's becoming more and more important. Since the desktop is rapidly becoming a set of portals into other servers and datasets, we need better ways of extracting and moving data between these datasets. All netapps will need to accept and produce drag and drop events for text, files, links, and images. This also implies ubiquitous media libraries with thumbnail previews. (Can you say QuickTime for Java?) DND support has been growing steadily in all UI toolkits, but I think we are at the point when they will finally become massively useful. Of course this will cause new problems with information overload. I'm hope to have a shelf on the side of my screen that can accept drags from any application and store them for later use. Is anyone at Apple listening?
  • Syncing While the technology is established it is only just now becoming ubiquitous. The link between desktop, server, and device is more common than ever and Palm has gotten everyone to accept syncing as a metaphor. (This dispite the fact that sync is not actually a word) Now phones sync addresses to Outlook, calendars sync through servers to other calendars, and iPods (my new christmas gift. thanks honey!) sync music from iTunes. Syncing is everywhere and many netapps will need some form of syncing worked into their feature list. I expect to see more syncing toolkits as we get too many devices needing custom conduits.
  • Discovery You know something is out there but you don't know what or where. This is why we've seen an explosion in discovery protocols lately. Really it's a meta search, a search for things to search. I expect to see rendezvous/zeroconf, jini, jxta, gnutella, and other discovery protocols integrated into reusable libraries. Perhaps they will even hook up with RSS and Google to become truly internet savvy.
  • Non-heirarchical organization Sorting is the opposite of searching and putting things into a structure is actually much harder than getting them back out. Our data is just getting too big. There's too much information to keep track of. I personally organize my email as a nested tree structure: friends, work, online, other; with many subcategories. Now I have too much to sort comfortably. What I really need is a gigantic flexible relational database to hold it all. And every netapp I have should dump it's info into the database without my assistance. And it should intelligently sync with my server and my Palm, phone(s), and iPod.

I used to think that networked applications and distributed computing would take advantage of one simple idea: use someone else's cycles. Now, with Moore's law showing us that there's no application too big to run on the desktop of the future, I'm seeing that the real use for the network isn't to get at someone's cycles but at their databases. Every thing on my list above boils down to accessing someone else's databases. Storing, searching, manipulating, and syncing databases.

In some ways this is new because we are using new technology to do it, but this is really what we have always used computers for. The UI advances I've listed all reflect a need to visualize the above tasks in ways that are meaningful to humans. And that's what good software has always done.


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • HTML yes, but...
    I agree with your opinion that HTML will continue to be an important user interface player with respect to rendering and layout, but I'm still uncomfortable with the programmatic aspects of HTML (i.e. JavaScript). It's as if client-side programming is just plain cursed with the tools that we have. Hard to maintain, hard to debug, and just plain ugly. Have you spied anything on the horizon that looks promising?

    Posted by: johnreynolds on January 06, 2004 at 06:57 AM

  • HTML yes, but...
    I'm not too happy with it either. Just as we are now generating reliable structured HTML from programs instead of writing it by hand I think we will do the same for Javascript. Imagine a validation library where you just define the constraints on a value and the system takes care of keeping it. If you are running as a Swing app then Javacode manages the value. If you are running in a webapp then crossplatform javascript will be generated and run in the browser for validation.

    I do agree that Javascript doesn't work reliably, though, even under this scenario. Plus there are things it just can't do. That's why I think NetApps are going to be on the rise, for the things that HTML and JavaScript just can't handle.

    - Joshua

    Posted by: joshy on January 06, 2004 at 07:36 PM

  • Net App or Just any computer program
    Hello,
    The article is really interesting. But if you look most (if not all) the application in 2003, 2002 or even since 2000 qualify for being netapp. Even the simple number crunchers and word processors like MSWord have many features. That means that Net-App now is basically just any software. I agree that this will be the trend in 2004 and beyond but actually this trend is presend since 2000 .
    Correct me if I am wrong.
    Thanks
    Ali

    Posted by: himindz on January 06, 2004 at 10:53 PM

  • Net App or Just any computer program
    I'm trying to show the features that distinguish a network application from a normal one. Certainly, there are plenty of apps from the last few years that fit this model. I'm looking for the trend and trying to see where it's going. I think that we are going to see an explosion this year because of increased broadband penetration and the wide availability of new tools.

    Posted by: joshy on January 07, 2004 at 06:43 AM

  • Why isnt Sun helping?
    Hi there!

    I agree that HTML will become more important, not only for rendering online content in a desktop/client app, but also for layouting GUIs completly or only partial.

    HTML is a very flexible way to design GUIs, if it would akt as a layout manager for swing widgets.
    HTML would have the advantage over XML/Gui descriptors like XUL that it can handle text/images/layouting very effizient and there are many tools for creating eye-candy html-pages.

    Imagine a JEditorPane which would be able to render HTML pages with Widgets defined in it, just like it already does for simple HTML-Widgets like Buttons or EditFields.
    Each widget would get a name as identifier and could be accessed via gets, like:
    JButton forwardBtn = (JButton) jEditorPane.getWidgets("forwardButton1");

    Of course, event-handling stuff included in this HTML-Pages would be fine, but I dont see a way to do this in a clean way....

    Even with the very limmited HTML-3.2 renderer of JEditorPane it would be able to create very flexible and NICE looking Guis that dont look like every grey Frame/Panel/Button paradigm.

    I dont understand why SUN didnt include such stuff already on JEditorPane, because JEditorPane is already able to place simple HTML-Widgets which are also done via Swng-Widgets.
    It would only take about 2-20Days for a experienced Sun employee to implement this.....
    The only problem with JEditorPane is, that it canīt resolve html-references (like images) if they are in Jar-Files. This is a problem that also would be great if it could be resolved...

    Any suggestions, ideas, maybe you also think this would be great?

    Posted by: linuxhippy on January 07, 2004 at 08:08 AM





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds