日本語プログラミング言語「プロデル」とは

「プロデル」はプログラムを日本語で書くことができるプログラミング言語です。

日本語プログラミング言語というと、古くは「Mind」、最近では「なでしこ」や「ひまわり」が有名になってしまいましたが、「プロデル」は前バージョンの「TTSneo」を含めて15年以上、細々と公開と改良を続けています。

プロデルは、オブジェクト指向プログラミングを採用し、自然な日本語文でプログラムを書ける言語仕様として設計しています。

「日本語プログラミング」と言っても、人によってイメージするが全く違うのがこの分野の面白いところです。

この記事では、プロデルの特徴を、一通りまとめて紹介します。

Hello, world!

まずはプログラミング言語の入門でよく例として使われるHello, World!です。

「こんにちは!プロデルへようこそ」を表示する

 

“日本語プログラミング言語「プロデル」とは” の続きを読む

  • いいね (7)
  • 続きを読みたい (14)

冴えない日本語プログラミングの育てかた#

プログラミングの世界で”日本語プログラミング”はマイナーな部類だと思います。ただブログやSNSで「プログラミング」と「日本語」がキーワードの話題が挙がると、「日本語プログラミング」という単語を思い浮かべる方は、意外とたくさんいらっしゃるようです。そんな中で「実用的でない」といった意見を見かけます。

この記事を読んでいる方は、日本語プログラミング言語が具体的にどのようなもので、どんなプログラムか、ご存じの方ばかりなはずです。しかし、日本語プログラミングを知らない人に対して、「日本語プログラミングの魅力」をうまく説明するのは、難しいのではないかと思います。私もその一人です。

そこで、日本語プログラミングの魅力を説明するために、そもそも日本語プログラミングが「実用的でない」と言われてしまう理由に何があるのか、考えてみたいと思います。このことで日本語プログラミングの本当の魅力を説明するための材料になれば幸いです。

その前に、プロデルは実用的です。

プログラミング言語に最低限求められる機能は、四則演算や変数などのメモリアクセス、条件分岐などの制御構文、関数やクラスなどの構造化定義、ファイル入出力、ライブラリへアクセスです。

プロデルはもちろんこれらの機能を備えています。プロデルでは実用的なWindowsデスクトップアプリや実用的なWebサーバアプリを作るのに必要なライブラリが用意されています。プログラミング環境としては十分実用的なプログラミングが可能です。

 

ではなぜ、日本語プログラミングを見て「実用的でない」と言われてしまうのでしょうか。Twitterを見ていく中で、いくつかの理由を推測してみました。

「日本語+プログラム=ネタ言語」

所謂ネタ言語の存在があるからかもしれません。

代表的なネタ言語であるBrain●ack系のプログラミング言語には、日本語の単語を組み合わせるものがあります。英数字や記号を使わずに日本語を使うことで、プログラムらしくない独特な雰囲気となり、面白い表現が可能となります。ただ、これらは本来記号でも良いものに、あえて日本語を使っているだけです。コンピュータが識別できれば、アルファベットでも数字でも記号でも、空白でも構いません。ネタとして以外に日本語を使う必要性はありません。

プログラミングに興味のある方は、日頃からこういったネタ言語を目にする機会があり、無意識に、日本語+プログラム→ネタ言語→「実用的ではない」と刷り込まれているのだと推測します。

ネタ言語はプログラミングの原理を理解する良い題材でもあり、ネタ言語そのものは勉強になる事柄がたくさんあります。ただ、それらの識別子に、たまたま日本語が使われていたために「これが日本語プログラミングだ」と思われてしまっていることが若干あるように思います。

もし日本語プログラミング言語で書かれたプログラムを見かける機会が増えれば、こういった刷り込みもなくなるのでは無いかと思います。

プログラムの動作を日本語で書いたExcel仕様書

ソフトウェア開発の現場では、Excel等で書いた仕様書に、日本語でプログラムの振る舞いを書くことがあります。

