SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
AltES6 Introduction
さっき作った(@make_now_just)
1
1. 自己紹介
2. AltES6とは
3. AltES6の例
a. Spider
b. Earl Grey
c. その他
4. まとめ
目次
2
自己紹介
● 「さっき作った」という変な名前です
● Quineをたくさん書きました
(200言語くらい)
● Twitter: @make_now_just
● GitHub: @MakeNowJust
3
AltES6とは
4
AltES6とは?
従来のAltJS
5
AltJS
AltES6とは?
AltES6の場合
6
AltES6
AltES6のメリット
● ES6にコンパイルされる
→重いランタイムを使う必要が無くなる
→ES6が動く環境ではES6のまま、
 そうで無ければBabelやTraceurでES5にして実行、
 使い分けできる
● ES6も結局はJavaScriptなので、(構文的に)書きたくない!
→AltES6使えば別の構文で書ける
7
AltES6の例
8
Spider
9
http://spiderlang.org
Spider(概観)
$ npm install spider-script
● Go言語、Swift、Python、C#、CoffeeScriptの
影響を受けたプログラミング言語
● ES5かES6をターゲットに変換できる
● 日本語の記事がちょっとだけある
(Qiitaに3件くらい)
10
Spider(特徴)
● 構文はJavaScriptをベースにして、
SwiftとGo言語のいいとこ取りをした感じ
● ただしセミコロン必須!
● ES6の構文が割とそのまま使える
● Go言語のようなChannelとgoブロックがある
(ただし別ライブラリが必要)
11
Spider(特徴)
// コメント
fn add1(x, y = 10) {
return x + y;
}
var {name} = {name:"MakeNowJust"};
var add2 = (x, y) => x + y;
if true {
::console.log("Hey (name)");
}
12
function add1(x, y = 10) {
return x + y;
}
let {name} = {name:"MakeNowJust"};
let add2 = (x, y) => {
return x + y;
};
if (true) {
console.log("Hey " + name);
}
Spider ES6
Spider(特徴)
use :node;
import Channel from 'spider-channels';
var chan = new Channel();
setTimeout(() => {
chan <- "finish";
}, 1000);
go {
console.log(<-chan);
}
import {Channel} from 'spider-channels';
let chan = new Channel();
setTimeout(() => {
chan.push("finish");
});
(async function () {
console.log(await chan);
})();
13
Spider ES6
Earl Grey
http://breuleux.github.io/earl-grey/
14
Earl Grey(概観)
$ npm install earlgrey
● Pythonのような見た目でマクロがある言語
● ES5かES6をターゲットに変換できる
● 比較的新しい言語なので情報が皆無
15
Earl Grey(特徴)
● 構文はインデントベースで一見Pythonのよう
● ただし、構文はもの凄く柔軟(PythonというよりPerl的)
● 実行にランタイムが必要
● マクロでさらに構文を拡張できる
● EDSLでVirtualDOMを組めるearl-reactというものもある
● あまりES6の機能使わない‥
16
Earl Grey(特徴)
;; 全て同じ意味
if true:
print .Hello
if true: [print "Hello"]
if{true, print 'Hello'}
var x = "variable" ;; 再代入可能
let y = "const" ;; 再代入不可
x = "ok"
;; y = "error!" ( 変換時にエラーが出る )
;; 他にも色々と機能があるけれど、
;; 変換結果が複雑なので割愛
17
if (true) console.log("Hello");
if (true) console.log("Hello");
if (true) console.log("Hello");
let x = "variable";
let y = "const";
x = "ok"
Earl Grey ES6
Earl Grey(特徴)
require:
earl-react as React
require-macros:
earl-react -> (%, component)
globals: document
component Hello:
render() = div % 'Hello {@props.name}'
React.render {
Hello % name = "Balthazar",
document.get-element-by-id("mount")
}
18
// たくさん出力されるので省力
Earl Grey ES6
SpiderとEarl Grey
● ES5とES6、どちらに変換するか選ぶことができる
(内部的には、ES6のASTを作ったあと、
ES6ならescodegenで、ES5ならBabelかTraceurで変換)
● SpiderはデフォルトではES5、
Earl GreyではデフォルトでES6
19
SpiderとEarl Grey
SpiderはあくまでベターJavaScript、という印象
対してEarl Greyは、JavaScript(Node.js)のエコシステムを
利用できる別のプログラミング言語を目指してる感じがする
どちらも一長一短だと思います
20
その他
● CoffeeScriptでもES6のGeneratorsには対応してるので、
CoffeeScriptもAltES6かもしれません
● DartもES6へのtranspilerを開発しているらしいです
● TypeScriptも次のバージョンで
ES6のGeneratorsに対応するはずです
21
まとめ
● ES6を直接使うのではなく、AltES6という選択肢もある
● AltES6の例として、SpiderやEarl Greyがある
● 既存のAltJSも、ES6のコードを吐く方向(AltES6)
へと進んでいっている
● AltES6の未来は明るい!
22
余談:どうやってAltES6を見つけてくるの?
● RedditとかHacker Newsを監視する
● CoffeeScriptのリポジトリのWikiをチェックする
https://github.com/jashkenas/coffeescript/wiki/List-of-languages-that-compile-to-JS
JavaScriptにコンパイルされる言語の一覧がある
23

