The Do's and Don'ts of Error Handling • Joe Armstrong • GOTO 2018
GOTO Conferences2 HN recommenders · 2018–2022
74K views · talk · evergreen · Uploaded 2018-11-02
Joe Armstrong, inventor of Erlang, gives a GOTO Chicago 2018 talk on building fault-tolerant systems. He covers what to do and avoid when handling errors, arguing for letting processes fail and recover.
Recommended as a conceptual rather than code-heavy talk on failure recovery from Erlang's creator.
53:22Ruby Conf 12 - Y Not- Adventures in Functional Programming by Jim Weirich
Confreaks
42:03The Soul of Erlang and Elixir • Sasa Juric • GOTO 2019
GOTO Conferences
1:01:39"Simple Made Easy" - Rich Hickey (2011)
Strange Loop Conference
25:06"Making Impossible States Impossible" by Richard Feldman
elm-conf
1:31:06William Byrd on "The Most Beautiful Program Ever Written" [PWL NYC]
PapersWeLove
40:20"Testing Distributed Systems w/ Deterministic Simulation" by Will Wilson
Strange Loop Conference
31:44The Value of Values with Rich Hickey
InfoQ
46:09Why Isn't Functional Programming the Norm? – Richard Feldman
Metosin
3 comments from Hacker News
Blockchains Are a Bad Idea (James Mickens) [LINK] I find almost all from GOTO 2018 very insightful. [LINK] esp ones listed below. GOTO 2018 • The Do's and Don'ts of Error Handling • Joe Armstrong [VIDEO] GOTO 2018 • Pragmatic Event-Driven Microservices • Allard Buijze [LINK] GOTO 2018 • Why Business Cases are Toxic • Chris Matts [LINK] GOTO 2018 • Unconditional Code • Michael Feathers [LINK]
Type checking, compile-time errors won't check if the program you wrote is correct, only that it's internally consistent. That is an entirely different thing than checking for correctness. You do need a layer of tests that actually try to prove that given some input your program actually does what it's supposed to do. That is hard to automate. Joe Armstrong(of the Erlang fame), talks about this a bit here: [VIDEO] I've pointed to a specific timestamp, but there might be more details somewhere else in that talk.
Also, if I may, recommend two videos to watch which is what got me into Elixir in the first place. 1. "The Soul of Elixir and Erlang" - [LINK] ; this fast-paced talk by Sasa Juric will highlight exactly what is special about Elixir/Erlang in terms of fault-tolerance and scalability 2. "Using the Beam to Fight COVID-19" - [LINK] ; this highlights a real-world use of Elixir and the speciality of how the BEAM works using an actor model which I found fascinating. Should get your excited about the possibilities of this language. 3. "The Do's and Don'ts of Error Handling" - [VIDEO] ; this talk by Joe Armstrong, inventor of Erlang, again highlights the shift in thinking about error handling and failure recovery. Not Elixir specific, but since Elixir has it's roots in Erlang it's well worth listening to this talk, which is conceptual and not code-centric. None of the videos above are Phoenix or LiveView but they should help build some concepts in your brain about why you want to go down this learning path of Elixir and Phoenix, why it's different. I listened to the first two, and I couldn't stop thinking about them, personally. A last thought I would give you as you're going through any training material or topics, I cannot recommend strongly enough. Consider this pattern: download LiveBook ( [LINK] ) and create a notebook for each lesson or major topic you're learning. Gives you a great way to learn, take notes, experiment and keep the history rather than just using iex at the comma