実際にプログラムを作る前に仕様書を書きます。この仕様書には、これから開発するソフトウェアの構成や動作を日本語の文章として書いていきます。仕様書には、プログラムとして実装する前に、実際にプログラムで動作させることを日本語で書くことから、この仕様書を「日本語プログラミング」と言っている方もいるようです。例えば「F社が・・・」という名詞が出てくる場合にはこのタイプです。

仕様書はあくまでも設計図なので、実際に動かすことはできません。ですから「日本語プログラミング=実際に動くプログラムでない」と思っているのではないでしょうか。

「日本語プログラミング」がマイナーである故、どうすることもできないですが、日本語プログラミングの魅力を説明する上で、このタイプを知っておいた方がよさそうです。

(※仕様書をプログラムに変換する試みもあります。もしこれらの試みが実用的になれば、それもまた日本語プログラミングなのかもしれません)

日本語はキー入力が多くなる

日本語プログラミングでよく指摘されるのが「日本語はキータイプ数が多くなる」という言う点です。

確かに英単語や記号に比べて、ローマ字入力ではタイプ量が増えます。それは煩雑だと思います。しかし、最近はIMEや検索サイトに入力補完機能があるように、日本語であっても、数文字タイプすれば入力できてしまいます。充実した開発環境があれば、完全に入力したときのタイプ量の多さは、問題になりません。

プロデルでは入力補完機能を用意して、快適にプログラムを入力できるような工夫をしています。日本語プログラミング言語に適した実用的な開発環境を用意していくことも大切です。

実例が少ない

実際に日本語プログラミング言語を見たことがあっても、日本語プログラミング言語の実績の少なさが理由で、学習用や研究用として受け取られてしまっているかもしれません。

マイナー言語である故に、コミュニティが小規模で、関連する情報が少ないという点です。未知のプログラミング言語やライブラリを利用する際に、作るために参考となる情報が少なければその言語でプログラムを作ることは諦めてしまうでしょう。実例が少ないことで、バグ取りや優れたライブラリの開発も行われる機会が少なく、実用的でないと思われる可能性があります。

最近ではIT系ニュースサイトに取り上げられる日本語プログラミング言語もあります。こういった機会に恵まれることは素敵なことだと思います。一方で実績については、(見えないだけかも知れませんが)同じような現状を抱えているように思います。

プロデルに至っては、関連する情報を得られる場所が殆ど無く、実績の少なさが一番の課題です。このブログを通じて、プロデルでプログラムを作るための情報を書きためて行くことで、実績を溜める努力ができればと思っています。

実用的かどうかは作りたいもの次第

プログラミング言語には各々得意不得意があり、すべての要求に応えることは難しいです。たまたま作りたいものが日本語プログラミング言語に不向きなこともあります。

プログラミング言語そのものだけでなく、提供されているライブラリの有無によって、作れる物の向き不向きがあります。これは日本語プログラミング言語に限った話ではありません。

プロデルでは、Windows向けデスクトップアプリを作ることが最も得意です。一方で今流行のスマフォアプリやWindowsアプリは作れませんし、LinuxやMacOSでも利用できる機能がコンソールアプリやWebアプリなどに限られます。

ムリしてプロデルで作らなくても、プロデルが得意な分野で、作りたいものがあれば、積極的に使うのが良いと思います。

まとめ

こうして、いくつかの点に分けて考えると「実用的でない」と思われる理由は、単に「日本語であるから」だけではないように思います。推測がたくさん含まれる内容でしたが、個人的な実感として、一言で「日本語プログラミング」といってイメージするものが人それぞれ違うことは、間違えないと思います。

日本語プログラミングの魅力を伝える上で、日本語プログラミングを冷静に見つめて、良い点・悪い点を知ることで、日本語プログラミングの本当の魅力を主張することが一番大切だと思います。

今この記事を読んでいる日本語プログラミング言語ユーザの方々には、否定的な意見を並べ立てる人に負けず、自分が素敵だと思う魅力をたくさんの方に紹介して頂ければ嬉しいです。

  • いいね (0)
  • 続きを読みたい (0)

