Live data from Hacker News

Primate Is the Last Great Web Framework

superarch.org

21–30 of 51 posts

Re: Primate Is the Last Great Web Framework

#21
post #7

The idea of the web-router "owning" the database fills me with a visceral sense of loathing. Data is always the important part of any real program.

Yeah, this was the big red flag for me too. If you're going to try to decouple things, the last thing you should do is add more coupling.

Just a quick mention that there is next to no coupling. If you don't use `primate/store`, none of the ORM code gets pulled in. You could be using any other database client.

The same applies to sessions, i18n, or any frontend. They're all either path'd imports or distinct packages.

Re: Primate Is the Last Great Web Framework

#22
> But web applications are not just pipelines of isolated tools. They are full of shared assumptions: request shapes, validation boundaries, session handling, rendering, routing, serialization, deployment targets.

Some of those things are specific to web applications. Others are not. It's fine for web-specific logic to be tied to all of the shared assumptions of a web framework, but application logic should not be. As the architecture evolves, the application logic may need to be run in other architectural contexts: as a message consumer, inside an orchestration framework, etc.

That's one of the most painful things about PHP. Entire businesses get built around business logic in PHP backends, and then when you need to execute that logic in a different architectural context, every line of it has to be rewritten, because it's too much work to extricate it from the context of serving web requests.

If you are designing your framework to contain application logic, then it should look ahead to the possibility of that logic being used in a different architectural context. It should facilitate and encourage writing application logic that is agnostic of the web context. Otherwise you're encouraging people to repeat the mistake of PHP all over again.

Re: Primate Is the Last Great Web Framework

#23
Coming from Rails, which I’m sure informes part of the philosophy I really like this.

One design value of Rails is “Convention over configuration”, or what I sometimes explain as smart defaults over having to decide everything.

I see this is an area this project can help with; thought through folder and naming conventions; wrestling with issues at the seem between common tools. Making doing things the right way way (like database migrations) becomes the easiest way to do it; most of the time.

A bundle of smart conventions and ways of working that cuts down yak shaving and sometimes solves arguments as the project can be; well we thought on this a lot more than most of you and we’ve gone with this approach to stick these together and if you only half care now you can get this done for free for your apps.

Re: Primate Is the Last Great Web Framework

#24
I remember at the beginning Google didn't want to share their SOTA datacenter with public, considering it a market advantage. So instead of raw VMs they decided to promote the "framework" model, where all the seams are polished, under the name of Google App Engine.

I remember we've been going through a security audit, and many of their questions were about ports security and server access -- well, we did not even have SSH access at all, and only 80/443 ports were accessible. It was a breeze.

However, as market has shown, people really do want finer control, SSH root access, and custom ports. Along with many more fine-tuning. For example, GAE autoscaler did not reassign a request that triggered a new instance, waiting for it to start for 20s even though all requests completed within 200ms, so other workers were available, but the request waited for its own instance to wake up.

So I'm skeptical of "seams hidden" approach, as over and over again I needed to tune that one hidden seam.

Re: Primate Is the Last Great Web Framework

#25
post #22

> But web applications are not just pipelines of isolated tools. They are full of shared assumptions: request shapes, validation boundaries, session handling, rendering, routing, serialization, deployment targets. Some of those things are specific to web applications. Others are not. It's fine for web-specific logic to be tied to all of the shared assumptions of a web framework, but application logic should not be. A…

If you work in a legacy PHP codebase, it's inevitable that you'll see $_GET in the middle of what you thought could be isolated business logic. The coupling that was done in my experience old PHP codebases is awful.

I guess I can't blame PHP because it comes down to the devs to enforce decent boundaries, but I think PHP makes it easier than others to do so.

PHP is so much better now, but if you're writing PHP, there's a very good chance you're not working with that new, clean PHP.

Re: Primate Is the Last Great Web Framework

#30
The English language has no words (yet) to capture that special combination of nausea and embarrassment one feels when they commit in good faith to reading a long piece of prose... only to slowly realize the whole thing is AI generated. But I'm feeling it more and more often these days.
Post reply on HN