Live data from Hacker News

Ask HN: In 2016, will Rails & Django be competitive against newer technologies?

news.ycombinator.com

41–50 of 81 posts

Re: Ask HN: In 2016, will Rails & Django be competitive against newer technologies?

#41

Yes and no. I think: 1) Rails (I don't know Django) will continue to be the quickest way to have a quick full-stack demo/MVP. It is opinionated, and has tools like railsapps that let you customize it. So you can have a solution that includes bootstrap, authentication, stripe-payments, etc., almost completely out of the box. 2) Rails will continue to be plagued with the problems (security, slow dynamic language) etc.…

> the two most influential frameworks (Rails and Sinatra)

You admit that you're a Ruby developer, so you must see that this is slightly blinkered. Influential on what? There's not much Rails brought to the table which was entirely unique, it was just a very good MVC framework in a pleasant language that came along at the right time. And lets not forget that development on Django (which was also very influential), began long before Rails appeared on the scene.

Sinatra I've only heard of in passing, but in the Python world, web.py, Tornado and flask have been also been very significant.

Re: Ask HN: In 2016, will Rails & Django be competitive against newer technologies?

#42
post #19

Play is not "beyond" Rails, it is merely an other community (Java/Scala) that catches up with Rails. Node.js is a joke, I see more and more people "get it". It sure serves a purpose, but the language not being for general purpose, the syntactical problems of JS and the single-trick concurrency model don't make it fit for true disruption. Meteor might be a contender for "next level" (currently it is build on Node i th…

WARNING: A lot of Play/Scala cheerleading from a former Ruby developer. I can't help it. I love my job. Feel free to summarily disregard. ;-)

Play is an evolution for sure. But I'd consider it "beyond". Validation concerns are where they should be: At input. Not the Models. Comet, Websockets, etc are all trivial. Chunked Responses FTW. You don't need different responders. Render _anything_ by having a Writable in-scope.

Our API calls to render our models as JSON look like this:

  api.photos.get(id) map(Ok(_))
The plugin universe isn't there yet, but I tend to think most apps out-grow most framework plugins pretty quickly.

Honestly, I find Play/Scala _more_ productive than Ruby MVC in general. Fewer bugs. Much better performance and memory usage, so fewer constraints (that one is huge). Rework is much easier, but also much less necessary. The language itself is a joy (IMO) to work with.

The Java ecosystem is a huge enabler. You can have complete control over resizing images in ImgScalr, faster, with no external dependencies, in less code and a flatter learning curve than anything I've ever used in Ruby. Scala itself presents a lot of new things to learn and get comfortable with language-wise until you feel you're back in the groove, but once you've got it, I've found that the ecosystem makes the complex things much easier, and the language itself makes the easy things engaging as well.

Ruby doesn't really help much trying to tackle hard problems IME. Image Resizing? Better shell out to ImageMagick. Dubbing a video? Hello shell my old friend. Cache coherency across a cluster? Fire up another external service (maybe Redis) to manage and start working through failure modes and failover scripts if you care about availability. Compare that to Hazelcast. Need to serve static assets? Better setup an NGinx proxy. In-memory near-caching? You don't have the memory for it, and the GC can't handle it anyways, stick to Redis.

Put a crew of experienced Play developers head-to-head with experienced Rails developers, give them the same goals (and non-goals), and you'll have a faster, more maintainable solution from the Play team in the same or less time for anything but the most trivial apps.

IMO. :-)

Re: Ask HN: In 2016, will Rails & Django be competitive against newer technologies?

#43
I don't see anything "in the pipeline" which would be able to compete with Django in its core domain. Not even Rails, whose main advantage over Django are larger adoption and some better tooling (IMHO).

Certainly not Node.js. The tooling isn't there yet, the javascript language is still a barrier for maintainable code and the asynchronous model as a default comes with very high complexity costs.

Play requires Scala, and I just don't see typical web folks switch to Scala (an otherwise great language) in droves.

Clojure? Really? Yes, Lisp is great. But it's not going to get popular in 2 years and it seems to require some intellectual fortitude that is probably harder to find on the job market than Django talent.

Re: Ask HN: In 2016, will Rails & Django be competitive against newer technologies?

#44

I enjoy the Indeed.com job trends for this sort of thing: http://www.indeed.com/jobtrends?q=ruby%2C+python%2C+php%2C+n... I'm a Ruby/Rails developer (and I run MemphisRuby) and while I seriously enjoy working with Rails I don't expect it to be as popular ten years from now. Rails is still tremendously good at what it does and I don't think it's likely that another framework or language is going to beat it at its own…

+Java (dwarfs the others) http://www.indeed.com/jobtrends?q=ruby%2C+python%2C+php%2C+n...

http://www.indeed.com/jobtrends?q=ruby%2C+python%2C+php%2C+n...

;)

Re: Ask HN: In 2016, will Rails & Django be competitive against newer technologies?

