Best server-side technology for a mobile web app - mobile

I'm about to develop a web app for mobile devices and I'm wondering which server-side technology to choose. I have a strong experience with backend and frontend use of PHP (MySQL and others), but I make an educated guess that choosing this combination wouldn't be the best choice for scalability.
I've heard great things about Ruby, but my mind is fixated on Node.js, probably just because I like the idea of using the same language on the server and on the client. Just knowing the best weather app is a web app (http://forecast.io) makes me believe in the web more than ever before so I'm not going to learn any software coding for now.
Also, I have a lot of ease with learning a new language so that doesn't scare me. I just need a bunch of tutorials and examples to sniff from and I'd be good to go.
So, to structure my question, I'm asking for your recommendations on :
Server technology (Cloud hosting, which one? At what level of usage do you really need cloud scalability?
Server language (Node, Ruby, PHP, others?)
Server framework and/or ORM?
Database storage (I need geolocation features, I would guess Postgre?)
Front-end framework?
Thank you in advance for you help!

Related

Manage data on my hosting server

first of all sorry if this question is stupid. I'm building a website from scratch and I don't want to use a CMS. I'm doing well with all, unless that I don't know how to manage the backend data. It's suposed to make a direct connection to the database, for example, to create a new post on the blog page? Or should I implement a software in some language that connects to the database and manages all the posts that I post?
This is a very broad question to ask and if you're designing something on your own you should do what works for you. There are multiple solutions to the question you're asking but what fits you is the right answer. Stack is mostly questions for problems that have an actual example or something happening. Your asking an architectural question which isn't a bad thing just a very broad question to ask. Try Googling storing Blog posts. I assume this is what you want to do...
Some options:
Cloud based Architecture - Azure, Amazon Web Services (AWS) pay as you grow.
MongoDB, PostGres, SQL databases, Oracle, use a database that fits your code base.
Maybe spend some time learning a Full Stack Web Development cycle and what it takes to achieve. Some stacks are:
M.E.A.N. - MongoDB database, Express (Node Package) web server, Angular (1.. to 5) Web Development, Nodejs multiple uses
L.A.M.P. - Linux operating system, APACHE web server, MySQL (Database), PHP web development
.NET Stack or ASP.NET C# For your backend, use jQuery, SQL, Angular/React.
As you can see a lot to look at or learn. No simple answer to your question.

porting an app built using Tornado framework to Django framework

I have an app that was developed using Tornado framework and Angularjs.
the app is basically a game with two type of users a moderator and players. the moderator and players exchange data in "real time" and a graph is updated based on their input.
I am a decent coder but new to web development and this is just an in case question. Since the app has some issues, and since I will have to learn a framework anyway, I would rather learn Django. I was wondering if there is a resource out there that makes the conversion easier?
What I am looking for is advice on how to tackle this in a way where I don't have to go through the documentation of both frameworks before I can do anything useful.
Ideally, I'd like to incrementally learn more about both frameworks as I make meaningful edits to the app.
From what I see you need to get familiar with two things. Django Rest Framework` which is a great tool, with a really good documentation. Basically it helps you to communicate with you application by REST API. And of course Django.
They also have a tutorial made for starting your way with Django. Which basically have everything needed to start. If you have an experience with Tornado, you will have no problem to work with Django. Here is a link to tutorial.

CakePHP and SOA

I am a PHP developer and wanted to develop a large scale web application in PHP. I have an essay about EMR systems (electronic medical records) using Service Oriented Architecture (SOA). I was thinking about using the CakePHP framework.
Is CakePHP good for large scale web applications and is it good for SOA?
I am looking forward to your guidance.
thanks for your reply burzum, i am thinking to implement it using REST and CakePHP 2. I found some tutorials on the net and of course at cakephp docs, but i have difficulties to catch the point..using REST with CakePHP.Maybe i need more reading about RESTful WS..any suggestions or links to extra resources will be welcomed
Yes, we have a huge app in the same field with over 250 tables and it's working fine and fast. we use a lot of caching techniques and use PostgreSql.
I suggest you to follow the conventions of the framework and get some experience with the Framework before you start building such a huge app that requires high security standards and a good performance.
When it comes to this performance bullshit talk I would say it does not matter which framework you use but how good your team of programmers can use the power of the framework. You can be successfully or build a huge pile of fail with any framework. I've seen both cases in CakePP.
We have played recently a little bullshit bingo with benchmarks for fun and in fact CakePHP 2.1 was beating Yii in their own silly benchmark (just echoing something) if we used more than one simultaneous request. Using a single request Yii was faster.

Expert developer on the Microsoft stack, can't decide between GAE or Microsoft stack

I am creating a website with a friend to try and make some money. Basically, we want to let users aggregate data from different social networking site's APIs (FaceBook, Twitter, etc.) and do some cool things with the data.
My non-developer friend is sold on the Google App Engine because it costs nothing at first, and then you pay as your traffic/data increases. I am torn. I like being able to bootstrap the business like that and have no startup costs (other than time) but I am worried about learning a whole new "programming world" as Joel Spolsky would put it.
I am so comfortable with C#, ASP.NET MVC and SQL Server that I think moving to something like Java or Python on top of BigTable would end up taking about 3x longer to develop (if not more).
Can anyone give me some guidance on this? Basically, I am wondering if there is any way I can have the following with the Microsoft stack:
Free hosting up to some limit of traffic
Ability to scale out at a cost similar to what Google offers with GAE (maybe the hosting service would need to have support for a good scalable persistence solution--like Couch DB?)
For #1, I am OK if that means hosting it on my own server for the ALPHA/BETA phases. For #2 I am hoping that there is a good hosting service out there who can put me on shared hosting servers and charge by the traffic. Does that exist? Thanks!
Unfortunately when it comes to a similar platform then you won't find a MS Stack version. Windows Azure comes close but this is more akin to Amazon's EC2.
The python stack in GAE is really easy to use and was able to make the transition quite quickly. Django is a MVC that is really popular and quite simple to use. It also gives you a ORM to write to BigTable which means you don't actually have to care about it.
The Java implementation is very similar and you can use really well know MVC frameworks for creating your app like Spring
I am also a .NET expert, but I have been using Python-AppEngine for hobby/entrepreneurial purposes specifically because it allows me to bootstrap an new web application at no initial cost. That is critical for me, as I have no budget at all for side projects, and so far, with many deployed AppEngine applications, I haven't spent a penny on it.
Learning a new language can seem like a drag at first, but I have come to find my new expertise in Python to be invaluable. Remember that the best and most employable developers are usually generalists with a broad and flexible palette of skills. My resume features C# and .NET as well as Python and Ruby/Ruby on Rails, and I have gotten very positive reaction from potential clients and employers.
Learning Python was dead easy. Getting a handle on WebOb and Django templates took more effort, but nothing extraordinary. Over time, I built up my own framework layer on top of those things that incorporates the best ideas from Rails and ASP.NET MVC that I missed. You can take a look at it on Google Code, and you will see a number of ideas that specifically borrowed from ASP.NET MVC.

Google app engine vs mochahost or similar

I have developed a site with google app engine using python and django, now I have another similar project to develop.
Well I have got some well-known problems using the datastore:
query: there's no "LIKE CLAUSULE" and GQL is not Sql
documentation is not so clear and easy to find
backup database is not so trivial
django support is not so great (I use google app engine patch)
I'm just a little scared about when my traffic go "into pay mode"
Now, I hope that this site will have a great number of visitors in my optimistic prevision :) so the question is, can an alternative hosting service offer me a professional service like google app engine?
Is it possible to make a professional web site that works starting from a 'conventional' hosting service?
An other stupid question, but I site like this where is hosted??
I'm a little bit confusing about which kind of hosting chosing...
Thanks for help :)
My individual opinion is that App Engine is ideal for prototyping for these reasons:
Free. Nowhere else can you run a web app for $0
Deployment and upgrading is extremely simple
You don't have to worry about backups or networking or anything besides programming
GQL is no problem. There are workarounds. It's a reasonable price to pay for free hosting and scaling.
However, once you think your site is popular, and especially if it becomes profitable, App Engine is not ideal.
Yes it scales. But as your site grows, you always wanting new reports on your data to gain knowledge. This is extremely tough in App Engine. You need case-by-case programming and possibly database changes. That takes time and resources. This is my #1 problem for App Engine for startups or small companies.
You want to control your backup and restore process
It is bad business to be locked in to a sole hosting provider
There is nobody to contact if something goes wrong. Forums schmorums. That's for hobbyists and discussion, not for time-critical problem-solving.
If you plan on having something you think will grow decently, maybe you should launch on something like linode or slicehost, where you have a VPS. That you, you control the instance of django, and have full control over your server. That way, your app doesn't have to contain some of hosting-specific code.
Yes, the initial setup for both may be a little bit of a headache, but you'll be able to create something that is a little more portable
really thanks, for link
yesterday I "discover" that exist IronPython and seems django compatible, or Ndjango for F#, so I love visual studio which one of best developer enviroments (in my opinion) so a good hosting service for microsoft product?
Thanks again I feel you are really an expert developer, so I take really care of your opinion

Resources