Hacker News new | comments | show | ask | jobs | submit login

Instead of using RoR or Django (or something really "opinionated"), try looking into Sinatra or Flask (or other small "micro-frameworks" and libraries) where you can mix-and-match your own libraries from different places. This will get you in the habit of weighing the pros and cons of using different packages and tools for different tasks, and it will also force you to learn how to chose the best tool for the job yourself.

I think Rails and Django are great, but they offload a lot of design decisions to the community -- this is great when you want to write maintainable code with a diverse team, but not necessarily the optimal setup for gaining the most useful skills for the future. If you want to be ahead of the curve, try using smaller and more focused tools. Even though an individual piece of the puzzle may occasionally need to be replaced, you will at least know that you hand selected the best tool for your use case, and won't have to shoe-horn another approach on top of it.

Also note that recently web development is moving away from including front-end logic and templating in the server side code. Nowadays developers are focused on building front-end apps (with backbone/ember/etc) that interact with back-end APIs. If you want to move in this direction, Flask and Sinatra can provide all the functionality of Django/RoR without the overhead of all the templating junk you won't use. If you like the ORM of Django, try SqlAlchemy + Flask.

Backbone yes, Ember, likely not. Ember is so new and the core changes so often that it's unlikely that a large number of developers are using it.

Jeff Atwood's new product Discourse is heavily based on Ember, so that's at least one major user.

And it's also using rails for the sever side component

some well known companies are using it http://emberjs.com/ember-users/

and all of those companies are using a server side framework as well - lot's of rails at the other end of that emberjs code

I agree with this - learning Sinatra is a bit closer to the metal (and I'm sure Flask is similar).

Really, the choice of the tool comes down to a lot more than just "what's best today". But some common criteria are:

Language - are you comfortable with the language used in the tool? Conventions - are you comfortable with the conventions used in the tool? Community - what kind of community is around the tool? Is it supported sufficiently by helpful peers? Fit for consumption - does the tool really do the job well? In other words, are you using a tool with the wrong kinds of strengths? (Programs written in C are fast, but writing raw C doesn't make sense for most web apps) Team - Does your team use a particular tool? Are you collaborating with people, and if so, do they have an opinion about the language and conventions used?

Beyond this, it really has to do with aesthetics. Most any tool out there will "do the job", and with reasonable performance. Of course there are plenty that have significant gaps (compare a Wordpress load overhead to static files served by Jekyll, and you'll see an example of this), but at the end of the day, people utilize and patch and hack and ... get the job done.

What looks exciting to you? What are you going to put your heart and soul into learning? What is enjoyable? What works? Choose that.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact