フローチャートの使い道

http://d.hatena.ne.jp/JavaBlack/20060802#p3
の続き.

フローチャートと抽象化

http://d.hatena.ne.jp/odz/20060803/1154581170

というより、同期処理とか例外処理とかなると、もうフローチャートは使えないし、オブジェクト指向的な設計もできないしね。あぁ、あとクロージャとか、高階関数も手続き的指向だと有効利用できないよね、多分。業務で利用することも少なそうだけど。

クロージャ高階関数くらいだと難しいのは解るけど*1,同期(&マルチスレッド)と例外処理,それにOOPが使えないと,まともなJavaプログラムは書けないと思う.その辺を分かってなくても「Javaプログラマ」を名乗れてしまう辺りが問題ですね.

フローチャートは今でも有効か

http://d.hatena.ne.jp/yotaropg/20060802#1154540091

ああ、しかし懐かしいなフローチャート。懐かしき思い出の数々・・・COBOL、S3100、N5200、ACOS、まともに動かないスクリーンエディタ、会社秘伝のコピー集・・・思い出したくないものばかり、というのはどういうわけだ。

まあフローチャートを有り難がる現場なんて,使ってる技術が古すぎるか,技術レベルが最低か,或いはその両方でしょう.二度と思い出したくなくなるのも当然かと.

おそらく前提が・・・

http://d.hatena.ne.jp/yotaropg/20060804#1154710184

元が「日本のIT現場」での話なので、その前提を無視すると話が噛み合ないと思うですよ。
初心者って、コードはまず間違いなく書けない。そして少なくない確率で「文章を自分で考えて書く」こともできない。そもそもロジックを構築した経験がないわけです。(中略)
でこの文脈で行くと、分岐が二方向のみとかループ記号も無しとか、その辺に辿り着く話になるわけです。

小学生レベル以下の技術力ですか.そういう開発現場って終わってません?*2

事実は小説より奇なり。orz

まったく.*3

元記事のコメントより

シニアSEですが、設計時にフローを記述する事があります。思考の整理&オプティマイズを目的としています。状態遷移図と照らし合わせて、頭の中で動画化されます。また、ビジュアル化する事で、さらにエレガントな解を探求するトリッガとして使用しています。

オプティマイズ」は「optimize/最適化」かな?「ビジュアル化」と「エレガントな解」についてはさらに怪しく,具体的に何を指しているかは不明だ.*4

最適化とフローチャートと何の関係があるのだろう.それこそJavaくらいの高級言語だと,CPU内部の最適化に加えてVMレベルの最適化も考慮しなければならないので,フローチャートで記述されていない部分がほとんどなのだがね.

ひょっとして最適化コンパイラが登場する以前の「最適化」の話をされているのだろうか.

*1:というか,クロージャはそもそもJavaには無かったし,「高階関数ってなんだっけ」レベル.「ラムダ計算」も知識だけはあるけど使い方がイマイチ理解できてない.

*2:しかも,ひょっとすると日本の開発現場の大半が,こういう終わってるものばかりだったりするかも.

*3:できれば夢であって欲しい.

*4:「visualization/可視化」という領域はあるが,それはフローチャートとはほとんど関係ない.もっと広い意味で「図示する」と言いたいのかもしれないが,プログラムの視覚化が難しいのは「人月の神話―狼人間を撃つ銀の弾はない (Professional Computing Series)」で指摘されている通り.