1 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 00:13:54 ] これからプログラミングを始める初心者の人に言語を薦めるスッドレ 質問者の方へ どのプログラミング言語を最初に覚えるべきかは なぜプログラミングを始めたいのか、何を作りたいのかによってまったく変わってきます。 なんとなく、でもかまわないので動機、用途、使っているOSを明記しましょう。 各言語の特徴はこちらを参照 Wikipedia Category:プログラミング言語 ja.wikipedia.org/wiki/Category:%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E Part7 pc11.2ch.net/test/read.cgi/tech/1200807067/ Part6 pc11.2ch.net/test/read.cgi/tech/1193132235/ Part5 pc11.2ch.net/test/read.cgi/tech/1187886538/ Part4 pc11.2ch.net/test/read.cgi/tech/1177285633/ Part3 pc11.2ch.net/test/read.cgi/tech/1152778344/ Part2 pc8.2ch.net/test/read.cgi/tech/1122205164/ Part1 pc8.2ch.net/test/read.cgi/tech/1034505166/
182 名前:サイタマン ◆mYN3wsz7vE [2008/04/21(月) 01:59:14 ] 2chブラウザを作りたい人は質問に答えますよ。
183 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 02:06:27 ] 10万回コピペした!
184 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 02:29:16 ] 株やってる人には面白そうなブラウザだな。
185 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 02:32:36 ] スレの趣旨からは外れてる気がするが、 株やる人にとっては便利なのかね
186 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 06:10:50 ] スレ違いも甚だしい
187 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 06:54:38 ] >>186 株できない子供は黙ってろ
188 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 07:00:34 ] スレタイ読めないゆとりは死ね
189 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 08:30:51 ] >>188 株できない子供は黙ってろ
190 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 08:40:54 ] ほら見ろ構ってやったから調子乗っただろう キチガイは放置が最善手
191 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 09:14:40 ] >>190 株できない屑野郎は黙ってろ
192 名前:サイタマン ◆mYN3wsz7vE [2008/04/21(月) 15:12:24 ] まあまあ、荒れないで下さい。 初心者にもこの程度は作れるよと言いたかっただけなので。
193 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 15:24:13 ] >>192 株できない屑野郎は黙ってろ
194 名前:デフォルトの名無しさん [2008/04/21(月) 20:48:01 ] cとc++の違い教えてくれ
195 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 20:55:15 ] つwisdom.sakura.ne.jp/programming/cpp/cpp3.html
196 名前:デフォルトの名無しさん [2008/04/21(月) 21:10:11 ] >>195 サンクス
197 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 14:08:41 ] すみません! 今、企業に面接に行ってきたのですが 一ヶ月後にプログラムを作ってきてください、また面接しましょうといわれました。 恥ずかしながら、全くの初心者なので、何からすれば良いのかわかりません。 誰かヒントを下さい!
198 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 14:17:15 ] >>197 君が本当にプログラミングを一度も作ったことがないということを 先方が理解していたなら、それはあちらの厄介払いだ 君が本当にプログラミングを一度も作ったことがないということを 先方が理解していなかったなら、それはあちらの勘違いだ どちらにしてもプログラムを作る必要はないと考える
199 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 14:19:32 ] >>198 まーな… PCを持ってるにもかかわらずプログラミングをしたことが全くないってのに そういう企業や職種に応募することが正直なとこ全く信じられないんだが
200 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 15:59:20 ] >>197 >>198 の言うとおりだと思うのだが、具体的にどんなプログラムを作れって言われたの? 言語は何を指定されたとか、OSやハードウェアは何とか。
201 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 17:02:12 ] 博士取った新卒でも面接でソートプログラムの一つすら書けない、 そういうのは役に立たねーよとかいう話があったななんか。
202 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 17:28:45 ] それはソートプログラムなんて書かせるのが間違ってる
203 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 17:36:01 ] ソートプログラムは簡単なのの代表的だから俺がレスに書いただけで、 ちゃんとした理工学系のような履歴の人間にもプログラム全くできない、 触ったこともない奴が含まれているらしいということさ。
204 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 18:02:44 ] >>202 じゃあFizzBuzz
205 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 18:04:54 ] 単純ソートならなんとか書ける
206 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:51:44 ] フリーウェアを作りたいと考えているのですが 昔VBやPowerBuilderの開発経験があるので Basicでよいのがあればそちらを、無いなら Basicから移行しやすい言語でフリーウェア作成向きの 言語って何がありますか?
207 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:56:36 ] HSPとかBCBを進める
208 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 05:00:33 ] 言語を選ぶ選択肢としては、自分の性格を見極めたほうがいいかもしれません。 私の場合、2chに書き捨てるような文章を書くのが得意かつ好きで、 ブログのような、ある程度、きちんとした文章を書くのが面倒だと思うタイプなので、 一番、書き手にメリットのあるPerlを好んで使っています。 ブログを書くのが好きな人にとっては、もう少し、厳格な言語がいいかもしれません。 人それぞれの性格によって、一番能力の発揮しやすい言語があると思います。 ほとんどの言語で、ほとんどの事は出来ると思いますので、 自分に合う合わないで決める事が、一番大切だと思います。
209 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 05:02:54 ] ブログをやった事もあるのですが、 性格的に合わず3日持ちませんでした。 2chに書き込むのは好きで、何年もコテハンをやっています。
210 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 05:07:01 ] 書き手にとってメリットがあると言う事は、可読性を下げる要因になります。 逆に、可読性を上げるには、書き手にとっては自由を縛られる事になります。
211 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 05:40:04 ] >>208 書き手にとってPerlがメリットがあるという話、 具体例を出して書いていただけるとおもしろいですね。
212 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 05:43:58 ] 使ったこと無いけど型宣言とかしなくても勝手に処理してくれるって事じゃないか
213 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 06:43:10 ] >>211 例えば、ファイルを読み込んで出力するコードを書くとします。 Javaですと import java.io.*; class BufferedReaderTest { public static void main(String[] args) { try { FileReader in = new FileReader("file.txt"); BufferedReader br = new BufferedReader(in); String line; while ((line = br.readLine()) != null) { System.out.println(line); } br.close(); in.close(); } catch (IOException e) { System.out.println(e); } } } perlですと open(IN,"<file.txt")|| die "error"; while(<IN>){ print $_; } こうなります。 どちらが、人間の話す自然な言語に近いかと言う事を考えた場合 Perlがより近いのではないかと思います。
214 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 06:44:00 ] イメージとしては、 誰もが論文のように論理的文章を書く事も話す事も出来ますが、 日常的に話すように自然に話したり書いたほうが、 普通の人には楽だと思います。 日常会話では、主語が抜けたり、暗黙の了解で 省略している部分があって、 分かりにくい場合もあります。 ただ、そのおかげで普通の人間にとっては楽に話す事が出来ると思うのです。
215 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 06:45:05 ] close(IN); を忘れてましたねw 適当なコードですいません。
216 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 06:53:09 ] 短い時間で、いい回答でしたね。
217 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 07:31:57 ] >>197 オリジナルなものを書いて持っていったら、本当に入社できる かもしれませんね。今日のプログラム開発はプロでもアマでも 多かれ少なかれ、何らかのプログラムの剽窃になってしまいます。 そう感じさせないことは大変に難しいと思いますが、自分の一番 好きなことで、こんなものあったらいいなという、日頃思っている ものがあったら、それを作ってみることに挑戦してみたらいかがですか。 オリジナリティが生まれるとしたら、そういうテーマ以外考えられません。
218 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 07:41:11 ] ちなみにpythonは制御文の最後に終わりを明示する},endなどの マークが無いので制御文がどこで終わっているのか 分かりにくいと言う基本的な欠点があるので、 あまり好きではありません。 pythonだと if a == b : print '1' print '2' perlの場合 if($a==$b){ print '1'; } print '2'; こうなり、制御文はperlのほうが分かりやすいです。
219 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 07:44:00 ] perl やPHPはわかりにくいよ わざと書く人が難解にしてるのかもしれんが
220 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 07:59:04 ] >>218 サイタマンって言語あれこれきちんと使ってから 批評してるんだな、感心した
221 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 07:59:58 ] >>219 perlが分かりにくい面は否めないと思います。 どこに価値を置くかと言う点もありますね。 先ほどのpythonの制御文の欠点ですが、 自分は制御文で複雑な事をする癖があるので、 Pythonで制御文を書くと、どこまでがこの制御文の範囲なのか 訳が分からなくなってしまいます。
222 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 08:00:00 ] >>218 Python使いだが、特に分かりづらいということはないかな。 Perlは省略した表現ばっかりで本当に魂捧げないと リファレンス片手じゃないと打ち込めないw正規表現が使いやすいのはいいけどな
223 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 08:01:46 ] >>221 クラスを使って、メッソドを静的に扱う。関数を同じに扱う。 @staticmethod def hoge(x,y,z): とか。こうして細切れにすれば、問題ないと思う。 普段からルーチンを一機能につき一つ設ける癖をつければいいとおもうよ
224 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 08:07:48 ] >>223 そうすると、書き手にとっては非常に面倒になってしまいます。 先ほどから書いてありますが、自分は人間にとって書きやすい事を重要視していますので、 書きにくいと、生産性が落ち、面倒になってしまうんです。
225 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 08:11:11 ] 直感的に書きたい事を書きたいままに書くと言うのが、 一番、プログラムの楽しさを味わえると思います。 面倒な要素を出来るだけ排除する事で、人間はやる気や生産性が上がるんです。
226 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 08:14:05 ] なるべく短く簡潔にすることが大事と思う いろいろと工夫するのは駄目で便利な機能は使うべきと思う
227 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 08:20:57 ] >>224 長々とした処理を書き続ける方が気苦労多いよ。 ローカルスコープの量は最小限に、 一度作った関数は再利用できるように、ってやらないと 後日自分が作ったもの読んだ時意味不明になるよ。
228 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 08:22:07 ] >>227 については、 入力補完しまくってくれるIDE使ってくれるなら話が変わってくるか。 だけどPerlって長々とだらだらとしたものを書くようなことを 推奨してるとは思えないんだけどなあ。
229 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 08:28:24 ] >>227 自分は汎用以外のオブジェクトを多く作るのは 意味が無いと思ってます。 一つの処理に対しては、一つの流れとして書くほうが自然で 分かりやすいと思います。 一つ一つの処理にオブジェクトを呼び出すのは遅くなる原因となりますし、 何より、オブジェクトの数が多くなると管理も大変になります。 多く使う汎用処理のみオブジェクト化すればいいと思ってます。
230 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 08:40:59 ] >>229 分かった、俺の負けだ‥ いつの間にサイタマンはこんなに強化されたんだw キチンと自分の理念を持ってコーディングできてるってうらやましいな‥
231 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 09:14:40 ] 自演にしか見えないモレは心が病んでるのか・・・ Perlが書き捨て用に適していて、その用途の場合はわかりやすいように 関数とか作らなくてもいいんじゃね、ってのには賛成するが。
232 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 09:15:38 ] 数分置きに、だらだらとチラシの裏を書くやつ、どっかの掲示板でも見たおぼえあるぞ。
233 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 09:34:30 ] コテつけてる時点で病気なのでスルー推奨
234 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 09:40:36 ] サイタマンは昔から自作自演ばっかりだったよ、 株板で相手にされないからこっちに流れてきたんじゃないの
235 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 09:41:56 ] スルーできてない人がスルー推奨してもね。 ボクはキミを無視しちゃいますよ〜というのを、無視できずにアピールしちゃうことほど 「負け」属性の強いレスは無いな。
236 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 09:43:08 ] さっさと市況板にもどったら? もう市場開いてるでしょ
237 名前:235 mailto:sage [2008/04/23(水) 09:43:45 ] は?俺コーディングテクニック最強なんですが? >>236 は負け宣言だと思って言いよね? バカジャネーノw
238 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 09:44:51 ] まあまあ、有益な情報交換しましょう。 自作自演はしてませんよ。
239 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 09:46:33 ] >>238 俺がレスしてるのを自演とか言ってる奴がいるんだが 別人なんだけどなあ、 ニュース速報でサイタマンが出たてのころと比べたら 本当に強化されてて感心したんだが。 2chブラウザ作るっての公言して本当に作ったしさ。すげーと思うわ。 というわけでサイタマン、さっさとソース出せ
240 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 09:51:39 ] そ ら ま た 自 演 だ
241 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 09:54:57 ] >>223 初心者用のスレだから、質問します。 普段からルーチンを一機能につき一つ設ける、のルーチンの意味がわかりません。
242 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 10:08:28 ] >>239 あれから音声読み出し機能を付けたのですが、 視覚障害者の為の2chブラウザにして配布しようかな〜と思ってます。 今のブラウザは株のトレードとセットになっているので、 2chブラウザだけを取り出しての配布になると思います。 いろいろやる事があって、今すぐには配布できませんが、 配布するので、待ってくださいね。 >>241 サブルーチンです。 perlで書くと my $d=&call(1,2); print $d;#結果は3 sub call{ my($a,$b)=@_; my $c=$a+$b; return $c; }
243 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 10:20:13 ] 上の単純な計算までサブルーチンで行うのは 無駄だと思います。 my $c=1+2; print $c; で済むのですから。 こっちのほうが普通の人には分かりやすいと思います。 数多く、同じ関数を呼び出すのであれば、 関数化すればいいと思います。 それは、個人個人の判断になると思います。 一つ言えるのは、あまりに関数を作りすぎると、コーディングが面倒な事、スピードが遅くなる事、 この関数はどこにあるのか、何をしているのか訳が分からなくなる事です。管理上、不便だと思います。
244 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 10:33:09 ] 再利用できると感じたら関数化、程度でいいと思う。
245 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 11:10:28 ] >>244 そうだね。 一応、上に書いた呼び出し方は古いから oopでの呼び出し方も書いておきます。 use Test; my $obj = Test->new(); my $d=$obj->call(1,2); print $d;#結果は3 package Test; sub new { my $pkg = shift; bless {},$pkg; } sub call{ my $self = shift; my($a,$b)=@_; my $c=$a+$b; return $c; } 1;
246 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 11:24:13 ] test(A,B) :- test(A,B,C),write(C). test(A,B,C) :- C is A+B. 非オブジェクト指向言語ですが、これで済むんだけどなぁ。
247 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 12:52:59 ] これは Prolog ですが、BASIC だって似たようなものでしょう。 >>245 があまりに厚化粧で、サイタマンさんが上の方で書いていた ご自分の好みとは随分と離れたコードを書くことも多いのだろうな と思ったから、敢えてシンプルなものを載せました。そこで質問 なのですが、Perl の使い手にとって、オブジェクト指向とはどう いう位置付けのものなのですか。
248 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 13:01:24 ] >>218 Pythonだと if a == b: print '1' print '2' Perlだと if($a == $b){ print '1'; } print '2'; この例じゃ、解りやすさに差があるようには思えん。 {}言語が好きか、 言語が好きか、好みの問題に過ぎないと思う。
249 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 13:15:13 ] perlってa,bって予約語だったっけ
250 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 17:57:38 ] >>247 OOPする時は、サブルーチンが重複するかもしれない、 大量のコードを利用する場合に使います。 変数の競合を防ぐには局所変数で対応できますが、 関数の競合を防ぐにはOOPでなければ出来ませんから。 サブルーチン競合を心配するようなプログラムになると、 自然と使うようになります。 >>248 perlの場合はコンパイルエラーを吐いてくれますが、 pythonの場合はインデントミスが生じた場合、 エラーを吐いてくれないので、どこでエラーが生じるのかの見極めが難しいのです。
251 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 18:00:23 ] エラーを吐いてくれないと、どこでミスしているのかが分からず、 プログラムが誤動作してしまい、バグ発見に時間が掛かります。
252 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 18:21:15 ] OOPは自分で作ったサブルーチンを、後で再利用したい場合にも使います。 自分は利用できそうなサブルーチンをまとめてあります。 package名を付けて、 そこにサブルーチン名を貼り付けるだけで、 簡単に出来ますし、関数の競合の心配がなくなります。
253 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 21:11:33 ] >>251 その点に関しては、perlの方がエラー出さなくて分かりにくいだろ。 未使用の変数を参照してもOKだし、さらに勝手に0や空文字と解釈してくれる。 あと、 if($x = 1){print "OK"} とかもエラーにならない。
254 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 21:29:59 ] >>253 Perlにはwaningsと言うモジュールがあり、 if($x=1){print "OK"} と書くと、 Found =in conditional, Should be == at Test.pl line 2 などと、 ==にしなさいと警告してくれます。 未使用の変数の参照に関しても警告してくれます。
255 名前:デフォルトの名無しさん [2008/04/23(水) 21:31:00 ] >>218 end = 1 if a == b : print '1' print '2' end でOK
256 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 21:35:34 ] >>254 だったら最初からやれ、って話だよ
257 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 21:45:23 ] >>255 それなら if a == b : print '1' #end print '2' こっちのほうがいいのでは? >>256 もう一つpythonが自分に向いてない理由は、 コピーペーストがやりにくいと言う点です。 自分は、怠け者なので、 コードを書くよりも、昔書いたコードをコピーペーストするほうが多いのですが、 Pythonだと、インデントに意味を持っているので、 コピーペーストするといちいちインデントを揃えるのが面倒なのです。
258 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 21:46:32 ] 上の話を見てると、PerlのOOPって大したことないのか?と思ってしまうが
259 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 21:46:37 ] 257はインデントを揃えたつもりでしたが、ミスしました・・ if a == b : print '1' #end print '2'
260 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 21:56:08 ] >>258 PerlのOOPはクラスのインスタンス化、操作、破棄はもちろん 継承、多重継承、デザインパターンで言うとsingleton やAUTOLOADを使ったDecoraterなど ほとんどの機能はありますよ。
261 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 22:03:36 ] blessって何だ?
262 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 22:09:12 ] オブジェクトを結びつける
263 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 22:42:31 ] Perlに今更持ち上げるだけの価値があるとは思えない 何かにつけてややこしいし
264 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 22:46:00 ] 自分も新しい言語模索してるんですが、 なかなか、いい言語が無くて・・・ 何か無いですかね・・・
265 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 22:56:14 ] 自演までして「出来る人」アピールしても、言ってることがすごく浅い 比較になってない比較で啓蒙するくらいperl大好きみたいだから、perlだけやってればいいよ
266 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 22:58:32 ] >>265 自演はしてませんよ。 そう言われるのなら、 あなたが具体的にレベルの高い議論してはどうでしょう?
267 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:07:14 ] >>260 ああ、一通りあるのね あんたが「PerlでのOOP導入の利点とは、関数名の衝突を避けられること」 なんて微妙なことを書いてるもんだから
268 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:08:06 ] サイタマンの過去の発言からして 自演は良くあること
269 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 23:15:17 ] >>267 自分がOOPを使う一番のメリットは、 関数の衝突を避ける事がメインですね。 動的束縛とポリモフィズムの利用や デザインパターンの技法を使って オブジェクトを細かくコマンド化したり 細分化する事には余りメリットを感じません。
270 名前:サイタマン ◆mYN3wsz7vE [2008/04/23(水) 23:17:52 ] まあ、業務用の同じようなものばかり作ってる人にはデザインパターンは 効果的なんでしょうが。。。
271 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:19:44 ] サイタマンに同調する気はないが、 デザインパターン本を見てまねするのは末期な感じがする。 さすがにそこまでやっちゃうと考える力、判断する力がつかなくなるw
272 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:24:07 ] デザインパターン的発想ができるようになるってのが重要なわけだぁね。
273 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:30:12 ] あくまで参考として見ておいたほうがよくて、 やはり自分で設計できるようにしたほうがいいと思うよ。 大規模開発などに携わる場合は、必要な知識かもしれないけど 個人でやる場合は無視したほうがいい。
274 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:33:55 ] そうかねえ 例えば有名なGoFの23パターンだが、あれを全部とは言わずとも 大体を自力で発見できるかと言われると・・・・・・いくつか自信がない 何よりもまず、有名な手法に名前がつけられているって事が重要 名前さえあれば議論のまな板に乗せられる。伝達できる
275 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:54:10 ] >>250 いや、やはり同じこと。 if($a == $b){ print '1'; } print '2'; を間違えて、 if($a == $b){ print '1'; print '2'; } と書いた場合、Perlのコンパイラはエラーを吐かないだろう。
276 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:56:03 ] このサイタマンとやらがデザインパターン知ってたら 「ほら、Perlだったらこのパターン作るの簡単ですよ」 みたいな事ばっかり言うんだろうな・・
277 名前:サイタマン ◆mYN3wsz7vE [2008/04/24(木) 00:53:00 ] >>275 その構文と比較するのはちょっと違います。 何故かと言うと、}の位置で一目で制御文の終了位置が分かるからです。 比較してpytyonではインデントしかありません。 >>276 デザインパターンくらい知ってますが 意味が無いので、使わないだけです。
278 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:54:33 ] つーか、Rubyじゃ駄目なのか? perlより格段にマシだと思うんだが
279 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:58:30 ] >>277 思考の硬直化が見られるな。 デザパタに固執する事とデザパタを無碍にする事は どちらも似たようなレベル。
280 名前:サイタマン ◆mYN3wsz7vE [2008/04/24(木) 00:58:41 ] >>278 Rubyの構文自体に不満は無いですが、 遅すぎるのと、まだ枯れていないので、 バグがあるのではないかと言う事、 Perlでは検索して やりたい事に合うモジュールを 直感的に見つけるられるのですが、 そのモジュールが少ない事がありますね。 Singleton Factory Template 辺りは良く使われてます。 Sladeにも使われてます。
281 名前:サイタマン ◆mYN3wsz7vE [2008/04/24(木) 01:21:51 ] 一応、Templateパターンもどきで書いてみました。 use Test; my $obj = Test->new(); my $d=$obj->call(1,2); #結果3 package Test; sub new { my $pkg = shift; bless {},$pkg; } sub call{ my $self = shift; my($a,$b)=@_; my $c=$self->do_task($a,$b); $self->do_print($c); } sub do_task{ my $self = shift; my($a,$b)=@_; my $c=$a+$b; return $c; } sub do_print{ my $self = shift; my($a)=@_; print $a; } 1;
282 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 01:33:53 ] $aとか$bとか使う時点でもうダメだな。