Hacker News new | ask | show | jobs
by roneesh 3956 days ago
I think there can be a few avenues, each worthwhile:

1. Use Rails as a back-end only and commit to a front-end stack like Angular or React+Flux. Rails will continue to be viable for a long time, but even longer as just an easy API server.

2. If you don't know the Node ecosystem, it might be time to dive in. I haven't really enjoyed Express.js, the Sinatra-esque framework for Node, but it can be a good excuse to learn NoSQL db's (though you can use them in Rails as you know) and just increase JS chops. Also if you hire a front-end dev I think it's a tad more likely they'll know Node than Rails.

3. If this is really just to learn, I'd suggest trying other languages, Clojure seems like a great mix of mind-expanding programming along with web ready usage.

4. Meteor.js is a project I'm really interested in. It's 'Rails but for Javascript'. They have funding to stick around for a while, and they have a vision of pushing the web away from stateless API's to an always connected client. This is my answer of what I'd start a new web app in if I had to begin one today.

2 comments

I thoroughly disagree with point 2.

Having tracked the development of the Node ecosystem since its beginning, the amount of unstable libraries and endless churn continues to amaze me, and the tooling solutions still seem very immature for what should be a "serious" development platform.

Honestly, for 99% of things a plain old Rails or Django stack will be fine. Development will be rapid, the devs behind both frameworks seem to care about stability while keeping options open to making your own thing, and you have access to both language's more ample library story, which goes beyond simply making web pages.

If it's just about the concurrency story, there's async frameworks on Ruby and Python. If it's about the performance, V8 eventually ends up hitting the same walls the other languages do, albeit much slower, but with a whole bunch of language and library deficits that are best avoided altogether.

It's amazing to say it, but nowadays even the current story with some PHP frameworks is not bad, ever since some people decided to standardize more parts of their packages and make the language actually suck less.

+1 Currently developing a Node.js / Express application. The choice of platform was a huge mistake. The brittleness of many of the libraries is indeed amazing.
Thanks for the feedback! It sounds like you know the ecosystem more than I do, so it's good to get this point of view.
Thanks for the feedback! It sounds like you know the ecosystem more than I do, so it's good to get this point of view.
Meteor has been a disaster in production for a couple of projects I've seen, and for reasons that would apply to any meteor project.

Basically, atmosphere is pretty but the packages are outdated, broken, or both; the only solution to this is to roll your own packages for every library you use.

WRT NoSQL, very few people need the performance benefit(for specific types of applications, specifically ones with non-relational data) of a document or pure KV store; whereas many can benefit from good old tables and joins. Though SQL as a language in my opinion is not pretty: the utility of SQL databases(my favourite being Postgres) is undeniable.

I've seen POs choose MongoDB because it's "webscale"(believe me when I say we don't need it), and often enough we end up with a situation where with joins our queries would be trivial, but with MongoDB, the queries are often only feasible at all with aggressive denormalization. Such denormalization is typically error prone, complex, and slow to insert.

Node itself is pretty spectacular, if for nothing but the ease with which you can take a synchronous single-node system, and factor it into a distributed system. In most environments this is infeasibly difficult, Rails seems to me like one such environment.

Clojure is an interesting and pragmatic language with a whole lot of cutting-edge work in datastructures having leading implementations there. LISPs also have inherent magical powers which I'm sure you've heard explained ad nauseam by a little-known chap called Paul Graham or something, maybe his website Hacker News is written in one.