広いプログラミングの世界で“日本語プログラミング”はマイナーな部類だと思います。
ところが、ブログやSNSで「プログラミング」と「日本語」がキーワードの話題が挙がると、「日本語プログラミング」という単語を思い浮かべる方は、意外とたくさんいらっしゃるようです。そんな中でSNSのコメントを見ると「実用的でない」といった意見を見かけます。
この記事を読んでいる方は、日本語プログラミング言語が具体的にどのようなもので、どんなプログラムか、ご存じの方ばかりなはずです。しかし、日本語プログラミングを知らない人に対して、「日本語プログラミングの魅力」をうまく説明するのは、難しいのではないかと思います。私もその一人です。
そこで、日本語プログラミングの魅力を説明するために、そもそも日本語プログラミングが「実用的でない」と言われてしまう理由に何があるのか、考えてみたいと思います。理由を考えることで日本語プログラミングの本当の魅力を説明するためのヒントになれば幸いです。
その前に、プロデルは実用的です。
プログラミング言語に最低限求められる機能は、四則演算や変数などのメモリアクセス、条件分岐などの制御構文、関数やクラスなどの構造化定義、ファイル入出力、ライブラリへアクセスです。
プロデルはもちろんこれらの機能を備えています。プロデルでは実用的なWindowsデスクトップアプリや実用的なWebサーバアプリを作るのに必要なライブラリが用意されています。プログラミング環境としては十分実用的なプログラミングが可能です。
ではなぜ、日本語プログラミングを見て「実用的でない」と言われてしまうのでしょうか。Twitterを見ていく中で、いくつかの理由を推測してみました。
「日本語+プログラム=ネタ言語」
所謂ネタ言語の存在があるからかもしれません。
代表的なネタ言語であるBrain●ack系のプログラミング言語には、日本語の単語を組み合わせるものがあります。英数字や記号を使わずに日本語を使うことで、プログラムらしくない独特な雰囲気となり、面白い表現が可能となります。ただ、これらは本来記号でも良いものに、あえて日本語を使っているだけです。コンピュータが識別できれば、アルファベットでも数字でも記号でも、空白でも構いません。ネタとして以外に日本語を使う必要性はありません。
プログラミングに興味のある方は、日頃からこういったネタ言語を目にする機会があり、無意識に、日本語+プログラム→ネタ言語→「実用的ではない」と刷り込まれているのだと推測します。
ネタ言語はプログラミングの原理を理解する良い題材でもあり、ネタ言語そのものは勉強になる事柄がたくさんあります。ただ、それらの識別子に、たまたま日本語が使われていたために「これが日本語プログラミングだ」と思われてしまっていることが若干あるように思います。
もし日本語プログラミング言語で書かれたプログラムを見かける機会が増えれば、こういった刷り込みもなくなるのでは無いかと思います。
プログラムの動作を日本語で書いたExcel仕様書
ソフトウェア開発の現場では、Excel等で書いた仕様書に、日本語でプログラムの振る舞いを書くことがあります。
実際にプログラムを作る前に仕様書を書きます。この仕様書には、これから開発するソフトウェアの構成や動作を日本語の文章として書いていきます。仕様書には、プログラムとして実装する前に、実際にプログラムで動作させることを日本語で書くことから、この仕様書を「日本語プログラミング」と言っている方もいるようです。例えば「F社が・・・」という名詞が出てくる場合にはこのタイプです。
仕様書はあくまでも設計図なので、実際に動かすことはできません。ですから「日本語プログラミング=実際に動くプログラムでない」と思っているのではないでしょうか。
「日本語プログラミング」がマイナーである故、どうすることもできないですが、日本語プログラミングの魅力を説明する上で、このタイプを知っておいた方がよさそうです。
(※仕様書をプログラムに変換する試みもあります。もしこれらの試みが実用的になれば、それもまた日本語プログラミングなのかもしれません)
ぴゅ○太
懐古厨です。笑顔で聞き流して、あしらいましょう。
日本語はキー入力が多くなる
実際にプロデルのような日本語プログラミング言語で書かれたプログラムを見たことがある人でも「日本語プログラミングはキータイプ数が多くなる」と指摘されて終わってしまうことがあります。
確かに英単語や記号に比べて、日本語、特にローマ字入力ではタイプ量が増えます。それは煩雑だと思います。しかし、最近はIMEや検索サイトに入力補完機能があるように、日本語であっても、数文字タイプすれば入力できてしまいます。充実した開発環境があれば、完全に入力したときのタイプ量の多さは、問題になりません。
プロデルでは入力補完機能を用意して、快適にプログラムを入力できるような工夫をしています。日本語プログラミング言語に適した実用的な開発環境を用意していくことも大切です。
実例が少ない
日本語プログラミング言語を興味を持った人でも、日本語プログラミング言語の実績の少なさが理由で、学習用や研究用として受け取られているかもしれません。
マイナー言語である故に、コミュニティが小規模で、関連する情報が少ないという点もあります。未知のプログラミング言語やライブラリを利用する際に、作るために参考となる情報が少なければその言語でプログラムを作ることは諦めてしまうでしょう。実例が少ないことで、バグ取りや優れたライブラリの開発も行われる機会が少なく、実用的でないと思われる可能性があります。
最近ではIT系ニュースサイトに取り上げられる日本語プログラミング言語もあります。こういった機会に恵まれることは素敵なことだと思います。一方で実績については、(見えないだけかも知れませんが)どの言語も同じような現状を抱えているように思います。
プロデルに至っては、関連する情報を得られる場所が殆ど無く、実績の少なさが一番の課題です。このブログを通じて、プロデルでプログラムを作るための情報を書きためて行くことで、実績を溜める努力ができればと思っています。
実用的かどうかは作りたいもの次第
プログラミング言語には各々得意不得意があり、すべての要求に応えることは難しいです。たまたま作りたいものが今ある日本語プログラミング言語では不向きなこともあります。
これは日本語プログラミング言語に限った話ではありません。プログラミング言語は、言語そのものだけでなく、提供されているライブラリが提供する機能によっても、作りやすい物と作りにくい物とがあります。
プロデルでは、Windows向けデスクトップアプリを作ることが最も得意です。一方で今流行のスマフォアプリやWindowsアプリは作れませんし、LinuxやMacOSでは、コンソールアプリやWebアプリなどに限られます。
マイナー故にいろいろな世界で使えることようにすることも鍵かと思います。ただムリしてプロデルで作らなくても、プロデルが得意な分野で、作りたいものがあれば、積極的に使うのが良いと思います。
まとめ
推測がたくさん含まれる内容でしたが、個人的な実感として、一言で「日本語プログラミング」といってもイメージするものが人それぞれ違う、ということは間違えないと思います。
そしてこうして、いくつかの点に分けて考えると「実用的でない」と思われる理由は、単に「日本語であるから」だけではないように思います。
日本語プログラミングの魅力を伝える上で、日本語プログラミングを冷静に見つめて、良い点・悪い点を知ることで、日本語プログラミングの本当の魅力を主張することが一番大切だと思います。
今、この記事を読んでいる日本語プログラミング言語ユーザの方々には、否定的な意見を並べ立てる人に言い負かさせず、ぜひ自分が素敵だと思う魅力をたくさんの方に紹介して頂ければ嬉しいです。