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
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
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
550
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
160
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
260
Inside Stream API
skrb
1
740
そのテスト、説明できますか?~LWテスト戦略FW~のご紹介
nakahara
0
150
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
670
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
170
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.3k
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
580
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
410
Contextとはなにか
chiroruxx
1
350
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
150
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
97
6.7k
Utilizing Notion as your number one productivity tool
mfonobong
4
320
Why Our Code Smells
bkeepers
PRO
340
58k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
A Soul's Torment
seathinner
6
3k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
400
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
The Invisible Side of Design
smashingmag
301
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~ ご清聴ありがとうございました。