7 ms·
I have no love for unnecessarily bloated dependency graphs, but we can't have the cake and eat the cake too. Next.js for example, comes packed with anything an
by hirako2000 3y ago
I have no love for unnecessarily bloated dependency graphs, but we can't have the cake and eat the cake too.
Next.js for example, comes packed with anything and everything one might need to build an app. Sitting on the promise of hyperproductivity with "simplicity". Plus, is made of
single responsability principles set of modules, kind of necessary to build a solve-all needs framework.
And it does that.
A bit like Angular, set to solve everything front-side. With modules not entirely tightly coupled but sort of to get the full solution.
And it did that.
Then we have outliers like React, which stayed away from trying to solve too many things.
But the developers have spoken, and soon enough it became packed in with other frameworks. Gatsby etc. And community "plug-ins" to do that thing that dev think should be part of the framework.
And they did that, solved most problems from authentication to animation, free and open source sir, so that developers can write 12 lines of code and ship 3 features per day in some non innovative way, but it works, deployed in the next 36 seconds, making the manager happy as he was wondering how to justify over 100k in compensation going to a young adult who dressed cool and seemed to type fast.
Oh no! dependency hell. I have to keep things maintained, I have to actually upgrade now, LTS expired,
security audits on my back, got to even change my code that worked perfectly well and deal with "errors", I can't ship 3 features by the end of today.
We need a new framework!
- BiteCode_dev 3y agoDjango comes with a lot: auth, caching, csrf protection, an orm, the admin, form workflow, templating, migrations, i18n, and yet doesn't come with thousands of deps.
- hirako2000 3y agoMaybe django is less so a dependency bloat than most other frameworks. Just called out the common consequences of getting more. You get more. Npm projects are likely the most bloated by far, but also are java based projects, just look at Spring. Calling out a python framework or some Go lean solution being the exception of the rule is fair enough, my point is developers expect everything and have little to do but rapid painless developement I would love to hear about those asked to migrate their python 2.7 django ecommerce app to python3 since v2 is totally dead and unmaintained posing serious security risks. But sure if we forgo these things, and don't ever need to touch the code again, some frameworks have no downside. Makes a certain kind of developers finally be right.
- minusf 3y agoit comes exactly with 2 on latest python versions
- courgette 3y agoI maintains a side project in Django since 5+ years now. The scope has been reduce to almost nothing. I have spend like 20h on it in 2022. But it still being used. Django helps by how boring and solid it feels. A similar project in node would probably not build anymore
- BiteCode_dev 3y agoI know of a 15 years django project that runs on 2.7 that is still making money. It got reinstalled this month on brand new Ubuntu servers out of a rubbish requirements.txt, and it worked. So much for saying python packaging sucks.
- Maxion 3y agoYep, same. Django can also serve a boatload of concurrent users, way more than one would think. It is a boring, old-fashioned, but stable and very functional framework.
- justeleblanc 3y agoSo Next.js did everything right, but is built upon React that does too much. Okay?
- marcosdumay 3y agoBack in the late 90's and early 00's, armed with the experience of C, C++, Bash, and Perl, everybody knew it very clearly that "batteries included" is the correct way to create development tools. I don't know about the current fashion of minimalism comes from. It doesn't bring simplicity.
- hdjjhhvvhga 3y ago> C, C++, Bash, and Perl While I agree with your comment, lumping these together somehow doesn't seem fair. As for C and C++, it took decades to develop package managers, and we can't still say we have standard ones (but I feel Conan is a de facto standard PM for C++). Bash, on the other hand, should never have 'batteries included' because in this case the batteries are the rest of the system - coreutils and the rest. An Perl had CPAN quite early on, in the early nineties iirc.
- marcosdumay 3y agoC is completely without batteries, the stdlib for C++ was a great change and a big force towards people adopting it. The same happened with Bash and Perl (and people did migrate a lot of things into the later).
- itronitron 3y agoIf someone releases a module that depends on nine other modules then their module will likely be promoted by the authors of the other modules, rinse and repeat.