これは驚き・・・。将来プログラミング言語を使わない技術者がアプリを作る時代になるのかな?今でも半自動化されているし一部ツールまさにプログラミング不要だったりしますが、その方が総合的な生産は増えそうですね。
Google、コードを書かずにAndroidアプリが作れる App Inventorを公開
http://japanese.engadget.com/2010/07/12/google-android-app-inventor/
ソフトウェアは書くものであって、読むことの重要性は、あまり意識していなかった人が多いのではないか。しかし、ソフトウェア開発においてキーボードを叩いている時間は短いのです。むしろ考える時間、読んでいる時間が長いこれは事実です。設計書とコーディングは成果物がドキュメントかソースかの違いなので人を分けないほうが効率はあがります。人数的に足りない場合はコーディング領域での縦割りはあっても設計の階層で分けないほうがいい(外注は階層が増えるのでコスト要求が厳しくなりますね)。むしろソースで設計内容を表現できるのが望ましいし紙製本で欲しい場合に自動生成できると尚良い。手作りドキュメントは仕様書程度にとどめておいても十分だと思います。
プログラミング入門書では、デバッグについて、ほとんど議論されていないし、仮にふれられていても、おざなりな方法というか、かなり邪険にあつかわれていたりする。プログラマの多くの時間がデバッグについやされていたとしてもだ。と書かれていますが、どう考えてみてもデバッグはプログラミング言語入門とは関係なくね?と思います。プログラミング入門で扱うのはせめてコンパイラが警告出さないように丁寧に書きましょう程度で、デバッグの仕方はちょっとトレースレベルであまり深くやるともはや言語講座じゃない気がする。
学生のころは、デバッグの方法というかスタイルも実に場当たり的で、適当にprint文を埋め込んで状態を確認し、テストをし、試行錯誤しているうちに、どれがデバッグ版で、どれが正式版かわけがわからなくなって、デバッグしているんだかバグをせっせと作り込んでいるのだか、何をやっているか、わからないということが良くあった。既に動いているスクリプト言語でデバッグの時には確かに場当たりで適当にprint文を入れることもありますが、ファイル管理できないのはprintデバッグのせいじゃないだろ。バージョン管理システムがあれば便利ですが、無かったとしてもオリジナルはちゃんと取っておけよ。確かに全くバックアップ取らずにソース弄る人やファイル名を変更するときに、「新~」「最新~」「最新版~」「~改」とかどれが新しいのか本人の記憶だよりなる銘々規則の無い人とかいますけどね。
デバッグ対象のプログラムを正しく理解するためには、そのプログラムは変更してはいけないのである。動作を虚心坦懐に理解するために、1バイトたりともいじってはいけないのである。そして、そのためにデバッガを使えということになる。デバッグモードでコンパイルした製品で納品するならその意見もありです。全てが自分で組んだソースなら大丈夫でも、既存のライブラリを使用したプログラムではリリースコンパイルとデバッグコンパイルで違う挙動を起こすものがあるのでデバッガだけで済めば楽なほうです。Cのプログラムでもデバッグコンパイルとリリースコンパイルで全く別物になっています。デバッグする為には途中弄る必要性も出てくるし、デバッガを使うためにコンパイルしただけでもネイティブコードとしては別物なので1バイトたりとも変えないというのはただの思い込みでコンパイラを信用しすぎです。ココまでくると言語入門とは大きく外れてます。一応言語入門でも将来のデバッグに備えるために#define等で切り分けてデバッグ用ログ出力でも手抜きせずに書いたり、さらにサービス中の障害解析用にエラーログレベルを設定して動的にログ出力を調整できるようにしたりしますね。ネットサービスや携帯等の組み込みとなると表面上デバッグ用ログ出せないし実行環境にデバッガの設置が許されないまたは不可能なので裏で取れるように細工します。
あえていわせていただく。コードはデバッグできるだけはるかにましなのだ、と。printfを使うかどうかなんぞ、その問題と比べれば屁ですらないのだと。全くです。既に動作中のプログラムなんて簡単に手を付けられないですからね。
デバッグよりもはるかに重要なもの、それはデータ構造の選定。
ここで一歩間違えると、バグが仕様化し、デバッグどころかバグにあわせてプログラムを書かねばならぬ羽目になる。
あるあるwありすぎて困るwww。特にDB設計者やプロトコル設計者がアホだったり仕様変更が荒すぎたりすると本当にプロジェクト全体が混乱したり無駄に複雑化してパフォーマンス悪いシステムになったりします。運用始まったらDB設計なんて直ぐに変更できなしプロトコルならまず変更できないから、その後の改修はほんと辛い。あとプログラム設計しないプログラマも結構致命傷だったりします。仕様書がいい加減だったり、設計書が手抜きだったり、人が書くものなので一定の確率で運が悪ければプログラマが苦労する事になりますが、完全分業に慣れるとプログラム設計を忘れるプログラマがいるんですよね。ソースレビューを徹底している所ならそういう問題は起きにくいのですが、アルゴリズムに穴があったり正規表現に漏れがあったりとtypo等の単純ミスを除いて理論的に完結できていないのはプログラミング以前の問題でこれはデバッガに頼る前に徹底して詰めなければいけない所です。
People to People Communications(川崎市)は11月25日、統計データを元に作成した「疑似個人情報」の無償提供を始めた。非営利目的に限り、1人3000件まで無料でダウンロードできる。