JSON CGIという概念を提唱する

JSON CGIという概念を提唱したい。

JSON CGIとは

JSON CGIとは、JSONを出力するCGIのことです。

入力パラメーターは、JSONでなくてもかまいません。

Getならクエリ文字列、POSTならurlencodedかmultipartで受け取ります。ファイルアップロードが簡単ですね。

なぜJSON CGIを提唱するの?

定義を見ると、いたって単純です。定義は「JSONを出力するCGI」です。

なぜわざわざ、組み合わせて言葉にする必要があるのでしょうか?

静的HTML + JSON CGI

一つ目は、静的HTML + JSON CGIという組み合わせが、意外と便利だからです。

たとえば、ページ全体を静的HTMLにして、メールフォームの部分だけを動的にプログラムで実行したい。

こういう場合に、静的HTML + JSON CGIという組み合わせは、2020年現在においても、十分に簡単で、パフォーマンスがよく、必要な要件を満たすことができます。

「完全にすべてを動的に描画するPHP」に対して「静的HTML + JSON CGI」を対置できます。ユーザーの選択肢の幅が広がるのです。

JavaScriptコミュニティに好まれる

AJAXを使って、動的な部分はJSONで返してもらって、それを静的なHTMLの中に表示するという考え方を、JavaScriptコミュニティは、好んでいます。

CGIが、小さな部分で、活用されれば、Perlユーザー・Perlコミュニティにとってもプラス、JavaScriptコミュニティにとってもプラスの、Win-Winの関係を築くことができます。

JSONはWebにおけるグローバルスタンダードなデータ交換フォーマット

JSONはWebにおけるグローバルスタンダードなデータ交換フォーマットです。Web業界に、知らない人はおらず、JSONを出力できることは、Webエンジニアにとって、必須の能力といえるでしょう。

一方で、CGIは、開発効率・実行時パフォーマンス・HTMLの描画、たくさんの面で、デメリットをかかえていますし、技術の最先端・人気があってトレンドのある技術ではありません。

Perl/CGIの唯一の残っている強みは、レンタルサーバーで、デフォルトで使える、ということだけでしょう。メールフォームをJSON CGIを使って作っておけば、使いまわしができます。

僕たちは、Perl/CGIが、どれほど、保守性を下げて、開発者を困らせていたかを知っています。

中を見てみると、一枚のCGIファイルに2万行以上のCGIプログラムと、ヒアドキュメントのHTMLが、べた書きになっていたのです!!! ひー。

CGIはトラウマでもあります。

でも「JSON CGI」は JSONを返すだけ。Webにおけるグローバルスタンダードなデータ交換フォーマットである、JSONを返却するだけに、使用をとどめます。

gitの登場で、保存されたパーミッションと改行コードが確実に配置されるようになった

CGIを配置するには、実行権限と改行コードを常に意識しなければなりませんでした。これが、めんどくせー。PHP最高ー。でした。

2020年現代では、gitが登場し、パーミッションと改行コードを、開発環境のものを保存してくれるので、gitで、静的HTMLとCGIを配置すれば、この悩みは、なくなりました。

サーバーレスアーキテクチャ

JSON CGI」は、サーバレスアーキテクチャーの定義に基づくと、まさにサーバレスアーキテクチャーです(笑)。