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
わざわざ学ばなくて良い言語第1位をわざわざ学ぶ理由
Search
b4h0-c4t
May 18, 2019
Programming
1
1.4k
わざわざ学ばなくて良い言語第1位をわざわざ学ぶ理由
b4h0-c4t
May 18, 2019
Tweet
Share
More Decks by b4h0-c4t
See All by b4h0-c4t
Deopt Explorer で Web アプリのパフォーマンスを改善しよう!
b4h0c4t
0
2.3k
Other Decks in Programming
See All in Programming
CQRS meets modern Java
simas
PRO
2
480
Slackワークフローで感謝を伝える機能/WiFi 自動接続/Figma to React Component/障害レポート君 Team3@NOT A HOTEL
nakaohiroshi
0
210
Namespace, What and Why
tagomoris
4
1.2k
slow types ってなんだろう?
karad
0
210
PHPコードの実行モデルを理解する / Understanding-the-PHP-Execution-Model
shin1x1
0
1.1k
TypeScriptの型とパフォーマンス (TSKaigi 2024)
ypresto
14
5.2k
仕様と実装で学ぶOpenTelemetry
drumato
2
1.2k
Amazon Aurora Serverless v2が意外と高かった話と、AWS Database Migration Serviceの話
satoshi256kbyte
1
110
mb_trim関数を作りました
youkidearitai
PRO
1
250
The test code generator using static analysis and LLM
mikik0
1
290
ServerAction で Progressive Enhancement はどこまで頑張れるか? / progressive-enhancement-with-server-action
takefumiyoshii
6
520
Implementing Design Systems in Swift
seyfoyun
2
530
Featured
See All Featured
Fontdeck: Realign not Redesign
paulrobertlloyd
76
4.9k
Agile that works and the tools we love
rasmusluckow
325
20k
Creatively Recalculating Your Daily Design Routine
revolveconf
211
11k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.7k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
8
3.5k
4 Signs Your Business is Dying
shpigford
176
21k
GraphQLの誤解/rethinking-graphql
sonatard
56
9.3k
How to name files
jennybc
65
94k
The Pragmatic Product Professional
lauravandoore
26
5.9k
A Philosophy of Restraint
colly
197
16k
Designing Experiences People Love
moore
136
23k
Build your cross-platform service in a week with App Engine
jlugia
226
17k
Transcript
わざわざ学ばなくて良い言語第1位を わざわざ学ぶ理由 公立はこだて未来大学大学院 修士1年 Hodaka Hashiba
意識高めの自己紹介 • 名前 : 橋場 保鷹 (ハシバ ホダカ) • 所属
: 公立はこだて未来大学大学院 • システム情報科学研究科 • 分野 : • Webフロントエンド • 趣味 : • 写真撮影 • 水泳 • フットボール • GitHub ID : takachan-mirai
意識低めの自己紹介 #springLT_hakodate で誰かが晒してくれます。(Twitter)
わざわざ学ばなくて良い言語とは?
わざわざ学ばなくて良い言語 2019 • Codementorにより調査された • コミュニティのエンゲージ • 成長率 • 雇用市場
• これらの観点からどの言語が 優位なのかランク付けしたもの 左カラムが2018 右カラムが2019
わざわざ学ばなくて良い言語 2019 • Codementorにより調査された • コミュニティのエンゲージ • 成長率 • 雇用市場
• これらの観点からどの言語が 優位なのかランク付けしたもの 左カラムが2018 右カラムが2019
Elm Language “A delightful language for reliable webapps.” • 信頼性のあるWebアプリのための楽しい言語(直訳)
画像引用 https://ehsangazar.com/considering-elm-lang-for-future-6d8337f15d88
Elmは本当にわざわざ”学ぶ”必要がないのか
市場価値 ≠ 学ぶ価値
市場価値 ≠ 学ぶ価値 • 市場価値の高い言語を学ぶことだけが重要ではない • 自身が美しいコードを書くためには様々な知識が必要 • Ex. Javaを書くときにオブジェクト指向を知っていた方が良い
• 分かりやすさ重視なので叩かないでね • 複雑な言語機能と同時に事前知識を学ぶのは難しい • 成長した言語はこの傾向がある • 学習ノイズになる
そこで †Elm †
わざわざ学ぶ必要のない言語第1位を わざわざ学ぶ理由 学習者として学ぶElm 公立はこだて未来大学大学院 修士1年 Hodaka Hashiba
Elmの特徴 • 非常に薄い言語機能とナウい関連知識 • ランタイムエラーが発生しない • エラーメッセージがとっても親切 • JAPANコミュニティが活発
非常に薄い言語機能とナウい関連知識 • 学習コストが低い • 日本語の公式ドキュメント有 • Elmと関連するトレンドな体系をエッセンスとして学び易い • 関数型プログラミング •
テスタブル • フロントエンドアーキテクチャ(The Elm Architecture) • Etc. ※”ナウい”が流行った時期と関連技術の流行時期に関連性はありません
ランタイム(実行時)エラーが発生しない • コンパイルのタイミングでダメなところを教えてくれる • JavaScriptは実行するまで何も教えてくれない
JavaScriptの茶番 よし、準備できたな 学校行ってきまーす いってらっしゃーい おなか減った… 給食の時間 あら…あの子お弁当箱忘れてるわ エンジニア Elm Compiler
Elmの茶番 よし、準備できたな 学校行ってきまーす たかし、弁当箱忘れてるわよ ほんとだ!ありがとうカーチャン! エンジニア Elm Compiler
ママ...
エラーメッセージがとっても親切(1/2) • 殆どのコンパイラのエラーメッセージ • 行 • メソッド • エラーイベント •
Elm Compilerは上に加えて、 • 今のコードは正しいコードと比べてどうなっているか • 正しくするにはどう書き直せばよいのか • 上記2点を自然言語っぽく出力
エラーメッセージがとっても親切(2/2) コード エラー 画像引用: https://qiita.com/ababup1192/items/8dae437da47f25811658
続・茶番 学校行ってきまーす たかし、靴の紐ほどけてるわよ ほんとだ!ありがとうカーチャン! 蝶結びしたいなら - 両紐を絡ませる - 両紐を二つに折る -
片方のループをもう片方のループで囲む - 囲まれたループの根元をもう片方のループに通す でできるわよ エンジニア Elm Compiler
ママ---!!!!!!!!
JAPANコミュニティが活発 • Elm-jp (https://elm-lang.jp/) • Discordでオンラインもくもく会 • 優しいおじさん達によるBeginnerチャンネル 皆、同じママを持つ兄弟
まとめ : Elmを学ぶココがイイ! • 学び易い環境が揃っている • 薄く分かりやすい言語機能 • 高度なデバッグ能力 •
親切な日本コミュニティ • 今学びたい関連知識・技術を得られる • ソフトウェアアーキテクチャ • 関数型パラダイム • テスト
Elmやってみたくなった人✋
今すぐここへアクセス https://twitter.com/takachan_mirai
おわり