5 ms·
While I have no experience with Django, this could exactly be said about Rails. It's great these two exist and are being worked on for so long and have this lev
by top_sigrid 5y ago
While I have no experience with Django, this could exactly be said about Rails. It's great these two exist and are being worked on for so long and have this level of maturity.
- adamauckland 5y agoyes, they are very similar. I'm not sure if Rails has quite the level of auto-generating admin system, though.
- ksec 5y agoI wonder why Django seems to have a easier time in hiring, considering it should be a smaller market than Rails. Even on HN monthly hiring list Rails and Django open positions is roughly 3:1. And yet I rarely hear Django people ever complain about the lack of talent pool.
- smoe 5y agoI reckon, Ruby and Rails while still heavily used has fallen out of fashion since it's peak time, whereas Python has gotten a huge boost in recent years from data science and being a common teaching language which spilled over to other uses of the language. In the mid 2010s the python web application space felt very stagnant to me, many semi abandoned projects, lots of people leaving for other technologies. But there has been quite some reversal on that since.
- traverseda 5y agoPython is a very popular language, and if you know Python Django is easy.
- sireat 5y agoDjango seems to add too much magic for me. It is mostly manage.py this manage.py that. I can't grok it completely. All the books that I read on it skipped the architecture part. Maybe there is a good guide to Django architecture - the big picture? PS I am rather experienced in Python (Numpy, Pandas, Plotly, Flask, SQLAlchemy, FastAPI, BeautifulSoup are my bread and butter)
- derekjdanserl 5y agoYou list a bunch of libraries, but Django is not a library. It is a framework. The Django file structure, for example, is not exactly optional in Django. Realize FastAPI follows in the footsteps of Flask. Neither FastAPI or Flask are frameworks. As a FastAPI user myself, I do think it’s closer to a happy medium, but it’s nothing remotely comparable to Django. When using Django, the best advice I have is to dive all the way in. Follow the docs and the best practices first. Besides, manage.py is just like having a well-developed kit of shell scripts/ in your repo.
- sireat 5y agoI am well aware that Django is a framework and yes it is quite strict about the way you set it up. That is a reasonable price to pay for the batteries included approach. What I am saying that I do not grok the big picture of Django flow. For some reason I got up to speed with Laravel much faster and I do not write much PHP. The books that I skimmed (like recommended Two Scoops of Django) just go into various things you can do but do not show the big picture.
- traverseda 5y agoYou write views, and they render templates. There's a file called `urls.py` where you import a view and attach it to an actual url. So appconfig/urls.py depends on yourapp/views.py which renders html using a template at yourapp/templates/sometemplate.html Presuming that you want to interact with the database `yourapp/views.py` probably also depends on models from `yourapp/models.py` or some other apps database model.
- csdreamer7 5y agoAs a former Rails dev, my two cents is that the language keeps breaking. The small changes in 2.7 were understandable, but quiet a few gems that I used broke in 2.4, and in 2.5. It was a pain to fix, some were never updated. Much how people complain that changing strings in Python 2->3 hurt adoption; we have had breaking changes that can break gems almost every release. Ruby is a great language, but Python is so much less stressful, easier to find working libraries, and easier to find jobs. The last reason is likely because of the first two. It is fine to add things, but when you keep changing the language and breaking things; people hesitate to write software in it. There is a reason the Linux kernel has a rule about (almost) never breaking user-space.