書き始めるにあたって
「LiveCode」はプログラミングの特殊な専門知識がなくても、読んで日常英語のようにわかりやすい言葉でプログラムが書ける、クロスプラットフォームの統合開発環境です。LiveCodeは初期のMacOSに付いて来たHyperCard(1987〜98 使われた言語名はHyperTalk)と言うアプリケーションから派生したUnix版の「MetaCard」を(後にWindows、MacOS用も加えられる)2003年スコットランドのRunRev社が権利を買い取り、開発ツール等に大幅な改良を加えて、始めは「RuntimeRevolution(RunRev)」と言う名称で売り出されました。RunRevはその後iOS、Android、サーバーの開発環境が加えられ、2010年に名称を「LiveCode」と変更しています。LiveCodeは、開発するアプリケーションのインターフェイスを作るツールや、編集機能を含めた開発環境であり、そのインターフェイスを機能させるプログラミング言語の名前でもあります。英語での分かりやすさから、LiveCodeを開発しているRunRev社のある
スコットランドでは、25%以上の高校がコンピュータ・サイエンスの授業にLiveCodeを採用しています。
オープンソース版の「LiveCode Community Edition」は、2013年にクラウドファンディングのKickstarterで資金調達が目標に達して生まれることになりました。オープンソース版の「LiveCode」は2013年4月10日から配布されています。LiveCodeオープンソース版は、GNU_GPLv3ライセンスの下にリリースされますから、コマーシャル、シェアウエア、フリーウエアに関わらず、LiveCodeオープンソース版で作ったソフトウエアは、同じくGNU_GPLv3ライセンスの下にオープンソースで(書かれているソースコードを公開して)配布しなくてはいけません。個人やインハウスが使用目的で開発する場合は、ソースを公表する必要はありません。詳しくはGNU Operating Systemを読んでください。日本語翻訳ページ http://www.gnu.org/licenses/gpl-faq.ja.html
すべてのMacに無料で付いて来たHyperCardは、カードメタファと言われるコンピュータ以前の図書館の検索カードのような、整理法をベースとしたユーザーインターフェイスを採用して、暗号のようなコンピュータ言語ではない、人間の言葉(英語)に近いスクリプト言語で、プログラミングの専門家でない多くの人々にも親しみを持って受け入れられ、沢山のアプリケーションが生み出されました。コンピュータのカラー化が進み、インターネットも普及し始めた頃、アップル社は時代にあった改良をしないままHyperCardの配布も打ち切って、HyperCardの時代は終了しましたが、LiveCodeによってその思想は受け継がれ、さらに改良されて現在に至っています。ある時期には、HyperCardで使われたHyperTalkに類似する言語(ダイアレクト)を、総称してXTalkと呼んでいましたが、現在はあまりそう呼ばれる事もありません。(LiveCodeで使う言語も、MataCardの時代にはMetaTalk、RunRevの時代にはRevTalkと言う名前でした。その他のXTalkダイアレクトにSuperTalk、SenseTalk等があります)デスクトップアプリケーションを用意されている部品をつなぎ合わせて開発することから、RAD(Rapid Application Development)というカテゴリーで呼ばれたこともあります。
LiveCodeで書いたプログラムは、Mac OS、Windows、Linux(Raspberry Piを含む)、iOS、Android と、サーバー上で動かすことができます。また上記のHyperCard(HyperTalk)で使われていた言葉は、ほとんどLiveCodeでも使う事ができます。さらにHyperTalk時代にはなかった様々な時代にあった環境の言語も加えられ、現代のソフトウエアが開発できるように改良されています。LiveCodeで書くデスクトップアプリは、基本的には一つの書類で書き進めて、配布できるスタンドアロンのアプリに仕上げる(ビルドする)時に、それぞれのプラットフォーム用に自動的に分けられて完成されます。もちろんプラットフォームによって独自の特徴がありますから、上級者になってプラットフォームのディテールに入って行くと、それぞれの違いに対処する必要が出て来て、一つの書類の中にこのプラットフォームならこうと言う、振り分けをして書かなくてはいけない場合もしばしばあります。ここではMac OSとWindows共通の「LiveCode Community Edition」でできる、デスクトップ・アプリについて書いています。スマートフォン・アプリは、プラグインで開発環境を変えたデスクトップのバリエーションですから、まずデスクトップでプログラミングできる事が基本となります。ただしオープンソース無料版のLiveCodeには、スマートフォン開発用のプラグインは含まれていませんから、スマートフォン・アプリ開発には有料版のLiveCodeを購入する必要があります。サーバーでLiveCodeを働かせるには、LiveCodeのサーバーエンジン(Server Deployment)がインストールされたサーバー、またはRunRev社が運営するOn-Revのようなプロバイダーのサーバーが必要です。
コンピュータ・プログラミングと言うと、普通理数系の強い人達が書くと思われがちですが、私が関わって来たLiveCodeの経験から言うと、決してそんな事はありません。しかし最低限、足し算と引き算、掛け算と割り算は理解していないと困ります。英語はできるに越した事はありませんが、上にも書いたように中学程度の理解力があれば、プログラムは書き進めます。上級になって特殊な調べものが必要になったりした場合、日本語のコミュニティが確立されていない現在は、ある程度の英語力があった方が良いでしょう。しかしそれは、どのコンピュータ言語でも同じかもしれません。LiveCodeのちょっとした機能の小さなプログラムでしたら、随筆とか詩歌やドローイングのような感覚でしょうか。また事柄・機能が幾つもある大きなプログラムでしたら、前章からの流れを取り込んで展開する小説を書いて行くような感覚や、土台から形作り、細部の描写をしながら、構図や色彩バランスを考えて仕上げて行く、ペインティングに近いと言えるでしょう(実際には私は小説を書いたことはないのですが)。言える事は機能が多い少ないに関わらず、全体の骨格を見通せる少し覚めて離れた視点と、細かなディテールの正確な描写が必要です。しかし学習の始めから全体を見通しながら、細かな部分を描いて行くのは不可能ですから、まず部品としてのインターフェイスの扱い、各部品(オブジェクト)の持っている特性(プロパティ)や、その操作法の幾つかの慣用的な言い回し(プログラミング)に慣れて行くのが大事かもしれません。言葉自体は日本人でも意味の分かる簡単な英単語の集積ですから、いくつか文章を書き進むにしたがって、プログラミングの構図も徐々に見えて来るでしょう。
この文を書き始めて、15世紀始めにイタリアの画家チンニーノ・チンニーニの書いた絵画技法書「Il libro dell'arte 芸術の書(英訳:The Craftsman's Handbook)」を少し思い出しています。「芸術の書」は、中世から初期ルネサンスの絵画材料と技法を知る上で重要な本です。チンニーニは技法以外に、絵画を描く上での生活の態度や心構えについてのアドバイス、神学や哲学などを学ぶ事の大切さ等にしばしば触れています。勿論その当時絵画を描く事は、神の姿を具現化することで、彼は本の始めに、神、聖母、セイント達に、畏敬の念を表す事から書いています。21世紀に住む私たちは、その頃とはまったく違う価値観のもとに、プログラミング技法書を読む訳ですが、人間の言葉により近いコンピュータ言語の背後にある思想がいったい何なのか、単純に現在を生き抜く実用書なのか、それとも大きな歴史の方向を示そうとするモノなのか、書き進むにしたがって、私自身の考えも整理されればと思っています。