[erlang-questions] Emysql: a cry for help (Harbinger is releasing control)

Garrett Smith g@REDACTED
Wed Nov 19 16:39:26 CET 2014


On Wed, Nov 19, 2014 at 8:40 AM, Jesper Louis Andersen
<jesper.louis.andersen@REDACTED> wrote:
> Hi Everyone,
>
> You may know that I was maintaining the Emysql code base for Erlang for a
> while. It is a driver for MySQL which seem to be quite popular. However, as
> of late, I have not really been maintaining it anymore, and I see no reason
> to continuing doing so:
>
> * I have no passion for MySQL. It is the worst database in existence ever
> and I utterly hate working with it.
> * Its client/server protocol is utterly useless in every way. How to parse
> the response to a command depends on which command you send which requires
> you to textually parse the command.
> * Like many other drivers, it conflates the communication protocol with the
> pooling facility.
> * The low-level protocol handling is wrong, which leads to a wrong timeout
> structure in all of the code base.
>
> ... and many more things I dislike. However, since so many are stuck with
> MySQL, there is a genuine need to maintain a driver, however weak it happens
> to be.
>
> Currently, the project is slipping through my fingers. There are several
> pull requests which has not been addressed but ought to be. If I were
> involved with the driver at work, I would be able to set aside some time for
> the maintenance, but frankly, it is not something I am willing to do unless
> I get paid for it. The code base simply burns me out.
>
> So I am throwing the towel into the ring. Don't look at this as a bad thing!
> What I am doing is to make it official that I have no intention to maintain
> the driver and someone else has to do it. This is a much better outcome in
> the long run than me pretending to maintain something which I really don't.
> I better do this than keep people in limbo as to where the code base is
> headed.
>
> I hope someone picks up the reins. There are several pull requests which all
> have to be merged. There is a nice test suite, and with little work, Travis
> CI support is salvageable. And I am here to answer any questions someone
> might have.
>
> In general, however, database drivers are in a very sad state in
> Erlang-land. But fixing that requires someone who will write a generic
> driver infrastructure and not doing so in anger because there is another
> project which needs to be addressed. Loic Hoguin's "bank" project is
> promising, but I don't know where it stands.
>
> And now, to address other projects for which I still do have the passion :)
>
> Code is here:
>
> github.com/Eonblast/emysql

I have zero cycles to spend on this, so I volunteer!

This is indeed important and I agree completely with you on all
counts. This driver is a product of evolution and is fit for a
purpose, but, like the dinosaurs before it, I fear it's headed for
extinction.

It's history is a fascinating chronicle of how things seem to work in
Erlang land - and here we are :)

Proposing a direction at this point is just talk (from me) since I
really don't have a ton of time for this, but I have a spark of
interest, which is something. I think this could be an opportunity to
move a generic DB interface forward, which seems like a fun project.
That's as much as I can say now about the future.

I believe I have at least one, maybe two, pending pull requests for
this library, so I can take a look at the others as well. I'd be happy
to take on the repo at gar1t, but I have a sinking feeling that I'll
just be in the same state as you. Not quite as soul crushed, but
sounds like that's just a matter of time.

If there are any others we can fight for who wants this less,
otherwise I'll grab the latest, merge my own PRs and reject all others
as "overly complex and out of scope" (kidding, maybe).

Who else?



More information about the erlang-questions mailing list