Adam Gomaa on Elixir · Dec 17, 10:19am
Today, I stumbled across a thought provoking post on Elixir by Adam Gomaa in which he checks out the latest release. Adam seems to like the progress we’ve made lately, and does me a great favor of addressing the whole “layers are evil” argument that has been plaguing Elixir ever since Ben Bangert posted his diatribe on Elixir. In his post, Adam states:
Debugging generated assembly code is harder than debugging handwritten ASM. The solution there is not to give up and declare C as having too much indirection: it’s to correct the compiler. Likewise, the solution to finding debugging your Elixir model too difficult isn’t to revert to SQLAlchemy – or to revert to raw SQL, for that matter – it’s to correct the library.This isn’t hard, people. Abstraction is the fundamental principle of computer science, and calling it “indirection” instead of “abstraction” doesn’t magically make it bad instead of good.
Adam makes a great point here in stating that Elixir’s current major weakness is that debugging can be more difficult than with plain SQLAlchemy, but thats not because of layers of abstraction, its because we have some work to do on the code base! Its not an intractable problem by any means, and is the area in which I am currently seeking the most help. Thanks for making the point Adam, its truly appreciated. I am growing fairly weary of hearing people who have never even used Elixir repeat other people’s weak arguments against it. It discourages people from even giving Elixir a try, so that they can formulate their own opinions, and makes it more difficult for us to grow as a community.
That being said, in order to truly refute the argument, we need to make one more big push to get over the hump in regards to debugging. Our documentation has improved immensely, even resulting in the spinoff of our own great API generation tool. I think the best way to address the remaining debugging issues would be a script that would read in your Elixir model, and dump out a plain SQLAlchemy definition. If you’re looking for a way to get involved with Elixir, this would be a great project for you, and I’d be happy to help anyone that wants to take on this project.
Comment
commenting closed for this article