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
94
Fancy Hacking / Hacking Fancy
bakkdoor
0
120
Getting Fancy on Rubinius
bakkdoor
3
320
Other Decks in Programming
See All in Programming
Googleの新しいコーディングAIエージェントJulesを使ってみた
tonionagauzzi
0
150
構文解析器入門
ydah
7
1.9k
中級グラフィックス入門~効率的なメッシュレット描画~
projectasura
3
1.7k
코딩 에이전트 체크리스트: Claude Code ver.
nacyot
0
1k
Prompt Engineeringの再定義「Context Engineering」とは
htsuruo
0
110
202507_ADKで始めるエージェント開発の基本 〜デモを通じて紹介〜(奥田りさ)The Basics of Agent Development with ADK — A Demo-Focused Introduction
risatube
PRO
5
1.2k
Workers を定期実行する方法は一つじゃない
rokuosan
0
130
NEWT Backend Evolution
xpromx
1
160
Claude Code で Astro blog を Pages から Workers へ移行してみた
codehex
0
160
バイブスあるコーディングで ~PHP~ 便利ツールをつくるプラクティス
uzulla
1
300
MySQL9でベクトルカラム登場!PHP×AWSでのAI/類似検索はこう変わる
suguruooki
1
250
LLMは麻雀を知らなすぎるから俺が教育してやる
po3rin
2
1.3k
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
21
1.4k
How to Think Like a Performance Engineer
csswizardry
25
1.8k
Designing Experiences People Love
moore
142
24k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
GraphQLとの向き合い方2022年版
quramy
49
14k
A designer walks into a library…
pauljervisheath
207
24k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
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