26 comments

[ 4.0 ms ] story [ 67.1 ms ] thread
Partly telling that we're in a frameworks-for-frameworks stage of webdev.
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.

[0] https://laravel-livewire.com/

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.

[1]: https://sockpuppet.argpar.se/ [2]: https://github.com/django-tenants/django-tenants

Another option is htmx.org. It's similarly small and unobtrusive, and I've found it easy to incorporate into Django templates.
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.

Too complicated. I need a framework for Unicorn.
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.
Django is already terrible. Why build a framework on top of another framework?

This is madness.

What makes you think Django is terrible
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.

Everything about Django is terrible.

I worked with it 10 years.

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.

Sorry, but creating reverse reference fields at runtime that can't be statically checked or enumerated is 100% magic.
Would you mind pointing to the example of a system with less or no magic?
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.

Django is not appropriate for production imo

Entirely agreed. This has been my experience as well.
What a load of crap. I worked for 10 years on a huge code base.

Using flask and SQLAlchemy is worse in every way for example.

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.

What would you suggest as an alternative?
This shit looks cool

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.

I found this post to be almost unintelligible.
You're not alone. I read it twice. Still don't get it. I think he's using Google Translate or something
I thought Django is a framework..
This thing makes total sense and seems like a missing piece of Django
(comment deleted)