HOME > 開発者向けBLOG > Sencha Blog >  YUI との別れを惜しむ

Technology Note 開発者向けBLOG

Sencha Blog

YUI との別れを惜しむ

こんにちは、ゼノフィnakamuraです。

この記事は、US Sencha社ブログ を翻訳したものです。

Farewell to YUI 先週、Yahoo はYahoo! User Interface Library(略称:YUI)に関する新しい開発を全て停止することを発表しました 。今まで幾千という数のコードを書いてきた何千人もの YUI 開発者は、おそらくこのニュースを耳にして悲しむでしょう。しかし、それと同時に、このような結論に至ってしまうほど劇的に進化している開発環境に関しても理解しているはずです。Sencha Ext JS フレームワークとYUI は密接な関係があり長い歴史を共にしてきました。そのため、この機会を利用して我々の過去を振り返り、未来に何があるかをお話したいと思います。

YUI と Ext JS の略歴

2000年代の初頭では、 Web 開発の世界は今日とは大きく異なっていました。大半のデスクトップ PC は Internet Explorer 6.0 を使用していて、初期バージョンの Firefox、Safari、やその他 Web ブラウザは水面下から浮上し始め、少しずつ人気を集め始めていました。インターネット回線は比較的遅く、Web サイトは非常に簡潔なもので、ほとんどの人はインタラクティブな「Web アプリケーション」の存在など考えもしていなかった時代です。HTML5、Google Chrome そしてiPhone も、もちろんまだ存在していません。

2005年から2006年頃に、Prototype や jQueryなどの JaveScript ライブラリーが誕生し、 Web 開発者がブラウザ間で数多く起きてしまう問題に費やす時間は少しずつ減りました。そして、JavaScript を Web フォームのバリデーションや画像のロールオーバーなど以外にも取り入れるようになりました。

YUI は 2005 年に誕生し、2006 年の始めには一般に公開され、ものすごい早さで人気を集めました。その理由は、単純に「Yahoo」という名前が付いていたため(瞬時に信頼を得られるため)だけでなく、当時はまだあまり存在しなかった JavaScript ウィジェットライブラリーの走りだったからです。これにより、開発者はブラウザ間でも一貫して機能するウィジェットをカスタマイズすることができるようになり、それにより Web アプリケーションが「ネイティブ デスクトップ アプリケーション」の大体の機能性を再現することができるようになりました。

YUI がリリースされてからまもなく、Sencha の生みの親たちは YUIを独自のライブラリに取り込み、Ext JS 1.0の前身ともなる yui-ext が誕生しました。

Ext JS のルーツは YUI ですが、我々は別の道を歩みました

Ext JS 1.0 はスタンドアロン フレームワークとして 2007 年にリリースされ、YUI への依存性はなくなりました。しかし、信頼性の高い開発フレームワークをお客様に提供すると共に、YUI へのルーツに忠実であるために Sencha は Ext JS(バージョン 3.x.まで)に、YUI のためのオプショナルアダプターも出荷していました。

Ext JS や Sencha Touch で使われるプログラミングのパラダイムは、YUI との歴史に直接的に影響を受けています。オブジェクト指向でアプリケーションを作れる、当時では数少ない JavaScript ライブラリであったため、YUI のリリースは革命的でした。Ext JS と Sencha Touch で使われている Sencha のクラスシステムは、正にこの歴史が反映されています。他にも Ext JS のフレームワーク(ドラッグ アンド ドロップ機能)などにも YUI の影響は感じられます。

しかし、Ext JS と YUI が同じ歴史を辿ったり、よく似たパラダイムを持っていたに関わらず、Sencha は当時、そして今も、互いの終着点は別な所にあると堅く信じています。Sencha は常にフレームワークを最新式にし、大企業の開発チームの生産性を高めるためにプラットフォームを最新の機能性や特色でアップデートすることを戦略としています。

企業の Web アプリケーションの将来

Yahoo の発表では、YUIの開発の停止の理論的根拠も述べられています:

…我々には産業が新しい方向に進んでいることが明確になりました…JavaScriptは今では至るところで使われています。Node.JS の出現により JavaScript はサーバー側でも使用できるようになりました…。新しいパッケージマネジャー(npm や bower)はサードパーティー、オープンソース、シングルパーパスツールのエコシステムの構築に拍車をかけました…。新しいアプリケーションフレームワーク(Backbone, React, Ember, Polymer, Angular等)は Web アプリケーションを構築する上で、よりスケーラブルで維持しやすいものとなりました…。

こういった Web 技術の進化により、YUI の様な大きな JavaScript ライブラリがコミュニティ内であまり注目されなくなってしまいました。今日の多くの開発者達は、こういった大きな JavaScript ライブラリを塀で囲まれた庭として認識し、そういった物に囚われたくないと思うようになっています。

こういったことの多くは真実であり、Web の発展にとっては良い事でもあります。JavaScript は至る所で使用され、日々新しくて刺激的なプロジェクトが作られています。 HTML5 は今までよりも遥かに強力で有望です。

しかし、近年たくさんの新しい、互いにまったく異なるライブラリが登場しているという事実は考えさせられます。近年の Web 開発の世界では、ライトウェイトなライブラリから物事を始める風潮があるかもしれません。しかし、最小限あるいは最低限のエンドツーエンド開発機能で充分だとか、実装する「最良の」方法であるとか言うことについてはまったく賛成できません。

