言語設計
課題点
安全性と書きやすさの両立 → Rust との差別化
安全性は最低条件 (安全でなければ書きやすくない)
Rust
課題点
(他言語から見た) 仕様の複雑性
多少の記述の冗長性 ... 記号の多さ
安全性を常に意識したコーディング
安全性の担保を (記述の面で) プログラマに求めている
分野を Web メインにするとして TS と Dart の差別化について:
TS よりも安全 ... 脱 JS スタイル (言語も環境も), より強力な型検査, クエリ等の静的検査
Dart よりも安全で ... 脱 null, Flutter に関してはまた勉強
安全・柔軟な汎用Web言語
TS
欠点
null が存在
ランタイム環境が複雑
設定や環境
JS の複雑な構文を受け継ぐ → 記法がまばら
(JS: 演算子の挙動が意味不明)
ビルド時間
人口の少なさ
any型の利用
利点
ユーザ数, ライブラリ数の多さ
JS カインドな文法
JS ライブラリの互換性
柔軟な型管理
既存JSプログラムの移行がしやすい
Dart
欠点
任意の型注釈
ブラウザに組み込まれていない
ユーザが TS から脱していない
ライブラリ不足
利点
高速実行
AOT, JIT コンパイル
フレームワーク
共通
UI (レイアウト, 装飾) の記述がロジックと分離されない
React
単独だとアニメーションが弱い
差別化
ライブラリの早期補充
強い静的型付け
アイデア
スタイル構文を言語に組み込む
クライアント / サーバの言語統合
より安全
脱 JS, 脱 null
静的化
他言語と親和性高く → 部分的な移行
強力な静的検査
処理を最後まで遂行 or fatalエラー時に特定の処理を実行
安全なマルチスレッド
UI 実装
データベース