scala-js-ts-importerハッカソン

2017/12/03(日)10:00 〜 18:00 開催
ブックマーク

イベント内容

TL;DR

  • TypeScriptの型定義ファイルをScala.js用に変換するscala-js-ts-importerに、機能追加プルリクを送ります。
  • それによって豊富なJSライブラリをScala.jsから使いやすくし、Scalaの未来を明るくしていくのが狙いです。
  • 興味があればリモートからでもご参加いただけます。appear.in で各地を繋ぎっぱなしにする予定です。

タイムテーブル

時間 予定
10:00 参加者の自己紹介
10:15 ★scala-js-ts-importer説明
・ 追加したい機能
・どこをどういじるかや、パーサ・コンビネータの使い方などの説明
11:00 ハック開始
12:30 お昼休憩(無料ピザを予定)
13:30 ハック再開
(午後から参加者いれば)★の再説明
17:30 成果発表
18:00 解散

背景

Scala.jsとは

Scala.jsを用いると、Scala言語の強力な型付けやScalaライブラリ、そしてJavaScriptライブラリを活用して、フロントエンド開発を行うことができます。またフロントエンドにとどまらず、サーバーレスアーキテクチャのバックエンドで、NodeJSを実行環境にScala.jsで開発した事例も出てきています。

Scala.js向けのJavaScriptライブラリbinding

Scala.jsでは、JavaScriptライブラリのbinding(facadeとも言われます)を定義することで、次のようなメリットが得られます。

  • JSライブラリを型安全にScalaから呼び出す
  • IDEやエディタで、呼び出したいメンバーを補完して素早く入力

メジャーなフロントエンド向けJSライブラリには、Scala.js向けbindingが開発されています。scala-js-jqueryscalajs-reactscalajs-angularscalajs-vueなどなど……。

ラクしてbindingを書きたい

自分でbindingを書くのは、なかなか大変です。

そんなScala開発者のために、TypeScript向けbinding(index.d.tsなどでおなじみのファイル)をScala.js用に変換してくれる scala-js-ts-importer があります。このツールを使うことで、bindingを作成する手間を大きく減らすことができます。

コマンドラインで実行することもできますが、よりお手軽に Webブラウザからscala-js-ts-importerを試すこともできます。

scala-js-ts-importerをもっと強力にしたい

scala-js-ts-importerは、TypeScript用bindingのかなりの部分をScala.js用に変換することができます。しかし、TypeScriptの高度な機能を使っている場合には、まだまだ変換できないケースがあり、手作業を必要とします。

たとえば、2017年11月17日現時点で、以下のような機能がサポートされておりません。

協力者、求ム !!

主催者個人も細々とプルリクを送って改善に協力してきました。が、上述のような多くの高度な機能のサポートには、なかなか主催者1人では限界があります。

そこで、以下のような方々が集まって、少しでも多くの機能を追加していければ……と思って、このハッカソンを主催しました。

  • Scala.jsで使いたいJSライブラリにラクして型をつけたい方
  • TypeScriptやScalaの型システムに強い方、興味がある方
  • パーサコンビネータに強い方、興味がある方

なお、ニッチなテーマにつき、参加者が1人もいなければ、主催者1人でもくもくするだけとなります。

名古屋には行けないけどリモートから協力したい、という奇特な方がいらっしゃれば、appear.in でビデオチャットしながらやろうと思います。

開催場所

  • 名古屋 有限会社来栖川電算オフィス(詳しくは会場欄をご覧ください)

注意事項

※ こちらのイベント情報は、外部サイトから取得した情報を掲載しています。
※ 掲載タイミングや更新頻度によっては、情報提供元ページの内容と差異が発生しますので予めご了承ください。
※ 最新情報の確認や参加申込手続き、イベントに関するお問い合わせ等は情報提供元ページにてお願いします。
情報提供元ページ(connpass)へ

新規会員登録

このイベントに申し込むには会員登録が必要です。
アカウント登録済みの方はログインしてください。



※ ソーシャルアカウントで登録するとログインが簡単に行えます。

※ 連携したソーシャルアカウントは、会員登録完了後にいつでも変更できます。