I will have native apps for iPhone and Android, and then a mobile website (for other mobile platforms) talking with background content that controls users, settings, videos, social graphs, etc. I will also have a dynamic website with lots of videos, images and social graph management. The website will be basically a more functional version of the apps on the phones. The inner part consists of video storage, transcoding, video advertising mechanism, video sharing options with your network.
My thought is that I have to create a common application services layer that provides a RESTful api that returns JSON and has both applications and a website to talk to this api.
My question is whether I should support the website and the service level both in the same technology and using Java for the service level, and Rails or Python for the website to use their estimated faster development time. The site will have a lot of JavaScript and AJAX to support dynamic behavior. If I use Rails or Python, should they also speak REST / JSON at the service level? As far as deployment and scaling management is concerned, it seems that sticking to one technology like Java might be better for all the backs; but, on the other hand, Rails and Python promise faster development and maintenance times for the web tier. If I use Rails for the web tier, would it be wise to deploy it in JRuby in the same JVM as the service tier to have fewer moving parts to manage on the web application server?
A site can grow to millions of users and videos. The development team is experienced in Java, with some Python, but smart and can quickly learn other technologies.
Feel free to offer the technology stack of your choice.
source share