TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

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

66 点作者 notwhyships超过 11 年前
Do you think Rails and Django (and the like) will evolve to remain competitive with newer technologies like Node.js, Meteor, Play, etc (not to mention, whatever&#x27;s next)? Or will they largely be legacy technologies, i.e. still in wide-use but not frequently selected for the best new projects?<p>Edit: Please note that the question is not whether or not Rails and Django developers will still be in demand in 2016. I&#x27;m confident they will be. The question is will the best new projects in 2016 consider using Rails and Django.

20 条评论

quaunaut超过 11 年前
Note, I&#x27;m a complete newbie. I spent 12 months doing a Django job, and started a Rails job about ~4 months ago. Before that I followed frameworks but wasn&#x27;t nearly as engaged.<p>The impression I get, is that in general, these languages and frameworks will age, get boring, and eventually be something used because of legacy, the existing codebases. Is this bad? Of course not! It means there will always be a wealth of well-documented, high quality software to work with.<p>But really, the only way to fight off not being &#x27;boring&#x27; is by trying to always do the brand new technologies, always having a way of implementing them. Rails with Turbolinks, to pseudo-mimic frontend JS frameworks. Rails also implementing server side events, moving web sockets closer to &#x27;the norm&#x27;.<p>Will they still be the hot go-to languages&#x2F;frameworks 5-10 years from now? Probably not. Rails will probably feel then like PHP does now(&#x27;old and safe&#x27;, with better options available for most cases), and something like Go or some other incredibly thin means of maintaining a backend API to facilitate frontend Javascript frameworks. And after that, who knows. Maybe the web as pages will die 10-15 years from now, instead being replaced by something more akin to a pluggable game or OS engine. Maybe holograms. Maybe we just get robots and call it a day.
评论 #6482691 未加载
dpritchett超过 11 年前
I enjoy the Indeed.com job trends for this sort of thing: <a href="http://www.indeed.com/jobtrends?q=ruby%2C+python%2C+php%2C+node&amp;l=" rel="nofollow">http:&#x2F;&#x2F;www.indeed.com&#x2F;jobtrends?q=ruby%2C+python%2C+php%2C+n...</a><p>I&#x27;m a Ruby&#x2F;Rails developer (and I run MemphisRuby) and while I seriously enjoy working with Rails I don&#x27;t expect it to be as popular ten years from now.<p>Rails is still tremendously good at what it does and I don&#x27;t think it&#x27;s likely that another framework or language is going to beat it <i>at its own game</i>. The real question is whether or not the things that Rails does best will continue to be important in the marketplace.<p>We&#x27;ve already seen parts of Rails&#x27;s core competencies carved out by other tools: Erlang&#x2F;Node&#x2F;Go enable saner async programming. Backbone&#x2F;Angular&#x2F;Ember enable rich web applications. Scala&#x2F;Clojure&#x2F;Go&#x2F;etc. on the &quot;fast compiled backend services&quot; front. Even PHP is keeping pace with the times (Composer, Laravel) just enough to keep its adherents from having a real reason to jump ship.<p>Ruby and Rails are still pretty much as good as it gets for rapid development of web applications (the backend parts of MVC, anyway), and there&#x27;s a growing Ruby niche for configuration management (Chef, Puppet, etc).<p>Personally I find my investment in learning and working with Ruby has been a great way for me to experience a much wider variety of technologies and architectures than I would have otherwise. Thanks to Rails work I&#x27;ve learned tons about AMQP, Postgres, Chef, Backbone, JavaScript, CSS, Ansible, DNS (bind), and more that I just wouldn&#x27;t have had the same exposure to in a slower-paced development environment.<p>Your ending line about &quot;still in wide use but not frequently selected for the best new projects&quot; is a bit complicated. Certainly any language stays in wide use once it falls out of fashion and its projects categorically move to the &quot;legacy&quot; phase, but &quot;best new projects&quot; is a bit much. A lot of what we might think of as the &#x27;best&#x27; projects are driven by fashion just as much as technical merits.
评论 #6482320 未加载
评论 #6482590 未加载
评论 #6482747 未加载
评论 #6483900 未加载
评论 #6482587 未加载
ludicast超过 11 年前
Yes and no. I think:<p>1) Rails (I don&#x27;t know Django) will continue to be the quickest way to have a quick full-stack demo&#x2F;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.<p>2) Rails will continue to be plagued with the problems (security, slow dynamic language) etc. but it will always have workarounds like jruby, celluloid, rails-api, in-memory-models (I wish this was more common). The community is vibrant enough to keep plugging along and fixing the gaps.<p>3) I don&#x27;t think it&#x27;s a coincidence that the two most influential frameworks (Rails and Sinatra) were written in Ruby.<p>4) Eventually people&#x27;s MVP will move to something like Scala, following the example of Twitter and LinkedIn. Static languages that encourage functional behavior improve speed and safety.<p>5) Play is interesting. I am checking it out now, and seeing how I can move a rails app to it.<p>6) Node serves the lowest-common-denominator in my opinion (it caters to non-polyglots). I use it for certain things (a workflow for prototyping phonegap apps, and client-side tooling) but I personally think it is way overhyped. However it definitely has a place, and will continue to have one.<p>7) If Rails does someday &quot;die&quot; that&#x27;s okay for dhh&#x27;s legacy. His framework is spiritually part of whatever comes next and raised the bar as much as Seinfeld did for television.
评论 #6482711 未加载
ashray超过 11 年前
Rails and Django have moved from the obscure into the mainstream. 5 years ago if you wanted to hire a Django developer it was pretty hard. It&#x27;s still way harder to find Django developers compared to PHP devs.<p>As a company, if you push yourself into a corner with newer tech like Node, Meteor, etc. you may come up against hiring issues. Not only that, but Rails and Django are also evolving with time so they too get better with time.<p>The &quot;age&quot; of a technology isn&#x27;t the only reason why it gets selected, it gets selected because of a number of factors including features, programmer availability, programmer expenses (in terms of both time and skill), proven track record, etc. Usually age is a plus point in many ways.<p>Rails and Django will certainly be around and competitive. However, if you&#x27;re asking from a programmer salary perspective then yes, there will be many more Rails and Django programmers by 2016, so moving into more edgy tech might give you a USP, but you may also end up without a place to work in. Maybe knowing Rails&#x2F;Django + &quot;shiny new tech&quot; is a better combo ?
评论 #6482617 未加载
etchalon超过 11 年前
Play doesn&#x27;t belong in that list (it&#x27;s really just a Java-version of the basic request&#x2F;response cycle design that plagues Django and Rails, Scala or not).<p>Django is sadly hampered by two fairly complex problems. The first, is their insistence on backwards compatibility and stability. While it&#x27;s becoming obvious that the basic design of Django creates serious problems when moving away from the request&#x2F;response cycle, it&#x27;s a very hard problem to fix if you can&#x27;t fundamentally change core assumptions within the framework. Second, Python 3 (sans Tulip) just isn&#x27;t up to snuff for asynchronous coding. Twisted is a mess, Tornado is far too simple.<p>The Rails team seems more willing to break with the past between releases, but its still hampered by Ruby&#x27;s inherent performance disadvantages.<p>Ultimately, while none of these frameworks are disappearing any time soon, it&#x27;d be fair to say that many engineers, particularly those working at the edge of the industry, are choosing things like Node, or Go.
评论 #6482485 未加载
评论 #6484225 未加载
评论 #6482559 未加载
评论 #6482475 未加载
arocks超过 11 年前
Frameworks evolve and adapt to changing needs. But they try to stick to their core design philosophies. Django&#x27;s philosophy is quite general[1] and might stand the test of time.<p>Some of the reasons Rails and Django might fall into legacy could be the due to the underlying language itself. If Python continues to be affected by GIL related multiprogramming issues or lack of stronger types, then the associated web frameworks like Django would also be affected. Then there are always non-technical factors like hype and community interest.<p>Currently, Rails and Django have crossed a certain critical mass in adoption, they are effective for a majority of web programming usecases and have a thriving third party developer community. So my guess is that it would be pretty much a solid choice in 2016 as well.<p>[1]: <a href="https://docs.djangoproject.com/en/dev/misc/design-philosophies/" rel="nofollow">https:&#x2F;&#x2F;docs.djangoproject.com&#x2F;en&#x2F;dev&#x2F;misc&#x2F;design-philosophi...</a>
bayesianhorse超过 11 年前
I don&#x27;t see anything &quot;in the pipeline&quot; 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).<p>Certainly not Node.js. The tooling isn&#x27;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.<p>Play requires Scala, and I just don&#x27;t see typical web folks switch to Scala (an otherwise great language) in droves.<p>Clojure? Really? Yes, Lisp is great. But it&#x27;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.
secstate超过 11 年前
I&#x27;ve said this before here, but to me Django occupies a very different place from a lot of the more recently developed frameworks. And as lame as it sounds, a big part of it is in the large, complicated content-heavy site (go figure, it was developed in a newspaper environment).<p>Sure, Django can be used to build single page sites and flow-heavy web apps. But that&#x27;s not its strength. Just as you end up having to do a lot of custom programming to make Meteor or Node&#x2F;Derby work for a site with 15 different content types and multiple backend administrators, but that&#x27;s not their strength.
tomasien超过 11 年前
Rails was released in 2003, and 2013 is almost over. So the question is &quot;in 2 years, will Ruby on Rails still be popular and competitive&quot; - yes. VERY much yes. In 10 years, we can debate that, but in 2016? No way!
agibsonccc超过 11 年前
I think one notable thing to observe with any of these frameworks is that backends as REST APIs with a javascript heavy front end are becoming more common.<p>Many of these frameworks won&#x27;t disappear but I think adapt to the newer trends.<p>Whether we like it or not java is still here and used, I don&#x27;t see why rails and django won&#x27;t be.<p>The whole point of software is it evolves. These projects both have enough of a following to receive updates to fit those new paradigms.<p>They may not be as suited for something built from the ground up for that specific use case, but that doesn&#x27;t mean they will disappear.
评论 #6482396 未加载
评论 #6489111 未加载
评论 #6482625 未加载
apphrase超过 11 年前
The framework choice is not an independent evaluation, you have to take into consideration the accumulated experience level of prospective engineers you can grab within your reach. That&#x27;s why actually all of the mentioned frameworks will be alive and going. It is increasingly hard to go exotic, if you are thinking of growth and agility. Otherwise you can paint yourself into a corner where recruitment is impossible and a big rewrite is inevitable.
danso超过 11 年前
What is the perspective of longtime PHP&#x2F;Wordpress&#x2F;Drupal developers on this? I&#x27;ve done WP and Drupal briefly before doing Rails, basically all the time. But since then I&#x27;ve also built things in Sinatra and JS frameworks, too.<p>For awhile, I didn&#x27;t touch Rails but went back to it and was pleasantly surprised that even though I enjoyed using Sinatra and Padrino, the weight that Rails&#x27;s magic adds is counter-balanced by convenience that is most welcome to developers.<p>I contrast this with Drupal&#x2F;Wordpress, in which the version upgrades make the platforms easier to build out for clients, but not much easier to develop for, in terms of either developing plugins or customizing the install (not sure with Drupal, I quit at around v5).<p>To me, it seems like Rails is adding some things I may never use, but those things seem to be optional...And from 3 to 4, they did cut back on some magic-hacks, such as the magic-finders that were too susceptible to security flaws.<p>I think a big part of why Rails may have better longevity than previous uber-platforms is because of its focus on testing. So it&#x27;s quite feasible that Rails can always adapt (by being more modular) without causing unmitigated chaos in the developer ecosystem.
评论 #6489407 未加载
k1w1超过 11 年前
I think that Rails has a lot of life left because it be influenced by the new techniques that are being pioneered in other frameworks. In the same way that Rails inspired frameworks in other languages - new technologies like node and meteor can inspire Rails too.<p>For example, at aha.io we use Rails, and wanted to get the front-end performance of a Javascript-heavy app, but by taking advantage of what we know (which is writing ActiveRecord models, Rails controllers and ERB views). So we borrowed a technique from Meteor and made our views reactive - using Rails for the view rendering. That way we get the best of both worlds: the code only needs to be written once in Ruby, but the performance and reactivity is like an app that has a Javascript front-end.<p>This is just one example, but there lots of similar examples (think about the increasing use of functional programming styles). The incredibly rich ecosystem around Rails means that stuff just gets done faster - the ecosystem has done most of the work for you. Apart from Django, every other framework is still playing catchup.
评论 #6482635 未加载
cies超过 11 年前
Play is not &quot;beyond&quot; Rails, it is merely an other community (Java&#x2F;Scala) that catches up with Rails.<p>Node.js is a joke, I see more and more people &quot;get it&quot;. 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&#x27;t make it fit for true disruption.<p>Meteor might be a contender for &quot;next level&quot; (currently it is build on Node i think, but that might change one day), I also consider Yesod (Haskell) and some of the web stuff on Clojure to be good contenders.<p>I think it will not be merely a new FW that changes the scene, I expect it to be a new language along with that.
评论 #6482716 未加载
评论 #6482586 未加载
评论 #6482566 未加载
评论 #6482513 未加载
评论 #6482749 未加载
dragonwriter超过 11 年前
It&#x27;s worth noting that Rails has adapted to compete with alternative Ruby frameworks that arose to deal with Rails issues (both general and specific use cases), and has merged with one of the alternatives. Insofar as either Ruby the language or the main Ruby implementation are issues holding Rails back, both have evolved considerably and continue to, and several alternative implementations capable of hosting Rails have developed.<p>Rails has quite a bit of life left. Sure, with more choices of frameworks available, there&#x27;ll be fewer cases where it&#x27;s the only viable choice for a project, but it will be competitive for some time.
mdasen超过 11 年前
I feel like this isn&#x27;t asking the right question. The answers you&#x27;re going to get are going to be a combination of a) people&#x27;s perception of what Rails and Django can do and b) people&#x27;s perception of what the future of the web.<p>So, let&#x27;s first look at what Rails and Django can do. Ruby and Python are both slow languages compared to Java, Go, C, and even JavaScript (thanks to companies pouring a lot of work into it). However, computing power is increasing. In the Ruby and Rails world, there has been good work on JRuby, Puma, etc. to help concurrency and move away from the process-based concurrency model. I&#x27;m less familiar with Django here, but Python does have frameworks built for concurrency.<p>Now let&#x27;s look at Node.js, Java, and Go. All three have good support for handling multiple connections within the same process (via. eventing, threading, and goroutines). Rather than taking up a process per connection, they just add a little bit of RAM overhead and get to stay in the same memory space with cheaper context switching (or none in an evented system). That deals well with long-running processes that would otherwise block a process, tie up RAM, etc.<p>So, Rails is improving its support for running in a threaded environment and while I don&#x27;t know as much about Django, Python does have other options addressing this issue. But as it stands today, alternatives have a speed advantage and somewhat by-default operate in a better way for concurrency.<p>Now, if we&#x27;re looking toward the future, what do we need this for? We don&#x27;t need this for things like serving CRUD. If you&#x27;re trying to keep lots of connections for a chat application waiting for a response, that can be better served by alternatives. However, it should be noted that 37signals does chat via Rails. When thinking about the future, you should think about what is happening in the application and how that affects things like context switching, RAM usage, etc. I don&#x27;t want to predict the future. If you want to, think about how applications may work that would be better served by systems that don&#x27;t rely on process-based concurrency.<p>As some unsolicited closing advice, I find that a lot of people spend an inordinate amount of time worrying over their tools. They want to pick the one set of tools that will last for eternity. Just as your laptop will age and be replaced, the code you write will. Obsessing over tools keeps many from doing anything. There&#x27;s a lot of low hanging fruit. I&#x27;m guessing you see things you want to build - things you could improve upon. Don&#x27;t worry about having to modify, extend, and do things differently in the future if it&#x27;s keeping you from doing anything today. Tools are just that: tools. They aren&#x27;t your product. They&#x27;re meaningful. Using a better tool is more enjoyable and can create a better outcome. But don&#x27;t obsess about it trying to guess the future and insulate yourself from future work. Build!
评论 #6483009 未加载
natural219超过 11 年前
<a href="http://www.google.com/trends/explore#q=clojure%2C%20ruby%20on%20rails%2C%20node.js%2C%20golang&amp;cmpt=q" rel="nofollow">http:&#x2F;&#x2F;www.google.com&#x2F;trends&#x2F;explore#q=clojure%2C%20ruby%20o...</a>
al2o3cr超过 11 年前
I dunno, is C still &quot;competitive&quot; with newer technologies? ;)
评论 #6482473 未加载
antihero超过 11 年前
Yes, because they are perfectly suitable to a great deal of use cases (websites with interesting things), and provide a huge amount of functionality that you do not get with the other ones.
itsbits超过 11 年前
with Play and Laravel catching up, its hard to see Rails surviving long...