● プログラミング⾔語⾃⾝も変化する
○ 例:ES5の”use strict”
○ 例:ES6のclass構⽂導⼊。プロトタイプが隠蔽
● プラクティスも変化する
○ var → let, const
○ 例:可変な変数より不変な変数
Slide 25
Slide 25 text
複雑化するプロダクトにPerlはどう⽴ち向かってる?
● ⾮常に⾼い後⽅互換性、スコープ機能が、Good
○ “Historically, we've held ourselves to a far higher standard than
backward-compatibility -- bugward-compatibility.”
○ 互換性を壊した先の未来は?
● 柔軟さ、曖昧さで困る(諸説)
○ 例:オブジェクトの外から中⾝を書き換える
○ 黒魔術 ⇔ どうにかできる脱出ハッチ
2010年頃から広まる設計
● ユーザーの端末に重⼼を寄せた設計
● サーバープログラミングでは、インタラクション困難
● Web フロントエンドでは、jQuery によるDOM操作から、Backbone.js と
いったモデリングが広まる
● → Single Page Application
Slide 31
Slide 31 text
発展
● クライアント↔サーバーやサーバー同⼠のコミュニケーションをするのにス
キーマがほしい
○ 2011年 Swagger, Open API
● Webフロントエンドが⼤規模開発に
○ 2010年〜2015年ころ Alternative JavaScript 発展
○ 2012年 TypeScript 0.8 リリース
● クライアント側の要求で必要⼗分なデータを取得したい
○ 2012年 GraphQL 開発開始 / 2015 オープンソース化
Slide 32
Slide 32 text
発展2
● Single Page Applicationでは、ユーザーがコンテンツを体験するまで遅い。
SEOも不利。けれど、インタラクションは欲しいし、JavaScriptのエコシス
テムも利⽤したい。
● サーバーサイドで極⼒処理して、インタラクションをあとから注⼊
● → Server Side Rendering , islands architecture
Backend for frontend
Frontend Backend
API