4 ms·
> But instead I hate my job working in Typescript all day solving problems that I wouldn't have to if I could just use Elixir. Before I focused on iso js, I wo
by briantakita 3y ago
> But instead I hate my job working in Typescript all day solving problems that I wouldn't have to if I could just use Elixir.
Before I focused on iso js, I worked with EventMachine & even a little bit of Erlang. Would love to hear more about an alternate timeline if I stuck with Ruby & went down the Elixir route.
---
I used to work with Ruby & switched to js before TS to build isomorphic libraries & apps. TS has been beneficial imo though figuring out type inference for library code is a steep & time consuming learning curve & takes experience to figure out the edge cases. In the end though, having type inference work in library code is worthwhile for quickly developing apps. Re: expressiveness, the js/ts ecosystem suffers from mostly using camelCase, which has variable casing depending on the position of the name segment...which makes project wide searches for composed abstractions less reliable. I distilled the "tag vector" name convention to address this issue. Granted, Ruby having `?` & `!` available is as a terse & explicit expression of intent is nice.
> almost no one is building on Rails anymore compared to how many people build on React, and NextJS.
I got burnt out on Rails after the 3rd consecutive upgrade project for large codebases. I think the dominance of React has been detrimental to the js ecosystem as its bloated with the api being complex & unintuitive. It also took the JS framework guys a decade to figure out the MPAs are the way to go. I hoped people would have figured that out sooner. I got tired of the complexity & size of the reactive state management & ui libraries & recently wrote my own (rmemo & relementjs). I working on a vite alternative called rebuildjs with an Elysia/bun based app library called relysjs.
I loved how many Ruby community (other than Rails) had a commitment to create simple libraries. It seems like js framework communities have this drive to lock developers into their complex manifestations.
Sorry about the long comment. I have to get back to a major version update to ctx-core (general purpose contexts & utility functions) addressing type inference...which will make developing apps with these libraries more reliable & effective.
https://www.briantakita.me/posts/tag-vector-1-tag-vector-convention https://www.briantakita.me/posts/tag-vector-1-tag-vector-con...
https://github.com/ctx-core/rmemo https://github.com/ctx-core/rmemo
https://github.com/relementjs/relementjs https://github.com/relementjs/relementjs
https://github.com/rebuildjs/rebuildjs https://github.com/rebuildjs/rebuildjs
https://github.com/relysjs/relysjs https://github.com/relysjs/relysjs
https://github.com/ctx-core/ctx-core https://github.com/ctx-core/ctx-core
- whalesalad 3y agoThe power of Elixir is not in the syntax, it’s the BEAM, OTP, and the fact that you can launch a million processes on a single node that all have their own soft realtime behavior with their own state. Supervision trees, processes that can crash and be restarted without taking the app down, first class messaging across nodes/networks/continents, rolling deploys without restarts… if you are a true systems engineer thinker there is no better runtime.
- anonyfox 3y agoI think most people simply don't get or dismiss how exceptionally awesome working on the BEAM is, including many that "just build phoenix apps" already. So many people never actually are in the position to deal with the kind of problems the BEAM solves so nicely, and also keep themselves in the JS hamsterwheel of neverending relearning cycles without actual progress being made. The point is that working in the elixir ecosystem gives any sohpisticated engineer _multiple_ superpowers. - for architecture/system engineers, its the BEAM/OTP - for frontend/fullstack devs LiveView is the best thing in our industry for like 95% of all use cases out there - for data engineers/... having Livebook is like Jupyter on steroids, even better when linked to the production systems and Ecto is just outstanding as an ORM take, especially when comparing to much weaker options in the JS ecosystem, and don't get me started on orchestration or data pipelines with broadway - for AI enthusiasts all the machine learning stuff is at your fingertips already, with bindings to the native libs also used by python but more ergonomic and a lot of QoL over python because of the strictly better BEAM capabilities + toolings - ... There are a few areas I can highlight above where the tech absolutely excels so its the best or one of the best options in general. The magic then is that Elixir is also like 80-90% in nearly everything else with the only 2 shortcomings being raw computation speed (native libs can help as usual, easy with rust) and deployment being more complex than Ruby/Python since you should link the server nodes (no-brainer with hosters like fly)