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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
omiend
December 08, 2018
Programming
120
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
810
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
Embedded SREと共に達成した会員管理システムのAWS移行 - SRE NEXT 2026 ランチスポンサーセッション
niftycorp
PRO
0
150
霧の中の代数的エフェクト
funnyycat
1
190
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
340
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
210
Contextとはなにか
chiroruxx
1
390
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
170
Hatena Engineer Seminar #37「言語モデルの活用に関する研究」
slashnephy
0
490
AIを活用したE2Eテスト実装効率化のあゆみ / ebisu-mobile-14-kotetu
kotetuco
0
160
継続モナドとリアクティブプログラミング
yukikurage
3
320
20260623_Loop Engineeringで自分の分身の問い合わせBotを作る
ryugen04
0
120
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
340
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
170
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
220
The Cult of Friendly URLs
andyhume
79
6.9k
A better future with KSS
kneath
240
18k
Everyday Curiosity
cassininazir
0
250
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
550
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
890
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
260
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
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~ ご清聴ありがとうございました。