社員リレーブログ

2007/05/04 00:00:00

プログラミング言語たち

なんか私の担当日って妙に祝日多くないですか? こんばんは1024です。本当は私の担当は祝日たる4月30日を除いた4日間だったのだけど、良く見てみると5月の3日と4日も祝日なわけで、そうすると私の担当って2日分? みたいな話になって、なんかそれって不公平じゃない? というわけなのである。よくわかんないって。で、何故こういう問題が発生しているのかという点については私は勝手な予想をしていて、会社で使っているWebカレンダーのシステムが、その月の最終週は翌月の日付を先行表示するにも関わらず祝日表示をしないという仕様になっているからではないかと思っている。つまり、4月のページを表示している場合、4月30日は祝日表記になっているが、先行表示されている5月の3日と4日は祝日表記になっていないのだ。改めて5月のページを表示することでようやく3日と4日が祝日であることが明らかになる。これは問題だよジョニー。誰だよジョニーて。だが作る側に立ってしまうと、もしかして4月のページを表示するために5月分の祝日を取得するコードを書きたくなかったんじゃないだろうかそれじゃあ仕方ないよなとか思ってしまうあたり弱い。本当の理由はどちらについても知らない。

さて、最後になる今日はそれぞれ少しずつ一気に、Pascal、Prolog、Lisp、Haskell、Ruby、Python、PHP、D、C#といこう。なにもこれらの言語が脇役だというわけではなくて、単に私自身の経験がこれらの言語に対して浅いというだけである。

Pascal。これは実はあまり触ったことがない。正当な教育用コンパイラ、というのが私自身の印象なのだが、今はJavaを教えた方がもしかしたらよっぽど実用的なのかもしれないなとは思う。大学の講義では一応存在はしたような気がするのだが、あまり印象に残っていない。その文法がLLなんたらのどーのこうのでコンパイラの構成がやりやすいみたいな話はあったようななかったような、みたいな、もはやさっぱりなレベルである。でもbegin-endは、読みやすいとはいい難いと個人的には思っているのだけど、Rubiestに言わせるとそうでもなさそうな、うーん。そいや、Pascalの ; は文末ではなく、文間である。従って最後の文に ; は必要ないのだが、C/C++の癖でよくつけていた気がする。最後だからって差別するのはよくないと思うんだ。

Prolog。講義でやって以来触っていない。考え方そのものは面白いとは思うものの、では実用的かと問われるとさっぱりそんなことないよねと答えるしかない。実用のためにバックトラックカットとかし始めるともうなにがなんだか分からなくなる。まあツールとしてひとつ使えるようになっておくとこれはこれで便利なのかもしれないけれど。

Lisp。関数型言語。こっちの方はPrologよりよっぽどマシに実用できそうというか事実実用されているような感じもあって、私自身が使えなかったからといって実用的じゃないよねと切り捨てるのは難しい。ただ、Lispを薦める人たちはどうも数学寄りの話ばかりするので、プログラムなんざ動いて何ぼだろうと思っている私にはイマイチ合わないという、言語そのものではないところで入りづらい面があって苦労する。私だって別に使いたくないわけではないのだ。使えるようになれば色々広がるものがあるかもしれないと思うこともあって、一冊本を買ってきたのだが、なんというか、どーやってユーザー入力を受け取るのかさっぱり書いていないのは致命的だった。入力がなくてどうしてプログラムが書けるってんだ! その本は捨ててきたのでLispはそれ以来だ。別にその本が悪い本だと言いたいわけではない。自分の需要とマッチしなかっただけだ。選ぶ本を間違えた。

Haskell。Lispと同じく関数型言語に分類されているようだが、随分毛色が違うような気はする。ちゃんとユーザー入力の部分があるのだが、こっちはこっちでIOと数学的な部分とを必死で切り分けようとしているのかなんなのかで理解は容易ではない。Prologの血筋が混じっているような雰囲気もあって、Quick Sortの宣言なんかはいかにもである。この辺は概念を覚えて、他の手続き型言語で応用するのが今のところ一番生産性が高そうな気がしている。

Ruby。決して嫌いな言語ではないのだが、何をおいても「Perlでいいじゃん」というあたりがあまり使わない理由になっている。Perlなら広く標準でインストールされているし、というような。これは単にRubyよりPerlを先に覚えたからで、もしかしたらPerlより先にRubyを覚えていたら、Perlはあまり使わずに「Rubyでいいじゃん」なんてことになっていた可能性は低くない。でも、Perlを始めて見たときのような衝撃がなかったのももしかしたら本当のことで、そういう面は無視できないのかもしれない。あとdo-endが気に入らないとかどうだとか。ただの好みだが。私の怪しい記憶によると、do-endの代わりにC likeな{ }も使えたはずなのだが、{ }がdo-endの単純な別記ではないと聞いて、大変がっかりした覚えがある。まあ、Perlもあの記号だらけは実はあんまりよくないのかもしれないとは思っているのだけど。

Python。もしかしたらRubyより使いやすいかもしれないとか。括弧やbegin-endを排除した潔さは評価するに値する。どうせC++だろうがPerlだろうがなんだろうがインデントつけて構造持たせているんだから、別にそのインデントそのもので構造を解釈してしまえば良いではないかというのは正当な主張に見える。問題はやっぱりRubyと同じく「Perlでいいじゃん」なのかもしれない。機会があれば乗り換えてみるのも一興かも。しかし条件演算子が実装されたあたりからだんだん怪しさが漂ってきている気がするのは気のせいだろうか。インデントもTABなのかSpaceなのかそのあたりが微妙に気になるところだ。

PHP。実は未だに使ったことがない。リファレンス一冊あればとりあえずすぐ使えるよ等と豪語しているのだが、それは本当なのか、私よ。だがリファレンス一冊あればすぐ使えるよ等と豪語する私に、いやそれは無理だろう等と反論する人は一人もおらず、まあPHPだしそんなもんだよねという反応ばかりが返ってくる。かえって心配になるではないか。一体どんな言語だというのだろう。

D。C++の後継としてなかなか良さそうな言語だなと思っていたのだが、どうしてもひとつふたつ気に入らないところが出てきてしまうのか、template構文が微妙に怪しい気はする。まあC++のtemplate構文とどっちがマシよ? と言われるとかなり悩むのではあるが。問題はシェアなんだろうと思う。C++をリプレースしてくれるほどまで勢力拡大してくれればそれはそれでアリなのかな、等と思わなくもないのだが、最近あまり聞かないところを見ると、果て、どうなってしまったのやら。

C#。真のC++後継はこちらか? だが.NETはMicrosoftの掌の上だ! なんてこったい。私自身は実はC#を本格的に使ったことはないのだが、ざっと使ってみた感じ、C++後継としてはなかなか悪くないなという印象だった。開発環境を含めてのC#だ、という点はあるのかもしれないが。ほぼVisual Basicの独壇場ともいえたマウス操作でGUI部品配置してハンドラ書き、というあたりはすっかりC#にお株を奪われてしまった感がある。今更BASIC構文を書くよりもC++に近いC#の方が単に書きやすいということなのかもしれない。.NETライブラリの充実さはMicrosoftも力の入れどころを覚えたのか、いや何もMicrosoft信者というわけでもないが、しかし良くできているといえる。もっとも.NETの充実で恩恵を受けられるのはなにもC#だけでないはずで、VBやmanaged C++もその一員のはずなのだが、でも.NETやるならやっぱりC#だろう、と思えるくらいにはC#はよく出来ていると思う。

そいや、VBも.NETに乗ってからはunsigned整数変数あるのかな。


Comment Form:

コメント・トラックバック規約を必ずお読みください。

必須必須(表示されません)
 

Comments:

2007/05/07 13:10:56 1024
daddyさま

正直、コメントが付くとは思っていなかったと言いますか、付くとしても
「長すぎて読む気しない」か「○○言語が最高だってば!」的な
コメントかなと思っておりました。
文章を書くというのはこれでもそれなりにコストがかかるもので、
担当日数が少ないなら少ないで私自身は楽で良かったのですが、
だらだら書いていると長くなってしまう(このコメントしかり)のもまた事実ですね。
短く適切な文章を書けるというのもスキルのひとつだと思う次第です。

内容に関しては、プログラミング言語現状というよりも
私自身のプログラミング言語に対する感想という形ですので、
もしかしたら人によって全然違うことを言う人もいるかもしれません。
迂闊なことをいうと宗教論争が勃発しかねない話題なのが怖いところです。

わざわざコメントありがとうございました。



ワイズフールさま

ふたつもコメントをいただけるとは思いもしませんでした。

そういえば、アセンブラには言及しませんでしたね。
もっとも私のアセンブラの経験といえば、もっぱらC++に埋め込む
inlineアセンブラしかありませんので、大したこともかけないのですが、
こんな経験でも多少は内部構造の意識ができるようになるもので
それなりに役に立っていたりするものです。
とはいえ、どちらかというとアセンブラに関しては
逆アセンブルしたコードを読むことが多かったとかどうとか……
最近のCPUは命令数も多く難解です。まったく。

ネーミングについてはおっしゃるとおり1023あたりが良かったかもしれません。
そういえば昔覚えていた数値も32767で、15bitオールですね。
何故32767かというと、Quick BASIC時代のInteger変数の最大値がこれだったからです。
32bitは桁が多くて覚えられません。
約21億と約42億というあたりまでは覚えているのですが。

コメントありがとうございました。
2007/05/05 17:47:20 ワイズフール
GWの真っ只中の担当、ご苦労様でした。
プログラミング言語に関わる読み応えのある内容で堪能しました、と言っても
私の30年のコンピュータ人生で唯一の存在はアセンブラ言語のみです。
FORTRAN、Cなども知っていますし生意気にも本も出しましたが面白いとは
思えず徹底的にアセンブラにこだわった世代です。
四則演算、論理演算、比較、ジャンプ、ロード/ストアの12〜15個程度の命令文を駆使し、
航空管制も電力/水力制御もATMもCTスキャンも新聞製作も変幻自在に開発しました。
今はもう披露する事も無い博物館入りの技術です。
どころで1024だと1ビットだけオンで寂しいので1023とか2047とかオールビット
オンのネーミングは・・・もう+1で桁上がり、なんか夢を感じそうで。
2007/05/04 02:57:10 daddy
 プログラム素人にもよく現状が分りました。多謝。JAVA入門とか、Perlラクダ、果てはやさしいEmacs-Lisp講座など沢山の書物を手にしましたが、いつまでたっても畳の水練でしろうとのまんまです。そのまんまでも県知事になれるのですから、まちがって何かが起こるかも知れません.と言っても、起こさないとなにも起こらないでしょうが、Blogをトライしたりすると、饒舌になるのは確かだと思います。

 このくらいの粒度の長い文章だと参考になりました。改めて、Many thanksです。

