Learning curve for dev coming from javascript platform?

just kinda curious how other dev learning elixir and whats the learning curve coming from other environment i mean not from ruby…

Well, I did just pick it up, but I am still trying to wrap my mind around some OTP stuff.

But there is no single language I come from, but quite a huge list, so elixir was mostly just another syntax and some newly shuffled namespaces.

So I think, if you come from a language that is OOP or imperative and lives from mutation, you will have some trouble getting into elixir.

But if you are already familiar with some functional concepts or immutability at least, transition might get a bit smoother.

TL;DR: If you’ve spent some time learning functional paradigm in JS, it’s “just” a matter of learning new syntax (after that we can jump to a more advanced topics). If not, then you might want to learn some functional JS first.

Professionally, I spent my time using Node.js + React at work, and now I’m building a project using Elixir/Phoenix (without frontend, it’s a web API). So in one hand, I came from JS to Elixir; but down the road between them, I’ve tried several other languages.

I’m sold with the idea that functional paradigm is fun to use in programming. I like to believe that JS is inherently a functional language (influenced by Scheme) and has excellent support of functions as first-class citizens, hence I use map, reduce, filter, etc. quite heavily, trying not to mutate any state as far as I could and relying only on inputs to generate output.

It’s nice, but I think we can all agree that JS has its… quirks. So I went out to search for another “reliable” language to improve my repertoire.

Among other things, I tried Haskell. It’s an amazing language, but the commoner me spent much time fighting with the compiler (I think it was converting one type of string to another) to actually produce something. I don’t think this is it. (Although I think I’ll try again sometime in the future to tame Haskell, it’s been kind of like a personal goal. P.S. I tried and failed twice). I tried Elm to replace JS in the frontend and it’s great, but I don’t think I’ll use it anytime soon (keeping it on my radar though).

But then I encountered an article about Phoenix (I mostly build web apps) and decided to give Elixir a try. And it’s actually so productive to build stuff. I still wish I learn a language that have static types, but I think tools like Dialyzer can help (haven’t tried it though).

The point is, I have no problem with the paradigm since I came from somewhat of an FP background. It’s “just” a matter of learning syntax (I haven’t even touched Ruby other than configuring some Vagrant stuff). But I do realize that if you come from, say, Java or OOP-ish JS, it might confuse you. You might want to learn FP using JS first (it’s fun, I guarantee you :D).

1 Like

great… its been like 6 month journey with elixir and so far i am loving it & its been the best decission i have made … just curious that am i being enough productive

After reading my post again, I feel like I have a confusing first sentence.

It does read as if I had just picked up elixir recently and learning only for a couple of days (which is not true since I am interested in elixir for about 20 months now).

In fact what I meant was that I was able to just pick it up as just another tool like a new screwdriver, there weren’t any hassles.

Clarrifying the “20 months” from above:

I read about phoenix on a rails mailinglist about that time when 0.11 or 0.12 was released. Since then I wanted to use elixir, but at my university I am limited to erlang 16 and I didn’t had a dayjob then. So I moved to erlang and used that without even caring for OTP in various contests at my university at different levels of success :wink:

Since about the beginning of this board I try to focus on elixir again, and try to prepare some stuff for my thesis (whenever I will actually write it). I do hope, until then I do get a better understanding of OTP