Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Learning Elm in 3 Days
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
bakkdoor
July 05, 2018
Programming
60
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Learning Elm in 3 Days
ElmEurope 2018 presentation slides.
bakkdoor
July 05, 2018
More Decks by bakkdoor
See All by bakkdoor
The Fancy Programming Language - FrOSCon 2013
bakkdoor
0
110
Fancy Hacking / Hacking Fancy
bakkdoor
0
130
Getting Fancy on Rubinius
bakkdoor
3
340
Other Decks in Programming
See All in Programming
Kotlinの15年とServer-Side Kotlin
n_takehata
1
150
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
260
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
500
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
390
TechTown - Creating Composable Callables in Contemporary C++
rollbear
0
130
Verilogで学ぶCPU自作入門
uyuki234
8
4.1k
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
28
32k
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
480
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
220
APNsからLive Activityを開始する話
yumnumm
0
170
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
430
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
460
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
410
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
220
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
440
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
67k
For a Future-Friendly Web
brad_frost
184
10k
First, design no harm
axbom
PRO
2
1.3k
Scaling GitHub
holman
464
140k
Evolving SEO for Evolving Search Engines
ryanjones
0
330
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