PJextra
Elixir ecosystem is a dream come true and future proof, except...for...,
…databases.
Pipe operator, pattern matching, Supervisors, Flow, Phoenix channels, Live view, Releases,…
But SQL feels so “deja vu”, past, old. Ok, for existing developers it’s present and future but for new web developers it’s sooo 60’s. I mean, human readable queries are the future, out-of-the-box horizontal scaling a basic need.
Graph and document databases are what a new developer looks, not SQL.
Sure, I like the way Ecto handles that. Makes everything so simple. But it seems I’m just fooling myself. I don’t want to become an expert in something of the past.
So, this is my way of saying that everything in the Elixir ecosystem is years ahed of our time, except when it comes to databases.
I wish, now that all the other pieces are there, Elixir’s team could apply the same magic into the future way of persisting data. And analyse them. And make data easy to handle, IoT way. Human way.
What do you think?
PS: I really, really appreciate how Elixir makes software development so crystal clear and future proof. I learned Ecto and PostgreSQL but I feel that’s my Achilles heel.
Most Liked
lucaong
I personally disagree with this. Graph databases, document databases, etc. definitely have a place in some applications, but relational databases are a powerful general purpose solution backed by a well developed theory (relational algebra) and lots of development.
Modern relational databases like Postgres even offer document based storage, full-text search, and a lot more for cases when something like that is needed.
I am interested in your argument though. What is making relational databases a thing of the past in your view? What do you mean when you say that SQL feels old? I assume there is something deeper in your argument than just SQL not being trendy ![]()
benwilson512
Ehhhh sorta. They were new and cool in the late 00’s through say 2014. Since then there has been a major resurgence in the use of RDBMS both traditional and new (think spanner). Postgres in particular has developed substantially in a way that improves performance, and it opens up new ways of using postgres that can be quite impactful. We’re using Postgres for both timeseries data and as an event store for event sourcing to great effect for example.
The key here is persisting data. Persisting data reliably is flat out hard, and doing so in a way that improves on existing solutions is harder still. Elixir’s characteristics aren’t silver bullets to distributed computing problems either.
A lot of your argument here seems to be oriented around what feels new, what feels old, and what feels cool. There is a lot of fascinating stuff happening in the database world to be sure, I highly recommend Tag: Jepsen for example if you want to have some additional ways of evaluating database technologies beyond whether or not they provide a SQL interface.
hauleth
Rise of strongly typed languages makes this statement weird. I do not think that this is true, we still operate mostly on highly structured data.
And what makes SQL not fit in that place? It also depends on what kind of relations we speak there. Relations in sense of relations form relational algebra or joins from relational algebra? People often confuse these two.
And how is that relevant to SQL? There is hell lot of so called “NewSQL” DBs that work perfectly fine in distributed environments. All of that in the end is about CAP, where “traditional SQLs” put all their cards on CP. If Google managed with regular SQL for so long, then you, with your toy service, will also manage.
In fact I see Ecto query as a return to the QUEL which was THE query language for relational algebra (as it was created by Codd himself. It is important to remember that PostgreSQL started as POSTGRES which used POSTQUEL as a query language. So this is more like going back to where relational algebra was done by someone who know it well rather than something novel.
And I do not see that “fundamental problem”. Not at all.
I would say that this is problem with “new developers” not with SQL…
I would say that this is a reason to keep SQL, not to abandon it…
It cannot, because persistence and manipulating data is hard. It is so hard, that there is whole branch of engineering built around it. That branch is called programming. There is no way to make it simple, as there is no simple way to tell what is “data”, you cannot describe what you want to do with “data”, you often cannot define how that “data” will be encoded nor how it be stored.
In the end, do you know how Data works?
Sorry if this feel a little like Linus on C++, but it has been said that SQL is the worst form of data query language except all the others that have been tried.
Popular in Discussions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance









