Curlでリッチプログラミング このページをアンテナに追加 RSSフィード

2008-03-26

[][]Curlプラットフォームの7つのナイスなこと 01:58

Developer Communityブログのmgordonによるポストの翻訳です。

Developer Community Blog: Seven nice Things about the Curl Platform

What makes Curl such a great programming platform? Here are seven things.


Curlプログラミングプラットフォームとしてどこがそんなに優れているのでしょうか?ここに7つの理由をあげます。


単一プラットフォーム: Curl RTEはあらゆるプラットフォームのどんなブラウザでも同じように動作します。ブラウザ毎の気まぐれな動きやバグに対処する必要はありません。

セキュリティ: Curlセキュリティモデルは、非特権アプレットがユーザのコンピュータ上で無制限に動作をすることを防ぎます。安全性を考慮すると、私たちはほとんどのアプレットが非特権であるべきだと考えます。ファイルの読み込み/書き込みなど、一般的に必要とされるが安全でない可能性のある操作については、それを行う前にRTEによってユーザに許可が求められます。これは、常に許可したり、逆に常に禁止したりするよりもよい方法です。アプレットに完全な特権を与えることも当然可能ですが、これは気軽に採用すべき手段ではありません。

スピート: アプレットCurl RTEによってマシンコードにコンパイルされるため、実行速度は速いです。アプレットWebサイトからダウンロードされると、インクリメンタルにコンパイル、評価されます。出力を生成する式はすぐにWebブラウザに表示されます。クラス定義やプロシージャ、パッケージなどは、コンパイル後にキャッシュされるため、その後のダウンロードが初回よりも高速になります。

ソフトウェア工学: Curlソフトウェア工学に真剣な方にも好まれる言語です。変数を"any"型として宣言できる一方で、強い型チェックが行われます。多重継承をサポートし、パラメータ化タイプ(genericクラス)、さらにはユーザ定義マクロを備えます。全てをクラスにする必要はありません。豊富なAPIが利用可能で、コンパイル時の型チェックがエラーの早期除去に役立つため、開発も円滑です。加えて、デバッグ時には一切"ビルド"を行う必要はありません。編集してブラウザをリロードするだけです。

単一言語: Curl言語は現代的なWebアプリケーションの全てに適しています。 クラス、アルゴリズム、データ、式、イベントとハンドラ、テキスト、グラフィックス、フォーム、テーブル、およびその他全てを同じ言語で表現できます。XMLJavaScriptHTMLActionScript、その他様々な言語やフォーマットの煩雑な組み合わせを駆使する必要はありません。

サーバ配備: Curlアプレットの配布は、単にそれをWebサーバに置くだけです。Webサーバ上のファイルを更新すればアップデートされます。静的なWebサイトを更新するのと同じくらい簡単です。

サービス指向: CurlアプレットWebサービスとWeb APIの理想的なコンシューマです。あらゆるSOAPエンドポイントをCurlパッケージに変換して直接呼び出すことができます。REST APIの扱いも容易です。同期/非同期両方のリクエストをサポートします。


私たちは今後数週間にわたって、これらの内容やCurlプラットフォームのその他の利点についてさらに説明をしていきます。どれが特に興味深かったかをぜひ私たちに教えてください。

Webデベロッパの方は、フリーのIDEをダウンロード(必要であればRTEもインストールされます)してCurlを試してみてください。Webに配備する予定がなかったとしても、あらゆるプログラミングプロジェクトでCurlを使うことができます。どんな種類の計算やユーザインタラクションも、Curlによって簡単になります。入門用の開発者ガイドにはたくさんの例が載っています。

トラックバック - http://d.hatena.ne.jp/giuseppe/20080326

2008-01-20

[]TIOBE Programming Community Index 03:19

とりあえずcurlはランキング100位以内には入ってました。

健闘してると受け止めるべき?


The Next 50 Programming Languages

The following list of languages denotes #51 to #100. Since the differences are relatively small, the programming languages are only listed (in alphabetical order).

* ABC, Algol, Alpha, APL, Applescript, AspectJ, Beta, Boo, Caml, cg, Clean, Csh, cT, Curl, DC, Dylan, Eiffel, Euphoria, F#, Felix, Icon, Inform, Io, Limbo, MAD, Magic, Maple, Mathematica, Modula-2, MOO, MUMPS, Oberon, Occam, Oz, Pike, PILOT, Postscript, Powerbuilder, PowerShell, Progress, Q, R, REALbasic, Rebol, S-lang, Scala, SIGNAL, SPSS, VHDL, XSLT

2008-01-08

[]今年のBest RIA PlatformはCurl(テクノロジー・オブ・ザ・イヤー/InfoWorld) 10:51

アメリカの有力なIT系メディアInfoWorldの2008年テクノロジー・オブ・ザ・イヤーが発表され、Best Rich Internet Applications PlatformにCurlが選ばれました。

http://www.infoworld.com/slideshow/2008/01/143-2008_technology-2.html

Curl 5.0 is an industrial-strength RIA platform, boasting not only the key attributes of every successful RIA -- Web-enabled, lightweight, and a rich interface -- but additional characteristics that make it suitable for enterprise use. These include excellent performance, strong graphics support, and good data handling. Curl applications can handle intermittent connectivity, support large data sets, run securely, and present complex user interfaces gracefully.

Curlは昨年4月からアメリカのマーケットに対して活動を再開しています。

InfoWorld誌は8月にCurl5.0のプロダクトレビュー記事を発表し、8.6という高評価をつけていました。

