吉田弘一郎は Pascal を知らない
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG技術的な間違いのみに絞りたいので,こちらに。
テキストは SoftwareDesign (技術評論社) 2001/6 p.168
「It's time for Programing」
Delphi と Kylix を活用するための Pascal 言語入門。
これが,読めば読むほど間違いだらけ。
ではいってみよう。
0002p.168 中 中段
NGNGVirtual の意味するところが“仮想関数”であれば,間違い。
Apple Object Pascal では「全てが」仮想関数扱いになるのであり
後から来た TurboPascal 5.5 で(効率向上のために)デフォルト
静的メソッド,virtual を個別に指定することで動的メソッド,
すなわち仮想関数であることを宣言するようになった。
だいたい,継承のみ仮想関数なしのオブジェクト指向言語って何よ。
継承するたんびに全ての関数を実装し直すのかい?
0003p.169 左 下段
NGNGここから数行,Delphi4 コンパイラに対する愚痴。なぜいま?
ところで,Delphi4 で DCC32 を使った場合コンソールアプリケーションを
作成できない。ということを主張されておりますが,ちょっと信じられない。
いま,手元に D4 が無いので結論は出せないが,ガセネタっぽい。
どなたか確認できますか?
0004p.169 中 上段
NGNGコンソールウィザードって,
{$APPTYPE CONSOLE}
uses SysUtils
begin
end.
ってコードを吐くだけでしょ。中身が無いことをすごいことのように
ふくらませている悪い例。
0005p.170 左 下段
NGNGDelphi4 から Real は 8 バイト。Delphi4 での言語仕様の変更を
理解していない。
0006p.170 中 上段
NGNG「実数型は4バイトの Single と8バイトの Double」
10バイトの Extended を忘れている。わざと無視したのか?
「C/C++ と同様の..」と弁解気味の言葉が書かれているが,
C/C++ で Single/Double が 4/8 バイトと規定されているのか?
単に x87/IEEE754 の実装に依存しているだけであり,それ以上の
意味はない。
0007p.170 中 上段
NGNG典型的な Pascal の教科書であれば,ポインタ渡しの代わりに(返値を格納した)
構造体を返す関数による結果の返し方を先に説明するはず。
「Pascal にもポインタがあるんだぜぃ」って知識を見せびらかしたかったのかどうかは
わからないが,後にも先にもポインタを使う例は無いので無意味。
0008p.172 中 上
NGNGルーチンが非常に自然にフィットします。」
「非常に自然にフィット」って言い回しの問題は脇においといて
再帰と関数内関数はなんの関係もない。関数内関数の定義ができない
C 言語ですら自己再帰関数によるプログラミングは自然にできる。
関数内関数定義はスコープの問題として読むべきで,変数をローカル変数として
局所的に定義するのと同様に,大域スコープを持つ必要のない関数を
使う場所の近くにおくことによってコードをまとめる(理解しやすくする)
と行った意味で説明するほうが普通だろう。
関数内関数を多用すると,一番外側の関数が肥大化するためコードの
保守性は逆に下がる場合もあるが,そこまでのつっこみはなしとしよう。
0009p.172 右 下
NGNGText -> TextFile
Assin -> AssinFile
Close -> CloseFile」
Assin が Assign の誤字なのは,まぁいいや。
Text, Assin, Close は全部そのまま使えます。確かに一般的な単語なんだけど,
一般的だから,という訳ではなく VCL でも同名のメソッドを提供し始めた
ことが主原因。逆に VCL を使っていなければ今まで通り使えるのだ。
この雑誌記事は,コンソールアプリケーションしか作っていないので
こんな(間違った)説明は必要ない。
0010p.173 右 上段
NGNG勘定の仕方にもよるけど,第0バイト目じゃないのか?
ShortString S の文字列長さを格納しているのは S[0] だ。
0011p.174 左
NGNGupcase とか UpperCase とかのライブラリ,知らないのだな。
たぶん,無理して Ord と Chr 関数を使う例を出そうとしたのでしょうが,
「煩わしいほどに使うはめになるのが Ord と Chr です」というほどではない。
もし煩わしく感じるのであれば,コードの設計に問題があるのだ。
彼の煩わしいサンプルコード(一部)
if (ord('a') <= ord(ch)) and (ord(ch) <= ord('z')) then
ch := chr( ord(ch) - ord('a')+ord('A') );
順序型(Ordinary type)は,各種演算はできないけど順序付けられた物なのだから
比較はできるし,Inc/Dec 関数を使って(数値に変換しなくても)一定範囲大きな/小さな
順序型を得ることもできる。
if ('a' <= ch) and (ch <= 'z') then
dec(ch, (ord('a')-ord('A')) );
まぁ,自分だったら
const delta = (ord('a')-ord('A'));
を定義した上で
if ch in ['a'..'z'] then dec(ch, delta);
だな。Chr と Ord がうるさいって?だれだ?そんなこと行っているやつは。
0012デフォルトの名無しさん
NGNG件の文書はかなり楽しめるので,みんなでつっこみを入れましょう。
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNGここの、つっこみだけ見る限り、Delphiはまだそんなに使ってない人なんでしょうな・・・。
まるで、以前あった
・懐かしいゲームつくったからみてくれ
・付属のソースコードにはDelphiのグチが一杯
・つっこみどころもりだすさん
なスレの1みたいだ・・・。
001615
NGNGもりだくさん
0018デフォルトの名無しさん
NGNG先月号(だったかな)にも今月号にも記事あるね。
かんちがいだらけで吐き気がした記事。
>>15
たしかD1が出たばかりのころに「Delphiの奇跡」とかいう本を
書いたのもこの人だったような。
あれも嘘だらけだったが、あの時期なら許そうとも思う。
だが、今でもそんな記事が許されるかってーと…
使用時間だけは長いが、勘違いが多い、というか
勘違いを是正するということを知らない感じ。
SDとかの過去記事を眺めた感じでは、
なんというかアッチフラフラコッチフラフラして
ハート(w)に技術的なスジが通ってない人なんだと見た。
技術誌でMSの「売上」を熱く語られても困るんだがな。
立ち読みでいいよ。つーかSDの編集者さんにお願いなんだけど、
吉田の部分を他の記事と抱き合わせで売らないでくださいな。
あそこ切り捨ててください。その分安くするとかしてください。
いや、誤差範囲内ということで安くならなくても許可よ。
あるいはいちいち切らなくてもいいけど、吉田に金が行かないように
してくれればそれで十分です。まぁ記事というより晒しって感じで掲載とか。
0019名無しさん
NGNG君、凄いよ。ご苦労さま。
個人的な恨みから来るパワーかな?暇なのかな?
(Delphiユーザーってこういう手合いが多いのですね)
0021デフォルトの名無しさん
NGNG人生を好き嫌いの二値評価でしかみれないんだね。
動機として恨みしかでてこない,ってのは人間として情けないぞ。
0022復活
NGNG理由を少しはくみ取っておくれ...
002319
NGNG1の情熱はどこから出てくるのか・・・・まあ感心感心。
暇なお人であるのは間違いなさそうだけど。(ワラ
0024デフォルトの名無しさん
NGNG知ったかして批評しているジジネコも痛い。
0025デフォルトの名無しさん
NGNG大小文字変換て例はともかく、順序型の使い方に目から鱗だ。
そうやって使うのか、始めて知った、何気に役に立ったよ。
0026デフォルトの名無しさん
NGNG周知の事実であると思えるのに、執拗に使いつづける技術評論社は
何か弱みでも握られているのか?
0027デフォルトの名無しさん
NGNGああいった物書きの書くことにいちいち反感持つ人が多すぎる気がするな。
まあプログラム板ではそれほど目立ってはいないけれど。
「こういう考え方もある、ああいう考え方もあるな」でいいんであってね。
1はテクニカルな面を書いているにしろ、やはり吉田氏への個人的な
攻撃なんだろねと思われるし。
(他の本、他の記事の間違いを調べ上げるようなことをしてないんだもん)
ことさらに取り上げて批判してるような内容も見受けられる。
ま、いいか。
0028VC厨房だけど
NGNGPascalは全然知らなかったのですが、この記事を読んでDelphiを買おう
という気になりました。
OOPの話がほとんどでてこなかったけど、記事の範囲ではPascalの言語使用
はC(or C++)よりずっと良さそうです。
間違いを指摘してくれた1に感謝。ただし>>8には賛成しかねます。関数内関数は、
Schemeで名前つきletを使って再帰を記述する感覚にとてもフィットしている気
がしました。確かに偏った説明だとは思いますが。
0029デフォルトの名無しさん
NGNGDelphiで育った人間にとっては
関数内関数と再起は全く結びつかないです。
関数ネストは再起だけにフィットするのではなく
もっと他にも便利な面が多いのです。
0030デフォルトの名無しさん
NGNGましてやしょっちゅう間違いを犯すようなライターは始終警戒されて
当たり前。まあ、批判されているうちがハナだとも思われるな。
003115
NGNGバリバリ再帰につかっちゃってるオレは一体(;´д`)
0032デフォルトの名無しさん
NGNG>・つっこみどころもりだすさん
>なスレの1みたいだ・・・。
あのスレの1は真性厨房で痛かったな。このスレの1さんはDelphiの事を
よく理解して指摘も的確なので全然痛くないと思うが?
>>31
29は別に再帰に使うなって言ってないでしょ?
俺も関数内関数は再帰のためだけに用意されていると思わないな。
29の言うとおり他の用途でもとても便利だよ。
関数内関数を使うと再帰関数でパラメータを隠蔽できるので便利だが。
これは>>8で言っているのと同じだね。
0033このスレって
NGNG論議を巻き起こして書籍の売上を上げようって魂胆?
003415
NGNGまぎらわしくてメンゴ。1のことではなく、SoftwareDesignの記事書いた人のことね。
>29は別に再帰に使うなって言ってないでしょ?
こっちもまぎらわしくてゴメンよ。
オレも他の用途でも使ってる。
0035デフォルトの名無しさん
NGNGという意向がとてもイィd(・∀・)
例えばここも記事批判してる。
http://www.amy.hi-ho.ne.jp/~lepton/program/p1/prog178.html
でも痛々しくないかな。
揚げ足とりにしかなっていないような気がする。
DelphiPascal系ではそんなに多く記事がないから
批判される事自体少ないはずだけど
記事批判をする時に、とりあえず揚げ足を取るような
見苦しいC++マニアの慣習を持ち込むのは、閉口
>>1-11も気をつけてっ。
0036デフォルトの名無しさん
NGNG>「こういう考え方もある、ああいう考え方もあるな」でいいんであってね。
ヨクナイですよ。少なくとも技術畑では、
「あきらかな間違い」ってのは常に存在するわけで、
そういう糞を踏んでいるのに気付きもせんような
じぶんの足を清潔に保とうとしないような人は
相応の扱いを受けて然るべきかと。
「考え方の相違」で何でも片付くわけじゃないっすよ、世の中。
>>35
とても良いってのはそれなりに同意だけど、
それ以外の面を叩き出したらキリがない相手なので
適度に控えないと埒があかない、とも言えるかも…
それに、とりあえずこのスレでは敢えて看過するのもいいけど、
常に揚げ足を看過するってのは、それもまた不味いこと。
0037デフォルトの名無しさん
NGNG初期化仕様が、関数外再帰関数の場合と違うと思われ
0038デフォルトの名無しさん
NGNGでもね。
個人批判や特定の記事批判って見ていて気持ちいいものじゃなくてよ。
そのとおりだと思う面が多くても。
C++世界で言う所のK仲川やその周りの駄人間のような
存在はDelphi/Kylixには持ち込まなくてよいと思うです。
K仲川の周りの薄汚れた世界を知ってるかな?
じじい本人に言って
納得してもらえるような技術批判なら見ていて気持ちいいし
じじい本人に言っても
それは価値観の違いだなと思われるような批判なら
見ていて気持ちよくはないな、言わないでおけばいいのにと思われる。
とりあえず、SD編集部にはこのスレのアドレス知らせておこうか?(藁
0039デフォルトの名無しさん
NGNGじゃあ、見なければ良い。
0040デフォルトの名無しさん
NGNG>とりあえず、SD編集部にはこのスレのアドレス知らせておこうか?(藁
おしえてあげれば?
0041デフォルトの名無しさん
NGNG>>10 みたいなこと書くから1の品性を疑われてしまうんだと思う。
あるいは、「為にする批判」と取られてしまう。
1よ、十分気をつけられよ。
0042デフォルトの名無しさん
NGNGDelphi/Kylixがキレイと思っている時点で、
そうとうイタいやつ(わら
0043デフォルトの名無しさん
NGNG実際にはゴキみたいに隠れて数名いるけどな。(藁
0044デフォルトの名無しさん
NGNGじじいって誰だよ。
じじいラッシュのじじいか?
0045デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNGどれ、SD立ち読みしてくるわ。
0051デフォルトの名無しさん
NGNG>個人批判や特定の記事批判って見ていて気持ちいいものじゃなくてよ。
だからナニ?
気持ち良さを技術的白黒と同列に語ろうっての?
それは単に貴方の目が曇っているだけでしょ。
つまり、貴方個人の意見にすぎず(つまり、狭い)、かつ、ダサイ。
個人って…?
人間はみんな「個人」に決まってるじゃん。
貴方のその説だと、人は「誰をも」攻められなくなるのよ?
自分が言ってること(の害)を判ってる?
今目の前にこうしてワルイものが有るのよ?
なんでそれを直接言っちゃ駄目なの?
それとも間接的にねちねち陰口だけにしろとでも?
>じじい本人に言っても
>それは価値観の違いだなと思われるような批判なら
少なくとも、技術的白黒を価値観の相違だと片付けたがるような
ドキュな人間(それが吉田であろうと貴方であろうと)は
居る価値がありません。技術畑には。
老(に限らぬが)害を看過するほうが却って悪い行いだと思うぞ。
>SD編集部にはこのスレのアドレス
名案だね。どうぞ。
で、それがナニ?
0052デフォルトの名無しさん
NGNGオナニー長文はさげれ
0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNGワラタ
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNG書籍と違い月間ペースの記事では誤りを完全に無くすのも容易ではなかろうし、
誤りを認めれば次号で訂正文も載るだろう。
0058デフォルトの名無しさん
NGNG本人なら黙殺されかねないけど、編集経由ならそう酷い扱いもされないはず。
編集部に技術に明るい人間が居たらなおさら。
00591
NGNG2ch にしては好意的に迎えられたみたいなんで,ヨカッタ。
さて。先月号をチェックしようか?
0060デフォルトの名無しさん
NGNG1と51は別人?
それならよいけど。
51のオナニー文章はpcodeのにほい。
まるで、そよかぜに流れてきた生ゴミのような......
0061デフォルトの名無しさん
NGNG君、よそのスレにもいろいろ書いてるみたいだけど、
君のスタイルが2chにあわないことがそろそろ判っただろ?
煽りスタイルを変えるか、書き込みを自粛するかしてくれよ。
うざ。
0062デフォルトの名無しさん
NGNGなーにがスタイルだ。
せっかくの2chで島国根性(=没個性ごっこ)を再発したいのか?
ところでpcodeって何?人名?とりあえず俺は知らぬけど。
>>58
編集部でも黙殺って有りそうな。
なんせ今まで長らく載せてたんだから。
というか今までも黙殺されつづけてきてたんじゃないかな。
100%憶測だが今まで他に誰もメールしなかったとは思いがたい。
あの人は今回に限ったことじゃなく頻繁にあんな調子だったんで。
0063デフォルトの名無しさん
NGNG読者の為でもあるんだからこんな所に書くよりその方がいいと思われ。
0064デフォルトの名無しさん
NGNGかわいそうな人なんだから
そっとしておいてやろうよ。>>61
0065デフォルトの名無しさん
NGNGうーん。「1通の」メールだけなら、
64みたいに(w)「きみはキティだよ」と
決め付けることで黙認問題ナシなんじゃないかな。
もちろん一人で100通送ったら本物のキティだし。
そういう意味でも大勢がタカッテいる2chは有望。
ばざーるもでるまんせー
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNG他人をキティと呼んだ、という例として参照したんだが、それがなにか?
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNG0072kitty
NGNG> ところでpcodeって何?人名?とりあえず俺は知らぬけど。
以前、Delphi-MLに出没していた、自分が見えてない馬鹿プログラマー
のことです。
0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNGんだ。PascalとDelphiの差分、つまり進歩した点を
理解する能力はかなり耗弱してると思われ。
いや最初から無かったのかな?
■ このスレッドは過去ログ倉庫に格納されています