Hi everyone!

Often it is helpful for me to hear the experience from someone who is just 
learning how to use my software. I think the same is probably true of 
programming languages so I thought I would share my story of learning Elm 
with you.

The Good Parts

I started looking at Elm about a week and a half ago and have probably 
spent 20 hours reading and watching Elm content and writing Elm code. I 
found out about Elm because I have been interested in Elixir and stumbled 
into this conference talk by Rob Martin, *Teaching functional programming 
to noobs* (Lambda Days 2016) <https://www.youtube.com/watch?v=bmFKEewRRQg>. 
I jumped straight into writing code using Exercism.io exercises. I copied 
code I saw in examples but couldn't get too far. I watched Richard 
Feldman's *Introduction to Elm* 
<https://www.youtube.com/watch?v=zBHB9i8e3Kc> and Evan's Let's be Mainstream 
<https://www.youtube.com/watch?v=oYk8CKH7OhE>. Those two talks and 
occasionally looking up core library docs got me far enough that I could 
get through a good number of the Exercism exercises. I was impressed that 
the language was so intuitive, that error messages were sooo good, that 
currying was easy, and that using types was both terse and descriptive at 
the same time.

I started working on updating a small personal project and realized I 
needed to understand 'The Elm Architecture' so I've been working through 
the tutorial with my remaining time in Elm. So far, the tutorial is great 
and progresses at a good speed.

The Rough Edges

I had a difficult time figuring out where to go for good documentation. 
Everything was spread out among multiple resources. My first experience was 
looking at elm-lang.org/docs where I found a dozen or so links that point 
to 5 different domains/subdomains. If I had come to Elm without hearing 
strong praise from a respected programmer then I'm not sure I would kept 
going. The disorder of the documentation gives the sense that Elm is a 
hobby language rather than production-ready. Elixir handles these concerns 
very well: Commonly used libraries have a consolidated guide 
<http://elixir-lang.org/getting-started/introduction.html> and documentation 
<http://elixir-lang.org/docs.html> within a single click of the language's 
homepage.

Questions I have at this point (that would help me to know if Elm is worth 
continuing to invest in): How does 'The Elm Architecture' work with larger 
applications? I've seen some examples like the Todo app and the Flatris 
clone that have a high-ish number of actions that the app responds to in 
`update`. What about an app that spans multiple pages and should respond to 
hundreds of actions? Would you split the app into many small apps? If so, 
would there be a parent app that delegates actions? Also, can I use `The 
Elm Architecture` and Commands/Subscriptions outside of the HTML world? I 
think it would be helpful to answer these questions at some point in the 
documentation.


Hopefully this ends up being useful. Overall, I have really enjoyed using 
the language and will continue to write Elm code in my free time and look 
for ways to use it professionally. Thanks for listening!

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to