Which is a better choice: Ruby on Rails, Java with Google App Engine for SaaS and Android app development?
-
Hello, Since I'm in the process of building an Android app on custom platform I'm in need of some advices/clarification on a few of my technical choices considering I'm building it myself. To shorten I will clarify some key segments of the platform and my current choices and dilemma. IT WILL RUN ON GOOGLE APP ENGINE / GOOGLE SQL DATASTORE There are many reasons behind this choice but let's say that even though Amazon EC2 is probably a bit more flexible, the unfriendliness of their interfaces and APIs, I fear, will slow me down. In addition to this, with Google's introduction to managed virtual machines some of the biggest drawbacks of Google App Engine vs Amazon EC2 are now kind of moot but despite this, there are some political/future reasons as well as to why I'm picking Google cloud. Needless to say that integration between Google App Engine and Android is going to only get better and Google's APIs are fantastic. So with this, I picked Google Cloud over Amazon. I'm interested in whether or not I'm making a mistake from flexibility standpoint. In addition to this, I'm interested in getting someone to chime in on Google SQL vs Google NoSQL Datastore in my case. I have worked very little with NoSQL databases so choosing their MySQL datastore was a no brainer but with the purposes of functionality noted above, I'm curious whether I should go with NoSQL instead of more traditional MySQL. Are there drawbacks going with Google SQL over Google NoSQL Datastore? REAL TIME MESSAGING COMPONENT My choice in this case is Firebase. It seems to be a solid real time data communication platform. Their API is getting better and it's a cinch to work with it. Instead of setting my own, I've decided to with them and pay usage as I grow. If I get to the point later in the life of the platform I would set up my own servers just for this and probably do it via node/socket io but until that happens (if) I think Firebase is probably the best choice for this. My choice behind Firebase is that it also has Java/Android SDK so integrating with the app will be fairly easy and the same thing will be fairly easy to integrate later when iOS version comes along. NOTIFICATION SYSTEM Going with Urban Airship with on this one. With strong APIs (Android/Java and iOS/Obj-C) and great universal JS support allow us to initiate push notifications from mobile as well as our internal back-end was a big deal. Curious about someone's take on this if there's something better. APP CONTENT / PRODUCTS / DATABASE COMMUNICATION Building the RESTful API is key here. I'm fairly good with PHP, I'm ok with JS, I am ok with Java and getting even better but I am completely clueless about Ruby/Rails. I was tempted to go with PHP/Laravel but I have been advised by a few people to go with Ruby/Rails instead. Considering that our internal management dashboard/CMS will need to be built quickly and I need the full featured framework that will take care of many chores and help me truly apply agile development techniques, I have started considering Ruby/Rails. The question is whether it's a smart choice. On one hand, it sounds very enticing and aside from the excitement of learning something new (which I'll have plenty of building this platform), it seems like once I get a firm grasp of Ruby/Rails, it will make things go pretty fast, on the other hand, considering that I'm going Google App Engine route and lack of native Ruby interface to it, I would have to deal with JRuby and this seems like something that would add more complications. With it's SDK/APIs and considering Android first approach, it's really not out of the question for me to use Java (JAX-RS) in creating RESTful API that I can use building our CMS and Google Cloud but the question is where it's smart for me to use Ruby/JRuby on Rails in order to work with Google App Engine or am I better off simply going with Java all the way, considering that most of the stuff on Android side is Java as well and I could write a RESTful API in Java (JAX-RS) and go with one language flow. CMS AND MANAGING THE PLATFORM AND SUMMARY OF THE QUESTION I am leaning towards Java for one simple reason.. I'm building Android app with Java, I'm interfacing with App Engine/Urban Airship/Firebase with Java and it seems the least friction and I'd be working with same language through adn through. Except for the CMS part which I could build by using the RESTful API. One other reason is my fear that I will spread myself too much and learning Ruby on top of everything else including the intricacies of Google App Engine will add a ton of time on already massive work. Advice and clarification to my big question is much appreciated.
-
Answer:
Ruby on Rails. It is very easy to learn the language and every thing you need to know will be easily accessible on the internet. For the rails portion, very intuitive framework
Arlan Nurakhan at Quora Visit the source
Related Q & A:
- Is Go faster than Python on Google App Engine?Best solution by Stack Overflow
- Which is a better name for a blue parakeet?Best solution by Yahoo! Answers
- What's a better choice IB or A/levels?Best solution by telegraph.co.uk
- Which is a better city for a young person, Wroclaw or Berlin?Best solution by Yahoo! Answers
- Which Is a better place to rent a villa?Best solution by Yahoo! Answers
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.