

Ask HN: Which Framework? Why? - edshadi

My friend and I were chatting yesterday about how many people start projects on Ruby on Rails just because it&#x27;s familiar. Also, Ruby on Rails is popular enough that it&#x27;s easier to find engineers to work&#x2F;collaborate on your project.<p>Although generic and I understand that each application has its own requirements and therefore technologies will vary, please help me answer the following questions:<p>- If you&#x27;re building a new web app today, which frameworks, platforms, technologies, etc. would you use? why?<p>- Would you choose a familiar framework that allows you to develop faster (because you&#x27;re comfortable with it) even though it&#x27;s not necessarily 100% &#x27;right&#x27; for the job?<p>- Would you push your own limit and think outside the box to find a better solution even though introducing new technology to the team could be costly (and possibly unpopular)?
======
mynameisme
It doesn't matter, they're all fine. You aren't going to succeed or fail based
on the framework choice. Just use whatever you know. The only non agnostic
advice is for you to use to use Postgres. Don't use something like Mongo, it's
trying to solve problems you don't even have.

------
jenso
\- If you're building a new web app today, which frameworks, platforms,
technologies, etc. would you use? why?

Backend:

NodeJS - It's nice to have javascript on both the frontend and backend. And
NodeJS is FAST.

MongoDB + PostgresSQL - MongoDB for stuff that needs to be fast / fast to
build. PostgresSQL for stuff that doesnt fit the document model.

Frontend:

AngularJS - It's either AngularJS or Ember.js, I prefer AngularJS.
[http://stackoverflow.com/questions/14395887/what-are-
benefit...](http://stackoverflow.com/questions/14395887/what-are-benefits-of-
using-backbone-js-vs-ember-js-vs-angular-js)

Yeoman - Generate boilerplate code

Grunt - Compile LESS, Run tests, CSS minification

Bower - Javascript dependencies management

\- Would you choose a familiar framework that allows you to develop faster
(because you're comfortable with it) even though it's not necessarily 100%
'right' for the job?

I'd rather choose a new framework, at least if it's a project that I will put
serious effort into.

\- Would you push your own limit and think outside the box to find a better
solution even though introducing new technology to the team could be costly
(and possibly unpopular)?

Yes, I would definitely do it.

That's actually what I'm currently doing at a startup. We're refactoring the
current frontend-javascript codebase which is 30 000 lines of code and it's
completely unmaintainable, so we're rewriting it in AngularJS

~~~
edshadi
"It's either AngularJS or Ember.js" is Backone out of the question for you?
how come?

~~~
jenso
First of all, I wouldn't call Backbone a framework. It's more like a library.
It's only about 1500 lines of code with lot's of comments.

If you use Backbone, you'll have to reimplement/include other libraries to use
the right design-patterns. And this takes time. AngularJS and Ember.js makes
these decisions for you which saves alot of time.

~~~
edshadi
I wouldn't call it a framework either, was just curious about your opinion on
it.

------
ctb_mg
My web work these days are personal projects, volunteer work, or small
freelance projects; so I am answering from that perspective.

For paid work, generally I stick to what I know -- a LAMP stack and whatever
MVC/CMS framework fits the job.

My personal side projects are where I push borders and try to research new
solutions. These side projects give me the breadth of knowledge to then be
able to say, "hey, X technology will work really well" for work that is more
important.

If you're asking for opinions on technologies and frameworks --

\- I did a survey of php frameworks a few years ago and arrived at Kohana. It
met my criteria of (1) a lightweight MVC framework, (2) code that is
clean/easy to work with (aka not too much "voodoo" going on), (3) useful
library of utilities (pagination, etc.), and (4) very configurable URL
routing/validation. Developed one small and one medium sized kohana web apps
since then and it is a pleasure to work with.

\- When I was still doing web work under salary, we used an internal Zend-like
framework which was forced upon all devs. The learning curve was high, it was
very convoluted, and kept getting in my way of trying to develop my
application. After I got used to the way it worked, it was more bearable, but
I wouldn't go back there again. You'd have to modify dozens of files to make
the simplest of changes.

\- Very rarely do I write my own libraries or frameworks. There's almost
always someone else out there who has already solved at least part of your
problem.

\- For simple CMS websites, I use wordpress. I started using wp back when
textpattern was still a thing and haven't found any compelling CMS
alternatives in php. It does seem to have gotten bloated in recent years. I
tried Joomla once and decided I wouldn't go there again. It's very confusing,
bloated, and the administration pages are unintuitive.

I'm open to suggestions for alternatives!

------
jyu
Pick the right tools for the job. If you're doing an MVP web app, NodeJS,
Rails, PHP, Django, ColdFusion (N other frameworks here) will all get it done.

Yes, I said ColdFusion. That thing that was hot the 90's.

This post reminds me that customers don't care what stack you use, as long as
it solves their problem: [http://pud.com/post/9582597828/why-must-you-laugh-
at-my-back...](http://pud.com/post/9582597828/why-must-you-laugh-at-my-back-
end)

------
andrewhillman
It doesn't matter. Don't get caught up in the "what's best" HN hype. Don't use
technologies that you're not familiar with. Go with what you know or switching
costs will be high for your team. Go with a language that has a large
supportive community so you can find answers to questions without jumping
though hoops.

------
edshadi
The main point behind this post was to get a sense of what folks are curious
about and opinions on different web technologies. I've built production code
using various frameworks and platforms and have my own opinions about them. I
would love to hear yours. Why did you choose a specific direction on a recent
project for example?

