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
20181208_好きだけじゃツライScala.js_共有版_.pdf
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
1
540
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
440
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
340
Heart of Swift Concurrency
koher
0
1.1k
The Rails Doctrine Decade
koic
2
410
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
720
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
680
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
300
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
130
スマート反転とウェブアクセシビリティ
camiha
0
220
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
270
iOSDC2026登壇資料.pdf
riofujimon
0
200
Featured
See All Featured
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
410
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
Designing Experiences People Love
moore
143
24k
Git: the NoSQL Database
bkeepers
PRO
432
67k
How to make the Groovebox
asonas
2
2.5k
The agentic SEO stack - context over prompts
schlessera
0
940
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
510
Believing is Seeing
oripsolob
1
230
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Are puppies a ranking factor?
jonoalderson
2
4k
Skip the Path - Find Your Career Trail
mkilby
1
240
Raft: Consensus for Rubyists
vanstee
142
7.7k
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~ ご清聴ありがとうございました。