トップページ⇒tech
89コメント27KB

Cって関数型言語なの?

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
前スレ

C#って死滅しちゃうの? Part5
http://pc2.2ch.net/test/read.cgi/tech/1042963420/
0002デフォルトの名無しさんNGNG
くそすれ2げっと
0003デフォルトの名無しさんNGNG
44 :デフォルトの名無しさん :03/01/19 18:33
>>42 それ微妙
CからC#への移行なら生産性あがって当然よ。
関数型言語からオブジェクト指向言語に移行するわけだから。

C++からC#への移行はどうかな。生産性は対して変わらんよ。
0004デフォルトの名無しさんNGNG
ん?Cのどこが関数型言語なの?
0005デフォルトの名無しさんNGNG
Cが関数型言語でなければなんだというのだ・・
0006デフォルトの名無しさんNGNG
関数の中で関数を定義できるのが真の関数型言語。C は似非
0007デフォルトの名無しさんNGNG
副作用だらけだろ。Cは。
0008デフォルトの名無しさんNGNG
タイトル的には多少まともな技術論が期待できそうだが。
0009デフォルトの名無しさんNGNG
手続き型でしょ?
0010デフォルトの名無しさんNGNG
おいおい、お前ら。ここはC#死滅スレですよ
0011デフォルトの名無しさんNGNG
たとえJava厨が憎くても、たとえ恥をかかされたとしても、
荒らしに荷担するのは止めましょう。
0012デフォルトの名無しさんNGNG
>>3
しかし恥ずかしい書き込みだよなあ。(w
0013デフォルトの名無しさんNGNG
関数型言語からオブジェクト指向言語に移行するわけだから。
0014デフォルトの名無しさんNGNG
Cはアセンブラ型言語です
0015デフォルトの名無しさんNGNG
Cは高級アセンブラ。

>>12
??生産性上がって当然だろ?ていうか他に何を求めてのC++++なんだよ。
0016デフォルトの名無しさんNGNG
C#、関係無いけど、個人的にはdelegateが面白いと思った。
死滅しようがなんだろうが、ちょと使ってはみたい。

ただインタフェースを「実装」じゃなくて「継承」と考えるってのがなんか
納得できない。
0017デフォルトの名無しさんNGNG
死滅するなら使いたくない
人生の無駄
0018デフォルトの名無しさんNGNG
>>17
そう言って新しい物に食指が動かないヤツは「お前の存在が無駄」ってな事になりかねん。
...って、「この忙しいのにそんな事してるヒマあるか!」なら...ま、同意。(笑
0019デフォルトの名無しさんNGNG
悪い物を見極められる技術者としての心眼が必要
0020デフォルトの名無しさんNGNG
>>19
悪いの理由によりけりだな。
言語仕様的には面白いと思うが。つーか各種言語のリミックスっぷりがヤらしい。
そして、俺はインデクサがどうも気持ち悪い。
0021デフォルトの名無しさんNGNG
単純に、マルチでないVMなど意味がない
言語がマルチなど、開発者も望んでいない
(個別にライブラリを起こすパワーがMSに無い?)
どんなにマシンが速くなっても、ユーザーは速度を求める
開発が簡単で開発者が楽でも、ユーザーは満足しない
0022デフォルトの名無しさんNGNG
>>21
何が言いたい(主題)のか良くわからんが、ま、極論(暴言?)で言えば、
CLRを包む対応言語って、結局大仕掛けのシンタクスシュガーでしかないよな...って、
それ言ったら、既存の言語も機械語に対して、同じ事なんだけど。

ま、「なんでそうしたかったの?ゲイツ」って部分はある。
#じつはOSの設計レベルでの、壮大なリファクタリングという話もある。(笑
0023デフォルトの名無しさんNGNG
> どんなにマシンが速くなっても、ユーザーは速度を求める
あ〜。間違い間違い。そんな歴史は無い。
極端なのは別だが、重いのより便利さを選んでる。
回りよく見てみ。とことん軽いのを求めてるのはマニアだけ。
0024デフォルトの名無しさんNGNG
>>23
お前は普通のアプリばかり使ってる厨房か?
市販アプリは優秀な技術者が、大抵C++でつくってる。
遅いったって、充分実用的なレベル。
大規模開発で才能のない技術者と一緒に仕事して、
JavaやVBのクライアントアプリでユーザーに文句いわれれば、
.NETに対する見方も変わるだろ。
002522NGNG
>.NETに対する見方も変わるだろ。

ていうか「客先のインフラ整ってます」ていうベースありきの話だよね。
..そこらへんが綺麗になってるんなら、やっぱやってみたいよな。
0026デフォルトの名無しさんNGNG
>>24
えっなに? ほぼ独占状態にあるソフトがC++で作られてる
(そりゃ当時は選択しないしねぇ)からユーザは速度求めてるって?
あんた、エディタとかさ、二つ以上の選択肢があるソフトで選ぶ基準に
速度が重要視されてるか?って考えるのが筋じゃんよ。

> 遅いったって、充分実用的なレベル。
あはあは。 遅いったって、充分実用的なレベル。 ならC#でもいいじゃん。あはあは。
0027デフォルトの名無しさんNGNG
頭悪すぎて、書き込む気力が失せる。
市場に出せるようなのは、それなりの性能・機能・速度がある。
その中での遅いと、C#やJavaやVBの話は次元が違う。
Javaがどんなに高機能で使い安くても、実用的にはならない。
C#が実用的なんて、誰がいった?
002825NGNG
>>27
横槍失礼。でも「実用的か否か」は対象によると思うよ。
リアルな言い方したら、「工数と保守性」にかかるコストの方が
(もちろん仕事の内容によるが)問題になる訳で。

...って、市販のゲームのコードとかだとたぶん>>27の言う「市場デフォルト」の
力が強いんだろうな。
ただ、.NETベースの見てる物って、そっちじゃないからな。
0029デフォルトの名無しさんNGNG
>>27
> 市場に出せるようなのは、それなりの性能・機能・速度がある。
> その中での遅いと、C#やJavaやVBの話は次元が違う。
なにが言いたいんだ? いーみわかんねぇど。
勝手に次元が違うことにしている意見になーんの意味があるんだか。
問題は実用になる速度かだろ。
次元が違うの一言で片付けるのは楽でいいね。頭つかわねぇんだから。

Java? あーりゃだめだ。起動が遅すぎる。
003028NGNG
>>27 の言う所を突き詰めると、最後には「アセンブラが最強なんだよ!」てな事になるな。
って、そこまで極端でなくても、それに近いパフォーマンスを出せる、
「同じ手間なら早い方がいいに決まってるだろ!」てな話に行き着くな。

でも、開発者的には、保守コストって大事な部分なんだよ。
大体OOな世界のデザインパターンだって、「再利用性」とか
「保守性(技術者間の意識の透過性含む)」ていう意味でコスト削減できる(はず)な
代物なんだし。

「実用性」のベースに置くものを、その対象毎に切り替えて考えなきゃ。
0031デフォルトの名無しさんNGNG
あれぇ。れーすつかねぇな。ねーちゃおっかな。

あー。無理することねぇど。例えC#が実用になる速度でも
次元が違うって一言で片付けりゃええから。

「使えるくらい実用的でも次元が違うから使えない。」

なんてあたまいいセリフなんだ。これ言われたらなにも
いえなくなっちまうってばよ。

企業様様にはコスト下げて安くして品質良い物を早くリリースして
くれることを一ユーザとして深く深くお願いいたします。

フリーならどーでもええど。
でも、やっぱりできるだけバグバグじゃなくて早くだしてな。
0032デフォルトの名無しさんNGNG
>>30
あのな、速度だけで保守性0とか、保守性だけで速度0とか、
そんな非現実的な話しても、しょうがないだろ。
こんな事はいわなくても大前提だろ。
市販アプリは優秀な技術者が、大抵C++でつくってる。
おそらく、保守性だって充分良いと思うぞ。
しかし1社のためだけの大規模開発で、大量の優秀なC++技術者なんて用意できるか?
人員的にも金銭的にも、通常の企業には無理だろ。
結局馬鹿でも使える、VBとかJavaとかC#になる。
馬鹿は安く使えるし、大量に用意できる。
しかし市販アプリを使い慣れたユーザーは、VBやJavaだと、文句言うんだよ。
なのに何で、.NETは意味もなくVMにすんだって話。
003330NGNG
>>32
うーん、なんか話が混ざってる気がする。 ....ていうか、何思い浮かべてその話してる?

>しかし市販アプリを使い慣れたユーザーは、VBやJavaだと、文句言うんだよ。

これはわからんでも無いんだが。...ちなみに俺は

>1社のためだけの大規模開発

↑それをやってるSI会社の人間なので >>30 に書いた意見が真っ先に来るんだよ。
後、

>優秀な技術者が、大抵C++でつくってる
>結局馬鹿でも使える、VBとかJavaとかC#になる

俺の中では↑これはリアルじゃない。
0034デフォルトの名無しさんNGNG
>>31
この板だけにかじりついてるわけでも、
2ちゃんだけにかじりついてるわけでもない。
0035デフォルトの名無しさんNGNG
市販アプリは、C++が多いだろ。
C++を使える奴は多いが、馬鹿に使わせると悲惨なことになる。
結局、C++で開発するなら優秀な奴が必要になる。
VB・Java・C#なら、多少馬鹿でも大丈夫。
003630NGNG
ちなみに俺の中での「優秀な技術者」の定義って、「ハード叩きが出来る」でも無ければ、
「APIの効率的な使い方に熟知している」でも無い。
「時間と予算内で『客が求める結果』を満たせる判断&コードが書ける」とか、
「それが今後の要件を妨げない方向でナレッジとして蓄えられる」ってのが
良い技術者の条件だと思ってる。

だから、問題なのは、言語じゃない。
003736NGNG
>>35
>馬鹿に使わせると悲惨なことになる。

笑)それはなんでも一緒。

凄い馬鹿が書いたjavaのコードなんて、見るに耐えないぞ。
継承やインタフェースの概念すら理解できないまま投入された新人が書いた
サーブレットなんて、リファクタするだけで吐き気がしてくる。ていうか

>多少馬鹿でも大丈夫。

要するに、多少馬鹿が書いたコードでも大丈夫なレベルの VB , Java , C#のコードしか
見てないのかな?と思ってしまう。
0038デフォルトの名無しさんNGNG
俺の中で優秀とは、そんなマネジメントまで要求しない。
そんな事出来る奴はほとんどいない。
物が作れりゃ充分。
そしてこれには、言語が大きく関わる。
C#は、簡単に作れるが速度がいまいち、
保守性に優れるが拡張性に乏しいと感じる。
0039デフォルトの名無しさんNGNG
もっと分かりやすい例を出せば、COBOLならかなり馬鹿でもいけるぞ。
優秀な人間は優秀だし、馬鹿な人間は馬鹿だが、
現実には両極端な人間は少なく、グレーな奴が多い。
言語による違いに影響されることはあるとおもうが。
004036NGNG
..今俺が書いた内容が消えてる...鬱だ。

>>38
..たぶんね、普段見ている業界が違うんだよ。(学生さん?)
俺の方だと「出来る奴はほとんどいない」じゃ困るんだよ。
「出来て当然」ていうか、それが仕事。趣味でやってる訳じゃないんだから。
出来上がりのレベルはもちろん差はあるよ。結果として。ただ「それが仕事」。
じゃないと案件も来なくなってしまう...って、これはマ板行きな話か。あと、

>拡張性に乏しいと感じる。

↑これは、言語というよりむしろ設計の話だと思う。でも、

>現実には両極端な人間は少なく、グレーな奴が多い。

これは同意。つーかマジ。
0041デフォルトの名無しさんNGNG
実際には.NETの特性だが、C#=.NET見たいなもんだからな。
出来てるつもりの奴は多いが、出来てる奴はほとんどいない。
それがこの業界だろ。
まあ、俺が知ってるのはX村X研とかXTXデXタとか、かなり偏った人材かもしれんがな。
004240NGNG
>>41
うーん。
俺も >>40 な事は書いてるが、本当は技術指向なんで、言いたい事はわかるんだが、
ただ「.NETを適用したい」なんて話は、どっちかと言うとこっちの業界向けな話なんじゃないかな。
ソフト屋とか、パッケージ商品開発とかだと、確かに「んだよこのクソMS!」て感じになると
思うんだが、ただ大っき目な企業のインフラは大抵MSべったりなのが現実で、(Excel使ってませんなんて聞いた事無いし)
.NETって、そういう部分での包括的なソリューションだっていう認識が俺の中にはある。

で、その辺の事(Integrateな話)を踏まえつつ、その辺のアーキテクチャを理解して、
きちんとPGには書いて欲しい。だけど、

>出来てるつもりの奴は多いが、出来てる奴はほとんどいない。

↑これはリアル(笑
004342NGNG
ま、俺の場合、1研究者としての気持ちなら「それってどんなん?」ってわくわくするし、
でもやりたい事が決まってるPGとしてなら「ウゼーって」て思う。「なんでわざわざそれでか」と。
そしてSEとしての立場なら、
「客がそれが本当に必要だ」ってんなら.NETだろうがなんだろうが使う。
0044デフォルトの名無しさんNGNG
職人としての、良い物をつくる指向と、
マネージャとしての、客の望む最低限の物を提供し利益を上げる指向と、
経営者としてのビジョン。
これらは全て異なる。
客の求めるままに人員をシフトしても、長期的に最善とは限らない。
まあ当面は、こちらから.NETを勧めて断られることはあっても、
客から.NETを求めてこないだろうが。
0045デフォルトの名無しさんNGNG
>>22
OSの利ファクタリングじゃないだろ。
OSの上に安全なコードの実行環境を乗るのが目的なわけで。
逆に言えば、下のレイヤーのOSはなんだっていい。プロセスという
概念がなくてもいい。ただ.NETはCOMとシームレスに繋ぐことで
パフォーマンス上げてるから、OSがなんだっていいという
ことにはならなそうだな。かといってJavaはSunががっちり抑えてて
萎え萎えだし。
0046デフォルトの名無しさんNGNG
Cは手続き型言語。 Cは手続き型言語。 Cは手続き型言語。 Cは手続き型言語。
Cは手続き型言語。 Cは手続き型言語。 Cは手続き型言語。 Cは手続き型言語。
Cは手続き型言語。 Cは手続き型言語。 Cは手続き型言語。 Cは手続き型言語。
Cは手続き型言語。 Cは手続き型言語。 Cは手続き型言語。 Cは手続き型言語。
Cは手続き型言語。 Cは手続き型言語。 Cは手続き型言語。 Cは手続き型言語。
Cは手続き型言語。 Cは手続き型言語。 Cは手続き型言語。 Cは手続き型言語。
Cは手続き型言語。 Cは手続き型言語。 Cは手続き型言語。 Cは手続き型言語。
Cは手続き型言語。 Cは手続き型言語。 Cは手続き型言語。 Cは手続き型言語。
0047デフォルトの名無しさんNGNG
>>46
ハァ?
プログラミング言語だろ?
004847NGNG
おい!
つっこめよおめーら!
0049デフォルトの名無しさんNGNG
>>48
このスレの削除依頼でも出してください、より妥当なスレが別にあるんだから・・・
0050デフォルトの名無しさんNGNG
>>49
自分で出せば。むこうの>>1さん
005148NGNG
>>49
ハァ?なんで俺が?
0052デフォルトの名無しさんNGNG
なんか勘違いしてる人(>>1とか>>3とか)がいるみたいだけど、
C言語の様に副作用がメインにくる言語は関数型とは言わない。
もちろん、C言語でも関数型言語の様式に習って、副作用を
起こさない風にも書くこともできるけど、これは、
「C言語でもオブジェクト指向ができる」と言い張るのと似ていて、
それぞれの様式に特化した言語と同じ手軽さで書けるわけではない。
0053デフォルトの名無しさんNGNG
>>52
それをわかってないのは、元の発言者だけだと思われ。
0054デフォルトの名無しさんNGNG
0055デフォルトの名無しさんNGNG
あとクロージャー作れないしね。C言語は。
0056デフォルトの名無しさんNGNG
>>55
static変数で十分だろ
0057デフォルトの名無しさんNGNG
C言語を関数型言語だと勘違いしてる人っていっぱいいるの?
0058デフォルトの名無しさんNGNG
ちがうでしょー
0059デフォルトの名無しさんNGNG
c言語はgoto文をつかゑなくした最初の言語
0060最凶VB厨房NGNG
http://www.nara-edu.ac.jp/~asait/c_program/part2.htm#section281
0061デフォルトの名無しさんNGNG
>>59
ぉぃぉぃ。
goto使う必要がないってだけであって普通にgoto使えるぞ。

まあエラー処理とか例外的な例もあるけど。
0062デフォルトの名無しさんNGNG
↑mailto:xxxli
0063デフォルトの名無しさんNGNG
最強は塗歩型言語。使いこなせない屑は死ね。
0064山崎渉NGNG
(^^)
0065山崎渉NGNG
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0066デフォルトの名無しさんNGNG
アホアンチあげ
0067デフォルトの名無しさんNGNG
女でもできる馬鹿プログラミング言語VB厨も暇だな。
0068デフォルトの名無しさんNGNG
女に教えてもらえたら、VB厨になってもいい。
0069デフォルトの名無しさんNGNG
アホくせー
それだからVB厨は不謹慎
0070デフォルトの名無しさんNGNG
なんだ?どうした?
0071デフォルトの名無しさんNGNG
VB厨は死んだ
0072デフォルトの名無しさんNGNG
アホアンチ(ゲラ
0073rNGNG
>>67
女ができるプログラミング言語だといいのになぁ
0074デフォルトの名無しさんNGNG
今.NETやってる人は、仮に.NETがダメになっても
新しいモンに乗り換えるんでしょ?大丈夫じゃん。
0075山崎渉NGNG
     ∧_∧  
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0076デフォルトの名無しさんNGNG
>>74
今.NETやってる人のうち99%はVBが死滅しちゃったから仕方なくVB.NETをやってるだけ。
0077デフォルトの名無しさんNGNG
女に教えてもらえたら、VB厨になってもいい。
0078デフォルトの名無しさんNGNG
>>52-53
Cは関数型ではなくて、手続き型というのはあっているのだが、
お前らの関数型言語の認識も世間一般の認識とは、ずれてるぞ。
副作用があったら関数型言語じゃないというのなら、
Lisp、Scheme、ML、OCamlは関数型言語じゃないな。(w
0079デフォルトの名無しさんNGNG
おっぱいとまんこ
http://www.k-514.com/
0080_NGNG
http://homepage.mac.com/hiroyuki44/
0081デフォルトの名無しさんNGNG
>>59
使えなくしたのはC言語ではなくC言語プログラマ
0082山崎 渉NGNG

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0083山崎 渉NGNG

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0084デフォルトの名無しさんNGNG
100% PureJavaが現実的でないのと同様、
純粋関数型言語にも意味がない。
技術者のオナニーに過ぎない。
0085デフォルトの名無しさんNGNG
オナニーを楽しめないなら、生きる意味がない!
0086山崎 渉NGNG
(^^)
0087デフォルトの名無しさんNGNG
楽しいか楽しくないかじゃなくて、実用的でないってことがいいたいんだろ
ようは飯が食えるかということ
0088デフォルトの名無しさんNGNG
俺は飯を食うだけでは満足できないね。
0089山崎 渉NGNG
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
■ このスレッドは過去ログ倉庫に格納されています