@robashton
AngularJS,Rails,Ruby,C#,Java,JavaScript,Ember,Node,Semicolons, Object orientated code, Design patterns, Procedural code, Imperative code, Dynamic languages, Bad coffee,Visual Studio,Emacs, Making slide decks, MacOS,Wearing clothes,Wearing shoes,Exercise,Software development



I know programming

F********** ANGULAR

And earn megabucks the rails way




(You don't need a degree to go climbing)


Skipping "leg day"




Being young has advantages






(Here's the punchline)

Yes, Haskell
The revelation.

Trying to just "jump in and build shit" with Haskell

github.com/bitemyapp/learnhaskell
Solves problems we didn't even know we had
- "If statements are so tedious"
- "Why would I ever want to write for loops"
- "Recursion? Pfft - I'll just use a built-in"
Writing a function to append an item to another?
appendNode :: Tree -> Tree -> Tree
appendNode parent child = .... etcmappend :: a -> a -> aIt's probably a Monoid..
instance Tree Monoid where
mappend = addNode
mempty = Leaf
And suddenly...
addNodes :: Tree -> [Tree] -> Tree
addNodes t [] = t
addNodes t (x:xs) = addNodes (t mappend x) xsaddNodes :: Tree -> [Tree] -> Tree
addNodes = foldr mappendNaawww
(actually, this exists and is called mconcat)
But not easy


"Making it easy to skip leg day"

PureScript
Elm
(Cljs/Om)
Etc
Our chance to do it right better


"Out of the tar pit"
"simple made easy"
https://github.com/bitemyapp/learnhaskell