近代のWebスタック

多くのお客様やパートナーとお話をする時、頻繁に耳にするのは、サードパーティー JavaScript スタックが企業の中で問題を含んでいるということです。特定のアプリケーション エクスペリエンスでは(一人の開発者によって開発され、メンテナンスされている、モダンなブラウザを対象としたピュアコンテンツなアプリケーション)、フレームワークは必要ないという結論に至るかもしれません。一方で、大きくて地理的にも広く分散して成立しているチームが開発するような、複雑に相互に依存している企業アプリの場合は、1つのスタンダードベースなフレームワークを組織全般に取り入れるべきでしょう。

AngularJS は近年、注目を集め始めている JavaScript ライブラリです。非常に素晴らしいライブラリであることに間違いはないのですが、大企業レベルのアプリを作るには比較的不十分であることを忘れてはいけません(以下の表を参照)。公式の Web サイトでは「AngulaJS はアプリ開発をする上で自分にあったフレームワークを作るためのツールセットです」と説明されているように、企業の開発者は、残りの機能性などは異なるサードパーティーから組み立てなければいけません。

この方法がほとんどのカスタマイズの解決法を提供することは間違いありませんが、こういった方法論では、短期、長期含め、たくさんの問題点が現れてしまうのが現実です。共通のアーキテクチャやコーディングスタイルがないと、自家製の「フレームワーク」が成長する度に、全体をテストしたりメンテナンスするのがより困難になります。各独自のライブラリは、表面上はよく似た機能でも微妙に違う解釈をしてしまうかもしれません。そして、最も重要なのは開発チームが、互いに同期していない状態で複数のリリースサイクルを迎えてしまうということです。そうなった場合、大くの部分が管理者から放置されてしまうリスクもあります。

これらが企業開発マネージャーや CIO が関心が移ろいやすいプロバイダーを選択する時に意識しなければいけない、1番重要で、明確なビジネスリスクです。また、下流工程のメンテナンスコストなど気にしない、個人の開発者らの気を引くであろう、無数の新しいマイクロフレームワークを評価し、査定しなければいけない時も同様です。

代案として、Sencha はより包括的なフレームワークを提供しています(図参照)。Sencha Ext JS フレームワークは非常に幅広いウィジェット(基本的なものから複合的なものまで150以上)を取り揃えています。また、高レベルなビジュアライゼーションパッケージと同時に低レベルの drawing API もあります。我々のフレームワークは全て単一のコーディングスタイルで、MVVM と MVC、ARIA サポート、RTL サポートなどなどにも、アーキテクチュラルなパッケージを用意しております。

これらの性能は全て共に動作するかテストされ、専門的にメンテナンスとアップデートが同時に行われています。また、それだけでなく、Sencha 製品には柔軟な トレーニング パッケージが存在し、 技術サポート チームと経験豊富で プロフェッショナル サービス 組織も支えてくれます。

Sencha は Ext JS のような統合されたフレームワークの凝集性は、異なる複数のサードパーティーライブラリより企業開発チームにとって価値があると信じています。もちろん、どんな組織やプロジェクトにとっても完璧なフレームワークというものは存在しないことも認識した上でです。Web アプリケーション開発者が直面する問題についてのより詳しい分析は、ホワイトペーパー: “The Modern Web Stack: A taxonomy of front-end technologies as an aid to decision making” をご参照ください。

将来への展望

我々との YUI の長い歴史を考えれば、古い友達がいなくなると考えると非常に悲しいことです。しかし、Ext JS や Sencha Touch など機能性に富んだ企業指向のフレームワークが、「企業がデスクトップ、タブレット、スマートフォンなどに渡って展開する強力で長寿な Web アプリ」を開発するために1番役立つツールであるとことを、より確信することができました。

Sencha は HTML5に全力でコミットしていて、 Web の将来を考えると今まで以上に興奮しています。Ext JS 5 は我々のフレームワークにとっては大きな躍進であり、ユーザー コミュニティやお客様ベースでも著しい成長が見られます。フォーチュン100の60%以上の企業が我々の製品を使用し、「 Web 技術を使用したビジネスにフォーカスした企業アプリ」を開発する上では Sencha 製品が最適であることを証明しています。もし Sencha が初めてであれば、 Ext JS の45日間無料トライアルをダウンロードすることもできます。

未来を見据えて、Sencha は今後組織が基幹業務アプリケーションをデザイン、開発、テスト、デプロイ、そして管理する上で、更に沢山のアイディアを用意しています。 Sencha Space はアプリケーションのデプロイメントとマネージメントソリューションであり、より安全にモバイルアプリをデプロイでき、一貫したユーザーエクスペリエンスを届けることができる最先端のプラットフォームです。ユーザーはどんなモバイル Web アプリや HTML5 アプリでも安全で、管理された環境で立ち上げることができます。これらのアイディアは全て、来る SenchaCon(2015年4月) で発表したいと思います。

というわけで、良き友である YUI とは別れをつげなければいけません。我々は YUI が Web ベースのアプリ開発技術を推進させた存在であることを理解し、忘れる事はありません。

PAGETOP