The Crossroads at a New Project
I’m once again at the crossroads of a new project and deciding what to build it in.
I know Rails. I could build it in Rails.
It may very well remain a prototype. It may very well amount to nothing. I might as well write it in Rails.
But that’s not optimistic is it? And worse - it’s boring. And not to reject The Boring Stack, but part of why I’m developer is because I like figuring things out. Part of that is in building products, but part of that is in using cool technologies.
Anyway, I want to make sure I’m using the best tool for the job. That’s why I’m learning Svelte. And that’s why I’m thinking I may start this new project in Elixir/Phoenix.
Okay, Pros:
- Elixir scales easier, handles many more concurrent connections, uses fewer resources, blah blah blah. Again, this project may just become nothing. Could be no one uses it. But the “uses fewer resources” part becomes relevant here, because the fewer resources it uses, the longer I can keep it up and wait for it to gain traction without being tempted to scrap the whole thing.
- Anyway, even if nothing comes of the project, I won’t come away with nothing. I’ll still have more experience with Elixir/Phoenix. If I build it in Rails, I probably won’t learn very much.
- Phoenix and Elixir apparently allow a lot of the expressivity of Rails and Ruby. That’s a good thing. Maybe I won’t be able to build things as quickly, but I can end up buildings at 90% the speed I could with Rails for even 500% the performance boost, that’s a worthwhile tradeoff, isn’t it?
- People enjoy coding in Elixir. If I enjoy it, that would be a worthwhile thing to discover.
Cons:
- This thing gets built slower than with Rails, since I don’t really know what I’m doing yet.
- This thing gets built potentially worse than with Rails, since I don’t really know what I’m doing yet.
- If I ever want to find people to help me (like if I make the project open source so community members can contribute), I’m going to have a much harder time finding people who can write/learn Elixir than Ruby. This is a non-negligible potential issue.
- I’ll lose some of the edge I’d have over competitors from development speed.
- My current experience with Elixir involves me taking exorbitant amounts of time reading through docs and code to make sure I write a handful of functions cleanly and concisely in such a way that satisfied both the linter and Parker.
So this could potentially be a painful experience. And it also probably means another few days doing tutorials and whatnot to relearn Elixir and actually learn Phoenix.
But I like learning things, so this could be fun. And not at all a way to put off the hard part of getting this application off the ground, which is getting adoption. -_-