Things have gotten easier, the barrier to entry is lowered, and despite things being a million times easier than they used to be, they're 'too hard' for someone (it's all relative, after all). So frameworks like Unicorn and Livewire [0] pop up to address these issues...
At a glance it seems to be effort directed towards the spirit of no-code, but the fact that people using these tools can code is the crux of this phenomena. It's a natural tendency to make things easier for ourselves and it's hard to know when to stop as a programmer.
Just yesterday started exploring sockpuppet[1] and was impressed with the speed. Websockets made any change feel instant. Also liked how it uses data attributes to specify dynamic behavior. It should be powerful enough to build simple interactions but has clear way to extend for complexity.
Will try today how sockpuppet works with django-tenants[2], if it does it will become my go-to toolset for web development.
What? This example code contains so many issues...
- why would you write every character to the backend? Do they really encourage storing UI state in the backend?
- this approach fails greatly if a second user starts typing
- it says "no need to learn an additional template language" but continues to define it in the input tag
It looks like the developers of this framework aren't too much into actual client development. Example code should be at least valid to a certain point.
The name is poorly chosen. Many people use gunicorn as a WSGI server in combination with Django, it might even be the most commonly used one (with uwsgi), and I feel like this name is much too close.
I worked with it exclusively for a year. Its ORM is magic, its performance is terrible, its configuration is cryptic at best, its handler system is worse than just writing your own.
You mean of the models? But those are literally created at import time. That's as close to "statically" as things get with python really (except the text of the code).
I agree, the “batteries included” approach makes it very attractive for a new startup to use to get off the ground quickly. But in every case I have seen (3 separate companies now) it lets the team run up a huge amount of tech debt and get a lot of features locked into a very unscaleable, unperformant, architecture.
It’s tempting to prototype with it, but I can’t think of a single use case that wouldn’t be better served with another framework.
Yes, those would also be a very bad choice for a large project. But at least they have the advantage of being very lightweight so can be a good fit for adding simple crud features to a microservice, especially ML services that already need to use python for other reasons.
Django is the worst of both worlds. Not suited for small services, and not able to scale with large ones.
To your "load of crap" point, web development looked very different >10 years ago, Django was a lot better fit for that era. There is _zero_ reason to use it today.
26 comments
[ 4.0 ms ] story [ 67.1 ms ] threadAt a glance it seems to be effort directed towards the spirit of no-code, but the fact that people using these tools can code is the crux of this phenomena. It's a natural tendency to make things easier for ourselves and it's hard to know when to stop as a programmer.
[0] https://laravel-livewire.com/
[1]: https://sockpuppet.argpar.se/ [2]: https://github.com/django-tenants/django-tenants
- why would you write every character to the backend? Do they really encourage storing UI state in the backend? - this approach fails greatly if a second user starts typing - it says "no need to learn an additional template language" but continues to define it in the input tag
It looks like the developers of this framework aren't too much into actual client development. Example code should be at least valid to a certain point.
This is madness.
Everything about Django is terrible.
The ORM is pretty trivially understandable and not magic at all.
The configuration is pretty straight forward and we'll documented.
The url routing is pretty good although it could be improved. It's a lot better than flask when you go beyond an MVP at least.
It’s tempting to prototype with it, but I can’t think of a single use case that wouldn’t be better served with another framework.
Django is not appropriate for production imo
Using flask and SQLAlchemy is worse in every way for example.
Django is the worst of both worlds. Not suited for small services, and not able to scale with large ones.
To your "load of crap" point, web development looked very different >10 years ago, Django was a lot better fit for that era. There is _zero_ reason to use it today.
As do some or many of the other competing technologies
I've been struggling to pick a stack that is super gd simple
But still let me do some SPA stuff for certain parts of the app
I might never actually write a line of code myself, but even so I want to easily be able to tell what my contractor is doing
And fix if necessary
Guide architecture
Maybe choose the initial stack in the first place
I'm overwhelmed at this point as to which stack I can use that will suck the least
Prob the biggest issue I have is just that '80%' number I often see thrown around with these new front end non-js js frameworks
That is, this will probably be able to handle about 80% of your use cases
Tf?
Noooooo
100%, please
At least, 100% of all up-to-medium-or-high complexity use cases
Not that I'm planning on rocket science
The question I want answered for any new tool like this is
Can it do basic UI interactivity like Duolingo?
Ok, then I'm in
Other than that
How to really compare this unicorn for django with livewire for laravel, inertia and or vue for everything, nuxt (which looks interesting), etc.
And my preferred contractor prefers rails, gd.