<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body><div>Hi Andrew,<br></div>
<div> </div>
<div>As a die hard, long time Erlang fan, who recently switched to Elixir full-time I can probably share my perspective.<br></div>
<div>For the past 6 or 7 months I have been writing Elixir code for a Ruby shop seeking their way out ;-)<br></div>
<div> </div>
<div>At the beginning it was extremely tough. Needless to say, I have never written a single line in Ruby before, <br></div>
<div>I was unfamiliar with Rails (some of the concepts/terminology obviously was transferred to Phoenix), <br></div>
<div>and everything seemed just plain <span style="line-height: 1.25;">weird since I got very accustomed to the rough obviousness of Erlang/OTP.</span><br></div>
<div> </div>
<div>The switch wasn't easy for me -- at least I had the OTP part figured out.<br></div>
<div> </div>
<div><span style="line-height: 1.25;">But as I soon found out, expecting Elixir to be "Ruby on BEAM" is an oversimplification.</span><br></div>
<div><span style="line-height: 1.25;">Today I think it's a very nicely designed language combining more than just that. </span><br></div>
<div> </div>
<div><span style="line-height: 1.25;">Plug is brilliant, definitely brings Clojure's Ring to mind. Think easily accessible, composable cowboy middlewares.</span><br></div>
<div>They're really fun to build and easy to test.</div>
<div> </div>
<div><span style="line-height: 1.25;">Ecto is *the* killer app. Being able to abstract my postgres schema with ease is something I always</span><br></div>
<div>craved in the Erlang world (not to mention the gazillion of epgsql forks).<br></div>
<div>Today I can use postgres almost to its full potential. PG views transparently map to predefined<br></div>
<div>structs, arrays & maps (jsonp) are supported via type casting, the query interface is again, <br></div>
<div>composable and powerful (borrows from LINQ) and doesn't do any magic you would expect<br></div>
<div> from popular, "classic" ORMs. Migrations works as expected, rolling back a schema change requires<br></div>
<div>no effort.</div>
<div> </div>
<div>Protocols (again, Clojure?) and modules, that can be aliased and selectively imported<br></div>
<div> allow you to nicely organise large codebases into logical chunks of responsibilities.<br></div>
<div> </div>
<div>In general, I fear not anymore. Elixir is well tested, carefully crafted and evolves very dynamically.<br></div>
<div>I still love Erlang, but I don't think I made a mistake of trying Elixir out in the real world. <br></div>
<div>I like its expressiveness and the fact that there's still OTP available for me to use.<span style="line-height: 1.25;"> </span><br></div>
<div><span style="line-height: 1.25;">It's fun.</span><br></div>
<div> </div>
<div>Cheers & happy hacking,<br></div>
<div> </div>
<div class="signature">/A.<br></div>
<div> </div>
<div> </div>
<div>On Fri, Feb 26, 2016, at 19:28, Andrew Berman wrote:<br></div>
<blockquote type="cite"><div dir="ltr"><div>Hey Fellow Erlangers,<br></div>
<div> </div>
<div>I was curious if any of you guys have switched or are contemplating using Elixir for your next project. I've been programming Erlang for a while now, but I'm about to start a new project and wanted to see where other Erlang devs stood on it.<br></div>
<div> </div>
<div>Thanks,<br></div>
<div> </div>
<div>Andrew<br></div>
</div>
<div><u>_______________________________________________</u><br></div>
<div>erlang-questions mailing list<br></div>
<div><a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br></div>
<div><a href="http://erlang.org/mailman/listinfo/erlang-questions">http://erlang.org/mailman/listinfo/erlang-questions</a><br></div>
</blockquote><div> </div>
<div id="sig44883474"><div class="signature"> </div>
</div>
<div> </div>
</body>
</html>