#45

Earlier quoted context omitted.

C isn't a framework.

C is to low-level OS-independent programming as Rails is to web programming.

No it's not.

Ruby/Rails is the past decade's version of VBScript/ASP3. It's not a foundational technology. As huge of a fanboy as I am of Scala/Play, the C comparison would be as unjustifiable with those as well.

Re: Ask HN: In 2016, will Rails & Django be competitive against newer technologies?

#46
post #19

Play is not "beyond" Rails, it is merely an other community (Java/Scala) that catches up with Rails. Node.js is a joke, I see more and more people "get it". It sure serves a purpose, but the language not being for general purpose, the syntactical problems of JS and the single-trick concurrency model don't make it fit for true disruption. Meteor might be a contender for "next level" (currently it is build on Node i th…

Play is not "beyond" Rails, it is merely an other community (Java/Scala) that catches up with Rails. In many ways, it is beyond Rails. For instance, it offers type-safe URLs and builds upon the Akka actor framework (allowing you to schedule asynchronous tasks, make reactive web applications, etc.).

[deleted]

Re: Ask HN: In 2016, will Rails & Django be competitive against newer technologies?

#47

I enjoy the Indeed.com job trends for this sort of thing: http://www.indeed.com/jobtrends?q=ruby%2C+python%2C+php%2C+n... I'm a Ruby/Rails developer (and I run MemphisRuby) and while I seriously enjoy working with Rails I don't expect it to be as popular ten years from now. Rails is still tremendously good at what it does and I don't think it's likely that another framework or language is going to beat it at its own…

With the risk of starting a flame war, what exactly makes Rails inherently better than Django in standard web applications? If Rails is not better in performance, elegance and rapid development, what then?

Re: Ask HN: In 2016, will Rails & Django be competitive against newer technologies?

#48
post #19

Play is not "beyond" Rails, it is merely an other community (Java/Scala) that catches up with Rails. Node.js is a joke, I see more and more people "get it". It sure serves a purpose, but the language not being for general purpose, the syntactical problems of JS and the single-trick concurrency model don't make it fit for true disruption. Meteor might be a contender for "next level" (currently it is build on Node i th…

I think Rust with a new framework might get some momentum in coming years.

Re: Ask HN: In 2016, will Rails & Django be competitive against newer technologies?

#49
post #19

Play is not "beyond" Rails, it is merely an other community (Java/Scala) that catches up with Rails. Node.js is a joke, I see more and more people "get it". It sure serves a purpose, but the language not being for general purpose, the syntactical problems of JS and the single-trick concurrency model don't make it fit for true disruption. Meteor might be a contender for "next level" (currently it is build on Node i th…

Play is not "beyond" Rails, it is merely an other community (Java/Scala) that catches up with Rails. In many ways, it is beyond Rails. For instance, it offers type-safe URLs and builds upon the Akka actor framework (allowing you to schedule asynchronous tasks, make reactive web applications, etc.).

> builds upon the Akka actor framework

This is really where Play shines. I wouldn't bother with Play for a basic CRUD app, it makes you do too much grunt work yourself (e.g., authentication). But when you have a backend built on Akka and want to build a reactive, event-driven front-end Play makes it trivial.

Akka is the key. Its actor model just makes reasoning about concurrency so easy because of how it deals with state. Add in remoting and clustering and you've got a highly scalable, event-driven clustered backend without too much extra work on your part. Play fits into that sort of ecosystem quite nicely.

Re: Ask HN: In 2016, will Rails & Django be competitive against newer technologies?

#50

Yes and no. I think: 1) Rails (I don't know Django) will continue to be the quickest way to have a quick full-stack demo/MVP. It is opinionated, and has tools like railsapps that let you customize it. So you can have a solution that includes bootstrap, authentication, stripe-payments, etc., almost completely out of the box. 2) Rails will continue to be plagued with the problems (security, slow dynamic language) etc.…

> the two most influential frameworks (Rails and Sinatra) You admit that you're a Ruby developer, so you must see that this is slightly blinkered. Influential on what? There's not much Rails brought to the table which was entirely unique, it was just a very good MVC framework in a pleasant language that came along at the right time. And lets not forget that development on Django (which was also very influential), beg…

> You admit that you're a Ruby developer, so you must see that this is slightly blinkered. Influential on what?

On frameworks in other languages, both in terms of design/motivation and expectations; one indication of this is the frequency of phrases like "sinatra style framework" or "rails style framework" to either (a) describe an existing web framework for a different langauge, or (b) describe what someone is looking for in a web framework in a different language.

I'm not sure I've ever seen the same thing with Django, web.py, or Tornado. I've seen it with Flask, but its been basically a subset of the times I've seen it with Sinatra (that is, I've seen things like "Sinatra-style framework" and "Flask/Sinatra-style framework", but not "Flask-style framework" on its own.)

Post reply on HN