【ビギナ】初心者が習うべき言語は? part6【必読】
494 :
デフォルトの名無しさん :
04/10/17 00:19:57 Rubyist Magazineの
http://jp.rubyist.net/magazine/?0002-WCNewsPaper#l7 を読んで、
「オブジェクト指向言語ってすごく不自然なプログラミングをさせるんだな。
こんなの初心者に向いてるか?」
と思った。オブジェクト指向を勧める人の意見を聞いてみたい。
題材は、七並べみたいなもので、
二つのカードが隣り合わせに置けるかどうか判定する、というもの。
普通は(OOPに染まってない初心者がいれば意見歓迎)
「トランプは…数字のカードとジョーカーがあるんだよな」
と考えるのではないかと思うのだけど、筆者は、
トランプの数字カードをCardクラス(基底クラス)にして、
そのメソッドとして数字カード用の判定する関数を実装し、
その上で、
Jokerを特異メソッド(Ruby)か継承(Java)でそのメソッドをオーバーライド
することで表現してる。
疑問:
なんでいわゆる「トランプ」そのものじゃなくて
「七並べ用のカード」なんてものを定義しようと思うんだろう?
それに、他のゲームに流用できなくなってしまってる。
Jokerが数字カードの一種っておかしくない?
トランプには数字カード*と*Jokerとがあるんだと思うんだけど。
これがデータ型を定義できる関数型言語一つのHaskellで書いたもの。 短いし、Cardは流用可能だし、はるかに自然だと思う。 (念のため。別にHaskellそのものを初心者に勧めろといいたいわけではありません。) -- トランプには 数字カード(Card Suit Number) と Joker がある。 data Card = Card Suit Number | Joker deriving (Eq, Show) suit (Card s _) = s; number (Card _ n) = n -- data Card = Card {suit :: Suit, number :: Number} | Joker -- と書いてもいい -- スートにはスペードと… data Suit = Spade | Heart | Diamond | Club deriving (Eq, Show) type Number = Int -- 続く
-- c `can_be_next_to` card :カードcardのとなりにカードcがおけるか。 can_be_next_to c@(Card s n) card = (s == suit card) && ( number c == number card + 1 || number c == number card - 1 ) can_be_next_to Joker _ = True bafuda = [ Card s 7 | s <- [Spade, Heart, Diamond, Club] ] tefuda = [ Card Club 8, c1, c2, Joker ] [c1, c2] = [ Card Club 1, Card Club 2 ] ok_cards = [ c | c <- tefuda, or [c `can_be_next_to` b | b <- bafuda] ] main = do print $ c2 `can_be_next_to` c1 -- True -- ... 略 putStrLn $ "You have " ++ show (length ok_cards) ++ " playable cards." -- 終わり
名前いれわすれたので。
簡単なことをわざと分かりにくく書いてるような文章でつ
まず、それは初心者が最初にやるというコードじゃない 次にこのソースのみを見て全てのオブジェクト指向批判するのは筋違い あなたがオブジェクト指向に精通していて批判するならまだしもね ということであなたはただ関数型言語マンセーオブジェクト指向糞と言いたいだけの 釣り馬鹿関数型言語信者にしか私は見えません
これはオブジェクト指向うんぬんじゃなくてコーディングセンスの問題だな
>>498 すみません。
>>499 では、あのコードはオブジェクト指向に精通しているひと(またはあなた)
からみてどうなのですか?
全く不自然だと思わないとか、
経験者がわざわざそうするだけの理由がちゃんとあるとか、
それともこれは筆者が「オブジェクト指向糞」な例を上げてしまったとか?
こっちが釣られているような気もしますが…
ooがどうのこうとか言う以前のような気がするんだが
>>501 だからなこのコードの批判とオブジェクト指向の批判を一緒にするなと言っているわけだ
それから最初は初心者にとってうんぬん言っておいて
Haskellの場合はそれを切るって時点で既に話しているレイヤーが違うと思うんだが
早い話言いたい事にまとまりがない
最初の文で無理矢理初心者と結びつけてその後はただの言語批判に繋がっているだけ
わかったか?
多分、
>>494 が言いたいことは、「オブジェクト(Card)の中に、何故アルゴリ
ズム(置けるかどうか)を書いているの?」ということ、では?
本来は、アルゴリズム用のクラス (== 七並べ) を Card クラスの外部に持って
きて、他のゲームの場合にはアルゴリズム用のクラスを入れ替えれば自然で
しょ? Card クラスには、Card としての機能だけを定義して。
元々のサンプルは、説明の都合上、ああなったのでは (と思いたい)。
Haskell は知らんけど、CLOS なんかでもクラスの外にメソッド書くからねぇ...
今回の例では都合よかったかも。
rubyスレにしてはまともな話してると思ったら違った(藁
これって、「特異メソッド」の説明のためのコードでしょ?
>>495-496 はスレ違いだし的はずれ
>>503 > Haskellの場合はそれを切るって時点で既に話しているレイヤーが違うと思うんだが、
そうではない。
Haskellには、ライブラリの少なさや、資料の少なさなどの点が
初心者にむいてないという欠点があるのだ。
ちょっとは内容のあることを話せ。
ホントだ得意メソッドの例題じゃんw > 経験者がわざわざそうするだけの理由がちゃんとあるとか、 なので理由はそれだな
結局495-496は何がしたいんだ?
>>504 > 多分、
>>494 が言いたいことは、「オブジェクト(Card)の中に、何故アルゴリ
これは一番大きいです。
> 本来は、アルゴリズム用のクラス (== 七並べ) を Card クラスの外部に持って
...
Cardクラスの初期化の時にアルゴリズムを渡すような感じでしょうか。
結局特異メソッドを自慢するには説得力がない例だったということなんですかね。
Jokerはどう定義しますか?
>>507 ならあんなこと書かなければいいだろ
ここは初心者に薦める言語のスレだぞ?
お前の虚栄心を満たすスレじゃないんだが
Ruby最高!Haskel?なにそれ?
> 結局特異メソッドを自慢するには説得力がない例だったということなんですかね。 こいつはなんでこんなにOOを貶したいんだw 知能指数低そうだなぁ つーか全然初心者に関係ないしこの流れってタダの最強スレだろw
わざわざ最初にageてるし暇だからただ荒らしに来たアフォでしょ
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Haskell
>>513 どうよんだらそうなるのかな。
> 結局特異メソッドを自慢するには説得力がない例だったということなんですかね。
OOそのものがいいとも悪いとも言ってないでしょ。
そのプログラミング例が悪いだけで、もっとうまく(OOで)プログラミングする
のが普通なのかな、というコメントなんだけど。
どんなプログラムでもOOでさえあれば
常にOO最高!っていわれないと満足できないんですか?
必死だなRubyアンチ
>>516 > OOそのものがいいとも悪いとも言ってないでしょ。
> そのプログラミング例が悪いだけで、もっとうまく(OOで)プログラミングする
> のが普通なのかな、というコメントなんだけど。
そういうのはOO関連のスレでやるべき事でしょ?
OOを学んできて理解してからそう言うスレで有意義な議論でも何でもしてくださいよ
ちなみにすべてOOが良いとはこちらも言ってないけどねぇ
あなたの論調はあくまでも一つの例からOOを批判するものでしたが:-P
>>510 カードが何かをするわけではないので、カードがアルゴリズムを知らなくても
よいのでは? アルゴリズムクラスがその場を支配して、カードクラスは自分の
情報を渡す、みたいな感じで。
だから、カードクラスにアルゴリズムクラスのインスタンスを渡す必要はない
し、Joker も何も考えずに、カードクラスの 1インスタンスで良いと思います
が。アルゴリズム (== ゲーム) 的に Joker が特別な意味を持つのであって、
カードとしての Joker は、「Joker ですよ」という情報を持っていればよいの
ではないかと。
> 結局特異メソッドを自慢するには説得力がない例だったということなんですかね。
う〜ん、微妙... サンプルっていうのは小さくないと、焦点がずれるし、小さ
くするために機能を削ると、一般論から外れてしまうこともあるし...
焦点 (特異メソッド) を定めるために、犠牲になった部分もあったと好意的に
考えるとよいのでは。
>>518 > あなたの論調はあくまでも一つの例からOOを批判するものでしたが:-P
そりゃ問題提起だからね。
あなたみたいなヒステリックなのと最強厨が湧いてくるとは思ってなかったよ。
不毛な反論が多いなぁ...
言語を選択するのに、オブジェクト指向ってどうなの? っていうのもあるだろ
うし、
>>494 の疑問だって自然だと思うが。サンプル自体が一般論からすると
おかしいし。大体、OO 関連のスレでやるほどの深い話とも思えんが。
多分、Haskel って CLOS みたいにメソッドを外部に書くんだろうから、たまた
ま、アルゴリズムを外部に持ってくるべき、という考えに一致して自然に見え
たんでしょう。知らない言語でも、あれぐらいは読めると思うんだが...
>>519 なるほど。
OOPだから"物"のほうに仕事をさせるのが一般論というわけでもないんですね。
ただ、アルゴリズムをクラスにするというのがちょっとわかりません。
メソッドの名前もcan_be_next_toではまずいだろうし、
クラスにできるほど違うゲームに共通する点がありますかね?
モジュールで十分なような。なんでもオブジェクトという言語の制限(?)
でクラスにするということならそれでいいです。
>>521 > 多分、Haskel って CLOS みたいにメソッドを外部に書くんだろうから、たまた
そうですね。内部に持ってくるべきときにはそれなりの技法がありますが、
外部にあるというのが基本だと思います。
>>522 > ただ、アルゴリズムをクラスにするというのがちょっとわかりません。
デザパタでもまず読んだら?
>>522 今回の例が単純なので、カードクラスは何もすることがありませんが、画面に
描画する方法なんかは (アルゴリズムというよりは) カードクラス (物) にや
らせたりするのでは?
# テキストで出力だとか、プリンタにとか色々に対応させるとなると、カード
# ベタベタでは駄目でしょうが。
> ただ、アルゴリズムをクラスにするというのがちょっとわかりません。
> メソッドの名前もcan_be_next_toではまずいだろうし、
> クラスにできるほど違うゲームに共通する点がありますかね?
カードの管理とか、共通処理は結構あると思います。また、モジュールが何を
指しているか分かりませんが、ゲームクラスとアルゴリズムクラスがあって、
アルゴリズムクラスを多態させると、サクっと別のゲームになったりと
か... の時に、アルゴリズムクラスにしておけば、状態とかもアルゴリズム毎
に持てるし。
後半、説得力ないですね... すいません。
各カードゲーム毎の判定をするジャッジクラスでも作ってそこにアルゴリズム置けばいいね マネークラスに対するバンククラス(交換レートを知っている)みたいな感じで 今回のは特異メソッドの例だからこのぐらいで良いんじゃないかな 汎用性が必要になったらメソッド抽出して別のクラス作れば(リファクタリング)すればいいし
> ただ、アルゴリズムをクラスにするというのがちょっとわかりません。 アルゴリズムをサブルーチンにまとめるのもわからなそうだな。
527 :
Ruby! :04/10/17 02:12:00
ばああああああああああああああああああああああああああああああああああああああか
>OOPだから"物"のほうに仕事をさせるのが一般論というわけでもないんですね。 ここら辺がもうイタい
イタいというほうがイタい
Rubyは最高言語
>>494 初心者には向かないよ。もちろん。
モデリングする際の共通するテクニックや慣習はあっても、
モデルの把握の仕方は人それぞれ。
それってどの言語でも同じだろ
>>524 描画はたしかにそうですね。
出力切替えはAbstract Factoryとか使うのかな。
OOPはそのへんのテクニックが一般によく知られているのが
いいですね。
# こういうのはHaskellではまだかなりAdvancedなテクニックと
# 位置づけられていると思います
モジュールは、静的な関数やらデータ定義のあつまりで、要するに、
ゲームごとにかなりコードが違うんじゃないかと思っての発言です。
この辺りはFPの自然な発想とOOPの自然な発想の違いのように思います。
FPでもやる気になればできるけれど、思考のスタート地点が違います。
汎化はリファクタリングのときに考えるというか。
FPではいまだにリストがたくさんつかわれます。インターフェイス
だけ定義されたリストを使うほうがいいのでしょうが…
>>525 judge.playable(card)
judge.point() -- ゲーム終了時
とかいうようなのは共通にできそうですね。
# 大昔こういう一般化を素人考えでやってたら、
# 楽しかったのだけどクラスがどんどんstubコードとテンプレートの
# 山になってしまった想い出が:-)
# デザパタちゃんと読んで経験積んだらできるんでしょうね。
> 今回のは特異メソッドの例だからこのぐらいで良いんじゃないかな
> 汎用性が必要になったらメソッド抽出して別のクラス作れば(リファクタリング)すればいいし
なるほど!プロトタイピングの時に適当に特異メソッドを追加すれば
動かせるというのは便利そうです。
もう寝てしまったと思いますが、504,525さん、ありがとうございます。
> もう寝てしまったと思いますが、504,525さん、ありがとうございます。 もうおやすみになったと思いますが、504,525さん、ありがとうございます。 に訂正:-)
537 :
デフォルトの名無しさん :04/10/17 15:23:15
Rubyで卒論かいてる俺は厨ですか
538 :
あぼ ◆AvOCaD.U/o :04/10/17 15:34:58
最初Cやって、つぎJAVAやって いまVBで遊んでます 参考になりましたか?^^
539 :
デフォルトの名無しさん :04/10/17 15:59:05
質問なんだがアドホックな実装ってどういう意味?
>>539 ad-hoc=そのための、その場限りの
抽象化できる場面でそれをせずに目的のためだけの実装をすること。
494 の件だと、七並べのロジックを分離せずに Card クラスに実装しているのが
ad-hoc だといえる。
設計がきれいなことにこしたことはないんだけど、
・今それは必要なのか
・その作業のコストはどのくらいかかるのか
という視点もある。
「要求されている機能が実現できているか」 が
ユーザから見ればプログラムの価値として至上命題なので、
分離したところで再利用する予定はないし、
きれいな設計を考えるのに時間がかかるのだとすれば、
ad-hoc にするかどうかはトレードオフの問題になる。
みんなでad-hocでない七並べの実装を考えてみるか
shimura = Human.new def shimura.アイーン() print "アイーン" end shimura.アイーン #継承じゃ大げさだけど、他とは明確に違いがあるオブジェクトってあるじゃん
544 :
デフォルトの名無しさん :04/10/17 17:21:59
>>541 詳しい説明ども
XPなどのアジャイル的観点から見ると、必ずしも悪じゃないわけか
しかしあとでリファクタリングすれば・・・ってのが免罪符になるのも問題あるようにも
確かにアドホックな実装は速いしTDD見てみてもまず定数でもぶっ込んで
動かすってのがあるから最終形がアドホックで無ければそれなりに良いのか
・・・わからん
いまいちアジャイルって馴染めないんだよなぁ
これは初心者にとって良いものなんだろうか
最初は苦労してもある程度先読み設計してデザイン能力というかモデリング能力を付ける
というのが良いような気もするんだが
それにしてもWeb系のUnitTestってやるの辛いな
545 :
デフォルトの名無しさん :04/10/17 17:24:41
>>543 プロトタイプベースはそう言うの楽で良いよね
Javaじゃそうはいかないし
>>545 そこでDIコンテナですよ。
オブジェクトにインターフェイス追加するとかができる。
547 :
デフォルトの名無しさん :04/10/17 18:28:25
なんかわざわざ被せるのがマンドクセー 動的分類も実現出来そうにないし(゚听)イラネ
>547 動的分類ってjavaで言うと、 foo instanceOf Array とかのこと? 特異クラスを検出するならObject::respond_to?(name) だね obj = [1,2,3,4] # Hash, String, IO のような繰り返し処理のありそうなオブジェクト if obj.respond_to?("each") obj.each do |e| print e end end
end end end end end end end end end end end end end end end end end end end end end end end end end end end end end end end
おれRubyのソースって読んだ事ないんだよ。 RubyでかいたHuffman木のソースかいてくんない?
552 :
デフォルトの名無しさん :04/10/19 02:50:32
553 :
デフォルトの名無しさん :04/10/19 02:56:00
イェアRubyyyyyyyyyyyyyyyyyy!!!!!!!!!
ネトゲとかをチートするには言語は何を勉強すればいんですか?
Ruby!!!!!!!!!!
アセンブラ
>>554 そうだね、アセンブリが重要だね。
複雑なプログラムを組むのだったらC++も併用すると便利。
ってか、なんでRuby厨が沸いてるんだ?
HSP 「21世紀にこんな言語はないだろう」 Perl 「Perlユーザは臭い」 Java 「Javaなんてうんこ」 C++ 「C++なぞ問題外.^^;;;」 Ruby 「Rubyこそ最高言語」 by Rubyユーザ一同
Rubyを超える言語が今後出現することは無い。
HSP 「特技は厨房召集とありますが?」 Perl 「それにサーバーに負荷を加えるのはモラルがないですよね。」 Java 「いや、ぬるぽとかそういう問題じゃなくてですね。」 C++ 「いいですよ、使ってください。C++とやらを。それで満足したら帰ってください →運がよかったな。きょうはコンパイラがないみたいだ」 Ruby 「帰れよ」 by 折れれ知ってる
Huffman木のソースまだ? それともRubyはHuffman木一つかけない、 でき損ない言語なの?
563 :
デフォルトの名無しさん :04/10/20 00:50:10
>>562 オレはRuby詳しく知らないけどHuffmanと言語の力になんの関係があるの?
まずそれを詳しく書かないと意味ないと思うぞ
この言語だとこういう書き方が出来、これほどパワフルだとか(クロージャを使った実装例など)
まずそれを示してみたらどう?
しかし、Huffmanは圧縮以外に使うイメージがないなぁ
>>562 世界が思い通りにいかないことに気が付いてだだこねてる4歳児みたいだね。
565 :
デフォルトの名無しさん :04/10/20 01:31:16
Rubyを愛する人は
心強気人
>>563-564 ばかだなぁRubyの主なユーザーは代表的なアルゴリズムすら
理解できない、池沼の集団だからな。
それを証明するために問題をだしたんだよ。
現にそれは証明されたし。プ
>>568 証明って言葉がお気に入りの小学4年生みたいですね。
Ruby は楽しいけど 格好良い構文を組みたてる事だけ考えてることに気付くと鬱になるな
def my_loop(range,depth,args=[],&proc) if depth == 0 proc.call(*args) else for x in range my_loop(range,depth - 1,args + [x],&proc) end end end my_loop(0..2,3){|x,y,z| p [x,y,z] }
>>568 前から疑問だったんだが、池沼って何の事?
池沼=ちしょう=知障=知的障碍者
>>573 おぉサンクス!
ずっと「いけぬま」って読んでたわ。誰かの名字だと思ってたよ。
↓tree処理の出来ないるびきちの意見
>>562 Ruby で書く必要性がないです。
必要なら C で書いて拡張モジュールにしますが何か。
Rubyってちょっと凝った処理しようとするとCに頼らなきゃいけいんだ・・・ Rubyユーザーってかわいそう・・・
578 :
デフォルトの名無しさん :04/10/20 23:43:38
ばーぁ
糞perlerを殺せ
581 :
デフォルトの名無しさん :04/10/21 09:06:09
HSP
Ruby
(゚∀゚)ラヴィ
584 :
デフォルトの名無しさん :04/10/21 14:04:11
とりあえず、Cをやっておけばいいですかね?
585 :
デフォルトの名無しさん :04/10/21 15:18:09
とりあえず、Rubyをやっておけばいいですかね?
>>574 今度から最低限、漢和・国語辞典で調べる習慣をつけれ。
lisp
588 :
本田 :04/10/21 17:13:17
VBA with MICROSOFT EXCEL
日本語
Rubyは(初心者向けの)チュートリアル等の情報や書籍が少ない。 C、C++は言語仕様が複雑怪奇で初心者には辛すぎる。 よって、Javaが正解。
まだチュートリアルが少ないとかデマを飛ばす馬鹿がいるのか。 死ね
>>592 ほほう
じゃあプログラミングも英語もできない者のためのチュートリアルを
教えてもらおうか
594 :
デフォルトの名無しさん :04/10/21 23:23:54
Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ Javaなんてうんこ
とりあえずHSPなりDelphiなり何でもいいからやってみて ダメだったら、とりあえずは他のに移ってやってみればよし。 とDelphiに挫折した俺がほざいて見る
596 :
入門ならRubyだろ。 :04/10/22 00:17:38
考え無しに取りあえず何かやってみろなんて奴の言うことを誰が信じるのだろう。 ましてDelphiで挫折?ハァ?
考え無しになんでも触ってみればいい、と私もそう思うよ。 確かに一見無駄に思えるかもしれないが、その言語のどこが悪いのか理解できる ようになる。 これは素晴らしい経験だよ。 ある言語でできなかった事が他の言語でできるようになる、 ということを知ることで、 新しく知った機能の利点を客観的に分析できるようになる。 そうすると今度はその利点を今まで使っていた言語でのコードに なんとか採り入れられないかと考えることができる。 例えば、Cにはクラスという概念はなかったけれど、 C++を知ったらクラスという概念が理解できた。 今度はC++のクラスを利用したものに近いスタイルをCに採り入れて、 より保守性の高いコードに仕上げる事ができた、 という事が起こり得るかもしれない。 もちろん、全ての機能を実現できる、もしくはすべきとは限らない。
599 :
デフォルトの名無しさん :04/10/22 03:55:19
600 :
デフォルトの名無しさん :04/10/22 08:38:53
ある程度ネット経験があってWindows弄れるようになると、色々分かった気になってしまう。 プログラム言語って宣言して命令書けばいいんだろうなぁって気がする。 あとは書き方と命令を覚えるだけだ。たぶん。そうだよね。
>>600 ならば Prolog あたりでも触っておけ。
目が覚める。
>>599 初心者の話なのにトップクラスのプログラマーの集め方の話を持ち出すのはこれいかに?
まずHSPでプログラムに慣れ、いくつかのソフトウェアを作ってみる。 それをマスターしてからDelphiに移るといいかも。
>>603 HSPは止めとけ。厨房製造言語だぞ。
だったら直接Delphi使え。
…Delphiが初心者に良い言語だとは少しも思わんが。
Cをやっておけって。後悔だけはない。 できるかどうかはシラネ。てめーでがんばれや
厨房が作った言語など使えるか! 厨房は帰れ! ム板からでていけ!
Cなんか、わざわざ最初に勉強するもんじゃねーよ。
Cを面倒くさいなんて思っている状態でまともなプログラムを組めるのか?
C からなんていう体育会系なスパルタ教育をせずとも、 SqueakToys あたりで遊ぶのから始めればいいじゃん。
>>608 めんどくさいというより、勉強しにくい。
体育会系でもなんでもないって… 言語を覚えるくらい大した事はないし、 それにアルゴリズムを教えるのならCのようなものがちょうど良い。
Cは設計として古いので、本質的じゃないことをいろいろ悩まないといけないからアルゴリズムの勉強にも不適。
>>613 Cが勉強しにくいのは明らかだと思うが。
とくに環境の準備。
じゃ普通のPascal
なんかね、「ピッチャーは完投連投あたりまえ、継投中5日なんて甘やかしすぎ」みたいな時代錯誤な意見に感じるんだよね。 プログラム言語だけ勉強すればシステムが組める時代ではないから。
>>617 Cにしろ、Pascalにしろ、考えたアルゴリズムを言語としてコーディングする
手間はそれほどかからないし、プログラミング環境を揃えるにしてもCほど普及して
いる言語は他にはないから先人の記録が山ほどある。
一番手間がかかるのはアルゴリズムを考えることだよ。
だからどの言語が勉強しやすいとかそういうことを言っている場合じゃないんだ。
結局、Cに代表される多くの代入型言語をみても文法的にも似たり寄ったりなので、
アルゴリズムを記述するのに、どの言語も些細な違いしかない。
甘やかしすぎているというのは、例えば初心者が育たないのを言語のせいにするか
のように聞こえるからだ。
難しいかどうかなんて人それぞれ。 事実としてCは普及してる。
perlなんかやると一生劣等感を背負って生きてゆくことになるからやめとけ。 Rubyの方が何百倍も良い。
>>618 Cは普及しているが、もう新規システムをCで組むということはない。
組み込み・制御・OSといった、一部の分野で、多くを占めているわけでもない。
アルゴリズムとかポインタとかの勉強を最初にしてもしかたないし、資料も古いものが多いし、今必要とされているものに関して言えば、Cの資料はほとんどみつからなかったりする。
それにその「先人の記録」のおかげで、アルゴリズムを手組みする機会は減っているのだから。
システムを組むのに、プログラム言語の知識というのは重要な部分ではあるけど、その比率はさがってるんだよ。
いま一番手間がかかるのは、アルゴリズムを組むことではなくて、システム構造を考えることやスキーマ構造を考えることだ。
で、そういった部分を勉強するのにCは向いていないし、勉強しようとすれば手間がかかる。
Cが難しいとか言ってるわけではなくて、Cの特徴的な部分で得られる知識の重要度がさがっているということ。
自分が得てきた知識の価値が高いと思いつづけたい気持ちはわかるが。
先生Rubyの入ってるシステムはすくないです。
窓から投げ捨てろ
>>621 仕事の部類によって大きく違うから、君がいうことが正しいとは言い切れない。
>>621 企業でのソフトウェア開発に偏った話だ。
>>624 もちろんそうだけども、「ポインタやアルゴリズムが大切」ということの方が正しいと言い切れない場合が多い。
>>625 C言語のほうが、すでに大部分をしめていないものに偏ってると思うが。
学ぶのに何年もかかるような物じゃないし。
それならあとまわしにして、C#なりJavaなりPHPなり、とりあえず環境や資料が整いやすくて、目につくものを気軽に作れる流行りものから始めればいい。
いや、私は別にCを推している訳ではないけれど、 研究で何か数学的なモデルをアルゴリズムとして記述したりする場合 などを想定している。
それならなおさら、ポインタの勉強とかは必要ないんじゃないの? 入出力のない数値演算の場合だとJavaの方がCよりも処理が速いこともあるわけだし。
あ、Cでの環境がすでに整えてある、とか、教育の体制があるとか、Cならまわりにわかる人がいるとか、特別な条件があるなら、いくらでもC使って。
初心者が最初に習う言語としてCを勧めない理由はここに書いたとおりなんだけど、Cを勧めている人が感じている別の問題が現実的にあるのは確か。 たとえばソートやリスト、検索木なんかの基本的なアルゴリズムはすでにライブラリがあって、こういった処理を書く機会は減っている。 描画系やGUI、入力管理の処理もOSやVMが賄っているので、組む必要がない。 アドレス処理の必要がない言語が主流になっていて、メモリ管理のプログラムを書く機会もなくなっている。 でも、こういった処理というのは、プログラムの地力をつけるのには非常に良い素材なので、これらを書く機会がないということは、プログラムの地力をつける機会もないということになる。 実際には処理系や開発環境のサポートで、ほとんどの場合はこういった地力がなくてもプログラムが組めるようになっているので問題がない。 ただ、こういった地力がある技術者がいなくなるというのは問題。 C#やJava、PHPでひと通り理解したあとで、「じゃあ地力をつけるためにCを」ってやるのが理想的なんだけども現実的には難しいしね。 入り口としてCを勧めるわけにもいかないし。まわり道が多くてモチベーションをもち続けづらいからね。その部分でプログラム自体をあきらめられたら元も子もない。 最初は気軽に楽しく始めて、プログラムに対する興味をもってもらうことが大切で。 最初からプログラムに対する興味を、なぜかすごくもってる人は、Cから、なんならアセンブラからやってもらっていいと思うけど。
634 :
デフォルトの名無しさん :04/10/23 07:02:06
Rubyこそ最終解
>>633 は言語を語る前に、適当なところで文章を改行することを覚えた方がいいな。
読みずらいよ。
> C#やJava、PHPでひと通り理解したあとで、 会社入ってから、Web 系の仕事で始めて言語覚えたクチでないの? そりゃぁ、 あんたの世界では C 言語は必要ないでしょうけど。妄想で語ってないか?
>>635 ず->づは突っ込んだ方が良いのか?
大事なのは言語の言葉面ではなくアルゴリズムであり計算機科学基礎である。
言語にこだわってる時点で素人。
>>636 その辺の最高級言語が使えてCが使えない理由が分からない。
何がネック?ポインタ??でも参照があるしなぁ・・・。
まぁ、UNIXな奴でなければ・・・ってWeb系って少なからずUNIXだよなぁ・・・あれれ?
>>621 思うに、Cは文字列触るにも何するにもポインタが避けられない。
C++ならStringクラスも落ちてるし、
++で1足して、sprintfで書式整形してみたいなプログラムの基本に集中できるんじゃなかろうか?
Perlだと正規表現も学べるんだけど、連想配列とか型の扱いとかルーズだから後で苦労すると思う。
まぁJAVAでも良いけどね。
>>633 そんな初期に考え出されたアルゴリズムで事足りるような仕事しかしていないから
そういうことを言うんだよ。
ライブラリに存在しないアルゴリズムなんていくらでもある。
644 :
デフォルトの名無しさん :04/10/23 13:13:13
メモリ管理なんてウンコなことやらされるのもいやだし 文字列を扱う型が無くて、charの配列を使うようなアホ仕様も駄目すぎ 本質と関係のない事で時間を割く言語を使うより、PythonやRubyのような LLを使った方が断然勉強になる
俺みたいに高級言語だけやってると、いつまでたっても低級言語に対する劣等感が抜けない。 低級言語使えるやつは高級言語くらい当たりまえに使えるけど、 高級言語しかやってないとなかなか低級言語は使えるようにならない。 アセンブラなんてそうそう触るものでもないし役にも立たないけど、 いざデバッグが必要になったときにこれを知ってるか知ってないかは大きな差になるし。 アセンブラどころかCすら理解できないと馬鹿にされるのは必至。
Cは英語みたいなもの?
ラテン語みたいなもの?
649 :
デフォルトの名無しさん :04/10/23 14:38:11
RUBYでIPCやスレッドの勉強はできますか?
>>644 メモリ管理はウンコだけど、
仕事にはウンコを綺麗に片付けるような部分も含まれる時がある
そこでおれ C 知らないからできません、と言うのは素人
ベテランは汚ない言語とケチつけながらサラリと処理してのける
651 :
デフォルトの名無しさん :04/10/23 15:44:56
>>650 だからそれって職業プログラマとして必要な事でしょ?
それなら C/C++ と Java 業務アプリなら今でも VB
プログラムの本質的な部分には関係ないよ
海外で大学の教育用としてPythonやSchemeが採用される意味はそこにある
しかしCを全く知らないプログラマは駄目だろう。 どんな言語を使おうと本当にパフォーマンスが必要な時には ハードウェアを意識してCのように書くことになる。 Cは言語仕様がシンプルで機能が少ない分すぐに覚えられるところが初心者向き。 実用的な物が書きたくなってから他の言語に移ればいい。
653 :
デフォルトの名無しさん :04/10/23 16:41:47
>>652 やりたい事をやろうとすると途端にシンプルじゃなくなるけど
文字列の連結さえ関数を使わなきゃならない、メモリを確保しなきゃならない
そんな言語は勧められないよ
それに比べてLLは非常に取っつきやすい
名前の通り、仕様もシンプル
手続き型で入門をし、使い込めば最先端のOOPLを実施する事も出来る
654 :
デフォルトの名無しさん :04/10/23 16:43:45
OOPLじゃ無くてOOPだったな あと、LLやった後でCを理解するのは難しくないでしょ 手間がかかり面倒なだけで
>>653 君って文字列の連結やメモリ確保の仕方までその都度調べないとCでまともに
プログラミングできなさそうな気がする。
656 :
デフォルトの名無しさん :04/10/23 17:15:31
unix-cで仕事をしていた人間なんですがw
657 :
Ruby!!!!!!!!!!!! :04/10/23 17:27:42
unix-cってなんですか(pu
>>656 なるほど。
いちいち調べていたのでは大変だったのではないか?
C はプロフェッショナルが使えるべき言語ではあっても、 初心者が最初に学ぶべき言語ではない、でFA?
別に好きな言語から始めればいいじゃないか 初心者はこの言語をやれ、なんて、人に強制させられるものじゃない
プロを目指すなら、現実世界に貢献できるソフトを作るため、C++を学びなさい。 アマチュアなら、高機能なソフトを手軽に作るため、Delphiを学びなさい。 ひきこもりなら、脳内世界の満足を得るため、Javaを学びなさい。
>>663 アセンブリとハードウェアアーキテクチャ
>>663 LISP と FORTRAN から初めて、歴史上重要な言語を一通り。
学問としてなら実用ではなく基礎教養として必要でしょ?
668 :
デフォルトの名無しさん :04/10/23 22:48:10
とりあえず JAVA用に Microsoft Visual J# .NET Standard Version 2003 C++用に Microsoft Visual C++ .NET Standard Version 2003 を使ってみれということで いいんでしょうか?
java eclipseをそろえればすべてOK
670 :
デフォルトの名無しさん :04/10/23 22:53:58
なんでわざわざJ#なのか理解出来ない
Java Eclipse Ant Maven Jude竹 をまずは使うこと
672 :
デフォルトの名無しさん :04/10/23 23:00:14
674 :
デフォルトの名無しさん :04/10/23 23:26:35
>>673 お前が馬鹿なだけだろ
歴史とは関係なく各概念のもっとも優れたプログラミング言語を学び
それをもって新しい概念を作り出すべきだ
>>674 経緯は大事、結果だけではだめ。
結局捨てたはずの多くの機能を復活させたJavaを見ろ。
676 :
デフォルトの名無しさん :04/10/23 23:48:14
>>675 経緯なんて必要ない
良いものはいつでも残っているものだ
Lispなんて今でも残っていて熱狂的なファンも多いし
SchemeもMITSの教育用に採用されているだろ
で、死んだものでJavaで復活させたものってあったっけ?
オレにはSmalltalkをC++ベースで劣化コピーしたようにしか思えないけど
Smalltalk自体全然死んでないし Smalltalk Refactaring Browser なんて
最先端のリファクタリングブラウザだしなぁ
>>676 Lisp やっとくと、
どの言語の新しいアイディアも、ああ Lisp で言うあれね、みたいに思えるよな
精神的に優位に立てるってのは大きい
Smalltalk はまだ触れてないから興味はある
「学問として」というところが大事なんじゃないのか? 学問としてなら、経緯は大切だとおもうぞ。
679 :
デフォルトの名無しさん :04/10/24 00:24:53
学問としてでも覚える必要はない COBOLやAPLを覚える必要があるか? 読み物として歴史を勉強する事自体を否定する事はしないが 過去の言語を覚える必要は全くないだろう
電子立国日本程度に歴史を舐めるだけで十分だな それらの言語自体を覚える必要はないでしょ
学問の重さを分かってない奴がいるな どんな言語でも背景無しにいきなり生まれた訳じゃないぞ たしかにada をマスターしろとは言わないが、 いろいろな言語の思想はちゃんと押さえとくと、 何か新しいものに出会ったときに比較できるだろ?
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> アカデミック
たしかに、歴史を追って「マスター」する必要はないなぁ。 まあせいぜい1コマ2コマ程度で文法とかさらえば十分だね。
もういいよ。 一生奴隷プログラマな脳味噌しか持っていない奴には言っても無駄だよ。 猿に日本語を理解させようとするようなものだ。
Rubyこそ最強1
>684 反論するヤシには具体性があるがお前は奴隷しかいわないんだなw で、>675のJavaで復活させた機能ってなんだろ オレも気になるんだが
> 猿に日本語を理解させようとするようなものだ。
と、コンピュータと会話できるが人間とは会話できない
>>684 が申しております。
689 :
デフォルトの名無しさん :04/10/24 17:52:31
Python それ以外あり得ない
>>689 ガキじゃないんだから理由くらい書けば?
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Pythoooooooooooon
692 :
デフォルトの名無しさん :04/10/24 18:55:42
Python>>>>>>>>>>>>>>>>>>>>>>>>>>>>Ru・・・なんだっけ?
結局C&C++、JAVA、Perl、PHP、Python、Rubyのどれかが答えのようですね。 それでは6分の1の確率であたりを引けるってことですか。 サイコロ振って決めたらどうでしょうか? 用途(目的)によるし結果は出ないんだろうな… 初めての言語を一生使うって人もいるので、必要そうなのから覚えるべき。 で、個人的にはC&C++がおすすめかな。 色々遊べるし本いっぱいあるし、とりあえず覚えといて損はない。 次の言語に手を出す可能性が低い(あまりやる気無い)のならCで逝くべきだろう。 その他の言語の嫌いなとこ(?) JAVAは動かないOSあるから微妙。でも本や情報いっぱいいあるし覚えるの楽かも。 言語としてはマシだと思う。完全オプソ化とネイティブ化したらいいかも。 でも、使わないでも生きていけるからいらない気もする。 勉強するのなら確実にJAVAがオススメだな。 Perl、PHPは、webで掲示板とかだけ作れればいいって人用。 オススメはしない。ってか言語として見てはいけない気が… Python、Rubyって覚えて何に使えばいいの? あんまりメリットのある言語じゃない気がする。 好きな人は好きだし後から覚えましょう。
なんで次の言語に手を出す可能性が低いのに、時代遅れのCなんだ?
695 :
デフォルトの名無しさん :04/10/25 00:24:52
>>693 Cを抱えて死ぬつもりか?w
> Perl、PHPは、webで掲示板とかだけ作れればいいって人用。
これとか
> Python、Rubyって覚えて何に使えばいいの?
> あんまりメリットのある言語じゃない気がする。
> 好きな人は好きだし後から覚えましょう。
これとか頭悪すぎるw
発想の貧弱なやつらだ
>>696 そうだよね。やはり初心者は Brainfuck から始めないと。
初心者は、ファミリーベーシックでコマでもまわしてろ。
Whitespace以外ありえないだろ
,,;:-‐''"⌒ ̄";;;;;;;⌒ ̄"ヾ、 ='-‐''"/,::´ /::::::::::::::::ヽ :::`ヾ ァ'´.,:´/.::::::/i:: :::::. :; :::丶 ::::::ヾ、 / / ::/.: { l ヽ_,,,_`、 .:`、ヽ:::::::ヽ` {::/ァ' .i..:/i.::{::{.ヾ~::i:ヾ丶::::::.::::i:::::::::} 、_ノ'.{ .::::{-{‐{:;iヾ{ '"T ヾ il.|'.:::.::}::::::::ト、 l.:il :lヽi'"ヽ`、ヽ .l,'゚i!'〉リi}::i:::::l:::ノ::ハヽ、_ 麻衣子は {:| i .} } {'゚}. ┴-' i}:ノl::::}::i:::::. l`ー" お風呂入るから {、.ヾ-i ー´、 〃 ノ:::ノ::ノ::}:: ::. } ちょっと待っててね ノト " っ 、_,;-':.:'/:::::::l: : l {:l:::`i::..、 ._.,.;:イシ:::/::ノ l、 iんV´iノノ` ツi iリノツ-‐''" :: : ヽ 、 _,-.r‐i {,-ト .i_,,ノ-‐-―/ : : :::ノ :::::. } `、 ( l ./ /~ / .ノ/:::::/: ::::::: : :l (.._,,iツvV .,' ,'::{:::;::::: :::::::: :::i `ー7/::::{. '"~/ {;;;li/::::l:::::: :::::::::::::{ {:l(ァ' ,, ' l::;;|l/:::{i::::: : ::: :::: ::::l リァ' ., ´ /メ{ {l:::/ {:::l:. : : ::::| /, ´ ノ // l {iメ {:::|i:: : :::l /./ /::'/:/ {:i:|イ{ i::l:: i ::} i' ´ /::::::/::/ l .:|::::|:l:::l : l : ::l { , イ´ /::;/ .ィ´:| }::::l:i::::i:i:. .| : :. ::l i、__,, ィ i::::l /:,:::l //l::::l .}::::li:::::l l::::} i: i :::l
>>693 Python は使ったことないが、Ruby は社内アプリならいけなくもない。
あとコードの自動生成スクリプトなんかも書いたりするね。
CGI なら Ruby 使えるなら使ったたほうがいいな。
個人的に Perl、PHP はもういいだろうと思う。
702 :
デフォルトの名無しさん :04/10/25 08:29:27
Cは中華料理におけるチャーハンみたいなもんだ
703 :
デフォルトの名無しさん :04/10/25 09:59:02
HSP
先輩を立ててあんまりプログラム知らない振りをしていたら その先輩がHSPをもの凄く勧めて来るようになりました ゲームだけじゃなくてWindowsのアプリを作るにも適した初心者に良い言語だそうです どうしよう・・・ #今更使用言語が C/C++ C# Java Ruby Python CommonLisp Smalltalk とは言いづらくなってきたw
705 :
デフォルトの名無しさん :04/10/25 11:19:06
ルビーがなんでここまで叩かれてるのがよくわからん。 どの本読んでも入門用スクリプト言語としては申し分なさそうだけど、ニチャンではエッチエスピー並みのクソ言語扱い。 何かプロが忌み嫌う決定的な欠点があるのかな?実行速度以外に。 それとも叩かれているのはルビーではなくルビー厨? 最初に学ぶ言語としてルビー始めてみたいけどそんな事情で二の足踏んでます。
>>705 2ちゃんの評判なんて
気にするだけ無駄
>>705 はRuby厨の自演に一票。
Ruby自体はほとんど叩かれてないだろ。
709 :
デフォルトの名無しさん :04/10/25 11:28:58
Ruby は厨と作者は叩かれてるけれども、言語自体は無難な代物だよ。
712 :
705 :04/10/25 17:37:00
ありがとうございます。 勇気でました。 まずはCGIにでも取り組んでみます。
なんだ。厨予備軍かwwwwww
714 :
デフォルトの名無しさん :04/10/25 20:53:23
独学派は最初はCGIからってのが多いんじゃねえの?
へぇ
>>705 全然叩かれてないぞ
>>711 無難というかかなり良い線行っていると思う
Rubyyyyyyyyyyyyyyyy とかいっているヤツってRuby知らないただの祭り厨でしょ
たびたび作者がうかつな発言するから煽りやすいんだよね
まんせーさえしなきゃいいのさ。PythonだってRubyだってよくできてる。 まんせーしたくなったら、ちょっと我慢してPythonならLisp、RubyならSmalltalk、CLOS、Self、 Eifffel、Python、Perl、C++/Javaをひととおり修めとけって話。それでもまんせーできる部分が まだ残ってるなら、そりゃほんとにpy、rbがすごいのさ。胸を張ってまんせーすればいい。
まあPerlは糞だからやらなくて良いけどね。 アレは脳が腐る。馬鹿向けの厨言語。
719 :
デフォルトの名無しさん :04/10/25 23:09:51
>>719 思考実験にしか使われそうにない例で言語を比較してもしょうがないかと
>>719 オブジェクト指向で実装した場合の、しかも一例でしか比較していないじゃないか。
724 :
デフォルトの名無しさん :04/10/25 23:46:35
>>723 Javaはリフレクションがあるから既にSmalltalkで出来る事は全部出来る
と言っていた友人の言葉が嘘だという事が今発覚しました
でもさー、実行時にクラスやオブジェクトにメソッドを追加する事やオブジェクトを
入れ替える事なんかあるか?
やり過ぎ感が漂っているのだが
オブジェクトにメソッドを追加することはできるけど、静的に解決できないから、インターフェイスを使わざるをえないんだよね。 それもまたリフレクションで呼び出せばいいのかな。
719、723のリンク先で読めるソースがC++しかないのはヤヴァイですか?
>>725 できるのと、それを使うか(常に、ならなおさら…)は別。
でも、いざというときできるに越したことはない。
アセンブリ言語なら全てできる
>>725 例えば。
ライブラリにあるバグを回避するためにメソッドを置き換える。
テストのために一時的にクラス/オブジェクトを入れ替える。
いや。俺はいいと思うけど…。もっとも、727のC++力にもよりますがぁ…。藁 もっとも、相応のC++力があれば、Smalltalk とか SELF 、Objective-Cだのの アラン・ケイ流文法はともかくALGOL系(Pascal、C言語似)は、ある程度、推測で 行けるんでない?
>>731 C++力は底辺レベル
で、ご指摘の通りSmalltalk SELF、Objective-Cは予測すら出来ず
何をやっているのかサッパリ解らない
どころか出題の意味がわからない
ヤヴァイよなぁ
>>729 アセンブリ言語で命令のふるまいを変えるにはどうすればいいですか?
>>733 命令=関数、っていう意味なら、
関数の先頭アドレスを別のアドレスに書き換えればいいだけ。
訂正 × 関数の先頭アドレスを別のアドレスに書き換えればいいだけ。 ○ 関数の先頭アドレスを別のアドレスへのジャンプ命令に書き換えればいいだけ。
>>725 コードの部品化や連携が自由になるんだよね。
なにかの処理を実現するために便利というものではない。
>>734 そういう、振る舞い的にシミュレートできればいいんなら、たいがいの言語でなんでもできるんだけど。
Javaでもオブジェクトにメソッドを追加するような振る舞いを実装することはできるし、Cでもクラスの継承やら多態やらを実装することはできるでしょ。
ここでは言語にその機能があるかどうかが問題で、振る舞いを実装できるかどうかじゃないよ。
>>722 ああ。あのサイトは見てのとおりobjcまんせーなんだけど、比較でobjcの分が悪くなったんで
パターンに逃げようとしたんだよね。これでobjc(あるいはcocoaフレームワーク)で差が
付けられると…。ところが他のOOPLを知らないobjcマンセー野郎の悲しさか、最初に
選んだ例が悪かった。chain of responsibility なんてまさしくselfやnewtonscriptの為にある
ようなパターン。で、戦意喪失しちゃったんじゃない?それっきりよ。他のGoFも充実させたら
おもしかったのにね。
>>737 Javaの機能をアセンブリで実現するには、アセンブリでJavaのエミュレータを実装して
その機能を記述すれいいんだよ。
>>738 俺の記憶が正しければ、chain of responsibility は元々 ObjC から広まったんで
採用しただけじゃない?
クロージャを捨て去らなければ、ObjC も良い言語になったのに。
>>739 Javaのバイトコードのアセンブリでいいね。
742 :
デフォルトの名無しさん :04/10/26 02:17:31
今更チューリング等価を得意げに語っているヤツは何がしたいんだ?
>>737 C でクラスの継承やら多態やらを実装したのが Ruby
745 :
デフォルトの名無しさん :04/10/26 02:34:08
,,;:-‐''"⌒ ̄";;;;;;;⌒ ̄"ヾ、 ='-‐''"/,::´ /::::::::::::::::ヽ :::`ヾ ァ'´.,:´/.::::::/i:: :::::. :; :::丶 ::::::ヾ、 / / ::/.: { l ヽ_,,,_`、 .:`、ヽ:::::::ヽ` {::/ァ' .i..:/i.::{::{.ヾ~::i:ヾ丶::::::.::::i:::::::::} 、_ノ'.{ .::::{-{‐{:;iヾ{ '"T ヾ il.|'.:::.::}::::::::ト、 l.:il :lヽi'"ヽ`、ヽ .l,'゚i!'〉リi}::i:::::l:::ノ::ハヽ、_ 麻衣子は {:| i .} } {'゚}. ┴-' i}:ノl::::}::i:::::. l`ー" お風呂入るから {、.ヾ-i ー´、 〃 ノ:::ノ::ノ::}:: ::. } ちょっと待っててね ノト " っ 、_,;-':.:'/:::::::l: : l {:l:::`i::..、 ._.,.;:イシ:::/::ノ l、 iんV´iノノ` ツi iリノツ-‐''" :: : ヽ 、 _,-.r‐i {,-ト .i_,,ノ-‐-―/ : : :::ノ :::::. } `、 ( l ./ /~ / .ノ/:::::/: ::::::: : :l (.._,,iツvV .,' ,'::{:::;::::: :::::::: :::i `ー7/::::{. '"~/ {;;;li/::::l:::::: :::::::::::::{ {:l(ァ' ,, ' l::;;|l/:::{i::::: : ::: :::: ::::l リァ' ., ´ /メ{ {l:::/ {:::l:. : : ::::| /, ´ ノ // l {iメ {:::|i:: : :::l /./ /::'/:/ {:i:|イ{ i::l:: i ::} i' ´ /::::::/::/ l .:|::::|:l:::l : l : ::l { , イ´ /::;/ .ィ´:| }::::l:i::::i:i:. .| : :. ::l i、__,, ィ i::::l /:,:::l //l::::l .}::::li:::::l l::::} i: i :::l
Win32のネイティブコードが吐けるコンパイラがない言語は 言語自体がどんなに優れてても初心者にはお勧めできない。
749 :
デフォルトの名無しさん :04/10/26 03:27:13
>>747 初心者と言っても求めるもので変わってくるな
料理教室で楽しく習う初心者とか板前になる初心者とか
料理を学問として研究しようと言う初心者とかね
キミの言うのは料理教室で楽しくやる初心者でしょ?
>>749 料理教室で楽しくやるのなら、RubyとかPHPとかJavaとかでいいんじゃないかと思うが。
Win32必須というなら、ファミレスかファーストフードのバイト初心者じゃないの?
751 :
デフォルトの名無しさん :04/10/26 04:04:19
>>750 ちょっと違う
料理教室は楽しく作ってそれを食べれないと
何か作らないと楽しくないのが趣味の世界
Delphi、VB あたりがオススメ
プロの世界はそれが本道本筋でなければならない
これは一番普及していて実践的な C/C++ や Java があたる
最後の料理研究家は客とか金とかを考えずにいろいろ試す事
これらが最先端の技術もしくは柔軟性などを持った超高級スクリプトにあたる
Ruby、Python、Scheme、Haskell、Smalltalk、Self、CLOS など(研究対象が広いので数が多い)
752 :
デフォルトの名無しさん :04/10/26 04:07:57
いやいや、いきなりはじめに覚えた言語が実用的でなければならない理由はないよ。 学問は段階的なんだから。
753 :
デフォルトの名無しさん :04/10/26 04:11:48
それに研究者と言っても、言語が専門でない研究者だったらたくさんの言語を 覚えることにあまり意味はない。
754 :
デフォルトの名無しさん :04/10/26 04:12:02
ちなみにMITSの学生は学校でSchemeを習うので料理研究家の初心者だね
ということで、初心者と言っても求めるモノが違うのでネイティブ吐けないからとかまったく関係なし
このスレの
>>1 を見る限り、ここは料理研究家の初心者を扱うみたいよ?
755 :
デフォルトの名無しさん :04/10/26 04:21:29
757 :
デフォルトの名無しさん :04/10/26 13:14:53
ウィンドウズプログラミングがしたいのですが言語はどれがいいでしようか 大学ではCをやってるのですが、++も入門書は一読しました。 VBが手っ取り早いと聞きますが。Cでプログラムするのとそんなに差があるんでしょうか。 他スレから着ました。ご迷惑をおかけしました。
758 :
デフォルトの名無しさん :04/10/26 13:26:41
>>757 .NETでもいいのなら、C#がいいと思う。
まぁ、用途にもよるけどね。
>>757 VBでもいいし、Delphiでもいいし、C++Builderでもいいし。
GUIのプログラムで大切なのは、言語ではなくて開発環境。
760 :
デフォルトの名無しさん :04/10/26 13:45:04
>>758 レスありがとうございます。
用途は簡単なツール作成です。
>>759 長い目で見て、VBを初学することにデメリットは無いですか?
Delphiは一度やってみたのですが、いまいちパッとしませんでした。
762 :
sage :04/10/26 13:57:08
>>757 ウインドウズプログラミングってなんですか?
>>761 長い目でみれば、最初の言語はあまり影響がない。
一番長く使った言語の影響は大きいけど。
764 :
デフォルトの名無しさん :04/10/26 14:24:55
/⌒\ ( ・∀・)ノ <もうこのスレは終了なのか? ノルリノルリ
>>763 レスありがとうございます
一応パスカル、パール、C、C++も一通り本は読んだのですが、
ドス窓で動くプログラムばかりで飽きてしまいました。
・EXE作成時に付いてくるランタイムだけで250KBは軽く消費するTTSneo ・本とか出しても結局TTSneoと大差ないひまわり(&なでしこ) ・DLLを使わないと小数さえも計算できないHSP 究極の選択。
>>765 甘いな。
そのセリフはデーモンやサービス等の窓すら出ないプログラム作ってから言え。
768 :
デフォルトの名無しさん :04/10/26 22:48:55
>>765 じゃあDelでもやったら?
ネイティブ吐くし、パスカルやったならそんなに難しくないでしょ
2ch系ツールならブラウザも含めてソース転がりまくっているから
それ参考に作ってみればいい
ただ君の発言を聞く限り飽きたと言うほど身に付いているようには思えないけど
>>767 何が甘いのかサッパリわからんなぁ
>>768 コンソールばっかじゃ身に付く前に飽きるのもしょうがないかと
>>769 私は証明支援系に興味があってプログラミングやっているんだが、
コンソールで十分だ
771 :
デフォルトの名無しさん :04/10/26 23:43:37
>>769 オレは飽きなかったよ
プログラムと言うモノに興味を沸き本気で取り組もうと言う人間は
その言語仕様や設計・モデリングしていくだけで面白くて仕方がない
毎回驚きと発見がある
また真面目に技術を手に付けようとか目的を持っている人間は
例え飽きたとしてもその先の事を考えてその言語の習得に努める
職人見習いが飽きたからと言って基礎放り出したりしないでしょ
手当たり次第に言語を囓り、しかも本を読んだだけのレベルと思われる状態で
飽きたからGUIやりたいとか言っている時点でまったく話にならないと思うが
だから趣味レベルならDelで適当に作れと言ったまで
プログラミングの勉強なんかそこそこにしてさっさと次のステップに上がれよ
>>771 その人の性格によると思うよ。
誰しもがそんな風なわけじゃない。
もう少し多様性を認めようよ。
>>773 多様性って…GUIプログラミングを覚えるのが多様性か?
GUIは確かに研究の一つの選択肢ではあるが、何の目的も無しにプログラミングでも
始めようか、と考えている人が流れつく先とは思いたくない。
何の目的もなしにプログラミング始めようかってやつならなおさらCUIには飽きるだろ
>>774 >多様性って…GUIプログラミングを覚えるのが多様性か?
いや、人の性格の多様性だよ。
あきっぽい人もいれば熱心にやれる人もいるってことさ。
777 :
デフォルトの名無しさん :04/10/26 23:55:59
そう言うヤツはだいたい駄目グラマになって俺たちを苦しめるんだが
そうだね、目的無しに「プログラミングでも」という奴は放っておくべきだ。 プログラミングは嫁入り修行じゃないんだぞ
飽きたからGUIってねぇ 多様性を認めるのと飽きやすいヤツの我が儘とはまったく別な流れだと思うんだが 一つに言語も満足に出来ない状態で端から本を読んで解ったつもりになっているだけでしょ で、つまらないからGUIって言っているんだからGUIやっても一緒
>>777 それも分かる。それも「あたな」という多様性の一部だ。
だけど、プログラマという仕事でお気軽にやりたいという人がいるのも多様性の一部。
このような多様性をうまく統合するためには、単に自分のやり方を押し付けるのは
間違っているんじゃないかな、って思うんだ。
>>780 迷惑を被っている。
被害を受けているんだ。
それを阻止したいのは当然だろう。
ちなみに、そういう人間が大勢いることが我々プログラマの相対的な地位を下げる
ことにつながるんだよ。
プログラマでないがすこしかじった人が「俺でもプログラミングくらいできるよ」
と考えるのは甚だ遺憾だね。
782 :
デフォルトの名無しさん :04/10/27 00:04:39
>>780 そう言う事を言うとすべての事を認めるという訳の解らない事になるが
多様性の一種と言えばそうでしょう
そう言う詭弁は要らないよ
「いやいや、それは多様性ですから」
>>781 >迷惑を被っている。
>被害を受けているんだ。
>それを阻止したいのは当然だろう。
それも分かる。
今の地位があまり芳しくないから苛立つのは分かる。
ただ、そういう状態では、多様性の統合はできないし、
他人を本当に教育することはできないと思うよ。
自分の思うように動かすことはできてもね。
>>780 >そう言う事を言うとすべての事を認めるという訳の解らない事になるが
>多様性の一種と言えばそうでしょう
>
>そう言う詭弁は要らないよ
そうじゃない。
認めることと現状に甘んじることとは別。
認めた上で両者が共存できるような仕組みなりを考えること。
それが大事だよ。
>>784 興味がある人間に教育するのならわかるが、ただなんとなく、と考えている
人間にはまず、「何ができるのか」「どんなことがなされているのか」という
ことを初めに明確に知ってもらう必要があるとおもう。
最近の大学・専門学校教育ではそういった事はあまり講義しない傾向がありそうだ。
職業プログラマでなくてもプログラミングしたっていいだろ。
楽しみでやってるなら、そいつが、
言語仕様や、設計を楽しもうが、
GUIでなんか出てきたのを喜ぼうが、どっちでもいい。
>>757 は「仕事でやりたいが修行は飽きた」なんていってないぞ。
788 :
デフォルトの名無しさん :04/10/27 00:24:51
普段、ExcelやWordを使っているなら、VBAを薦める。 これなら、制御構造もないようなわずかなプログラムで、そのメリットを感じることができるからだ。 しかも、すでにプログラミングの環境あり。インタプリタなので、理解もしやすい。 COM同様のオブジェクトなので、OOの基礎も学べる。 ほかの言語では、実際の仕事に役に立つ小さなプログラムを作成できるようになるまでもが、長すぎる。
プログラミングがもはや配管工事や電気工事と同じような扱いになりつつある というのに多様性に意味があるのかどうか。
790 :
デフォルトの名無しさん :04/10/27 00:27:44
>>787 だから、趣味レベルならDelでもやっておけとアドバイスしているわけだが
しかし趣味だろうとこういう手合いは全然伸びないと思うぞ
何も習得しないで手当たり次第に言語の上っ面舐めて飽きて放り出すのが落ち
CUIに秋田だけでそこまで言い切るか
改めて
>>757 を見てみるとこのレスだけで完結しているのがわかる
>>789 ってことは趣味でやってるやつは、
日曜大工で水道管修理したりするおじさんみたいなもんか。
>>790 全体的な文意が「あんたはやっても無駄だ(やめとけ)」
になってるところが批判されてんだろ。
> しかし趣味だろうとこういう手合いは全然伸びないと思うぞ
こんなこと書かずに、真摯にアドバイスしてやれと。
おれも「こういう手合」が優れたプログラマになりそうだとは思わないがね。
別になりたくないかもしれんし、多様な人がいるからなれるかもしれない。
794 :
デフォルトの名無しさん :04/10/27 00:41:54
>>791 勧められても
> Delphiは一度やってみたのですが、いまいちパッとしませんでした。
と言いVBはどうなのかの一点張り
で、実際は
> 一応パスカル、パール、C、C++も一通り本は読んだのですが、
まともに使っていないで読んだだけなのが発覚
で飽きたからじゃ突っ込まれて当然
795 :
デフォルトの名無しさん :04/10/27 00:43:12
>>793 あんた「多様」を使いすぎ
馬鹿の一つ覚えにしか見えない
VBよりはDelphiだと俺も思うが
>>795 おれは
>>787 と
>>793 しか書き込んでない。
つまり、多様は一回しかつかってないね。
それも、上のだれかが使っていたのにあわせたんだよ。
あんたの意見と違う人間は一人じゃないんだよ。
多様な人間がいるからね(二回目)。
失礼、3回目でしたね。
「いやいや、それは多様性ですから」
800 :
デフォルトの名無しさん :04/10/27 00:48:12
まあプログラマに上手な日本語求めてもなぁ
で多様多様いっているヤツは真摯にアドバイスしてやったのか?
802 :
デフォルトの名無しさん :04/10/27 00:51:53
プログラマなら多態にしようぜ!!
803 :
デフォルトの名無しさん :04/10/27 00:52:37
804 :
デフォルトの名無しさん :04/10/27 00:54:24
文系だろうがプログラム組みたいなら、ちっと飽きたぐらいで放り出さずに その言語を使いこなせるまで、勉強しろと 我が儘を多様で誤魔化すなと
805 :
デフォルトの名無しさん :04/10/27 00:56:57
>>804 っと思いこんでperlのみを使い込んで
三十路を過ぎてしまったモレは死んだ方が良いですか?
806 :
デフォルトの名無しさん :04/10/27 01:06:13
>>805 Perl使い込んだなら違う言語やれよ('A`)
いろんな考えの言語をやるのは良い事だぞ
807 :
デフォルトの名無しさん :04/10/27 01:21:59
>>806 てか釣り。
モレは一つをとことんまでやるのは良いことだし
色々なのに手を付けることもマタいいことだ
っと言いたかった訳よ。プログラムに限らずさ。
808 :
デフォルトの名無しさん :04/10/27 01:44:38
全部半端に手を付けるのが一番駄目
>>808 どの言語やっても満足にプログラム書けなかったのを、
自分の能力じゃなくて言語や環境のせいにしているから
>>765 みたいな発言が出てくるんだろうね。
すんません、レス読ませていただきました。 大学の講義をかねての勉強だったのがまずかったのかもしれません。 まして、レポート提出が無ければキーボードを叩くことすら滅多にありませんでした。 もう少し、手元にあるテキストを精読した上で考えたいと思います。
今セメで履修しているOSでCを多用するので、 さしあたり年一杯を目途にCを頑張ることにしました。 もうすこし試行錯誤してみます。 すんませんでした。感謝しております。
812 :
デフォルトの名無しさん :04/10/27 20:00:30
で、お前ら一番最初に覚えた言語ってなんだ? オレはポケコンでBASIC すがやみつるのこんにちはマイコンをドキドキしながら読んでいた世代だ その後パソコンサンデーの影響でCも勉強って感じか やっぱ最初にやるのはCよりBASICの方が入りやすいよな 最初からCでメモリ管理とかやっていたら途中で投げていまプログラムしていないと思う
初言語は98のBASICだったなぁ lineやcircleで描画するだけだったが結構楽しかったな
F-BASIC386。 中学校にあったFM-TOWNSを放課後も勝手にいぢってたなぁ。 CIRCLEで花火とか作ってニヤッとしてたなぁ・・・
MSX-BASIC MSXのVDPはいじり甲斐があったなぁ。
816 :
デフォルトの名無しさん :04/10/27 23:55:23
凄い、ここまで全員BASICw BASICは偉大だなぁ
X1 (マニアタイプ w) で HuBASIC カセットテープw
PC98でN88BASIC ベーマガ見ながらパチパチ打ち込んで 必ずどっかで入力ミスして一発では動かなかったのが夏貸し
819 :
デフォルトの名無しさん :04/10/28 10:58:49
プログラマになる人以外なら、なんだかんだいってVBAがおすすめだよね。 中小企業の事務屋でちょっとサービス残業して社内アプリ作っただけで神になれる。 実際にそれを便利に使う人が作るから、現場に合ったものが作れるのも強み。
820 :
デフォルトの名無しさん :04/10/28 11:10:23
あ、それだと事務やる人にしか意味ないか。 プログラマ以外は言い過ぎでした。
そもそもプロのプログラマになる人ならこんな所を見ないで 学校に入るなりコース取るなりするから、こういうスレが必要 な人はその「プログラマ以外」の人だろ。 VBA に特定はしないとしても、よく使うアプリのマクロ言語 から入るのは王道だと思う。 さもなきゃゲームとかね。
学校に入るなりコース取るなり・・・ しないとプログラム組めないならプロになれんね。 もうちょっと上のレベルの話でいえば、日本のプログラマは学校で専門教育受けてないやつばっかりで、専門教育受けなくてもなれる程度のレベルの低さ。
車の設計に携わるには自動車工学勉強する必要があるし、ビルの設計するためには建築工学勉強する必要がある。 でも、日本のソフトウェアを設計する人にソフトウェア工学を勉強する人はあまりいないし、ソフトウェアに関わってる人は、そもそもソフトウェア工学の意味も知らない人がほとんど。 単なる工員レベルのプログラマが年功序列的な昇進で設計にまわっている。 この板でも、ソフトウェア工学といってアルゴリズムやコンパイラの設計を思い浮かべるような人がいたりする。
>>821 は
>>822 みたいなこの板で聞き飽きた話を得意げに語る厨を意識して
「学校に入るなりコース取るなりする」の代わりに「自分で勝手に学習する」とでも
書けばよかったな。
飽きた。 飽きたぞ、このスレ。 なんで同じネタの繰り返しなんだ。 論文にならんことに興味はないぞ。
そもそも2chに来るべきではないと思われ。