Uploaded September 2019 | Updated September 2026, 2 weeks ago
π Brilliant (Episode sponsor)
Interactive courses on computer science.
Use link to get 20% off annual subscription: brilliant.org/fff
πFun Fun Forum thread for this episode
funfunforum.com/t/kind-hearted-humble-together-what-do-we-stand-for/8782
πTwitter thread on software reducing suffering
twitter.com/mpjme/status/1167922424421081088
β° Quick jump
00:01 Introduction, let's try define the Fun Fun Function values
01:17 Sponsor, Brilliant, computer science courses (brilliant.org/fff)
02:13 Overview and structure of video
02:42 Background - where does Fun Fun Function come from and why do we need value now?
03:03 Claim to fame #1: Tutorials
03:41 Claim to fame #2: Fun
04:53 But what is the point?
07:41 Kind-hearted segment start
08:10 Choosing what kind of software we work on
08:20 We talk too much about tooling and techniques instead of impact
09:55 What to do with our limited time on this earth?
10:28 Software developers wield great power because ...
10:38 Scalable impact
11:27 Sellers market
12:17 With great power comes great responsibility
12:54 Twitter thread on software reducing suffering (twitter.com/mpjme/status/1167922424421081088)
16:25 Does prettier.js reduce suffering?
18:21 Making software that aims to reduce suffering
19:51 What software does NOT reduce suffering?
23:12 Reducing suffering through reducing waste
26:51 Summary of Kind-hearted
28:31 Humble segment start
28:39 Growth over success
28:54 Learning from our mistakes is the only way to a better tomorrow
29:04 That feeling of confusion is your friend, it means you're learning
29:12 Sounds obvious to do but really hard to do in practice
29:34 Success is just the end event in a long chain of mistakes and learning
30:21 The "Jesus project" fallacy
31:26 Cultivating a growth mentality
33:38 Together segment start
34:04 Software used to be suited for lone wolfs
35:06 Software today is NOT built by great developers, it's built by great teams.
37:35 Hermit development - going off into the forest and into a cave and emerging two weeks later with a puzzle piece that doesn't fit
38:46 If you want to go fast, go alone. If you want to go far, go together.
39:19 Summary of all segments
40:20 Outro / How can we achieve this / Plea for help
π Episode notes
I talk about the values of FFF - Kind-Hearted, Humble, Together)
π Follow on Twitch and support by becoming a Subscriber
We record the show live Mondays 7 AM PT
twitch.tv/funfunfunction
π Fun Fun Forum
Private discussion forum with other viewers in between shows. https://www.funfunforum.com. Available to patron members, become one at patreon.com/funfunfunction
π mpj on Twitter
twitter.com/mpjme
π CircleCI (Show sponsor)
Robust and sleek Docker-based Continuous Integration as a service. I used CircleCI prior to them becoming a sponsor and I love that their free tier is powerful enough for small personal projects, even if they are private. Use this link when you sign up to let them know you came from here:
circleci.funfunfunction.com
π Quokka (Show sponsor)
Wonder how MPJ evaluates JavaScript inline his editor. Quokka is the answer - use this link when you buy to let them know you came from here:
quokka.funfunfunction.com
π Wallaby (Show sponsor)
Wallaby.js runs your JavaScript tests immediately as you type and displays execution results in your code editor. It is insanely fast, because it only executes tests affected by your code changes and runs tests in parallel. Let them know you came from us by using this link:
wallaby.funfunfunction.com
π FUN FUN FUNCTION
Since 2015, Fun Fun Function (FFF) is one of the longest running weekly YouTube shows on programming π thanks to its consistency and quality reaching 200,000+ developers.
π€¦ββοΈ The Failing Together concept is what makes FFF unique. Most coding content out there focus on step-by-step tutorials. We think tutorials are too far removed from what everyday development is like. Instead, FFF has created a completely new learning environment where we grow from failure, by solving problems while intensively interacting with a live audience.
Tutorials try to solve a problem. Failing Together makes you grow as a developer and coworker.
πΉ Each show is recorded live on Twitch in a 2-hour livestream on Mondays. The host, assisted by the audience, is tasked to complete a programming challenge by an expert guest. Like in the real world, we often fail, and learn from it. This, of course, reflects what the audience identifies with, and is one of the most praised aspects of the show.
β― On Fridays, an edited version of the show is adapted for and published on YouTube.
Content Topics revolve around: JavaScript, Functional Programming, Software Architecture, Quality Processes, Developer Career and Health, Team Collaboration, Software Development, Project Management
π Brilliant (Episode sponsor)
Interactive courses on computer science.
Use link to get 20% off annual subscription: brilliant.org/fff
πFun Fun Forum thread for this episode
funfunforum.com/t/kind-hearted-humble-together-what-do-we-stand-for/8782
πTwitter thread on software reducing suffering
twitter.com/mpjme/status/1167922424421081088
β° Quick jump
00:01 Introduction, let's try define the Fun Fun Function values
01:17 Sponsor, Brilliant, computer science courses (brilliant.org/fff)
02:13 Overview and structure of video
02:42 Background - where does Fun Fun Function come from and why do we need value now?
03:03 Claim to fame #1: Tutorials
03:41 Claim to fame #2: Fun
04:53 But what is the point?
07:41 Kind-hearted segment start
08:10 Choosing what kind of software we work on
08:20 We talk too much about tooling and techniques instead of impact
09:55 What to do with our limited time on this earth?
10:28 Software developers wield great power because ...
10:38 Scalable impact
11:27 Sellers market
12:17 With great power comes great responsibility
12:54 Twitter thread on software reducing suffering (twitter.com/mpjme/status/1167922424421081088)
16:25 Does prettier.js reduce suffering?
18:21 Making software that aims to reduce suffering
19:51 What software does NOT reduce suffering?
23:12 Reducing suffering through reducing waste
26:51 Summary of Kind-hearted
28:31 Humble segment start
28:39 Growth over success
28:54 Learning from our mistakes is the only way to a better tomorrow
29:04 That feeling of confusion is your friend, it means you're learning
29:12 Sounds obvious to do but really hard to do in practice
29:34 Success is just the end event in a long chain of mistakes and learning
30:21 The "Jesus project" fallacy
31:26 Cultivating a growth mentality
33:38 Together segment start
34:04 Software used to be suited for lone wolfs
35:06 Software today is NOT built by great developers, it's built by great teams.
37:35 Hermit development - going off into the forest and into a cave and emerging two weeks later with a puzzle piece that doesn't fit
38:46 If you want to go fast, go alone. If you want to go far, go together.
39:19 Summary of all segments
40:20 Outro / How can we achieve this / Plea for help
π Episode notes
I talk about the values of FFF - Kind-Hearted, Humble, Together)
π Follow on Twitch and support by becoming a Subscriber
We record the show live Mondays 7 AM PT
twitch.tv/funfunfunction
π Fun Fun Forum
Private discussion forum with other viewers in between shows. https://www.funfunforum.com. Available to patron members, become one at patreon.com/funfunfunction
π mpj on Twitter
twitter.com/mpjme
π CircleCI (Show sponsor)
Robust and sleek Docker-based Continuous Integration as a service. I used CircleCI prior to them becoming a sponsor and I love that their free tier is powerful enough for small personal projects, even if they are private. Use this link when you sign up to let them know you came from here:
circleci.funfunfunction.com
π Quokka (Show sponsor)
Wonder how MPJ evaluates JavaScript inline his editor. Quokka is the answer - use this link when you buy to let them know you came from here:
quokka.funfunfunction.com
π Wallaby (Show sponsor)
Wallaby.js runs your JavaScript tests immediately as you type and displays execution results in your code editor. It is insanely fast, because it only executes tests affected by your code changes and runs tests in parallel. Let them know you came from us by using this link:
wallaby.funfunfunction.com
π FUN FUN FUNCTION
Since 2015, Fun Fun Function (FFF) is one of the longest running weekly YouTube shows on programming π thanks to its consistency and quality reaching 200,000+ developers.
π€¦ββοΈ The Failing Together concept is what makes FFF unique. Most coding content out there focus on step-by-step tutorials. We think tutorials are too far removed from what everyday development is like. Instead, FFF has created a completely new learning environment where we grow from failure, by solving problems while intensively interacting with a live audience.
Tutorials try to solve a problem. Failing Together makes you grow as a developer and coworker.
πΉ Each show is recorded live on Twitch in a 2-hour livestream on Mondays. The host, assisted by the audience, is tasked to complete a programming challenge by an expert guest. Like in the real world, we often fail, and learn from it. This, of course, reflects what the audience identifies with, and is one of the most praised aspects of the show.
β― On Fridays, an edited version of the show is adapted for and published on YouTube.
Content Topics revolve around: JavaScript, Functional Programming, Software Architecture, Quality Processes, Developer Career and Health, Team Collaboration, Software Development, Project Management








