5 ms·
I know this is the opposite of what you asked but I find Rails to be keeping pace with modernity much better than its conemporaries! Django seem to have given u
by 0xADEADBEE 8y ago
I know this is the opposite of what you asked but I find Rails to be keeping pace with modernity much better than its conemporaries! Django seem to have given up on integrating websockets (ActionCable has been in Rails for literally years now), nor is there trivial integration for JS assets/asset pipeline functionality. I don't write much of either anymore, but I'd still reach for Rails the instant I need to get something done quickly.
- debuggerpk 8y agofor websockets, django has django-channels https://channels.readthedocs.io/en/latest/ https://channels.readthedocs.io/en/latest/ . But I do agree, django has been a little late to this party.
- 0xADEADBEE 8y agoWhat happened to bringing this into core? Last I was using Django that was the next big integration and it just sort of faded away.
- uranusjr 8y agoAndrew Godwin (the main hand behind the push) burnt out and halted all development until he can find someone someone is willing to help.
- collinmanderson 8y agoThere's a team of 3 now maintaining django-channels, including Carlton who is paid by donations to Django Software Foundation: https://groups.google.com/d/msg/django-developers/mLlWYEC8_G8/cDQwGu6FGAAJ https://groups.google.com/d/msg/django-developers/mLlWYEC8_G...
- Spiritus 8y agohttps://www.djangoproject.com/weblog/2016/sep/09/channels-adopted-official-django-project/ https://www.djangoproject.com/weblog/2016/sep/09/channels-ad...
- dbrgn 8y agoDjango has multiple good asset handling libraries. I like https://django-pipeline.readthedocs.io/ https://django-pipeline.readthedocs.io/. And with django-channels (https://channels.readthedocs.io/ https://channels.readthedocs.io/) Django goes way beyond just WebSockets. You can now do fully asynchronous data processing pipelines. I'm still happy working with Django (which is not something I can say about the JS ecosystem). Especially when doing APIs with Django REST Framework.
- mbell 8y agoIn Rail 6 webpack (with a framework integration via the webpacker gem) is the default system for handling JS, CSS still goes through the asset pipeline though. I wouldn't be surprised if Rails 7 drops sprockets entirely.
- 0xADEADBEE 8y agoI saw this! It makes sense with the proliferation of front end view layers so I'm pleased that there's less work for me to do to integrate things like Vue and React. I was very late to the party with Rails but I do think it gets a lot of things right.
- ksec 8y agoAnd I have been wondering why it doesn't push the CSS to Webpack as well. There is no way in the foreseeable future that Rails could do without JS and hence Webpack is mandatory. We might as well push it as default or easily enabled / disabled via options.
- mbell 8y agoIt's clunky to build CSS 'packs' and it's unclear how to wire in asset helpers e.g. checksum'd file names for images. It's not insurmountable, but there is no obvious best path forward.
- 0xADEADBEE 8y agoFully agree with you - been in the JS world a lot lately and it's not as polished as the more 'traditional' web frameworks. Channels was supposed to make core but never did - what happened there? That's what I was driving at really - if I were stewarding a modern web framework, I would be integrating websocket support. It never sat right with me that something as common as APIs is farmed out to a library in Django (this comes out of the box in Rails with no configuration) either. I don't dislike Django, but I certainly find that there's a lot more messing around to get done things that I would consider pretty standard. I used the new Rails beta last week and I noticed that Webpack integration is now there - how long until we see something like that with Django?
- jrochkind1 8y agoI'm interested in hearing about applications successfully using ActionCable for what and how. It's unclear to me how much use it's getting, or how well it meets actual use cases.
- rohan404 8y agoActionCable is super easy to use out of the box to get WebSockets running, but it's incredibly non-performant. Anything more than 100 concurrent users took the time taken to a send a message to the socket from milliseconds to seconds. Replacing it with the AnyCable gem in conjunction with AnyCable-Go got us to over 1000 concurrent users without a hitch.
- sickcodebruh 8y agoI just deployed ActionCable into production yesterday. I’ll be using it to share some information between our users’ mobile app and our web client. I’m concerned about performance. As much as I know that premature optimization is the Devil, it’s hard to stomach deploying something that is so notorious for becoming a bottleneck. Once I get past my MVP of this feature and have some maintenance hours budgeted, I plan on exploring AnyCable.
- tomschlick 8y agoOn the php side of things, Laravel is doing very well and is very "rails-esque".
- joelbluminator 8y agoHeard of Laravel, it's a Rails fork right?
- tomschlick 8y agoLaravel is definitely Rails inspired, but also takes inspiration from a lot of other frameworks (CodeIgniter, Symfony, .NET, etc).
- joelbluminator 8y agoI was just teasing, Laravel looks solid. It's also comforting to know that if you move from Laravel world to Rails, a lot is familiar out of the box. It's good for us developers and good for the industry. Which I can't say about js stack/elixir/Golang/Spring etc etc.
- noir_lord 8y agoLaravel doesn't follow semantic versioning and more important they are sloppy about backwards compatible changes been documented anywhere. Symfony 4 however is wonderful, they modularised everything, kept backwards compatibility, properly deprecate things and it's fast, like really fast.
- deleted 8y ago[deleted]
- tomschlick 8y agoLaravel as of > 5.5 (5.8 is current) does not release breaking changes in point releases. Yes they don't follow semver but a modified version of paradigm.major.minor
- ileri62 8y agoSerious question: Django doesn't even have lazy loading. Why do people use it? Am I missing something? No way I'd wait a few seconds to get something big from the db
- hombre_fatal 8y agoWhat are you referring to? Lazy loading in Rails tends to refer to how Active Record waits until access time to send the query: https://rubyinrails.com/2014/01/08/what-is-lazy-loading-in-rails/ https://rubyinrails.com/2014/01/08/what-is-lazy-loading-in-r... It's still synchronous.
- sjamaan 8y agoDjango has this type of lazy loading as well: https://docs.djangoproject.com/en/2.1/ref/models/querysets/#prefetch-related https://docs.djangoproject.com/en/2.1/ref/models/querysets/#...
- collyw 8y agoYes it does, the problem seems to be that no one bothers to learn how the ORM works.
- pixelrevision 8y agoInteresting. I always found Django so much more productive than rails due to the auto admin panel being out of the box. If I’m starting something new than its nice to have a place for non devs to enter data immediately. Both do quite a bit better for cleanliness and setup time than any of the other platforms I’ve used for web development.
- nnq 8y ago> nor is there trivial integration for JS assets/asset pipeline functionality ...WHY would anyone ever want that?! I thought that splitting an app into one frontend-app and one backend-app, each in its separate repository too and runable alone is the very minimum everyone does nowadays. (Yeah, later you may go on and chop the backend into microservices, but for starters you at least keep these two sepratate - why would you want to impose knowledge of Python or Django as requirement for your frontend developers?! Even if you start with a couple full-stackers, you'll want to later be able to hire more narrow focused specialists.)
- collinmanderson 8y ago> as requirement for your frontend developers It depends on how big your project is. If you only have one developer it's fine to have to it tightly integrated.
- lightedman 8y ago>Django seem to have given up on integrating websockets Given the insecurity without huge token authorization, I'm not entirely surprised. They can try again when they figure out encrypted and variable token creation.