現代のプログラミング言語設計に求められる要素
それはもともと大量の数値計算を効率的に行うために生み出されたものだった
しかし計算機が高機能な入出力を手に入れた後はプログラミング言語はソフトウェアを記述するためのものになった
現代でよく使われているプログラミング言語はいわゆる高級言語というもので機械語から何層もの抽象化を重ねて人間が理解しやすく管理しやすいような設計になっている
しかし現代のプログラミング言語は汎用的に設計されているがゆえ、ソフトウェア開発の実態に即したものでない物が多い
サーバーでもクライアントでもソフトウェアを作るにあたって絶対必要だよね、という機能がないことが普通になっている
ので今のプログラミング言語で当たり前にあるべきものをあげていこうと思う
漸進的型システム
Gradual Typingとも
FlowやPython、PHPなどではアノテーションで付与するようだが、そういう付け焼き刃じゃなくてTypeScriptのように開発者が必要なとき必要な部分だけ型を付けられるのが望ましい C++やJavaやRustのようなガチガチの型システムは開発が進むにつれて辛さが増すだけだと思う。ビルドも遅いし
ユニットテスト機能
Mock, Stub, DIなど単体テストが楽になる機能がデフォルトで組み込まれているべきである
むしろテストフレームワークから設計して言語をつくるのも有りな気がする
LS
ランゲージサーバー
IDEがリアルタイムにインテリセンスやエラーを出すためのコンパイラサーバー
文法チェックや補完候補を出すとかそういうやつ
GUI記述
VueやJSXのような宣言的UI記述がプログラムの中に記述できるといい AndroidやiOSのようなXMLリソースとIDEの統合はプログラムとの結合部分で闇が生まれるので嫌い