This approach is notorious for generating inefficient sql queries, but it can improve jr fronted dev productivity b/c a tool like this is easier to learn than SQL.
Maybe it would be popular for new engineers that don't feel like learning SQL. Same reason why MongoDB got popular.
That may be a bit harsh, but I’d rather them learn something they can use forever rather than the flavor of the week. Additionally, by learning SQL, they’d be able to apply that domain knowledge to building out queries in the flavor of the week since you know some limitations of the underlying.
> Maybe it would be popular for new engineers that don't feel like learning SQL. Same reason why MongoDB got popular.
We have more and more senior engineers who want to use Prisma, as they just realized that writing SQL by hand is a waste of time.
Let's be honest - learning SQL is still a great skill. Data analytics etc - there are great use-cases.
But if you want to get stuff done and scale your team when building an _application_ - you should have a data layer.
That's what Facebook, Lyft, Airbnb etc did - they have a dedicated data layer and a team working on that. Do you think an application engineer at Facebook writes SQL? No. Of course not, it would be a total waste of time to let them touch such a low level. It would not allow facebook to scale to where they are, if everyone would write direct SQL.
Now the thing is, most small teams don't have the capacity to write a really performant awesome data layer with caching, deduping etc.
That's where Prisma comes into play - Prisma gives the weekend producthunt warriors, but also the enterprise teams (like Tryg) a way to abstract away the database.
But it's just a library you say? That's true. So in that sense, Prisma is not really a "layer", a different component in your architecture that you can horizontally scale.
For that - stay tuned. The "client" part can already easily be separated from the "query engine" part (which btw is written in Rust) because they speak http. But step by step. For most people, being able to install an npm dependency is the most important part here. But one thing you can already get used to - Prisma will stick around and _not_ just be a thing that new engineers who don't feel like SQL use.
You get type safety if using it with TypeScript though: this is where Prisma adds a lot of value. Compile-time warnings, ease of refactoring...
If you are a grumpy HN troll, then Prisma might not be for you, and that's okay. SQL is great for many cases, and you might not need to expand your horizon.
If you do choose to look into Prisma and have serious thoughts on how we could improve, then I would love to get on a call to talk about it (contact info in bio).
I guess I am, since I expect a new company with a confusing value proposition to show me why they're better than 50+ years of proven RDBMS technology vs. an "OK Boomer" watch a video and "serious questions only".
And you WORK for this company? Better develop a thicker skin...
Not only does he work for this company. He co-founded it. Unbelievable response from a co-founder.
I've had my reservations about Prisma (I don't think it solves a problem for me), but this pretty much discourages me from using it entirely.
I too don't understand what I would use this product for. That doesn't mean it's a bad product, I just don't have a personal need for it.
I don't really like eating grapefruit. If you're a grapefruit farmer, it doesn't mean you farm a bad fruit. Lots of people like grapefruit. I just don't like it personally.
Calling someone like me an "HN troll" because they're critical of your product is a pretty bad look.
If you scroll down the page, you will see a different thread where Kevas compare Prisma to left-pad.
Kevas is a grumpy HN troll, and I have no patience for that.
As you will see from all other interactions on this page, on twitter and on our 30.000 developer strong Slack community, we engage happily and constructively with anyone who comes with curiosity and an open mind. But if you come with negativity we will ask you to find another community to hang out in.