I'm going to keep the whole thread here because I think some important
distinctions are being raised / discussed.
1. As a developer, I have to create a (minimum) viable product. "Viable"
implies there must be a user interface beyond the command line. Yes, I know
Cameron Kaiser thinks otherwise, but the people that I'm hoping will pay me
money for a Twitter desktop product will most likely not want a command line
product.
2. The most efficient way for me to deliver that UI, given oAuth, is to fire
up a native browser and use it for at least the oAuth authentication and
"view" portion of my application. I'm also guessing that one of the "industry
standard" JavaScript libraries will be involved. Lots of wheels to not re-
invent, etc..
3. Twitter shouldn't have to care about the "model" and "controller" portions
of my application. I'm guessing they'll not be in browser-side JavaScript,
though, unless the JavaScript engines are a lot more efficient than I think
they are. ;-)
4. That leaves the interface to user streams. Twitter should only have to care
about connection-related and bandwidth-related parameters, *not* about whether
I connect with Perl, Ruby, PHP, Python, JavaScript, C, Java, or even Lisp,
Scheme or Forth. And Twitter shouldn't have to care whether the code is
executed inside a browser by an interpreter, by compiled Java applet code,
outside the browser by interpreted or compiled code, etc.
Remember, I've got to have the browser anyway! In my case I'm guessing the
connection will be Perl and outside the browser, because I know how to do
things efficiently in Perl better than the others. And I'm guessing my model
will require Perl efficiency as well.
But if someone can build the whole enchilada in a browser, it shouldn't matter
to Twitter as long as the connection and bandwidth properties are predictable
/ controllable. And, in fact, if *they're* ready to go to market the day user
streams graduates to production status and I'm still futzing with my Perl
code, well, I lose. ;-)
5. So let me throw a *huge* "what if?" on the table. What if there was an
official Twitter-supported @anywhere - user streams capability? Then we
*could* write a large chunk of a Twitter client in browser-side JavaScript.
Maybe even simple models could be done that way too, but certainly the view
and controller pieces could.
See Antonio Cangiano's (@acangiano) blog post for a little motivation:
http://antoniocangiano.com/2010/05/14/the-most-important-programming-language-
today/
M. Edward (Ed) Borasky
http://borasky-research.net/m-edward-ed-borasky/ @znmeb
"A mathematician is a device for turning coffee into theorems." ~ Paul Erdős