Alex Kutas' blog.

How I spent two years in Erlang when I should have been doing more JavaScript instead

When I was studying at university, Node.js began to gain popularity. JavaScript, as a server language, was viewed as an unviable option by many developers. JavaScript had a reputation as a language that was somehow inherently flawed, a belief I think stemmed largely from the way the Web evolved in the 90s and 00s.

I had an interest in the Web and had done some HTML coding in school, so Node.js was quite intriguing to me. However, as a student with no commercial coding experience trying to find a career path in programming, I relied heavily on the opinions of other "more experienced" engineers. In the discussions about Node.js, the consensus seemed to be that it was unnecessary. There were already established options like PHP for backend scripting, Java/.NET for enterprise solutions, and Erlang for handling massive numbers of requests simultaneously. The latter particularly caught my attention.

Thus, I began learning Erlang, dedicating time to understanding its syntax and runtime specifics. I even started using Erlang for my university projects, as we had the freedom to choose any language for certain classes. I was quite pleased with my choice. The experience of writing and debugging in Erlang was excellent, and the tooling and documentation were also impressive. The only aspect I missed in my Erlang development was some kind of type annotation, similar to JSDoc, to help me manage complex structures, so I resorted to keeping those in comments.

In my final year of university, I started exploring the job market and realized there were hardly any positions for Erlang developers. To secure employment, I shifted back to web and JavaScript, starting with frontend development simply because there were more opportunities for front-end engineers.

In retrospect, I don't regret learning Erlang. It was a refreshing change after working with C and Java in university. The language is more abstract than C but not as complex as Java. Moreover, the functional programming paradigm it introduced me to was incredibly useful later on, especially when the React and Redux trend took off.