Contenu connexe

En vedette

Huong dan thuc hanh nghe nghiep 2015
Huong dan thuc hanh nghe nghiep 2015Huong dan thuc hanh nghe nghiep 2015
Huong dan thuc hanh nghe nghiep 2015dgvbjhyg
 
Wounded warriors project
Wounded warriors projectWounded warriors project
Wounded warriors projectwyattfuller
 
Pastor Training Institute East Africa
Pastor Training Institute East AfricaPastor Training Institute East Africa
Pastor Training Institute East Africasoglslidemeister
 
Rodan + Fields Before & Afters 2015
Rodan + Fields Before & Afters 2015Rodan + Fields Before & Afters 2015
Rodan + Fields Before & Afters 2015Galit Janco
 
Pembahasan Mengenai Cyber Crime
Pembahasan Mengenai Cyber CrimePembahasan Mengenai Cyber Crime
Pembahasan Mengenai Cyber CrimeRerii
 
Rodan + Fields 2014 Canada Product Guide
Rodan + Fields 2014 Canada Product GuideRodan + Fields 2014 Canada Product Guide
Rodan + Fields 2014 Canada Product GuideGalit Janco
 

En vedette (8)

2003-05-09_Ispra-ITALY
2003-05-09_Ispra-ITALY2003-05-09_Ispra-ITALY
2003-05-09_Ispra-ITALY
 
Huong dan thuc hanh nghe nghiep 2015
Huong dan thuc hanh nghe nghiep 2015Huong dan thuc hanh nghe nghiep 2015
Huong dan thuc hanh nghe nghiep 2015
 
Wounded warriors project
Wounded warriors projectWounded warriors project
Wounded warriors project
 
Pastor Training Institute East Africa
Pastor Training Institute East AfricaPastor Training Institute East Africa
Pastor Training Institute East Africa
 
Resume
ResumeResume
Resume
 
Rodan + Fields Before & Afters 2015
Rodan + Fields Before & Afters 2015Rodan + Fields Before & Afters 2015
Rodan + Fields Before & Afters 2015
 
Pembahasan Mengenai Cyber Crime
Pembahasan Mengenai Cyber CrimePembahasan Mengenai Cyber Crime
Pembahasan Mengenai Cyber Crime
 
Rodan + Fields 2014 Canada Product Guide
Rodan + Fields 2014 Canada Product GuideRodan + Fields 2014 Canada Product Guide
Rodan + Fields 2014 Canada Product Guide
 

Dernier

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 

Dernier (9)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 

AltES6 Introduction