Hi @josevalim !
This is my Elixir repl :
Erlang/OTP 21 [erts-10.0] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]
Interactive Elixir (1.6.5) - press Ctrl+C to exit (type h() ENTER for help)
As you have mentioned, yes I am not running the latest Elixir build - I am sorry about that, I will try to figure out how to get Elixir updated. In the meantime I have a few things to say :
I have watched a lot of your talks and would like to say you are doing a brilliant job !
I do not know how to thank you enough for trying to bring Erlang/OTP to the 21st Century, you must have invested a lot of your time and software needs more people like you.
It’s doubly impressive since your project is competing with the likes of golang which has strong financial backing - so you are arguably winning because of pure merit.
However I am having a tough time understanding Elixir, believe it or not I found Erlang easier to understand and get started compared to Elixir !
A few specific quirks (I hope you do not mind constructive criticism ) :
test "greets the world" do
assert KV.hello() == :world
assert coming from ? is it being imported from
… but in your own docs it states:
Since use allows any code to run, we can’t really know the side-effects
of using a module without reading its documentation. For this reason,
import and alias are often preferred, as their semantics are defined by
I strongly agree with this statement - it reminds me of Python’s:
import * from numpy
which we can all agree is not a good idea, it completely threw me off as a beginner.
nodejs you do not have to learn how to do TDD before trying to figure out how
nodejs works, I understand the immense value of TDD and no serious application in 2018 should release without doing TDD - but if you are a beginner its going to be another extra hill you need to climb.
Imagine this - I have worked with
haskell and its still quite difficult to see how Elixir is working - imagine a first year Computer Science student is it not a goal
to show them the beauty of Elixir first ?
For example in
nodejs the bare bone project has :
in Elixir its :
and my code entry point is
lib/foo.exs ? How do I know that ? where is it being made explicit ?
A first year CS student wont know the importance of
README.md how it relates to
git (what is git ?) and how
README.md is used by
github.com, what is markdown again ?
Elixir just had
mix.exs and an entry point file made explicit in
Why is config not specified in
I am sorry, I might just not have enough knowledge regarding why those decisions were made - but I felt I had to let my opinions be know so that Elixir can truly compete with with
nodejs in terms of ease of use. I truly want Elixir to take off in a big way.