Which platform to implement our API on?
Hello all,
My partner and I are planning to write an API as a part of the product our recently established startup will offer. For the past week or so, I have been researching the various available technologies and I would like to rack the brains of this community regarding which technology to choose.
Firstly, we plan to basically create a web annotation service of sorts. In short, this means allowing users of our service to comment on webpages they visit using a browser plugin in such a way that comments made by one person will be visible to the others. Comments will appear in panels at some predefined place in the webpage (think post-it notes stuck on webpages). And we also aim to offer an API for this service. This practically means allowing third parties also to tap on the comments users make and appear in those panels.
My research has indicated two categories of technologies to implement the API component. For one thing, we have the middleware (the actual API itself) and for another there is the 'backend' (the platform on which the middleware will be built on). The frontend is not important for the context of this conversation I think (it will be handled by the browser plugin).
So for the middleware there are a number of technologies (SOAP, REST, XML-RPC, CORBA, etc) but I'm pretty confident that we have to stick to the first two. In particular, we plan to start off with a RESTful technology to get off the ground quickly and if things go well back it up with SOAP at a later point.
My biggest issue is which platform to implement that middleware on however. So far my research has shown that if it's to be based on a Java app server it might take a bit to launch but it's unlikely that we'll have issues (Java's robust, there's lots of support everywhere and already lots of JSRs support RESTful and SOAP technologies). That in conjunction with easy and cheap scalability provided by Amazon Web Services provides a seemingly solid plan (although any arguments on that is welcome).
On the other hand, I worry that Java's relative complexity might delay us too much whereas using another platform might make things easier without any real drawbacks. Other platforms I considered are a LAMPHP server (PHP has web services related extensions in the PEAR archive), Perl (with a vast repository of relevant libraries in CPAN), Ruby (which has not so many libraries to support it yet but seems specifically created around web services) and Python (which is also relatively new but with a certain orientation towards web services).
So, having pretty much decided on the REST mentality (initially at least) for the middleware which 'backend' platform do you think would allow for the best tradeoff between time to market, scalability and robustness for our particular needs?
Thank you for your time. Your feedback is most appreciated.