|
TheFluff posted:it really is, but people just don't seem to get it for some reason. i saw some dumbass complaining on twitter the other day that they were disappointed there was no ~innovation~ in database query languages so here we are with 1970's sql, ugh it's also just plain wrong in that modern relational databases support a hell of a lot beyond the core relational algebra stuff that sql started with
|
# ? May 11, 2019 21:16 |
|
|
# ? Jan 18, 2025 13:47 |
|
Soricidus posted:nice data normalization for a forum where usernames are mutable, comrade two-hander ... or should i say radium? there's probably a jira for "my good posts have been lost after I changed my username" marked as closed:wontfix that's what I tell myself and not that I just haven't made any
|
# ? May 11, 2019 22:20 |
|
TheFluff posted:it really is, but people just don't seem to get it for some reason. i saw some dumbass complaining on twitter the other day that they were disappointed there was no ~innovation~ in database query languages so here we are with 1970's sql, ugh wasn't there some thing like "nosql databases are for idiot Web programmers learning why everyone else uses sql"? I mean, one guy I know was storing time series pricing data as an array on an object in mongo and was complaining he was having problems with the data volume and it was like, that's because that's stupid, just use a table. Progressive JPEG posted:it's only shameful if your figgies have not also substantially increased along the way tbf they have and I get to do poo poo that I wouldn't have otherwise so it's actually worked out ok so far. also thanks to this stupid dead forum I can readily argue with all my peers about their inferior technology choices, thus proving that I'm "Senior" .
|
# ? May 11, 2019 22:26 |
|
Powerful Two-Hander posted:I mean, one guy I know was storing time series pricing data as an array on an object in mongo and was complaining he was having problems with the data volume and it was like, that's because that's stupid, just use a table. lol, like even if you're committed to not using sql there are time series databases
|
# ? May 11, 2019 23:37 |
|
Powerful Two-Hander posted:there's probably a jira for "my good posts have been lost after I changed my username" marked as closed:wontfix i still lol every time i see my old threads in the bookmarks with my old username, i just lol at them and at radium.
|
# ? May 11, 2019 23:37 |
|
Aramoro posted:So now I have to rewrite how we build the tree in the first place so we add the nodes in the right order. Or build the tree as we are and go back over it at the end resorting all the nodes based on the edges. This tree is critical to all of our apps. Our business analysts are really pushing for this change based on the fact its just changing one sort order for another, surely a half hour change no problem. Our testers on the other hand are saying its days of test effort to do the regression on the change as its such a key part of the system. put a month+ estimate on it and tell then you justify the amount of time you'll need to spend on it i'm assuming it will take less than a month. if not, round up generously
|
# ? May 12, 2019 00:05 |
|
take your initial estimate, double the number, and increment the unit. for example: 2 days -> 4 weeks a month -> 2 years
|
# ? May 12, 2019 00:06 |
|
i agree with pretty much all the sql criticism in this article (although some people are really offended by the existence of NULL). i'd also add another problem: the absurd lack of consistency between rdbmses but like, sql's fine. it's not great, it kinda sucks, but it's actually fine. basically, akadajet posted:it's the cause of, and the solution to all of our problems
|
# ? May 12, 2019 00:12 |
|
man those guys really chose some inconsequential poo poo to focus on i mean they're right on every point - yes sql is annoying to write manually and it has too much syntax and it's inconsistent as gently caress and null is for barbarians and yes scalar expressions are dumb - but who loving cares? absolutely none of those issues are why people don't want to learn sql - they're all problems that only sql turbonerds care about. people in general don't want to learn sql because they don't understand how sets work. it takes time, effort and practice to really understand the join types (or at least it did for me). it's different from what people are used to so they don't bother. you can't fix this with something that has slightly more consistent syntax and requires slightly less typing. they do sorta touch on one important problem though and that's composability (and reusability). you can sorta do some of this with views, but although they have a lot of uses, they are sorta limited in what you can do, and a lot of people don't really deploy code to their database like that but instead rely on generating queries in some other environment. there are some good tools for that these days but people seem to insist on inventing bad simplified variants and copying mongodb's loving json query syntax instead??? TheFluff fucked around with this message at 00:54 on May 12, 2019 |
# ? May 12, 2019 00:35 |
|
it's like they looked at c and figured the problem with the language was that understanding what the hell the const keyword actually does in any given position is way too hard - it's absolutely true, but the issues go far deeper than that
|
# ? May 12, 2019 00:48 |
|
void its(const *problem)
|
# ? May 12, 2019 00:52 |
|
like, i know many people who really genuinely think sql is hard and they have a really hard time wrapping their heads around it. and i'm absolutely not surprised, i did as well for a long time. i don't think that's sql's fault really, it's just that we're not used to thinking in the way sql does
|
# ? May 12, 2019 00:52 |
|
mystes posted:Doing a dfs or fold or whatever on a rose tree is hardly an unsolved problem in computer science, but 30 minutes is pretty short to make changes to implement and properly test this in your application. I don't think I've ever heard the term "rose tree", I thought those were called just trees?
|
# ? May 12, 2019 01:07 |
|
akadajet posted:it’s eventually consistently funny
|
# ? May 12, 2019 01:37 |
|
Symbolic Butt posted:I don't think I've ever heard the term "rose tree", I thought those were called just trees?
|
# ? May 12, 2019 01:41 |
|
TheFluff posted:it really is, but people just don't seem to get it for some reason. i saw some dumbass complaining on twitter the other day that they were disappointed there was no ~innovation~ in database query languages so here we are with 1970's sql, ugh don’t you know that if you can’t see something change, then it didn’t change? if an OS didn’t get a facelift, then nothing under the hood changed if a language didn’t get new syntax, none of the implementation changed
|
# ? May 12, 2019 02:42 |
|
tbh what bugs me about sql is that i have never seen it be well-tooled. microsoft SSMS can give some column completion lists and stuff but if your query is hosed up quite often the editor will just say "there's a problem around $some_token". it feels like all the engineering effort goes into making the queries run fast and new ways to shart and index your database and whatnot, but not into developer productivity. perhaps some vendor out there has done it and I just don't know.
|
# ? May 12, 2019 06:00 |
|
brap posted:tbh what bugs me about sql is that i have never seen it be well-tooled. microsoft SSMS can give some column completion lists and stuff but if your query is hosed up quite often the editor will just say "there's a problem around $some_token". it feels like all the engineering effort goes into making the queries run fast and new ways to shart and index your database and whatnot, but not into developer productivity. the t-sql parsers (yes, plural) are old and unloved. there is engineering effort in tools for mssql but it's primarily in building out new cross-platform tools.
|
# ? May 12, 2019 06:10 |
|
redgate tools for smss i found quite needs suiting. they were slightly jank but far better than anything else i've seen (which is admittedly not much) gave good code completion on par with an ide and had version control and db object diff that i liked using more than the very lovely visual studio sql project way to do it
|
# ? May 12, 2019 06:13 |
|
Plorkyeran posted:i want to live in a world where people just use sql rather than complaining endlessly about it and building impossibly awful things just to avoid having to learn sql I already live in a world where people just use SQL building impossibly awful things just to avoid having to learn SQL.
|
# ? May 12, 2019 06:33 |
|
the database projects are fine, but require you to use visual studio for database editing. people get really comfortable doing all database related stuff in ssms, so redgate feels nicer.
|
# ? May 12, 2019 06:43 |
|
The people that made this project, them loves em some SQL. In fact, they love it so much we have an ancient MVC framework which does not have models. Every class that has "model" in its class name is not a model in it's normal sense (i.e. a collection of data that represents some domain poo poo) but is actually a representation of a database table. So what this means is you got poo poo like a user "model", but what you're actually doing is poo poo like PHP code:
Anyway what I recently found out is that there's a class for sending emails. How does this class for sending emails work? You provided it with an email template ID, and OBJECT TYPE ID, and then an OBJECT ID as arguments. How does it work then? Note how there's no mentioned of to address or whatever. Here's how it works: PHP code:
The mailer class uses dynamic class loading via strings stored in the database fuckery to create a new userModel class, then calls $class->getUserEmail(200) on the object. This then loads the email address of the user from the user table. For horrifying reasons I will not elaborate on here, the function is called with various values for object type ID. So let's say I have to call ->mail() using the booking table. I will call $mailer->mail($templateID, 2, 99). The mailer class will then build a bookingModel class, then call getUserEmail(99) on that class, and will promptly fail because gently caress you you forgot to implement the getUserFunction() on the bookingModel class to SENSIBLY return the user email related to a booking. I say sensibly return because sometime ago some genius decided to take the implementation of userModel->getEmail() and move that into the model abstract class that all models implement, therefore "fixing" all unknown method errors and replacing them with hidden trash runtime SQL errors. This also has the hilarious effect of confusing our ide because you can call for a user email on every database table, including the table where we store colours. Like dude, you can call colourTable->getUserEmail () because it makes sense that a colour can belong to a user in the system(????????)
|
# ? May 12, 2019 06:52 |
|
Speaking of SQL I am deeply unsatisfied with https://github.com/djmcgill/dominions-5-status/blob/master/src/db/mod.rs Anybody want to suggest a better way that doesn't involve going ormy with diesel?
|
# ? May 12, 2019 07:14 |
|
TheFluff posted:like, i know many people who really genuinely think sql is hard and they have a really hard time wrapping their heads around it. and i'm absolutely not surprised, i did as well for a long time. i don't think that's sql's fault really, it's just that we're not used to thinking in the way sql does Sets are easy, describing them using the SQL rear end-backwards syntax that is randomly (in)compatible and (un)performant between different underlying DBs is PITA.
|
# ? May 12, 2019 08:31 |
|
Xarn posted:Sets are easy, describing them using the SQL rear end-backwards syntax that is randomly (in)compatible and (un)performant between different underlying DBs is PITA. imagine if there were only one sql and it ran beautifully on every platform but also it’s owned by oracle
|
# ? May 12, 2019 09:29 |
|
floatman posted:The people that made this project, them loves em some SQL. In fact, they love it so much quote:Anyway what I recently found out is that there's a class for sending emails. How does this class for sending emails work? don't let them know about https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-send-dbmail-transact-sql
|
# ? May 12, 2019 10:45 |
|
Yesssssssss. Is there anything that MSSQL doesn't do?
|
# ? May 12, 2019 12:36 |
|
the worst thing about sql is "select column1, column2, column3 from table" instead of "from table select column1, column2, column3", because when i'm typing the columns my ide's autocompletion features are less useful.
|
# ? May 12, 2019 13:13 |
|
Wheany posted:the worst thing about sql is "select column1, column2, column3 from table" instead of "from table select column1, column2, column3", because when i'm typing the columns my ide's autocompletion features are less useful. agreed lovely workaround: type 'from table foo' first, then press home or ctrl-leftarrow and type the selects. most ides should provide autocomplete. lovely workaround 2: write 'select foo.column1 from foo' instead this sort of thing why i think theFluff was actually agreeing with the edgedb guys more than he thinks: quote:man those guys really chose some inconsequential poo poo to focus on sql is great because the underlying concepts and theories are crystal clear and work. yes they're completely different from the imperative stuff that is taught in Programming 101 courses, which is why they take a while to learn. but once the _idea_ clicks, you can make sense of anything in the language. an extremely complex query may give you a headache but it will never leave you completely lost, you can always trivially decompose it into grokkable parts meanwhile, the sql frontend / syntax is about 80-90% of where it should be. stuff like the messy order of statements, the dual use of NULL, the type coercion, the clunky composition tools, are all little annoyances that aren't gonna stop anybody who understands sql from being productive, but any new sql frontend should fix them nevertheless. i don't agree with the edgedb guys on some of their choices (autoflattening sets in particular looks very suspicious), but focusing on 'inconsequential poo poo' is exactly the right thing to do if one wants to improve sql even further shaggar bait: if sql is 80-90% there, i would say linq is about 98-99% there
|
# ? May 12, 2019 13:44 |
|
actually the worst thing about sql is "delete from table" the second thing is their cobol syndrome (OFFSET start { ROW | ROWS } FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY) and the third probably something something sql injection
|
# ? May 12, 2019 13:56 |
|
linq to sql is a cool idea like imagine if sql databases were actually that easy to work with
|
# ? May 12, 2019 14:39 |
|
linq is like sql 2.0
|
# ? May 12, 2019 14:39 |
|
NihilCredo posted:agreed i absolutely agree with your description of why sql is good. I see what you mean too and that's a fair point tbh. I guess I was dreaming about some magical language that would make it easier for me to make junior devs not scared of sql TheFluff fucked around with this message at 15:42 on May 12, 2019 |
# ? May 12, 2019 15:39 |
|
TheFluff posted:i absolutely agree with your description of why sql is good. I see what you mean too and that's a fair point tbh. I guess I was dreaming about some magical language that would make it easier for me to make junior devs not scared of sql I knew a senior dev scared of SQL Thankfully past tense
|
# ? May 12, 2019 15:47 |
|
there's a shitload of room for a better sql that fixes all the minor annoyances in sql and results in overall a much more pleasant experience for people who use sql, as while they're minor individually there's so many of them that they really do add up i just agree with the notion that those annoyances aren't why the people who refuse to just learn sql aren't using it.
|
# ? May 12, 2019 15:49 |
|
NihilCredo posted:agreed linq is good and sql is good. linq2sql is extremely slow and no good
|
# ? May 12, 2019 15:54 |
|
How about linq query syntax?
|
# ? May 12, 2019 16:01 |
|
linq and sql might have similar syntax but they could not be more different other than that
|
# ? May 12, 2019 16:09 |
|
mystes posted:How about linq query syntax? I don't really use it but it makes sense to anyone whos ever used sql.
|
# ? May 12, 2019 16:15 |
|
|
# ? Jan 18, 2025 13:47 |
|
Fiedler posted:the database projects are fine, but require you to use visual studio for database editing. people get really comfortable doing all database related stuff in ssms, so redgate feels nicer. visual studio's code completion for sql is garage to non-existent and trying to sync up a sql project to the database has never not broken both the database and the project
|
# ? May 12, 2019 16:28 |