On Comet, Paul Graham, and YC rejection
cometdaily.com
cometdaily.com
Comet technology (If you want to call it that) is fantastic. I wrote http://www.mibbit.com using the techniques, and you can bet it loads a lot faster than flash/java applet/anything else. Also these days with browsers on far more platforms, you're not guaranteed flash support. (Not to mention it being proprietary/slow/etc)
Focusing on comet though seems like saying "I want to do a web2.0 startup" or "an AJAX startup". They're all just buzzwords with little substance.
Does look like you've got a great system, just need the killer app now :)
computers -> linux -> #ubuntu
Probably user generated categories, but not sure yet.... ah well, it's on the todo anyway :)
Don't tell me (or pg, or anyone else) that Comet is a cool new technology which will transform the web -- show us something which you can do with it. Lots of people say "hey, I'm cool", but few of them actually are -- until you show us something which your cool new technology can do for us, you fall into the category of unsupported hype.
We were ultimately not given funding, probably because our proposal seemed to be "Look at this cool new technology that will transform the web. We're experts on it." rather than "Here is exactly what we want to make and precisely how we'll make money."
I obviously can't read pg's mind, but I strongly suspect the issue was more that you hadn't convinced him that Comet was useful rather than due to your lack of concrete business model.
I clearly think Comet is a useful technology, but then again, I lead development on an open source comet server (Orbited) and I write for www.cometdaily.com. So why doesn't someone more unbiased let me down easy. That is, explain to me why Comet is not a useful technology.
How would you even make money off comet based widgets or even some kind of platform for making them? The problem is that no one wants to pay for development platforms or pre-built widgets. All of the best stuff in this category is free....django, YUI, jquery, rails, comet blah blah....
It's obvious YC likes stuff that is made for what the mass would like to use.
I'd say YC probably choose to interview you mostly because you seemed to have talent. Maybe if you had displayed more flexibility on doing maybe other things maybe YC would not have rejected you.
Also, Paul has talked about how turning a luxury into a commodity is usually a good recipe for success. Most real-time applications are very expensive and use lame desktop client/server architectures. Imagine something web-based and free that does the same thing.
If what you really want to do is _real time_ pushing of data to the client then you need to come up with a really compelling situation in which that's needed. The current Comet proposal seems as you say somewhere on your blog "a big hack". What it really needs is simplicity. Tell me how this is better than polling using XHR.
In fact, if you want to excite me then give me a chunk of Javascript that as the following methods:
stream_to_me( url, callback )
I call this, it returns to me immediately. It handles a background connection to url and streams data off it using standard HTTP (perhaps it's holding a connection open, perhaps it's polling, user shouldn't care and should be transparent to the remote web server).
When it's got a complete chunk of data (perhaps it's a complete piece of XML) it calls callback with the chunk.
That would be compelling to me because I could just include that little library and then get async. callbacks with data coming 'live' from my server.
dojox.cometd.init('http://example.com/cometd'); dojox.cometd.subscribe('/channel', callback);
That's basically what you described, but with the additional concept of "channels" to make it easy to support lots of different event streams.
What are you planning to do? Make something for end users, or a tool kit for developers?
Either way, you've got to bring some real value to the table. Cleaner code or xy% reduced bandwidth isn't going to cut it. You have to have concrete benefits. What does this technology enable that wasn't possible before?
If you can answer that question, you're good to go. If you can't, no ammount of justification or 'developer education' will save you.
Make something that people want. It's all about making something that people want. Everything else is distraction. What PG said, PG's attitude towards Flash vs Comet is irrelevant. Not having mind share in the hacker community regarding your favorite technolgies is tough, but success in getting hackers to use your comet framework for development is much different than success in getting users to use the cool stuff you put on the web using comet
No one in user land cares about the framework, they just care about the cool and useful website you built. So, focus on that.
If I were interviewing you, you bet I'd ask something similar. I'd want to find out if you grasp the implications of using Comet as your company's technical backbone.
You're fundamentally mistaken. The technology is 1%. Execution is 99%. You need to stop being so obsessed over technology and focus on the execution of the technology. Build great stuff on top of Comet and it won't matter what mindshare it has or whether PG has heard of it or not.
Sorry for the uninformed blabbling, I just wanted to challenge the "community has never heard about it" stuff - at least I have heard about it, sort of, but I did not yet consider it the next killer application.
Suppose YC hacker news incorporated some kind of "push" system. Unless it was very unobtrusive I probably would try and turn it off since I want things to stay static while I'm reading.
I could imagine this being useful to complement a management interface, especially for providing detailed progress indicators.
Is Virtualmin ( http://www.virtualmin.com/ ) doing anything with Comet?
You can achieve something close to it by using very insistent polling but this causes an unreasonable load on the server. Whereas with push technology you can get live updates without this unnecessary load.
How is that for a compelling argument?
Next stupid question(s):
Even though I've written quite of bit of AJAX (Javascript / PHP / MySQL), I have not yet committed to any technology for my release 1.0.
If I wanted to put together a prototype using Comet instead of AJAX, how would you suggest I proceed?
Also, from a business point of view, what are the major pros & cons of comet vs ajax? (hosting, finding help, etc.)
Your most compelling argument would be something like "GMail would be 10x as popular with sub-second client updates and Comet would make that possible with the existing resources."
Note that the premise is clearly false - GMail would not be significantly more popular with subsecond client updates. That leaves you arguing that push would save resources but I'd guess that the current polling intervals are such that 10% is spent on them, which limits the benefits to 10%.
You need to show that comet enables valuable new apps, makes existing apps significantly more valuable to users, or makes it easier to produce new apps. And, even if you do, you're not going to make much money.
Note the weasel word "most" - your best argument isn't all that good. Your users, the app writers, are going to make far more money.
A lot of tech decisions don't deliver 10x improvement in the value-add for you users, but even a 10% value-add can be a powerful differentiator in a competitive market.
And finally Comet isn't really a significant technological hurdle. Implementing it versus simple AJAX isn't a very big increase in your tech efforts and might be very much worthwhile.
I'm not saying you should use Coment in all your future web dev, this isn't fanboism. Just spend an hour or two to get a rudimentary understanding of the technology its costs & benefits so you can decide for yourself if it is a good fit for your next project.
It'll certainly completely change how websites work though, making them far more responsive and interactive.
Vocabulary is important.
If developers can't "invent" it themselves, they aren't a very good developer. Giving them a ready made buzzword won't fix that :)
If it was an astoundingly clever algorithm, sure give it a name. But put 10 good hackers in a room that have never heard of or used comet before, and ask them to make a responsive app with javascript, I bet all 10 will 'invent' comet.
IMHO It doesn't really need a 'buzzword'. It's just a common technique.
FWIW, it's gotten quite a few mentions here at hacker news.