Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Unpacking Elixir: Phoenix (underjord.io)
43 points by lawik on March 8, 2024 | hide | past | favorite | 10 comments


I have been such a huge fan of Ecto in general, because they have conceptually broken down the idea of Schemas, Changesets, and Repos in a way that you can use it in so many additional use cases.

For example, you can use Ecto Schemas and Changesets to validate the shapes of your API requests (down to the valid values, etc) and provide good quality error messages. And changesets are easy to extend too.

Ecto is probably my favorite part of the overall Elixir ecosystem. Phoenix and LiveView have been nice to work with (But still don't quite feel right, especially event handling and bubbling up of events up components, I wish was smoother).

Overall we still really like working with this stack and the community is great too, in the general quality of libraries available.


I pivoted from C# to Elixir after a former manager (and now friend and co-founder) put me onto it as part of a project we were doing for a high volume eCommerce solution. I did another C# job after and then when the opportunity struck, I dove head first into full time Elixir development. I have no regrets. It feels like any problem I have can be solved with a bit of elbow grease and some proper thinking. Phoenix is a bit too opinionated for my liking, but I can't deny just how much more productive it is for me vs C#/.NET. All 'round, my career is the better for working with Erlang/Elixir.


I’m a .net engineer currently.

Could you recommend how I should get started with erlang/elixir?


Elixir in Action just recently published a 3rd edition, and it's a great introduction to the language and ethos of Elixir.

https://www.manning.com/books/elixir-in-action-third-edition


https://elixirschool.com/en is a great resource, and Learn You Some Erlang For Great Good is a great one as well.

https://learnyousomeerlang.com/content


I feel like I missed the window when I could get paid to learn elixir on the job. Felt like that was during Covid and shortly after.


Shortly before, during and after. Market has been kind of bad recently (not just Elixir). My sense is that things are improving again but might not be at the learn-on-the-job level yet.


I always see people saying elixir allows them to deliver features more quickly, but how?

From what I have seen, it’s just another programming language. I’m not getting where the large speed up is…


A lot of things conspire towards productivity.

The dev tools (build, deps, project generation) are not necessarily better than everything else but they are very good.

The paradigm of Erlang that Elixir builds on is outstanding for building reliable, efficient services. It makes trade-offs for that. Trade-offs that mostly don't have downside for your average web app.

Things that begin to get complex in many ecosystems. Low latency "live" functionality and lots of concurrency are trivial and supported from the ground up.

It is a high level dynamic language. Think abstraction-level Python or Ruby. But it has these very different trade-offs.

Docs are good. Ecosystem is not as frantic as JS.

Phoenix LiveView is particularly in service of delivering things quickly. Follows a very 80/20 approach. High abstraction level. Covers most needs. Not shy about making trade-offs to avoid complexity. Much like Erlang originally.


All of that and the fact that the Phoenix CRUD golden path is really wide and low incline. The workflow for implementing arbitrary business rules as an online database that just works is easy to reason about, and things don't get out of hand easily by just adding pages and tables to your app.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: