朝から東京へ。夏休みなので混んでるかなとも思ったが、 実際には飛行機は空席が目立つ。そんなものなのね。
今年も力作が集まっている。 事務局によれば応募数は昨年よりも減少しているらしいのだが、 地方別の一次審査を突破して我々の前に提示された作品のレベルはむしろ昨年よりも高い。 10月の「情報処理月間」で正式に発表されるまでは内容については 具体的に語ってはいけないと思うのだが、どれもレベルが高い。
全体的には個人部門の方が団体部門よりも感心するものが多かった。 団体部門はゲームが多い。
中には、既存の類似物よりもレベルが高いのではないかと思うものや、 実装のレベルはともかく、このアイディアはすぐにも事業化できるのでは、と思ったものもあった。 あと、今年は自作言語というなかなかチャレンジングな作品が心に残った。
結局、個人と団体双方で10件優秀作品を選んだ。
全体に「時間がなくてあきらめた」という臭いが感じられる作品がいくつか見受けられた。 優秀作品に選べなかったものでも、これをきちんと実装したら来年優秀作品に選考したい(来年も選考委員だったら)、というものが複数あった。
今後、29日に最終審査会を開き、本人によるプレゼンを参考に最優秀賞が選ばれる。
最終選考中には、審査対象者は「日本を代表するオープンソースプログラマ」の公園講演を聞くことになっているそうだ。うーむ。それはいいんだが、委員長の鶴の一声で30分と聞いていた講演時間が50分に伸びてしまった。なにを話すかなあ。
追記
実装言語だが、今年はPHPが目立った。Webアプリケーションが増えたからだろうか。 あとDelphiが意外と使われている。 なんでだろう。
Rubyは今年もひとつもなかった。
講演ですね>公園を聞く
Delphiは値段が安く、習得が比較的容易なので、Windows GUIのソフトウェアを作りたい人には未だに人気がありますよ。C++Builderも殆ど同じ内容なのですが、なぜかDelphiのほうが人気があるようですね。
Delphi は RAD 環境としては比較的先発だったというのが大きいのでしょうし、C++ は C++ ってだけで初心者が挫折しそうなところがありますね。
Object Pascalは言語仕様が単純で(LL1文法だとか)、コンパイルが無茶苦茶速いのでGUI付きのプロトタイピングには良い選択だと思います。文字列周りや集合型などを見ると何気にC++より高性能という気もしますし。
VisualCは実行時型情報の扱いが弱いためRADに向いていない、VisualBasicではGUI部品を作ることは出来ない、という欠点がそれぞれありますが、
Delphiだと両方こなせるのが人気の理由ですね。デバイスドライバを書く以外のことはほぼ全てこなせます。
で、同系のはずのC++Builderが流行らないのは、RADとC/C++の相性自体がそもそもよくないというのがあります。例えば、テキストの右寄せ・左寄せ・中央寄せの属性を作る場合、Delphiだと
type TAlignment = (alLeft, alRight, alCenter)
Cだと
typedef int align_t;
#define ALIGN_LEFT 0
#define ALIGN CENTER 1
#define ALIGN RIGHT 2
と書くのが一般的だと思いますが、Delphiだと実行時型情報で容易にTAlignment型が取りうる値の名前が取得できるのに対して、Cのやり方だと#defineで定義されている名前がどの型で使えるのかをRADツールが知る術を持たない(持とうと思うと余計な記述が必要になる)というあたりが違ってきます。(もちろんenumで定義すればいいんですが、そういうプログラミング作法はあんまりCでは流行ってないようなので)
> もちろんenumで定義すればいいんですが、そういうプログラミング作法はあんまりCでは流行ってないようなので
C では歴史的理由が大きいですね。
C++ ではクラススコープなんかと絡めると使いやすいし、実際それなりに使われているような印象があります。
> C++ ではクラススコープなんかと絡めると使いやすいし、
> 実際それなりに使われているような印象があります。
そうですね。C++では名前空間を無視する#defineの乱用は嫌われる傾向にあります。
C++ Builderでも上のTAlignmentのようなものはenumで書かれていますね。