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
20181208_好きだけじゃツライScala.js_共有版_.pdf
Search
omiend
December 08, 2018
Programming
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20181208_好きだけじゃツライScala.js_共有版_.pdf
omiend
December 08, 2018
More Decks by omiend
See All by omiend
スクラッチ組織活用術 Salesforce Developers Meetup #24
omiend
0
1.4k
Nuxt.jsのComponent分割単位と,SSRをする上で気をつけること
omiend
1
820
Nuxt.js_Vue.js_のVuexの動かしかたをまとめてみたよ.pdf
omiend
0
120
20181110 Scala関西Summit 懇親会LT「Scalaのかわいいところ」
omiend
0
590
Other Decks in Programming
See All in Programming
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
2
750
MIZARU@SPAJAM2026 第二回予選
1901drama
0
110
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
54
36k
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
190
Discordを用いたラボオートメーション関連情報収集の自動化
noguhiro2002
0
500
私のClaude Code活用法 (個人開発編) - PHPerKaigi mini #4(2026/08/24)
panda_program
1
210
AIエージェント時代のコードレビューを設計する
nogu66
6
2.5k
信頼性の目標を誰も求めてない
shubox
0
490
デプロイ直後のレイテンシスパイクを調べたら、 Railsの仕様にたどり着いた
nhsykym
0
110
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
3
320
型解析で実現する Go の言語内 DSL / Conference に Go! タイムテーブルの歩き方 for Gophers
mazrean
0
130
Press start. Python's next generation.
willingc
PRO
3
310
Featured
See All Featured
Color Theory Basics | Prateek | Gurzu
gurzu
0
460
Google's AI Overviews - The New Search
badams
0
1.6k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
840
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
Automating Front-end Workflow
addyosmani
1369
210k
Optimizing for Happiness
mojombo
378
71k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
230
How GitHub (no longer) Works
holman
316
150k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
490
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Transcript
好きだけじゃツライ Scala.js @omiend
自己紹介 @omiend 恵比寿で働くプログラマー歴13年目のおじさん 一応フロントエンドからバックエンドまで一通り出来ると思い込んでいるダメェンジニア Java,Shell,MySQL,SQL,Salesforce(Force.com/ApexCode/VisualCode),GAE(Slim3),ABAP Scala(ScalaMatsuriStaff),Ruby on Rails,Docker,Angular(1.4…),React/Redux,Riot.js,Vue.js,Nuxt.js Musics,Movies,Joging,Walking,Drink Driven
Development rryは後輩ちゃん
@omiend 今日も一日 話すこと - Scala の 布教 簡単な紹介(いいところ) - Scala.js
の簡単な紹介(いいところ・ツライところ) - +α 話さないこと - ScalaのScala.jsの細かいサンプルコード
@omiend Scalaとは? Scalaはオブジェクト指向言語と関数型言語の特徴を統合したマル チパラダイムのプログラミング言語である。 Wikipedia - https://ja.wikipedia.org/wiki/Scala
コンパイルすると .class(JVM上で動作する)ファイルになる。 Javaの資産を使うことができるし、JavaからScalaのプログラムを利 用することができる。 @omiend Java .java Scala .scala Scalaのいいところ
JVM Java .class Scala .class
静的型付き言語であり、型を利用したプログラミングができる。(型 クラス・型パラメーターなど) @omiend Scalaのいいところ Scala.scala
記述量が少ない(ので、それだけバグを防げる)。 体感でJava 8(ちょっと古くてスミマセン)と比べて1/3くらいの記述量。 @omiend Scalaのいいところ Java .java Scala .scala
基本的にImmutableな考え方。 うっかりミス撲滅。 @omiend Scalaのいいところ val name: string = ”@omiend” name
= ”@new_omiend” // error: reassignment to val name = "@new_omiend" ^
@omiend Scalaのいいところ 簡単にまとめるとJavaの資産を有効活用できるだけではなく記述量が少ないことで物理的 にバグの混入を減らすことができるしImmutableに書くことで値の変更を認めずさらにバ グの混入を減らすことができるし型を利用したプログラミングをすることでソースコードの視 認性を向上することができるだけでなく静的型付け言語としてコンパイル時にバグの検知 をすることができるしそれだけではなくモナドを利用したさらに簡潔なプログラミングも可能 だしまあ確かに学習コストは高いしPlayframework利用時にフルコンパイルすると余裕で お手洗い行けるくらいコンパイル速度は遅めのちょっと鈍感な子だけどそこもなんか一周 回ってカワイイしとにかく良いプログラム言語だしなんというかScalableLanguageという意
味かどうかわからないのだけどScalaって名前がもう最高にCoolだし後次回ScalaMatsuri は2019年6月にお台場で開催予定なんですけど今セッション募集しているので是非プロ ポーザルを送ってくださいまあなんというかまとめると・・・
@omiend Scalaのいいところ とにかく 好き 大好き
Scala.js - https://www.scala-js.org/ JavaScriptをScalaで書くことができるAltJSの一つ。 @omiend Scala.jsとは?
@omiend Scala.jsの嬉しいところ サーバーサイドをScala(e.g. Playframework)、フロントエンドを Scala.jsで作ることを想像すると、サーバーサイドとフロントエンドで 一貫してScalaで実装することができる。 WebServer Scala .class WebBrowser
Scala .js
@omiend Scala.jsの嬉しいところ やっぱり記述量は少ない(カモ)。
@omiend Scala.jsの嬉しいところ 例えば型が欲しいとき、TypeScriptの代わりとしてScala.jsを使っ たり。 Vue.jsにScala.jsを組み込んでいる人も。 https://github.com/michaelmang/Scalajs-Vuejs-Starter (PullReq送ったけどもうメンテされていない・・・?)
@omiend Scala.jsの嬉しいところ まとめて言ってしまうと、Scalaの嬉しいところをフロントエンドの開発 においても享受することができる。 Scala .scala WebBrowser Scala .js
@omiend フロントエンドとサーバーサイドの間で言語を統一する必要性はな い。 別にサーバーサイドはScala、フロントエンドはECMAScriptで良い のでは感。 Scala.jsのツライところ
@omiend Scala.jsのツライところ 実装難易度が高いように思う。
@omiend Scala.jsのツライところ JavaScriptの世界で型が欲しいのであれば、TypeScriptを使え ば良い。 力(型)が欲しいか・・・?
@omiend Scala.jsのツライところ だったら、最近だとElmが良さそう(根底から覆す) import Browser import Html exposing (Html, button,
div, text) import Html.Events exposing (onClick) main = Browser.sandbox { init = 0, update = update, view = view } type Msg = Increment | Decrement update msg model = case msg of Increment -> model + 1 Decrement -> model - 1 view model = div [] [ button [ onClick Decrement ] [ text "-" ] , div [] [ text (String.fromInt model) ] , button [ onClick Increment ] [ text "+" ] ]
+α @omiend
@omiend ScalaMatsuri2019 日本最大級のSaclaカンファレンス ScalaMatsuri 2019 は、2019年6月27日〜29日 お台場にございます東京国際交流館で開催されます。 奮ってご参加ください。 近日当日スタッフも募集開始します。
@omiend GO SE I TYO~ ご清聴ありがとうございました。