Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Maybe this is just my experience, but the thing that sucks a lot about programming to me it that the most enjoyable programming languages are often the ones with the smallest job market.

My job as a programmer would be infinitely better if I could spend it programming Elixir all day, but there is basically no Elixir jobs compared to Typescript, Python, and Java.

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.

Ruby use to an exception to this, but almost no one is building on Rails anymore compared to how many people build on React, and NextJS.

I'm talking about full stack application market, this is probably different for Rust users for systems, and Python for Data/AI.



By default this is because the skill bell curve in programmers including their managers. Most developers simply don't really care too much about their profession. They use what they've been taught at university or whats already used at $CORP job, fulfil some requirements given to them, and collect their paycheck. They usuallt can't be bothered to pick up more interesting tools on the side.

Ontop of that there is fluctuation and risk-avoidance, so using anything that is not absolutely mainstream is seen risky, because replacements might be a bit harder to get. Combine that with the usual mediocre preexisting employee base, and its obvious why by default the dumbest/broadest thing is everywhere in use, even though most people involved in the decisions aren't idiots.

There are roughly 2 types of places where you can encounter Elixir or other exotic tech:

1. The decision maker / CTO / tech lead actually has the autonomy and the personal interest in this tech so he is the driving force to level up and stand out. Only works in tandem with enough dev motivation in the team or it will backfire.

2. Startups/new tech insourcing departments, where a small circle of actually competent/motivated people got to choose the foundation and are by some miracle not blindsided already with "pick the cheapest and least risky" option but understand that tech can be the critical advantage needed.

Joker slot: be a solopreneur and use whatever you feel comfortable with. Thats the general escape hatch that is becoming increasingly popular it seems.


I used Ruby professionally in the early 2010s and that sucked all the joy out of it. Gigantic Rails monoliths in that era were just unmaintainable brambles. I probably would rather write Ruby again for side-projects but the ecosystem just isn’t there


> 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-con...

https://github.com/ctx-core/rmemo

https://github.com/relementjs/relementjs

https://github.com/rebuildjs/rebuildjs

https://github.com/relysjs/relysjs

https://github.com/ctx-core/ctx-core


The 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.


I 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)




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

Search: