はじめに
本連載では、Curlを利用したことのないJavaプログラマを対象にCurlを説明します。Javaで作られたサーバーサイドと、クライアントサイドであるCurlとの間で通信を行い、簡単なデータの受け渡しを行うまでの入門的な内容を連載の中で説明します。
また、筆者はCurlの使用歴が短いこともあり、この記事はあらかじめ株式会社カールの方々にレビューして頂きました。この場を借りて改めてお礼申し上げます。ありがとうございます。
Curlについて
まずは、Curlの概要について説明をします。
Curl言語について
ひとことにCurlと言った場合に、アプリケーションを作成するCurl言語と、アプリケーションを実行する実行環境(Curl RTE)があります。Curl言語はリッチクライアントなシステムを構築するためのプログラミング言語です。HTMLのようなテキストフォーマットから3Dグラフィック処理まで、多岐にわたる機能が搭載されています。
また、サーバとの通信には、HTTPプロトコルやTCP/IPプロトコルを使用したソケット通信をサポートし、データ形式としては、XML、CSV、JSONといった多様な通信に対応しています。サーバにつなげる・つながるところをサポートするという印象があります。
波括弧(curly bracket)を多用する記述方法が1つの特徴であり、言語名の由来ともなっています。記事の最後にCurlでの「HelloWorld」を載せていますので、コードについてはそちらを参照してください。
デモ
9月10日、プログラマ向けに、自作のアプリケーションを投稿できるWebサイト、「Curl Apps Gallery」がオープンされました。その中からいくつかのデモアプリを紹介します。
まず、最初に目に付いた、非常にシンプルなUIの「Curlブラウザ」から紹介します。HTMLのレンダリング自体は割と軽快で、JavaScriptだけではなくFlashやJavaアプレットさらにSilverlightも動作していました。Internet Explorerのコンポーネントを使用しているそうです。また、アドレスバー右の「+」「-」ボタンをクリックするとブラウザの透明度を変更することが可能です。
さらに、ルービックキューブを仮想的にシミュレートできる「ルービックキューブ」や、DNAの螺旋構造を3次元で見ることができる「分子構造」などCurlの特徴である3D機能を生かしたアプリケーションもあります。筆者のPCは1400MHzのシングルCPU(メモリは2G)という実行環境としては決して高スペックではありませんが、Curlアプリは軽快な動きをするなと感じました。「ルービックキューブ」アプリの動画を載せましたが、録画ソフトの方が性能負けし、コマ落ちしてしまいました。
ルービックキューブアプリを実行しているところ