ASP.NET Core or Phoenix

Good to hear from a .NET developer on this thread, thanks for your input

2 Likes

This could be ineresting presentation :slight_smile:
http://ndc-london.com/talk/showdown-asp-net-core-vs-elixir-phoenix/

1 Like

Having been an C# developer where I work for over 13 years and even focusing the last 12-15 months on F# I would still recommend Elixir and Phoenix.

I have only recently been learning Elixir and if could start my career over, Id go the path of Elixir/Erlang. I’d recommend to anyone starting out that has experience in none with no biases to learn FP and Elixir seems like the perfect language.

F# is really cool do not get me wrong but I think its biggest value is with the .NET integration. I think if Microsoft could Magically replace C# with F# they would. With the exception of developer inertia there is nothing F# cannot do that C# can and its more terse and my experience makes one a better developer.

Some of the things I wish F# had was slightly better integration with Visual Studio but it is getting much better overtime, and things inherently compile much more quickly in C#.

I love Elixir’s pattern matching and take that over F#'s any day. And the fact that I do not need to worry about the order of the Modules in Elixir while I do in F# is another slightly aggrivating limitation.

If you do choose .NET core I’d recommend learning F# regardless it will make you a better C# developer, but overall in the short time I have been working with Elixir the only experiences I see are fewer lines of code, solid developer tools and the BEAM is second to none.

I’m on the bandwagon that OOP has many things wrong especially with mutating state. I think things like the GenServer with Supervisors are great ways to manage state. Many of the .NET devs like myself are not very familiar with concepts like Agents and MailBox processor. Without FP I would never have been exposed to those concepts and I think Elixir/Erlang handles those concepts best.

Good luck in your choice!

7 Likes

As much as I love C# and have the personal opinion that outside of some very specific things I would use C# for my business over Elixir any day, I will say that if your consideration is Asp.Net core and not regular Asp.net then I would err on the side of Phoenix.

We have been actively using .net core stuff for the past 6 months and it has been nothing short of a nightmare, especially compared to our non-core .net applications. It’s not stabilized at all, library support is a nightmare, package management is extremely buggy, official tooling is in flux and barely there, debugging is actually infuriatingly bad, no profilers actually support it yet, etc… etc… etc…

If regular Asp.net is out of the question and you are only considering .net core, I’d probably err on the side of pheonix for at least a year. I think .Net core still needs a good year or so to actually stabalize.

Edit: Nightmare might be a bit overstated, but I’ve encountered enough frustrations that I wish we were back in .Net framework instead of .net core by a large margin.

4 Likes

Sorry to hear that your experience with asp.net core is so bad. Especially since our CEO just forced the asp.net decision through. My hope was that we at least could have a good experience using the core version, because we are on multiple platforms.
Hopefully the newer, and next, versions aren’t too bad.

So .NET it is for our next project.
But I will try to sneak some Phoenix into our existing apps by using channels for our realtime needs.

Thank you everybody for chiming in on the decision :pray:

1 Like