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
48
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
97
Fancy Hacking / Hacking Fancy
bakkdoor
0
120
Getting Fancy on Rubinius
bakkdoor
3
320
Other Decks in Programming
See All in Programming
Google Opalで使える37のライブラリ
mickey_kubo
3
140
社会人になっても趣味開発を続けたい! / traPavilion
mazrean
1
100
その面倒な作業、「Dart」にやらせませんか? Flutter開発者のための業務効率化
yordgenome03
1
140
Domain-centric? Why Hexagonal, Onion, and Clean Architecture Are Answers to the Wrong Question
olivergierke
3
970
What's new in Spring Modulith?
olivergierke
1
170
EMこそClaude Codeでコード調査しよう
shibayu36
0
410
Devvox Belgium - Agentic AI Patterns
kdubois
1
150
SwiftDataを使って10万件のデータを読み書きする
akidon0000
0
240
Claude CodeによるAI駆動開発の実践 〜そこから見えてきたこれからのプログラミング〜
iriikeita
0
330
フロントエンド開発のためのブラウザ組み込みAI入門
masashi
7
3.5k
エンジニアインターン「Treasure」とHonoの2年、そして未来へ / Our Journey with Hono Two Years at Treasure and Beyond
carta_engineering
0
420
Migration to Signals, Resource API, and NgRx Signal Store
manfredsteyer
PRO
0
110
Featured
See All Featured
Embracing the Ebb and Flow
colly
88
4.9k
A designer walks into a library…
pauljervisheath
209
24k
A better future with KSS
kneath
239
18k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
990
Designing Experiences People Love
moore
142
24k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.7k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Typedesign – Prime Four
hannesfritz
42
2.8k
The Cult of Friendly URLs
andyhume
79
6.6k
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