707 karma · joined May 29, 2017
I should've done small group training years ago. Such a good investment.
Event-sourcing can be a really useful tool in many domains, but especially where having a state-of-the-art audit log is helpful.
I'd say the opposite. Core libraries have reached stability and engineering hours are switching to making easy what classic imperative/OOP paradigms have trouble doing:
- Dynamic web development without giant Javascript dependencies(Liveview, Drab, etc)
- Scalable distributed systems without giant teams (Firenest, Phoenix Channels/PubSub)
- Concurrency and data-infrastructure (Flow, Genstage, OTP)
- Reactive event-driven systems: OTP and the Actor model makes event-sourcing easier than you'll see anywhere else.
- Usual conveniences: User-management, HTTP clients/libraries
The next 2 years are going to get wild for Elixir.
I switched largely because of the applications I wanted to build were very 'Reactive' and message/event driven. Elixir being an Erlang/Actor-Model derivative with the expressiveness of Ruby was a perfect fit.
Elixir's ecosystem and community hasn't had as much time to develop as Ruby, but it's still very capable and you're not going to run into scalability problems.
If your goal is to skill up and get a job asap, maybe Elixir isn't ready yet, but I'd pick it over anything else to build a greenfield application in.
If Github wanted to integrate a lot of real-time features, then Elixir + Phoenix can't be beat. Depending on what they replace, a 10x in performance and a fraction of the servers needed is a nice win.
I find it useful to have a GenServer for complex entities like state machines modeling business processes. I'm fine with the simple entities using the database schema as the state definition. However with the complex entities I still find I run into the classic ORM problem where the database structure doesn't perfectly fit the domain's pure business logic representation.
But can a universal healthcare system resolve many of the emerging rent-seeking behavior costs peripheral to the actual hospital costs? Things like medical supplies that, in the U.S. are significantly more expensive than elsewhere. Would a universal healthcare system only further subsidize that kind of exploitative pricing?
I think this is where Rails and Phoenix diverge in philosophy, Phoenix prioritizes explicitness and minimal assumptions with how and what you're going to do with their tool, whereas Rails is famously opinionated providing a 'Rails way' of doing most things.
What Rails does, it is very good at, but when you move outside of its expertise, you'll may find yourself in hot-water fast. Phoenix can be what you need it to be, and when you need to do something outside of Phoenix's domain everything is composable, so pick and chose what you need.
Facebook's practice of experimentation and data-driven decision making is something our country needs more of. Incentives are pretty out of wack, in many cases the only way to align incentives is with information systems regulating more complex relationships. I'd also like to see some really aggressive pushes towards infrastructure improvements in internet, education, and transportation . All of these are things I think Zuckerberg would be a good bet to organize.
What I find fascinating is what AR might do for training AI models. To execute on AR we'll need to digitize a model of our physical surroundings so the software can interact. At that point we'll have a compelling pipeline of actionable data in regards to machine learning - especially for robotics.