Trackback URL:http://www.timedia.co.jp/karetta/track-back/article/002417

Trackbacks:

2007/05/05 08:50:38PCカルチャー
 JAVA入門とか、Perlのラクダ本、果てはやさしいEmacs-Lisp講座など沢山の書物を手にしましたが、いつまでたっても畳の水練でしろうとのまんまです。そのまんまでも県知事になれるのですから、まちがって何かが起こるかも知れません.と言っても、起こさないとなにも起こらないでしょうが、Blogをトライしたりすると、饒舌になるのは確かだと思います。  Blogも[http://www.timedia.co.jp/karetta/article/blog/relay/002417 粒度の大きい長文]だと読み応えがあり、勉強になりました。プログラム素人にもよく現状が分りました。  改めて、自分とプログラム言語との関わりを顧みますと、~% 素人とはいえ結構いろんな言語をかじりました。 FORTRAN:高周波非相反回路であるフェライトサーキュレータのCAD。マイクロ波回路シミュレータの開発も試みました。計算センターのTOSBAC3400. PL40/PL-7:自動化航空管制レーダシステムの開発に採用しました。ミニコンTOSBAC 40C/D. Unix:ちょっとだけ遊びました。東芝(サンマイクロ提携)のA400. Basic:Laptop Dynabook で遊びました。 Linux on DOS/Vマシンを使って、メールサーバ、メーリングリストサーバ、Webサーバ、データベースサーバなどを学生諸君と一緒に構成し、インターネットにつなぎ、ネットの世界を楽しみました。 Perl:Webカウンタなど。 Java:マニュアル本を読んだ程度。 VB:あることを知っているだけ。 Emacs-Lisp:本を買った程度。 Java Script:からかった程度。 Ruby:あることを知っているだけ。  以上、広く浅く、お恥ずかしい限りです。
求人情報


About Me
1024


4月2007年5月6月
12345
6789101112
13141516171819
20212223242526
2728293031

Recent Articles
積んどく
読んどく
濫読
書というものは
速度改善の概要
画質改善の概要
すぐできる幸福度チェッ...
映像圧縮の規格って?
映像圧縮というお仕事
ISMSの内部監査
四方山話
おすすめって?
歌舞伎が好きです
趣味について
はじめましてのご挨拶
私の訓練道具
同期
インド
語学
出身地
自炊
新しい友人たち
プログラミング言語たち
Java
Perl
C/C++

Archives
2010-08
2010-07
2010-06
2010-05
2010-04
2010-03
2010-02
2010-01
2009-12
2009-11
2009-10
2009-09
2009-08
2009-07
2009-06
2009-05
2009-04
2009-03
2009-02
2009-01
2008-12
2008-11
2008-10
2008-09
2008-08
2008-07
2008-06
2008-05
2008-04
2008-03
2008-02
2008-01
2007-12
2007-11
2007-10
2007-09
2007-08
2007-07
2007-06
2007-05
2007-04
2007-03
2007-02
2007-01
2006-12
2006-11
2006-10
Archives
AFRO
関取刑事
troter
NANAS
しま
くぁんぽ
わいえす
yuitowest
mayu
ada
masa_edw
kana
u1
toon
yoppi
ごぼう
ちゃあ
Fool Proof
8og
えんどう
katsuwo
cut-sea
しみた
さとうさ
naa2
ごだっく
さふ
2種8種
Saviola
創世紀
akibageek
1024
M.Yoshioka
かっぱのおじさん
イナバウアー
初心者
A 嬢
アカムトルム
aoc
eji
焼きナス
ヘドロマン
ykoma
レオ
KyouGenShi
gold-fish
AK
shuu
むくむく
tesujiro
ぎっふぃー
tortellini
Mark
k
70rin☆
八雲
丑牛
鏡月
うまのすけ
新人君
kommy
EJE
WM
にっくす
伊吹
nobsun
white
lucky
しどっち
ワイズフール
NT
bj
同じく井坂十蔵
のび太
つとむ
ゾッケラー
odradek
じゃくそ〜ん
シュウカイドウ
樽酒
rakyon
えがし
KK
RyuArai
otachi
Homer
まるも
リトルペンギン
イチバン
のり
NAK
安樂齋
ますく
がわこう
Qoo
savage

ホーム個人情報保護サイトポリシープライバシーポリシーお問い合わせ
copyright(c) 1998-2006 time intermedia corporation. all rights reserved.