ちなみに現在は6.0がCurlの最新バージョンです。

トラックバック - http://d.hatena.ne.jp/giuseppe/20080108

2007-12-23

[]def構文でよりlightweightになるプログラミング 03:01

今回は6.0で追加された def 構文を紹介します。

6.0の数ある新機能の中では地味な部類に入るかもしれませんが、プログラマ的(個人的)には最も注目に値する新仕様です。


defは定数を宣言するときに使います。

従来でも定数は let constant で宣言することができましたが、def構文の新しい(素晴らしい)ところは定数の型宣言を省略できることです。つまり今まで、

let constant cb:CommandButton = {CommandButton}
let constant s:String = "foo"

と書いていたところを

def cb = {CommandButton}
def s = "foo"

のように書けるようになります。

実は curl は動的型付けのプログラミングスタイルもサポートしているので、let 文でも型宣言は従来から省略が可能でした。

let cb = {CommandButton}
let s = "foo"

しかし上記のように let で型宣言を省略した場合、変数は any 型として扱われ、コンパイラによる型チェックが行われません。一方、def で宣言した定数には初期値(右辺の式)のコンパイル時型が割り当てられます。静的型付けの恩恵を受けつつ型宣言を省略でき、プログラミングがとてもお手軽になった印象です。


def で宣言できるのは定数だけなので使えるケースは限られるように思われるかもしれませんが、しばらく6.0でプログラミングをしてみて思った感想は「意外に多用する」というものです。これまでは、いかに constant の記述を怠って変数ばっかり使っていたのか思い知らされました。(汗

def のおかげでコードの記述量が削減されただけでなく、必要がない限り let を使わなくなるため、意図しない変数の上書きを予防できるようにもなって一石二鳥な面もありました。


最後に、def を使うともっとも効果的なケースを紹介します。それは、匿名プロシージャ*1変数で受けるケースです。

curlはプロシージャの型を、引数の種類*2と型、戻り値の型の組み合わせで区別するため、非常に厳格な型チェックを行ってくれる反面、型の記述が煩わしいという問題がありました。例えば、String型の位置引数をふたつ取り、bool型の戻り値を持つプロシージャの型は

{proc-type {String, String}:bool}

と書きます。

curlのヘルプドキュメントでも、この記法の複雑さを自覚してか、型宣言を省略して any 型の変数で受けちゃうのもアリだよ的な説明が載っていますが*3、定数でよいのであれば def 構文を使用するに限ります。

def p =
    {proc {s1:String, s2:String}:bool
        || snip
    }
{type-of p} == {proc-type {String, String}:bool} || ==> true

ちゃんとプロシージャ型も正しく割り当てられます。

*1curlではクロージャをこう呼びます

*2:位置引数キーワード引数、残余引数

*3Curl開発者ガイド > 基本概念 - 構文 > プロシージャと引数 > 匿名プロシージャ > 匿名プロシージャでの any データ型の使用

2007-12-16

[]スタイルコントロール 00:39

6.0から追加されたスタイルコントロールライブラリを使うと、Curlのコントロールに"スキン"を適用したり、CSSライクな方法でプロパティを管理できるようになります。

以下は、従来のCurlコントロールを並べたイメージ。

f:id:giuseppe:20071216235805p:image


スタイルコントロールライブラリにはデフォルトのスタイルが含まれており、それを使うだけで上記コントロールの外観が↓のようになってしまいます。

f:id:giuseppe:20071217000052p:image


使い方は以下の通り。


ライブラリダウンロード

スタイルコントロールライブラリCurlWebサイトhttp://www.curl.com/developer/libraries/ja/styled-controls/style-library-intro.php)からダウンロードします。

「COM.CURL.GUI.STYLED-6.0-ja.zip」というzipファイルをダウンロードしたら、解凍して任意のフォルダに保存してください。

プロジェクトに追加

スタイルコントロールを使用したいIDEプロジェクトに、ライブラリマニフェストへのデリゲートを追加します。

IDEのメニューから「プロジェクト→デリゲート先の追加」を選択し、出てくるダイアログで先ほど解答したファイルに含まれる manifest.mcurl を選択すればOKです。

プロジェクトに COM.CURL.GUI.STYLED という名前のマニフェストへのデリゲートが追加されます。

パッケージのインポート

アプレットからスタイルコントロールのパッケージをインポートします。

{import * from COM.CURL.GUI.STYLED-CONTROLS}
install-style-sheetの呼び出し

インポートしたパッケージに含まれるスタイルシートインストール用のプロシージャを呼び出します。

{install-style-sheet {manifest-url "file", "DEFAULT-STYLE-SHEET"}}

引数で指定されているのはダウンロードしたライブラリに含まれるデフォルトスタイルシートです。

あとは従来と同じようにCurlのコントロールを使って画面を構築できます。


ドキュメントのインストール(任意)

ダウンロードしたライブラリには開発者向けドキュメント(日本語!)が含まれています。

IDEのメニューから「ヘルプ→ドキュメンテーションインストール」で、先ほどデリゲートしたのと同様のマニフェスト(manifest.mcurl)を選択すればインストールできます。

ヘルプドキュメントの左側の目次ペインに COM.CURL.GUI.STYLED.6.0 という項目が追加されます。


スタイルコントロールを始めるだけであれば以上のようにとても簡単なのでみなさん是非試してみてください。

トラックバック - http://d.hatena.ne.jp/giuseppe/20071216
Connection: close