![Templating languages: The hidden costs - Fun Fun Function
π Support the show by becoming a Patreon
https://www.patreon.com/funfunfunction
# Videos mentioned:
π Declarative programming: https://www.youtube.com/watch?v=yGh0bjzj4IQ
π Reduce basics: https://www.youtube.com/watch?v=Wl98eZpkp-c
π Currying: https://www.youtube.com/watch?v=iZLP4qOwY8I
# Hot spots in the video:
04:23 Expressive
11:23 Declarative
15:41 Complexity
18:06 Social cost
21:32 Loss of tools
π mpj on Twitter
https://twitter.com/mpjme
πThe camera I use
http://amzn.to/2kwlpAD
π The microphone and sound recorder I use
http://amzn.to/2kwli8e
http://amzn.to/2lcVSfd
π The lights I use
http://amzn.to/2ld8jrX
# Partial script
Today Iβm going to compare templating languages, like Handlebars, to generating DOM with JavaScript, like React does. There are two main arguments for using templating languages - that they are expressive and declarative.
But there are also three big costs of using template languages, complexity, social cost, and loss of tools.
Five years ago or so, the industry standard way of rendering DOM was to use a template language to glue your business logic together with your HTML. Then a few years ago React arrived on the scene, and did away with templating languages completely, and instead just using a JavaScript in place of the templating language. The native JavaScript approach is gaining a lot of traction, but a lot of developers still hold template languages in high regard, and are not convinced that the native JavaScript approach is a step forward.
In this video, Iβm not going to talk about some cost and benefits of template languages. Some feel that templates language vs. native JavaScript is just a matter of taste - I donβt agree with that. I totally recognize that computer science isnβt physics and there isnβt a clear-cut right or wrong, but there are benefits and costs that we can and should reason about.
The two big benefits of templates are that they are expressive and declarative.
Expressive. Templating languages are very expressive, because unlike JavaScript, templating languages are designed just for expressing HTML.
Declarative. Templating languages are designed to encourage declarative interfaces. By the way, if youβre not sure what declarative programming is you can watch [this video] first and this video is going to make a lot more sense.
But, all technologies have both benefits and costs, and to add a templating language youβre paying with added complexity, social cost, and loss of tools.
Complexity. Template languages also add complexity, because they introduce an entire little language engine to your stack.
Social cost. Anyone working with your codebase now has to learn this extra little language in addition to JavaScript.
Loss of tools. If youβre using a templating language, youβre throwing away all the power of JavaScript, not just the power of the language itself, but also libraries written in it, and tooling like editors and linters.
π Follow on Twitch and support by becoming a Subscriber
We record the show live Mondays 7 AM PT
https://twitch.tv/funfunfunction
π Fun Fun Forum
Private discussion forum with other viewers in between shows. https://www.funfunforum.com. Available to patron members, become one at https://www.patreon.com/funfunfunction
π mpj on Twitter
https://twitter.com/mpjme
π CircleCI (Show sponsor)
Robust and sleek Docker-based Continuous Integration as a service. I used CircleCI prior to them becoming a sponsor and I love that their free tier is powerful enough for small personal projects, even if they are private. Use this link when you sign up to let them know you came from here:
https://circleci.funfunfunction.com
π Quokka (Show sponsor)
Wonder how MPJ evaluates JavaScript inline his editor. Quokka is the answer - use this link when you buy to let them know you came from here:
http://quokka.funfunfunction.com
π FUN FUN FUNCTION
Since 2015, Fun Fun Function (FFF) is one of the longest running weekly YouTube shows on programming π
thanks to its consistency and quality reaching 200,000+ developers.
π€¦ββοΈ The Failing Together concept is what makes FFF unique. Most coding content out there focus on step-by-step tutorials. We think tutorials are too far removed from what everyday development is like. Instead, FFF has created a completely new learning environment where we grow from failure, by solving problems while intensively interacting with a live audience. Templating languages: The hidden costs - Fun Fun Function](https://i.ytimg.com/vi/EmGfdlixQHo/mqdefault.jpg)

