expr

joined 2 years ago
[–] expr@programming.dev 9 points 5 days ago

Naturally, vim is still acceptable.

[–] expr@programming.dev 3 points 5 days ago

Except it's not seamless, and never has been. ORMs of all kinds routinely end up with N+1 queries littered all over the place, and developers using ORMs do not understand the queries being performed nor what the optimal indexing strategy is. And even if they did know what the performance issue is, they can't even fix it!

Beyond that, because of the fundamental mismatch between the relational model and the data model of application programming languages, you necessarily induce a lot of unneeded complexity with the ORM trying to overcome this impedance mismatch.

A much better way is to simply write SQL queries (sanitizing inputs, ofc), and for each query you write, deserialize the result into whatever data type you want to use in the programming language. It is not difficult, and greatly reduces complexity by allowing you to write queries suited to the task at hand. But developers seemingly want to do everything in their power to avoid properly learning SQL, resulting in a huge mess as the abstractions of the ORM inevitably fall apart.

[–] expr@programming.dev 3 points 6 days ago (1 children)

Access modifiers are definitely something I despise about OOP languages, though I understand that OOP's nature makes them necessary.

[–] expr@programming.dev 8 points 6 days ago (2 children)

The encryption thing is definitely weird/crazy and storing the SQL in XML is kinda janky, but sending SQL to a DB server is literally how all SQL implementations work (well, except for sqlite, heh).

ORMs are straight trash and shouldn't be used. Developers should write SQL or something equivalent and learn how to properly use databases. eDSLs in a programming language are fine as long as you still have complete control over the queries and all queries are expressable. ORMs are how you get shit performance and developers who don't have the first clue how databases work (because of leaky/bad abstractions trying to pretend like databases don't require a fundamentally different way of thinking from application programming).

[–] expr@programming.dev 7 points 1 week ago

I think the point is not that it's a MacBook, but that the senior is using a single laptop instead of a full multi-monitor setup.

Personally as a senior, I use 4 monitors. My eyes are too shit to stare at a tiny laptop screen all day, and I want slack/browser/terminal windows on their own screens. It's much more comfortable as well.

[–] expr@programming.dev 3 points 1 week ago

Waste of engineering effort and breakage for no good reason. Just dumb shit all around.

Whatever, guess it's done.

[–] expr@programming.dev 6 points 1 week ago (1 children)

I've seen it posted before. It's generally anti-AI content, as far as I've seen.

[–] expr@programming.dev 3 points 1 week ago

Really? They're everywhere where I live.

[–] expr@programming.dev 1 points 1 week ago* (last edited 1 week ago) (1 children)

Heh yeah that's pretty straightforward:

SELECT a.*, COALESCE(b.some_col, 'some_default_val') as b_result
FROM a LEFT JOIN b ON (a.id = b.id);

This will produce at least 1 row for every row in a, and if a.id doesn't match any b.id, the value of b_result will be 'some_default_val'.

Not sure if that's exactly what you were describing (since it was a little ambiguous), but that's how I interpreted it.

Ultimately it's just a matter of investing a little time to learn it. It's not fundamentally difficult or complex, even though you certainly can write very complex queries.

[–] expr@programming.dev 5 points 1 week ago (3 children)

To be honest, it's remarkably simple for what it's doing. There's a ton of details that are abstracted away. Databases are massively complex things, yet we can write simple queries to interact with them, with semantics that are well-understood and documented. I think, like anything else, it requires a bit of effort to learn (not a lot, though). Once you do, it's pretty easy to use. I've seen many non-technical people learn enough to write one-off queries for their own purposes, which I think is a testament to its simplicity.

view more: next ›