Hacker News new | ask | show | jobs
by tl 329 days ago
While Elixir is my current favorite language to hack in, it is very alien and downright hostile to integrating with existing systems. For example, relational database support was postgres focused for a long time (to the exclusion even of SQLite and continued inability to talk to Oracle). Then you have articles like https://dashbit.co/blog/you-may-not-need-redis-with-elixir pushing ETS over Redis. While it's a valid argument, it's not adoption-friendly.

Clojure brings about half the novelty of Elixir, runs on the JVM and still struggles to replace Java.

3 comments

What’s wrong with that article?

For what it’s worth, I’ve been using Elixir professionally for a few years now and haven’t touched Redis once.

Not sure why telling people they don’t need another service is bad for adoption?

Pretty sure there has been BEAM connectivity for Oracle for at least five years. SQLite3 is one of the defaults in Phoenix and have been for a long time. I do mix phx.new curious_idea --database=sqlite3 at least once a week, it's a sub-minute effort to a mostly generated base for a prototype (with OK auth/user management) I can just throw on a VPS and show someone.

If you want an in memory store without interfacing over HTTP, that is less foreign than ETS, try Duckdbex. Mix.install or add to mix.exs, then it's two lines and you get a connection to an ephemeral database with a SQL interface. Can probably do the same with SQLite but I've never done it. If your needs are simple you can just boot a GenServer with a K-V structure as state.

Pattern matching, the capture operator and functional programming style are the really "hostile" parts, in my experience.

In my current project we use Oracle database. It’s possible and almost on par with Postgres.
Just as long as you do not need a boolean.

(I know, modern Oracle has finally fixed this, but I have Oracle 11 and 12 systems which bring me daily joy)

Is it a problem with Elixir then?