YKLook この文章は、YKLook を実際に直接使うことになるプログラマやシステム開発者など、 とくにプロの立場で業務システムの開発に従事されている技術者向けに YKLook 誕生の 背景を説明しています。 (1)Ruby をはじめ多くのスクリプト系のプログラミング言語は、そのプログラミングの    手軽さとコンピュータのハードウエア自体の性能向上とが相まって、業務システムに    おいてもよく利用されるようになってきました。    しかしスクリプト系言語には、その本来の用途には馴染みにくいので、GUI関係の    機能が言語本体の中に実装されることはありません。    多くのスクリプト系言語にとってGUIとは、HTML のソースデータをテキスト形式    で単純に出力するという意味です。    そのため、スクリプト系言語は特にWeb系のシステムでよく利用されています。    言い換えると、スクリプト系言語を使ってスタンドアロンのGUIアプリを作るのは    簡単なことではありません。    そもそもGUI部分はOSごとに大きく異なり、そのプログラミング方法も    それぞれ大きく異なるという問題もあります。    システム設計においてセキュリティと長期的な運用を考慮すれば、特定のOSに    依存したシステムはとても危険なものとなります。 (2)昨今はスタンドアロンのGUIアプリではなく、インターネットあるいはイントラ    ネットを前提としたWebブラウザ経由のGUIアプリの需要が多いです。    HTML や JavaScript はプログラミング初心者にとっては比較的敷居が低いので    よく利用されています。    アマチュアの人間が趣味で遊ぶにはいいでしょう。    しかしこれもまたOSやブラウザごとの挙動の違いがあったり、ブラウザ側の    HTML と JavaScript の処理に加えて、サーバ側のCGIスクリプトとその    セッション管理など、その仕組みが複雑であり、様々な知識が必要になります。    そのため、一定の品質を維持しなければならないシステムを構築するには簡単に    プログラミングできるとは言えません。    最新の HTML 規格である「HTML5」を使ったとしても、上の仕組み自体は    変わりません。 (3)例えば Ruby のフレームワークとして「Ruby on Rails」のようなものが存在します。    これもまたアマチュアの人間が趣味で遊ぶには良い選択肢のひとつになります。    しかし、これを利用した場合でも、やはり HTML や JavaScript の知識とその    プログラミング能力が必要です。    あいかわらず特定のOSやブラウザ依存問題からは避けられません。    また、フレームワークというものはGUIだけでなく多様な機能の集合なので、    むやみに使うとそのフレームワークに強く依存することになり、将来のシステムの    発展する方向性を狭くし様々な面で選択の自由が限られてしまいます。    しかも、多様な機能の集合であるということは、そのフレームワーク自体が複雑な    ものとなってしまい、それはそのまま障害対応の困難さに直結しがちです。    Rails をはじめとするオープンソースの多くは、それによる多くの利点がある一方    で、その裏返しとして、動作に不安定さを抱えることや、バージョンアップ時の後方    互換性を保証しないこともよくあります。    これらのことは、アマチュアの人間が趣味で遊ぶには大きな問題にはなりません。    安定して動作させるために、常に微妙なチューニングを繰り返し続けねばならないと    いうことも、バージョンアップのたびにプログラムを修正せねばならないということ    も、アマチュアの人間にとってはそういった作業自体が楽しみのひとつでもあるから    です。    一方、プロの立場で、一般企業(IT業を本職としない普通の企業)が実務で使う    システムとしてそれらのフレームワーク等のオープンソースのものを採用するには    そのようなリスクを十分に見極めた上で採用する必要があります。    その企業のシステム担当者がアマチュア的な発想しかできないまま、その担当者の    個人的な趣味や嗜好が優先されて無闇にオープンソースを採用してしまった結果、    ほかの人間には対応できないものになってしまうという困った事態にならないよう    に注意しなければなりません。 (4)Java(※)は上述の問題点を一定のレベルまで解決・共通化しているため、特定    のOSに依存しないでプログラミングできます。    スタンドアロンのGUIアプリでもWebアプリでも作ることができます。    セキュリティの面でも、HTML や JavaScript よりも強力です。    後方互換性にも配慮されています。    しかし Java のGUI機能である Swing は機能も十分ですが、そもそも Java    という言語自体がプロフェッショナル向けの言語でありプログラミング初心者に    とっては敷居が高いものになっています。    Webアプリを作る場合、画面遷移時のセッション管理をするには独自に開発    するかJ2EEを導入する必要があり、複雑なものになってしまいます。    また、レンタルサーバを利用する場合は、Java の実行環境が提供されていない    ことが多いので、サーバ側のプログラムに Java を使うことができません。 (5)Ruby のようなスクリプト系言語の手軽さと、Java の共通GUIである Swing    を組み合わせて、両者のいいとこ取りを目指したのが YKLook です。    スクリプト系のプログラミング言語を、IT業を本職としない普通の一般企業や    公共機関その他各種団体などでのシステムの開発言語として採用するためには、    YKLook または同等のGUIライブラリが必要です。    スクリプト系言語に、OSに依存しないGUIアプリ開発用の共通基盤を追加し、    さらにスタンドアロンアプリでもWebアプリでも同じ手順で開発できる仕組みを    導入すれば、開発効率の向上が見込めます。    YKLook は、スクリプト系言語を業務システム開発の中心となる言語として、    一層の普及を強力に後押しする、とても有効な手段です。 (6)単にスクリプト系言語で使えるGUIライブラリというだけであれば、いろいろな    ものが以前から存在しています。    しかしいずれもその元となったOSに固有の知識とプログラミング能力が必要で    あり、敷居の高いものです。    そして、どのGUIライブラリもスタンドアロンのアプリ用のものです。    もちろんWebアプリ用のものもありますが、それはそれで HTTP/HTML 専用の    ものであり、スタンドアロンのGUIアプリの開発には使えません。    しかし、YKLook ならば、スタンドアロンでもWebでもどちらのGUIアプリも    作ることができる上に、作ったプログラムはどちらの環境でも使えます。    しかも特定のOSに依存しません。    これらの点において、YKLook は他のGUIライブラリとは違う形で、もうひとつ    の選択肢を提供するものとなっています。 (7)なぜ Ruby なのか。    それは、Ruby がオブジェクト指向スクリプト言語だからです。    GUIの共通基盤としてオブジェクト指向言語である Java を使っているため、    スクリプト系言語にもオブジェクト指向のものを採用するほうが、YKLook 自体    の開発も一貫してオブジェクト指向で設計・実装できます。    これにより YKLook 自体の設計がシンプルになり、潜在バグが残されることも    少なくなり、それはそのまま耐障害性に貢献することにもなります。    プロの業務システムにおいては、耐障害性の重要度はアマチュアのそれとは比較    になりません。    そして、現時点において比較的容易に入手可能で、なおかつ実用レベルに達して    いるオブジェクト指向スクリプト言語としては Ruby が最も有力です。    YKLook 用アプリを作る側(この文書を読んでいる方)にとっても、Ruby を    使えばオブジェクト指向でシステムを設計・実装できるという利点があります。    また、Ruby の作者が日本人ということもあり、日本語での情報が豊富です。    これは技術的なこととはまったく関係ないことですが、やはり安心感があります。    人間が作り、人間が使うためのシステムである以上、このような安心感も重要な    要素だと考えています。 (※)「Java」と「JavaScript」は全く別のプログラミング言語です。    「Java というのは単に JavaScript を短く省略した呼称」だと誤解    している方がたまにいらっしゃいます。 以上 文責:(有)万理屋よろずことわりや