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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
bakkdoor
July 05, 2018
Programming
61
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
baseline으로 마이그레이션, 리팩토링 안전하게 맡기기
fornewid
1
920
AmebaブログはKMPから卒業します
kmars0605
0
330
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
13
5.8k
flutter_test のその先へ — Flutter アプリの LLM 機能に「評価」という品質保証を
kosukesaigusa
0
200
AI-Powered Domain-Driven Design
ziobrando
0
410
AIが生成したコードは読むべきか?抽象化設計とコードの品質保証 / abstraction-design-and-quality
minodriven
16
8.8k
Kotlinize Is Not Just Converting to Kotlin
chigichan24
1
220
AIが実装を担う時代の「技術設計」と「チームマネジメント」
kamina_zzz
2
220
SODA - FACT BOOK(JP)
sodainc
1
40k
ActionController meets Protocol Buffers
sorah
1
790
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
4
1.8k
動画プレイヤーはなぜカクつくのか 〜Flutterのレンダリングとネイティブの境界を解剖する〜
naruogram
0
330
Featured
See All Featured
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
910
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.7k
Being A Developer After 40
akosma
PRO
92
590k
It's Worth the Effort
3n
188
29k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Building Adaptive Systems
keathley
44
3.3k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
660
Faster Mobile Websites
deanohume
310
32k
Evolving SEO for Evolving Search Engines
ryanjones
0
360
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
400
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