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. 

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!).

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.

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.

Jeremy Snyder

February 2nd, 2015

I find frameworks to be a bit misleading. If you have a clear use case that fits a framework, then fair enough. But not many people do. People tend to build apps that fill a missing gap, often not covered by or envisioned with any existing framework.

We picked the right tool for each of our needs. That meant Spring + Riak + Neo4j + ElasticSearch for us.

Frédéric Fadel Owner CTO Aspectize

February 2nd, 2015

We use our own stack, based on ASP.net for the server side and standard HTML5 on the client. Our technology uses AOP techniques for Data Access on the server side and Data Binding in the browser.

We handle SQL Server, SQL Azure and Azure Storage. Apps build with our technology are Single page Apps so not suited for SEO. Our clients are mostly startups that need blazing agility for designing, developing and deploying their fully custom apps continuously without being concerned by technical details.

We are in the MV without C category because our product is a dynamic and universal controller. Our views are dynamic HTML template, and our models are Relational though we usually use NoSQL Azure Storage for persisting our data.

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



Todd Zebert

February 2nd, 2015

The right answer is "it depends" as many have explained above.

An important factor is what frameworks/technologies are the dev(s) proficient with. 

While devs always have to be investigating new techs it should be a hard decision to adopt a new one for a new project.

Personally, I like JS front end frameworks (Angular especially), backed by Node and whatever appropriate DB tech.