Web application · Web Development

Recommendations on frameworks for web applications?

Asad Shaikh AWS/NoSQL/Big Data Architect at Capital One

February 2nd, 2015

There are tons of frameworks out there for web applications, for example, Bootstrap for UI/UX, Node.js for server side runtime environment, Ruby or PHP to process on the server side, etc.  I would like to know what others are using (full stack) out there and why they chose them.

Jonathan

February 2nd, 2015

It's always good to explore new and different technologies, but when time and efficiency matter, use a framework you already know, it's going to be the most productive for you.

Jake Carlson Software Development Manager at Oracle

February 2nd, 2015

Laravel for PHP is my current favorite for backend. V5 should be released this week. Robust, expressive, active community. Provides a more accessible interface to a lot of Symfony components under the hood.

Zurb Foundation is my current favorite for frontend. It embraced SASS (which I prefer to LESS); there are SASS ports for Bootstrap but the fact that they haven't ditched LESS yet turns me off. I generally prefer the flatter look of Foundation's components as well. 

Marcelo Ribeiro

February 2nd, 2015

Ruby on Rails + Bootstrap is always a good option for MVPs. They get up quickly, it's easy to add libraries from the community, and code is always reusable later if you want to go for a API + JS Client. I always go for Rails and I wonder if something easier will exist in the years to come.

Rohit Paliwal COO @ Uvaca, Inc.

February 2nd, 2015

I've used and like Java with PlayFramework as a fullstack framework. You can use either Java or Scala with it and is well architected and is performant. Also, you get access to the huge Java/JVM ecosystem, which can sometimes make a huge difference.

For my next project I'm considering going the Go (golang) route. Primarily use golang for the backend to write services and the frontend to be ReactJS, or perhaps AngularJS, based. But realistically I may have to use a combination of Java and Go, use Java where I need to use some Java libraries and use Go for all the other stuff.

Peter Amalraj Founder at Valore Labs

February 2nd, 2015

We are on Play and couldnt have made as much progress in as little time as we have. Their structure is great, the built capabilities too. And, the concern with ramp up time isnt really warranted.

Cade CSc Senior Application Developer at FAME Inc.

February 2nd, 2015

Asad, it depends on the scope and purpose of the application. The HTML5/CSS/Javascript stack in its various incarnations (Bootstrap, node.js, AngularJS, et al) is a good place to start for simpler web apps. At my job, our apps are built on the ASP.NET platform (with SQL 2012 backend). Admittedly, this is somewhat of a legacy platform, but we are bringing it up-to-date by incorporating HTML5 UI elements (i.e., Kendo UI). This type of platform scales well for large enterprise apps such as ours, but I'm not sure if I would recommend it for all situations. Can you tell us about what type of site/app you're building? (BTW I noticed that you're into machine learning; this is a specialty of mine!).

Anonymous

February 2nd, 2015

When you select a language and platform you need to understand your Architectural Requirements.

Some languages spawn a thread for every request (PHP, Ruby, etc). This limits the total number of concurrent users per server but there are a few ways to add performance with some containers. Java/J2EE does not have these issues. (That's why Enterprises use this.)

If you want to have back ground threads processing something, most languages do not support this (PHP, Ruby) but there are some ways to work around this with Queues (Rabbit MQ, ActiveMQ, etc).

You will want to support secure API's if you have a mobile app so you may want to consider a container like Apache HTTP or NGINX are your front end, let this handle static content and security (SSL type).

The database you choose is critical as well, MongoDB is create for a no-sql solution and is very fast and provides Location Based Queries out of the box and it very scale-abe, but its not transactional (No undo / commit) but MySQL, Postgres and Oracle do support transactions. A schema based database has its pros and cons as well.

HTML5 with Ajax/Rest API calls with something like BootStrap is nice but may take some time to maintain, its gives your pretty good SEO over all.

Angular.js and others have benefits but sometimes suffer from SEO issues so you have to do some work around this.

It depends on what you want, there is no clear "Winner" but there is the better tool for the job.

You would not use ViseGrips to hammer a nail although you could if you had to.

Define your requirements, look at competitors, also factor in your skills or the skills of your developers, you don't want to go too far outside the box and have a huge learning curve.

I see people use PHP for the wrong app but are very successful, even though they never thought about the solution they did wind up with a MongoDB on the back end and Redis Cache everywhere to take care of performance, maybe not what you would want if you were building from scratch unless your were committed to the technology.

Ask your devs what there doing today and what they want to do tomorrow, without the requirements known there is no right answer



Jonathan

February 2nd, 2015

by the way, for those of you who say you like Javascript but want a full stack framework, definitely check out meteor.js, its really impressive and easy to learn. https://www.meteor.com/

Anonymous

February 3rd, 2015

For anyone that already knows Python, give Flask a try.

http://flask.pocoo.org/

I knew nothing about web development, but am proficient in Python and was able to get a decent app up and running with Flask in a day. 

Flask certainly has it's flaws, but it couldn't have been any faster and easier to get started.  It easy to layer in Bootstrap, so you can make the app you slapped together look nice too.

Joanan Hernandez CEO & Founder at Mollejuo

February 3rd, 2015

Hello Asad,

Those framework choices always remind me of this old (but still valid) article. In any case, whatever framework you chose, try to chose it, not for you, but also for people working with you. It might be the most advanced framework on the planet, but if only you can understand it, you'll be the only one able to grow it. I don't know about you, but IF that's the case (you only doing the development in the long term), it doesn't sound like a very safe scaling strategy. Just saying.

Cheers!