.NET Coreで動くプロデルを公開しました

以前Twitterでは告知しておりましたが、.NET Coreで動くプロデルを公開致しました。

.NET Core版プロデルは、今のところコンソールアプリのみとなりますが、LinuxやmacOSでも動作するようになりました。

.NET Core版でも、プロデルで基本的な文法は、同じです。ですので、プロデルを使ったことがあれば、新しい文法を覚える必要はありません。

残念ながら.NET Coreで未対応のウィンドウ部品などGUIの機能については利用できません。以前公開していたWeb版プロデルに近いです。今は、利用できる種類も限られていますが、今後増やしていく予定です。

使い方

まず.NET Core (Runtime)をインストールしてください。

こちらから、.NET Core版プロデルをダウンロードします。

https://sumire.utopiat.net/files/core/

dotnet ./sumire.dll [プログラム名.rdr]

ダウンロードファイルには、サンプルが用意されています。例えばカレンダー作成のプログラムを実行するには、zipを展開したフォルダで

dotnet ./sumire.dll ./samples/calendar.rdr

と入れます。

以前のSilverlight版をご覧の方は、おわかりかと思いますが、Web版プロデルのサンプルのほとんどを、そのまま修正することなく、実行できます。

開発環境は用意されていません。お使いのテキストエディタをお使いください。Visual Studio Codeがおすすめです。

ファイルの拡張子は、.smrを推奨します。その他、.rdrや.プロデルもOKです。

なお、Visual Studioをインストールしている場合には、Nugetのパッケージとしてもダウンロードできます。Nugetで利用する場合には、Visual Studioなどの開発環境でNugetパッケージの管理を起動して「sumire」で検索してください。

https://www.nuget.org/packages/Sumire/

.NET Coreとは?

.NET Coreは、クロスプラットフォームで動作するプログラミング環境です。.NET Coreで作られたアプリは、WindowsだけでなくLinuxやmacOSでも動作します。これまでプロデルが動かなかった環境でも、日本語プログラミングを楽しむことができるようになります。

また.NET Core 2.1では、RaspberryPi 3にも対応しており、Windows PCだけに限らず、今後もいろんな環境で利用できるようになることが期待されます。

スミレ(Sumire)とは?

.NET Core版プロデルには、カタカナで「スミレ(Sumire)」と名付けることにしました。日本語プログラミング言語に花の名前を付けることには、私自身、かなり抵抗がありました。しかし、多くの方に覚えやすく、コンソール環境でも入力しやすい名前にした方が良いと思い、今回はプロデルの名を使わないことを決心しました。

実は、Sumire末尾3文字(ire)は、プロデル(Produire)の末尾3文字と同じです。.NET Core版への移植にあたっては、プロデルでの思いを名前のに受け継ぐことで、今度こそ、より多くの方に触れてもらえる日本語プログラミング言語になれればと思っています。

ロードマップ?

「プロデル」がデビューしてから10年となりました。この期間では、残念ながらプロデルで大きな結果を残せませんでした。新しい世界はスミレに引き継ぐことになりますが、プロデルでやりたかったこと、その成果が残せるまでは、これからも「プロデル」も開発を続けたいと思っています。

すでに公開しているプロデルの開発は、これまで通りメインで継続していきます。プロデルとスミレは、構文解析や形態素解析、コードモデル(AST)など多くの部分のコードが共通であるため、ライブラリの違いを除けば、ほとんど同時に改良ができます。

プロデルでは、ロジックや文法に未完成な箇所が残っており、これらを完成させることが当面の目標です。Sumireについても実験的な取り組みをいくつ考えていますが、正式版の公開のタイミングなど明確なロードマップは今のところ考えていません。

プロデルとスミレは、完全無報酬で開発しています。書籍の印税はもちろん、広告やコラム執筆による報酬もありません。プロデルを使って頂けることが唯一の報酬です(笑)。時間が出来たときにコツコツ開発するスタイルです。その分、何かにとらわれることなく、本当の日本語プログラミング言語を極めて、じっくりと完成度を上げていきます。

