Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Learning Elm in 3 Days
Search
bakkdoor
July 05, 2018
Programming
1
47
Learning Elm in 3 Days
ElmEurope 2018 presentation slides.
bakkdoor
July 05, 2018
Tweet
Share
More Decks by bakkdoor
See All by bakkdoor
The Fancy Programming Language - FrOSCon 2013
bakkdoor
0
93
Fancy Hacking / Hacking Fancy
bakkdoor
0
120
Getting Fancy on Rubinius
bakkdoor
3
320
Other Decks in Programming
See All in Programming
リバースエンジニアリング新時代へ! GhidraとClaude DesktopをMCPで繋ぐ/findy202507
tkmru
3
1.1k
SwiftでMCPサーバーを作ろう!
giginet
PRO
2
150
顧客の画像データをテラバイト単位で配信する 画像サーバを WebP にした際に起こった課題と その対応策 ~継続的な取り組みを添えて~
takutakahashi
4
1.3k
マッチングアプリにおけるフリックUIで苦労したこと
yuheiito
0
210
A full stack side project webapp all in Kotlin (KotlinConf 2025)
dankim
0
150
AIと”コードの評価関数”を共有する / Share the "code evaluation function" with AI
euglena1215
1
180
20250704_教育事業におけるアジャイルなデータ基盤構築
hanon52_
5
1.1k
ペアプロ × 生成AI 現場での実践と課題について / generative-ai-in-pair-programming
codmoninc
2
22k
Claude Code + Container Use と Cursor で作る ローカル並列開発環境のススメ / ccc local dev
kaelaela
12
7.2k
レトロゲームから学ぶ通信技術の歴史
kimkim0106
0
110
AI コーディングエージェントの時代へ:JetBrains が描く開発の未来
masaruhr
1
210
副作用と戦う PHP リファクタリング ─ ドメインイベントでビジネスロジックを解きほぐす
kajitack
2
210
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Agile that works and the tools we love
rasmusluckow
329
21k
A Modern Web Designer's Workflow
chriscoyier
695
190k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
108
19k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
282
13k
Music & Morning Musume
bryan
46
6.7k
The Cult of Friendly URLs
andyhume
79
6.5k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Transcript
Christopher Bertels bakkdoor Learning Elm in 3 Days Switching from
JS & React to Elm for Syncrypt’s Desktop UI
I don’t normally do much front-end coding
https://griffsgraphs.files.wordpress.com/2012/07/programming-languages_2.png
OO -> FP Dynamic -> Static Stateful behavior,
implicit dependencies -> Pure functions, explicit dependencies You do things differently over time
Syncrypt: A Short Summary ❖ File backup & synchronization service
(like Dropbox), but: ❖ Encrypts & decrypts only client-side: ❖ All file contents (using AES-256 bit symmetric encryption) ❖ All file metadata, including: ❖ File name (using SHA-256 hash) ❖ File size (random padding) ❖ All vault metadata (vault = syncrypted folder) ❖ Signature-Chain / Vault revision history ❖ CLI & daemon written in Python ❖ GUI written in Elm ❖ FOSS (GPL) client to make crypto & security analysis easier
TLDR; A simple to use file storage & synchronization service
that you don’t need to trust.
First some history
None
None
None
None
“And then I discovered Elm.” – Me, now
None
Slides about compiler errors helping with learning
Slides about strengths of Elm over JS/React/Redux
Elm’s Simplicity https://infi.nl/nieuws/why-i-became-an-elm-evangelist/
Example: UI Text Translation
None
None
None
None
None
None
None
But it didn’t start like that
None
None
None
None
None
After 3 days Json.Decode.Pipeline ftw!
Writing decoders forces you to really think about the structure
of your data and if it makes sense. I like decoders that are easy and obvious to read. => I like data structures for which it is easy to implement decoders
Elm can be fast
& Elm can be slow
Do these approaches make sense? Is this idiomatic Elm?
I’ve asked myself these questions. This is still my first
Elm program, after all.
What I do know is that Elm has made it
really easy for a newbie to the language to get productive within the first couple of days.
Related Links ❖ syncrypt.space ❖ github.com/syncrypt/desktop ❖ github.com/syncrypt/client ❖ twitter.com/syncrypt
❖ twitter.com/bakkdoor ❖ elm-tutorial.org
If you’re interested in trying out Syncrypt, You can sign
up for the beta that’s starting soon. Also, please just talk to me here if you have any questions or feedback. https://syncrypt.space