Comet on Wikipedia

by Jacob RusJanuary 9th, 2008

A few weeks ago, I mostly finished a complete rewrite of the Wikipedia article about Comet,* and at the moment it is the most comprehensive explanation of what Comet is, why Comet is hard, and why Comet matters. But of course, bringing only my own voice and point of view, I can’t tell the whole story. So this post is intended first and foremost as a heads up and a request for review and commentary. What am I overlooking or minimizing? Are there any inaccuracies? Are there any great Comet resources I haven’t linked to in some footnote? In particular, I’d appreciate comments on the history section from those who were there when Comet-like techniques were first employed.

Eventually (not in the immediate future, but probably around the next time I have to prepare some conference slides of some sort), I plan to make a series of pretty diagrams to go along with the article, including several modeled after Jesse James Garrett’s, showing the timing of communication in various web application architectures, and a few more of server network topologies. If anyone has suggestions for other diagram types, feel free to suggest those too.

* For comparison, see the version before I started drastic changes.

13 Responses to “Comet on Wikipedia”

  1. GregWilkins Says:

    Good work!

  2. Alessandro Alinone Says:

    Jacob, great article, congrats!

    Regarding the history section, well, I hate to do competitive considerations, that risk to appear self-celebratory, but I think have to, just to help establish the actual facts.
    Caplin (Martin, don’t detest me :-)) introduced an applet-free solution only in recent years. Back in 2000, as far as I know, the only true Comet solutions were Pushlets, Lightstreamer, and KnowNow.

  3. Jacob Rus Says:

    Alessandro: Yes, the early history section is the part I have least knowledge of. It seems like KnowNow’s hyped consumer-directed applications never panned out, and they shifted course and directed their efforts towards “enterprise”. Were there ever any high-profile consumer applications using Pushlets, or did Pushlets also mostly stick to internal applications? Was Pushlets also used for financial trading applications, or

    The line as I wrote it was:

    Circa 2000, developers began creating the first true Comet applications, using the IFrame transport. Lightstreamer and Caplin began using Comet instead of Java applets for financial trading applications.…

    Drawing on Martin’s article as a source. But if that is inaccurate, the article should certainly be corrected.

    It should be possible to make a reasonably accurate historical summary, mentioning the actors involved, without including any particularly biased “marketing”-like statements.

  4. Jacob Rus Says:

    I may have misread his article. It looks like he says that Caplin used a Java applet purely as a communication transport, building the rest of their applications in JavaScript, starting in 1998, but it looks like they may not have moved to a browser-native transport until 2005. Martin: Does that sound about right?

  5. Alessandro Alinone Says:

    Jacob: Regarding the early history, I confirm your impressions on KnowNow and Pushlets. In particular, Pushlets, as far as I know, were not adopted for massive financial applications, although they marginally penetrated the finance industry. But Just van den Broecke (Pushlet’s creator) could shed more light on this. Regarding Caplin, I confirm that the applet-based transport was used at least until 2005. I think Martin will agree on this.

    I have another couple of observations.

    The forever frame technique, at least in the early phase, did not necessarily use an IFRAME, but could use a FRAME within a FRAMESET. Actually, Lightstreamer had been using a hidden FRAME in a FRAMSET for several years before moving to an IFRAME.

    Regarding the Implementations section, I think non-commercial does not necessarily means open source. In the case of Lightstreamer, we have both commercial and free editions, but all of them are currently closed source. In any case, I appreciate it is not worth complicating the tables for this distinction. Perhaps, while keeping Lightstreamer in the commercial section, a note could be added to remind that a non-commercial edition is available too?

    Thanks again for your work! Your article is awesome.

  6. Jacob Rus Says:

    Re: implementations section
    I didn’t really put too much effort into cleaning up that section yet, figuring I’d leave it until the rest of the article was more finished. In some ways it is the trickiest and most delicate section to fill in. There are a few concerns:

    Wikipedia needs to balance neutrality with comprehensiveness and usefulness. I think the implementations section is quite valuable to the article, because many of those who find the page will be looking for implementations, but at the same time it is the section most prone to straying into non-neutral advertising-like territory.
    The choice of organization, ordering, listing, description of the various Comet servers, etc. is tricky, and I’m not sure anyone could really do it in a completely neutral way. Most of those who edit the section have some sort of bias about it, so just about every edit ends up in some way changing its balance.
    Some of the Comet servers are of mainly historical interest, some of them are one-day-hack hobby projects, some have mostly ceased development. Others are in wide use, have heavy corporate backing, etc.
    In the end it’s all about usefulness to the reader. I don’t personally know whether the average reader is more likely to be interested in price, implementation language, design philosophy, etc. of the various projects.

    I’d be very happy for suggestions on the implementation section, or even for others to take a crack at cleaning it up.

  7. Jacob Rus Says:

    Whoops. Apparently my ordered list got eaten there; alas.

    Also, I’ll try to clear up the iframe bits of the history section.

  8. Martin Tyler Says:

    Hi Guys, been away for a few weeks in New Zealand…

    I guess it depends on the definition of ‘Comet’ - Alex’s orginal ‘naming’ article doesnt actually mention it being purely javascript - its more of a concept or paradigm of async updates to a web page - which Caplin has been doing since about 1999/2000, as mentioned with a Java applet to provide the transport but the display and interaction was all JS.

    Our pure JS solution was first used in production in 2005.

    So its up to you, but the article is currently wrong as the second sentence of ‘early comet applications’ implies we stopped using Java applets, but infact we still used them for the transport.

  9. Alessandro Alinone Says:

    I think that everybody else will agree that Comet does imply being purely JavaScript on the client side…

  10. Comet Daily » Blog Archive » Comet = Real Time Web Says:

    [...] Some weeks ago I had a discussion (in Spanish, rough translation) with colleagues about the meaning of Comet. We all know Wikipedia is today the considered to be the primary reference for an accurate definition of Comet, in fact this entry is heavily based on the original definition of Alex Russell and work of other CometDaily contributors like Jacob Rus. [...]

  11. Just van den Broecke Says:

    Hi, great to see this Wikipedia lemma! I can help you expand the history section with early beginnings. I started with the idea and implementation of Pushlets in early 1999. I published an article in march 2000 in JavaWorld, still online: http://www.javaworld.com/jw-03-2000/jw-03-pushlet.html .
    The Pushlet technique was then based on hidden frames, remaining an open HTTP connection and streaming in JavaScript. There was also a “trick” to get rid of the “busy browser bee”: embedding a frameset within a frameset. Later on the Pushlet framework was re-architected to support pull (think this is like “long-poll”) and poll modes. Later (think in 2000/2001) the other push framework was mod_pubsub by KnowNow. This was more of a company-style product. You may want to contact Adam Rifkin (easy to find on LinkedIn) for details. We were in contact at the time, and you may check with Adam, but he somewhere credited me/Pushlets as the first inventor of HTTP “Comet-style” streaming. Adam may also help you expand the history section.

  12. Jose Maria Arranz Says:

    Hello Just, I know your work since 2000-2001, in those days I built a “Comet” application using the “forever loading page” technique clearly inspired in Pushlets, that application/project was failed due some several reasons (technical and not technical).

    I agree with you: Just van den Broecke is the INVENTOR of HTTP “Comet-style” streaming. You could change the Wikipedia.

  13. Jacob Rus Says:

    Jose: you’ll notice that the version of the article that I wrote did discuss Pushlets, etc.; at some point another editor decided that Comet was not a valid topic for Wikipedia and tried to remove it altogether. The “compromise” was the rather incomplete and uninformative article you see now. If you want to go to the page and try to get some reasonable history section put back into it, go ahead.


Copyright 2015 Comet Daily, LLC. All Rights Reserved