最後に

TTSneoを含めると日本語プログラミングに取り込んで、来年で20年となります。今後も引き続きご支援頂けたら幸いです。

  • 続きを読みたい (0)
  • いいね (1)

プロデルで日本語らしくプログラミング「プログラム文」

今回は、プロデルユーザのために、プロデルで日本語らしくプログラム文を書く方法を詳しく説明したいと思います。

説明がなくてもサンプルを見れば、なんとなく使い方が分かってしまうのがプロデルの良いところですが、プロデルの文法を正しく知って、実際にプログラムを作る時に、日本語であることの魅力を生かしたプログラミングをしてもらえたら嬉しいです。

“プロデルで日本語らしくプログラミング「プログラム文」” の続きを読む

  • いいね (3)
  • 続きを読みたい (7)

Bluetoothリモートカメラシャッターを使ってプロデルで便利ツールを作る

今回は、Bluetoothリモートカメラシャッターと、プロデルを使って、ボタン一つで、よくする操作が一発でできる便利ツールを作ってみたいと思います。

Bluetoothリモートカメラシャッター

AndroidやiPhoneなどスマートフォン向けに、カメラシャッターボタンがいくつか売られています。
Bluetoothリモートカメラシャッターは、Bluetoothという無線の通信規格を使って、スマフォのカメラのシャッターを押すことができる小物です。

リモートカメラシャッターは、AndroidやiPhone専用ですが、これをBluetoothに対応したWindows PCとペアリングして、ボタンが押されたことをプロデルで受け取ってみようと思います。

今回使用するBluetoothカメラシャッター

“Bluetoothリモートカメラシャッターを使ってプロデルで便利ツールを作る” の続きを読む

  • 続きを読みたい (0)
  • いいね (1)

日本語らしいオブジェクト指向プログラミング「手順と補語」

はじめに

プロデルは、オブジェクト指向の考え方を全面的に採用した日本語プログラミング言語です。

オブジェクト指向とは、とても簡単に説明すると、ソフトウェアの構成要素を物に見立てて、物の単位で振る舞いとデータを整理してプログラミングする考え方です。C++言語をはじめとしてJavaやObjectiveC, Ruby, C#, JavaScriptなど最近の多くのプログラミング言語で採用されている考え方です。

TTSneoや他の日本語プログラミング言語と、プロデルとの大きな違いは、オブジェクト指向プログラミングのための仕組みを積極的に導入した点です。

プロデルが輝く10のポイントでは、たくさんの「いいね」「もっと読みたい」を頂き、ありがとうございました。このブログでは、プロデルでのオブジェクト指向プログラミングの特徴をもっと説明していきたいと思います。

一度には紹介しきれないため、この記事では、プロデルのオブジェクト指向プログラミングで特徴的な日本語らしい手順の書き方について紹介したいと思います。

“日本語らしいオブジェクト指向プログラミング「手順と補語」” の続きを読む

  • いいね (3)
  • 続きを読みたい (6)

プロデルで圧縮ファイルを扱う

プロデルでは、別途アーカイバDLLをインストールすることで、zip形式などの圧縮ファイルを扱うことができます。

プロデルをインストールしただけでは、アーカイバDLLがインストールされないため、別途ダウンロードする必要があります。これまでその方法が明記されていませんでしたので、この場で紹介します。

“プロデルで圧縮ファイルを扱う” の続きを読む

  • いいね (0)
  • 続きを読みたい (5)

プロデルでブロック崩しゲームを作ろう

今回は、ブロック崩しゲームを作ってみようと思います。プロデルに添付されているゲームのサンプルプログラムには、これまで詳しい解説がありませんでした。そこで、このブログにて新作のゲーム作りを通じてゲームプログラミングの方法をご紹介できればと思います。

“プロデルでブロック崩しゲームを作ろう” の続きを読む

  • いいね (5)
  • 続きを読みたい (112)