Back to News
Advertisement
Advertisement

⚡ Community Insights

Discussion Sentiment

76% Positive

Analyzed from 1250 words in the discussion.

Trending Topics

#sql#acadia#elm#data#database#more#https#seems#something#having

Discussion (39 Comments)Read Original on HackerNews

dwohnitmokabout 1 hour ago
I'm wary of languages that seek to own the database. In particular, the claim "Coexist with SQL" seems a bit suspect given that e.g. sum types have a custom binary encoding, which likely makes them difficult to interop with from other languages. This makes the claimed interop with other languages really more of a temporary stopping point towards full Acadia adoption rather than a viable long-term equilibrium, unless you e.g. eschew using sum types. (I also suspect that trying to natively support sum types can lead to a kind of FP-equivalent of ORMs' impedance mismatch. The ways I model data with relational logic can be pretty different than the ways I model data with algebraic datatypes and I wonder if trying to force fit the latter into the former doesn't lead to the same problems as force fitting objects into relational logic).

This makes the database closer to something that Acadia compiles to, rather than something Acadia sits on top of. From my own developer experience this feels off, because I generally expect the data layer to be king and application code to revolve around that, rather than having data representation created in code and the database created off that (this is why I also dislike things like ORMs).

In general I view databases as usually having more longevity than application code, especially as you accumulate more data over time. For serious production applications, the database often outlives multiple rewrites of the production application.

I suspect though my concerns are overall rather minor. The ergonomics of the language itself seem enjoyable. Acadia seems like it would be great as an embedded DSL. It's a bit unfortunate that it currently seems coupled to creating an HTTP server. I think that Acadia has greater ambitions beyond just the database, as evidenced by creating a binary web connection with frontend Elm code to presumably obviate the need for encode-decode layers. It seems like Acadia is meant to be a stepping stone towards a closer frontend-backend fusion. But I agree with mjaniczek that something like Lamdera seems a better fit for that.

But given how early Acadia is, I'm still very excited for where it goes. What I've listed is surmountable and I also feel that often a closer frontend-backend fusion might be worthwhile.

exidex40 minutes ago
I think, the reality is SQL being simply to old to coexist with a web app use case. All the nice things that article talks about are not possible to nicely integrate with SQL. Current development is done by either writing SQL by hand or by letting ORMs to autogenerate it. Both feel bad because of how bad SQL is. But there is no other option. I hope https://substrait.io/ will gain traction and will be supported natively by databases
gbjcantababout 1 hour ago
This looks reasonably interesting, and Evan is extremely thoughtful about design; I know he’s put a huge amount of work into this.

Personally, I’d be very cautious about adopting closed-source software with such a restrictive license as part of an application, especially given the context of Elm’s trajectory. When Elm went through breaking changes or regressions, or was not worked on publicly for years, users had access to the source and the right to modify it. With Acadia’s licensing, you’d be stranded.

happyraul42 minutes ago
On the other hand, with Elm there was no correlation between adoption and funding for development. With Acadia, he's trying a different funding model, so that might mean better support for both Acadia and Elm.
ModernMech23 minutes ago
The Elm project forked into a bunch of different Elms because Evan basically abandoned / killed it. Then he got more interested with this project. What’s to say that won’t happen again?
happyraul20 minutes ago
I think it's fair to say there are other ways to interpret what happened with Elm. What if Evan stopped working on it because he needed to make a living and working on Elm wasn't going to achieve that? In that case, if working on Acadia will make him a a living, it seems reasonable to believe he will keep working on it.
dwohnitmok3 minutes ago
Oh man. If this lobste.rs comment is correct about the subscription terms then this feels like a really hard pill to swallow: https://lobste.rs/s/ykq7ym/rethinking_database_programming#c...

Still might be viable, but would be tricky to sell.

> SUBSCRIPTION TERMS

> This license is subscription-based and will remain valid only for the duration of your active subscription. Upon expiration or termination of your subscription:

> a) Your rights to use the Software will cease; b) You must uninstall and stop using the Software; and c) You may lose access to any data or content created with or stored in the Software.

pelagicAustralabout 2 hours ago
So this is capable of turning a one-liner of SQL into six lines of barely readable code?
fwlrabout 1 hour ago
It seems that is the price you pay for the power to turn a 600-line nightmare SQL query into 60 lines of barely readable code.
bazoom42about 1 hour ago
I would like to see that example then.

I’m all for improving on SQL, but this syntax does not even solve the dangling comma issue as far as I can tell from the example.

