« プログラミングを始めるには(16) | Main | プログラミングを始めるには(18) »

August 16, 2014

プログラミングを始めるには(17)

サマリの續きを。


「プログラミングを始めるには(4)」
Lispならば何も氣にならないリスト處理をC言語で書くとこんなに面倒だという話。實はC言語で開發をしていた頃でも、こんなプログラムは書いたことがなかったので、結構樂しめた氣がする。EmacsもC言語で書かれているが、實際にリストをどのように處理しているかにはあまり興味がない。


「プログラミングを始めるには(5)」
C言語で開發中にEmacsと出會い、以後それに夢中になったという馴れ初めのような話。それまではBorland社のIDEを好んで使っていた。Emacsを使い始めたばかりの頃は、まだLispなんて全く知らなかったので、自分の.emacsですら思い通りにならなかった。その後、Emacs+gcc+gdbというのが定番の開發環境になり、Rmail、MH-e、GNUSを使うようになって、さらにはEmacsを自分でビルドするようにもなった。


「プログラミングを始めるには(6)」
現在もっとも手輕にプログラミングを始める方法はWindowsパソコンならMeadowをインストールすることであるということを書いた。そして、GNU Emacs Lisp Manualの最初に書かれているのは「Hello World!」ではなく、tとnilという眞僞値の話である。


「プログラミングを始めるには(7)」
Meadowをインストールすると非常に詳細な日本語マニュアルが付いてくるという話。いわゆるGNU Emacs ManualとGNU Emacs Lisp Manualの邦譯版であるが、私はどちらも通讀した記憶は無い。Bindを束縛と譯すのはあまり好きではなく、そういうことが妙に氣になって讀み込む氣になれない。その點、18版の邦譯センスは謎めいた譯注が隨所にあったりして結構良かった氣がする。その他、眞僞値の話の續き。


「プログラミングを始めるには(8)」
プログラミングを始めるにはそれが何よりも面白くなければならないという話。システム開發で實施するプログラミングは實に面白くない。カードパンチ世代はプログラマ、リーダー、マネージャーのいずれも早く引退して慾しい。そして、最低スキル者に合わせた開發方法というのもやめてもらいたいものだ。面倒臭くてしょうがない。ついでに書くと、カードパンチ世代はプログラムの說明書を重視する變な傾向がある。それが揃ってさえいれば安心であるかのように。でも、そういったプログラム仕樣書と單體テストの整合性(仕樣書通りにテストされているかどうか)までは氣にしない。プログラマはソースに書き込むコメントの寄せ集めを讀みたいとは思わないのだ。


「プログラミングを始めるには(9)」
プログラミングを面白いと感じるには實際に自分でやってみて、それを實感しなければならないという話。話題に合っているかどうかはおいといて、最近のほとんどのパソコンに搭載されているのが64ビットCPUであるが、64ビットの最大値っていくつだろうかという素朴な疑問。流石に64ビット版のWindowsにはそれを表示出來る電卓が付屬している。しかし、それ以上の大きな數値を扱うとなるとダメみたいだ。Lispではもともと非常に大きな自然數を扱うことが出來る。bignumとかfixnumと呼ばれているものだ。この記事では2の8192乘という讀めないような數値を表示している。


「プログラミングを始めるには(10)」
Lispでプログラムを書く方法として、大きめの機能をいくつかの關數に分けて書く方法と、まとまった手順を1個のLisp式にしてしまう方法の2つがあるという話。後者は、シェルのコマンドラインで出力を確認しながら、どんどんパイプでつないでいくやり方に似ている。しかし、不用意にグローバル變數を作り散らかさないよう、Lisp式を書く場合はたいていletフォームを使用する。式をどの程度ネストさせるか、それをプログラムの可讀性の基準にしたがる人が居るが、私は反對だ。Lispはその人の思考に任せて書いた方が良い。


「プログラミングを始めるには(11)」
言語仕樣書や言語書籍に讀んで面白い本はあんまりないという話。讀み手に面白いものを提供しようとして書いているわけではないのだから當然だが、面白くないことによってその言語への興味が薄らぐのだとしたら問題だと思う。他に「Lispでエラトステネスのふるい」という神戸大學のページを例に、お決まりの再歸とループの話を。まあ、Emacs上では深度が知れているもの以外あまり再歸で書かない方が良いと思われる。


「プログラミングを始めるには(12)」
現時點の最新Emacsバージョンである24.4.50のビルドについて。23のアルファバージョンの頃はよくCygwinでビルドしていたが、その結果ノートパソコンを1臺壞してしまった。ペン3-1Ghzのパソコンで數時閒もかかるビルドを頻繁にやってはいけない。最近のパソコンなら、假想マシン上のLinuxでも數分でビルドできる。おそらくsavannahサーバからチェックアウトにかかる時閒の方が長い。それと24.4からはewwというブラウザ機能が加わるらしい。


「プログラミングを始めるには(13)」
プログラミングを始めるにはデバグが容易でなければならないという話。プログラムを作ったは良いが、思ったように動かない原因を見つけるのに必要なのがデバガであるが、Emacsにはedebugという非常にシンプルで强力なデバガがある。最初はgnu.emacs.sourcesに投稿されていたものを使っていたが、知らないうちにEmacsにバンドルされていた。唯一注意すべきなのは、巨大なリストの變數の内容を表示しないように操作する必要があるということくらい。これを怠るとたまにEmacsが固まってしまう。


「プログラミングを始めるには(14)」
Emacs外部のコマンドなどの出力を取り込んで處理する方法があるということを書いた。取り込んだ後Emacs上で整形するつもりが、その必要がなくなってしまう場合もある。まあでも、たまにUNIXコマンドで簡單に出來ることをelispで書いてみるのも面白いものではある。


「プログラミングを始めるには(15)」
オブジェクト指向の話。これについては今後もいろいろと書くかもしれないが、實は今elispでOOPすることについていろいろと調査中だ。エイエイオーという面白い名前のパッケージ?があるようで、この記事で試したことを書きなおしてみたいと思っている。

|

« プログラミングを始めるには(16) | Main | プログラミングを始めるには(18) »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/74224/60160853

Listed below are links to weblogs that reference プログラミングを始めるには(17):

« プログラミングを始めるには(16) | Main | プログラミングを始めるには(18) »