janderlandabout 1 hour ago
SQL is a horrible language. I’d gladly program in something composable like Elm.
ch4s3about 1 hour ago
Unfortunately Evan removed GROUP BY in 0.19 and left to buy cigarettes.
quikoaabout 1 hour ago
It'd definitely need a solid team behind this and not just Evan Czaplicki if I were to trust a database with my data.
tclancyabout 1 hour ago
As a programming language? Sure. As a way to work with relational data? It may be my favorite "language" across all domains because of the terse beauty. I am a self-taught, no CS coder but SQL is the one place where I feel like I get all the math I should know.

An opinionated, possibly hot take would be to call SQL "A more elegant weapon of a civilized age".

bazoom42about 1 hour ago
Or “the worst query language ever, except for all the alternatives”
SkiFire13about 1 hour ago
I agree with the premises, but the result proposed here doesn't look like anything I would like to use unfortunately. Even just looking at a glance you cannot see what it's doing and what each part means.
honungsburkabout 5 hours ago
New functional query language for PostgreSQL and SQLite by Evan Czaplicki the author of Elm
raumgeistabout 2 hours ago
Looks very nice. Last year I took up rust, coming from c++, and some of the modern features rust brings are just so nice to have (even something as simple as not having to forward declare a class).

This year I started working with postgres and you just can't help but notice how sql is coming from the c-Era of programming. Having better and more modern ways to express my queries would be great to improve correctness and performance.

schaefer44 minutes ago
> …can't help but notice how sql is coming from the c-Era of programming. Having … more modern ways to express my queries would be great to improve correctness …

SQL is based in pure mathematics: set theory, relational algebra.

The process of applying mathematical rigor to your database design to prove correctness is referred to as normalization.

I don’t mind criticisms like “It’s old, yuck”, but criticisms like “it’s not correct” mean you haven’t studied or applied the mathematical underpinnings of sql.

dminik18 minutes ago
Syntax aside, programmers and mathematicians have a very different view on how things should be done.

Programmers look at data and see opportunities for running a pipeline of transformations (map/filter/...). And they tend to write their SQL like this as well. Or use something like Linq or one of the various pipe syntax SQL extensions.

I would say that this is a major reason why there is this sentiment of "SQL is yucky" by developers. The mental models just don't match.

mkehrt24 minutes ago
This isn’t talking about correctness of SQL. It’s talking about correctness of queries.
lucasban38 minutes ago
Or just let the language be the database like https://en.wikipedia.org/wiki/MUMPS ;)
DarkNova6about 2 hours ago
I was hoping for an alternative to PLSQL or stored procedures. But this isn’t about „Database Programming“, it’s a SQL replacement…
pjmlp41 minutes ago
It isn't that bad, at least for those of us that like Ada, and feel at home on SQL Developer.
mjaniczekabout 2 hours ago
Having reusable functions and pipelines compiling to SQL sounds amazing. (EDIT: and sum types!) Will want to try this out on some side project later.

Although for my Elm + backend needs I feel like I still prefer Lamdera: https://dashboard.lamdera.app/ - WebSocket communication and being able to push new data to clients immediately instead of juggling HTTP endpoints and the client having to pull/refresh. `sendToBackend`, `sendToFrontend`, `broadcast` are a great primitive.

nylonstrungabout 2 hours ago
For columnar databases, I love Vortex' Dtypes which lets you attach semantic context in a logical type to what is essentially compressed Arrow https://docs.vortex.dev/concepts/dtypes#logical-types
Advertisement
akoboldfryingabout 1 hour ago
Is this at all similar to LINQ in C#? I never used it, but I'm vaguely aware of it being a functional approach to querying an RDBMS.
NoDodgeQuestion39 minutes ago
Is it an ORM?
happyraul37 minutes ago
From the homepage https://acadia.engineering/:

| Not an Object-Relational Mapping (ORM).

LandR28 minutes ago
I dont see how this isn't just an ORM (like Entity Framework in dot net land).
Izkata7 minutes ago
Yeah, from the post it might even be more limited than Django (python) ever was. For example it allows the user to define its own fields, which was used over a decade ago in libraries to extend Django and provide json support long before it was officially supported.
weego21 minutes ago
it might semantically not be an ORM because of something at an engineering level, but it's 100% ORM like from a user point of view, so it's an ORM.
ArtemKhymenkoabout 3 hours ago
Pretty nice, thanks
someladyabout 3 hours ago
Exciting news!! Love Elm, can't wait to use it more
DarkNova6about 2 hours ago
It looks like the HN hug of death has found a new victim
whilenot-devabout 2 hours ago
phoghed10 minutes ago
Sorry Evan, somebody already rethought the DB https://rethinkdb.com/