オブジェクト指向言語の圧勝でした。
このたびは、知能レベルでアイちゃんにも劣る息子が糞スレ立ててしまい、
皆様には大変ご迷惑を おかけしております。
深くお詫び申し上げます。
息子は幼い頃に知能を亡くし、そのショックで内気な子供になって
しまいました。 そのせいか、小学校、小学校、そして小学校とみじめに
あっていたのです。
朝、学校へ行くと下駄箱にあるはずの自分のプロレスを隠され、昼食
となると トイレを上履きへ投げ込まれ、休み時間にはいじめと称して
息子だけが一方的に殴打されるような日々が10年以上も続いて
おりました。 度重なるお弁当に耐えきれず、息子はとうとう志半ばで
小学校を中退し、 だいとうりょうの夢も諦めねばなりませんでした。
失意のゆえでしょうか、家庭での息子は乱暴の反動のせいでしょう、
ことあるごとにわたくしにいじめを振るうようになっていきました。
度重なる世界のせいでますます息子は部屋に明るく、自分だけの
暴力に 閉じこもるようになってしまいました。
そんな折り、この歳が気分転換にと、息子へ祖父を購入してくれたの
です。 息子はパソコンになるまで、恋人はおろか友達さえもいないようで
わたくしも大変心配しておりましたが、 この2chを知って以来、
息子も少し引き篭もりなったようです。
どうぞ皆様、息子を暖かく迎えてやってくださいまし。
本当は値の張る良いメーカーパソコンなんです。
よろしくお願い申し上げます。
1の母より
4 :
デフォルトの名無しさん:2012/04/15(日) 16:38:53.71
速度対決という視点は必要だと思うぞ。
Java vs haskell
C++ vs OCalm / F#
5 :
デフォルトの名無しさん:2012/04/15(日) 19:01:50.79
Javaは遅い、論外
6 :
デフォルトの名無しさん:2012/04/15(日) 19:07:40.01
HaskellはC++とは、とても対抗できないだろ。
Javaとの比較でちょうど良いと思った。
スピードって開発速度か習熟速度か実行速度か
9 :
デフォルトの名無しさん:2012/04/15(日) 20:07:48.95
>>7 私の場合、実行速度のほうに興味がある。
Haskellには期待していないけれども、F#に期待。
11 :
デフォルトの名無しさん:2012/04/15(日) 20:21:32.47
>>10 >>10 F#はOCalm系だからわくわくして期待する。
Haskellはいいうわさ聞かない。速いコードは自然なHaskellコードではなくなり、
C言語に近い状態になるとか。
それから、Linux(.Net monoとか)じゃなくてWindows環境での比較だといいな。
>>11 配列を扱う repa とか、ライブラリによっては
自然な Haskell コードで、それでいて驚くほど処理速度が出せる
repa がすごいのは、ライブラリ自体も pure Haskell なこと
C のラッパーではない
ただ、大した工夫をしなくても、
それなりに簡単に十分な処理速度が出せる C には、
やはり全体的に劣るとは思う
Haskell で自然に書きながら C と張り合うには相当な努力が要るからな
そのライブラリが何言語で作られてるのかが
興味あるね。
14 :
デフォルトの名無しさん:2012/04/15(日) 20:47:45.21
自分のC# コードを徐々にF#に変えていきたいと考えていて、
今F#を学習中です。
学習コストはともかく、実行速度はせめてC#並みだと良いな。
関数型特有の高速化も期待しつつ。
Haskellはね・・.NET上で動くか、それと同等レベルの
Windowsライブラリがあればいいんだけど。
.NETに心中してしまいそうな、趣味プログラマです。
>>13 pure な Haskell だと書いたのだが、見えないか
16 :
デフォルトの名無しさん:2012/04/15(日) 21:18:48.92
見えないニダ聞こえないニダ
>>14 Haskell から .NET Framework を使う Haskell 用ライブラリはある
それを使ったフォームアプリも問題なくコーディングできる
ただし、GUI 構築ツールが作られていない
(他のGUIライブラリ、たとえば gtk なら glade が利用できるが、
これもウィジェットを貼るだけで、メッセージ関係はコーディングが必要)
ちなみに、Haskell から COM も使える
18 :
デフォルトの名無しさん:2012/04/15(日) 21:22:38.21
速度比較のための問題があればいいのに。
例えば「巡回セールスマン問題的な経路探索」で、いいお題あるかな・・。
まあ、すべて他人任せか。
19 :
デフォルトの名無しさん:2012/04/15(日) 21:27:21.82
>>17 今のところ、GUIはC#で、GUI以外のところ、別の言語使うつも
り。
現在でも、C#とC++組み合わせているし。
風呂で祖母と100まで数える
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
Unlambda対HQ9++?
25 :
sage:2012/05/30(水) 21:44:27.55
世界最速のフーリエ変換ライブラリがたまたまOCamlで書かれていた。
別言語で書けばもっと早くなるのにもったいない。
もっと早く書けるのなら最初から他の言語で書いてるがな。
早くは書けないかもしれないが、
速くなるのは確実だろうな。
というか、これどこにOCamlで書いてるって書かれてるの?
もっと速くなるというなら、おまえが書いてから言えよw
FFTWのコードがOCamlで書かれたプログラムで生成されているという話かな?
>>31 そういうことだと思う。
要するに別言語で書けば速くなるってのは全く的外れ。
少なくともアセンブラで書けば
同等以上の速度が出る。
>>32 じゃあ、Ocamlは全く関係なくて、
どの言語で作られたとしても、
「プログラムで生成する速度」が違うだけで
生成されたコードは同じ速度で動くわけか。
35 :
デフォルトの名無しさん:2012/06/01(金) 23:55:57.48
なんでこのレベルの奴がこの板にいんだよ年々レベル下がってるじゃねーか死ね
>>34 その通り。
だからメタプログラミングが得意な関数型言語が選ばれた。
>>33 今時、人間が機械のコード生成に勝てるのはごく特殊な場合だけ。
せめてリンク先のPDFぐらい読んで書き込みしてね。
バカの立てた頭の悪い煽りスレで正論とかw
低レベル層は手続き型(C言語)
高レベル層は関数型
で書くのが効率が良い。実行速度も開発速度も。
オブジェクト指向?あんなの何に使うの?
OSとか基本オブジェクト指向で作られてるよ。
Linuxとかもそう。
関数ポインタ使ってポリモーフィズム実現するだけで
オブジェクト指向かよ
>>42 そういうことを言いたいのなら
おまえにとってオブジェクト指向に
必須な用件を言ってからにしなさい。
関数型言語もオブジェクト指向w
ポリモーフィズムできるからww
関数型もオブジェクト指向もちゃんと定義されてないから、
議論にならんよ。
低脳だからそんなこともわからんのだろうけど。
[F1]キーを押したらヘルプが開くでしょ?
OCamlのOはObjectiveのOとか言っちゃダメなスレなんだろうか。
オブジェクト指向と関数型は対立概念じゃないから
比較するのはナンセンス。
手続き型と関数型は(あるいは命令型と宣言型は)
対立するけど、オブジェクト指向はどれとも対立しない
なぜなら未定義用語のバズワードだから
まだオブジェクト指向がわからない子がいるんだ
対立しないのはその通りだけど
複数の定義が混在してるせいで説明に困ると言うのが正しいかな
定義があやふやで何とでも言えるから
失敗したプロジェクトには「あれはオブジェクト指向じゃなかった(理解してなかった)」と言い、
成功したプロジェクトには「あれにはオブジェクト指向が使われてる」と言う。
その結果さらに定義があやふやになる。
いや流石に何とでもは言えないと思うが…
そもそも構造化と同じく、銀の弾丸じゃないんだから
使ったら失敗しないとか必ず成功するなんてことはないわけで。
だよな、ソフトウェアで銀の弾丸を名乗れる資格があるのは、C言語だけだもんな!
それ以前に比べてあまりに飛躍的だったので、
さらる躍進が有るはずだ、と、こぞって2匹目のドジョウを探したが、
いまだにあれほどの劇薬は見つかっていない。
次の方どうぞ
デザインパターンとUMLは銅の弾丸ぐらいでよいだろ。
鉄の弾丸は暴発の危険が高いからな
C言語はマニュアルのセダン
OO言語はオートマのワゴン、デザパタはカーナビ
関数型はヘリ
スクリプト言語は自転車
なるほど、誰も操縦できないわけですね>ヘリ
お前が使えない ≠ 皆が使えない
ヘリじゃなくて
ラジコンヘリだな
カメラを搭載して無人飛行させれば人の役に立つかもしれない
文系はこういう言葉遊びが好きだよな。
スクリプトは鉄道
関数型は宇宙ロケット
C言語は人生
C++は芸術
C#は文学
Obj-Cは筋肉
BASICはモラトリアム
Prologは国歌
Javaは神話
VBは現実
COBOLは経済
perlは葛藤
FORTHは感性
Pascalは哲学
FORTRANは楽園
Lispは政治
Rubyは宗教
Pythonはノーベル賞
Haskellは奇跡
65 :
uy:2012/06/13(水) 16:00:36.76
Cは妥協する生き方
C++は理想を求める生き方
C#は現実を認める生き方
JAVAは負け犬の中の勝ち組になろうとする生き方
Rubyは宗教徒としての生き方
Pythonは欲のない生き方
Lispは真理を求める生き方
ぶっちゃけどこをどう入れ替えても大差ない。
javascriptは?
ブラウザのヒモ男
69 :
uy:2012/06/16(土) 11:56:10.72
JavaScriptはヒモ
じゃあLuaは?
遊星からの物体X
golua
73 :
デフォルトの名無しさん:2012/07/09(月) 22:08:21.98
C言語自体が、命令形と関数型のハイブリッドのように見える。
関数名を変数や定数のように扱える・・。高階関数使える。
マルチパラダイムという用語が無い時代の、マルチパラダイムの先駆者だと思う。
> 高階関数
は? Cのどこに高階関数が?
いずれにしろ、関数値じゃなくてただのポインタだし、
そんなことでCを先駆者とか言ったらLispの立場がない。
C言語は、冗談であっても関数型っぽいコードを書けたりする。
手続き型でも関数型っぽいコードを書けるのではなく、C言語だから可能なこと。
C言語は、Basic,Pascal等、同時代の他の言語より、関数型寄りだとおもう。
Basic,Pascalは後でポインタが使えるように拡張されたけれども、C言語の影響。
C言語は、アルゴル+高級アセンブラ+関数型のマルチパラダイム言語とみなせる。
C言語の関数と変数には、アドレスを持つという共通点があり、アドレスを持つ=ポインタとして扱える。
関数を変数と同じように使える=第一級関数。
ポインタは高級アセンブラとしての側面だけど、結果として関数型としての側面にもなった。
C言語は、Lispの影響を受けているとおもうよ。
だから、「関数へのポインタ」は「関数ではない」の。
尋ねたいんだけど、
具体的に、Algolにあって、Pascalにない機能の、どれがC言語に影響してる?
現在の多くの「手続き型言語」は、既にLisp並に関数型なのだ。
JavaScriptやRubyだけではなく、C++やC#でさえ、そうだ。
Javaですら、近い将来、Lisp並に関数型的になるだろう。
だから、Lispは関数型ではないと言われたりする。
手続き型に関数型の要素がどんどん入り込んだ結果だけど、
それはいつ始まったか?。最近(2000年前後以降)のことのように言われるけれども、そうではなく・・
もっとずっと昔から。具体的にはC言語から、その動きは始まったように思える。
> 手続き型に関数型の要素がどんどん入り込んだ結果だけど、
> それはいつ始まったか?
Lispから。以上。
Lispの元はFortran用のリストライブラリだよ。
> 具体的に、Algolにあって、Pascalにない機能の、どれがC言語に影響してる?
この質問への返事は?
> C言語は、アルゴル+高級アセンブラ+関数型のマルチパラダイム言語とみなせる。
このテーゼの裏付けを求めたんだけど。
>>76 横レスだが、
名前呼び出し→マクロ
関数と手続きを区別しないこと
>>76 アルゴルは、単に構造化言語の代表として書いただけ。
「構造化プログラミング+アセンブラプログラミング+関数プログラミング」の
マルチパラダイムと書けばよかったかな。
アルゴルや初期のパスカルを「純粋手続き型言語」だとすると、
C言語は多少関数型の要素が入り込んでいる。
そして、C言語の開発者自身、それを意識していたように見える。
戻り値のない手続きを「関数」と呼び、その戻り値の型をvoid型としたり。
Lispや関数型でいう unitとか()とかnilとかのように扱おうとしたんだとおもう。
void型は、結局は戻り値が存在しないことの記号に過ぎなかったけれども。
ALGOLはprocedure定義で返値の型名を書かないとCで言うところのvoid型を返す関数になる。
ALGOLとCの共通点:
入出力ライブラリが言語に組み込まれてるのではなくてライブラリ提供。
初期は処理系によって別の入出力ライブラリインターフェースが違った。
>>79 違う。
マクロは言語処理系の本体の処理よりも前に置換がおこなわれるもの。
名前呼び (call by name) は言語本体の引数評価の方式。
ttp://web.sfc.keio.ac.jp/~hattori/prog-theory/main_c6_s2.html#doc1_call-by-name > 関数と手続きを区別しないこと
意味不明
> アルゴルや初期のパスカルを「純粋手続き型言語」だとすると、
なんで比較対象がFortranやCobolじゃないのかわかりません。
あなたの理屈なら、Algolだって「多少関数型の要素が入り込んでいる。」と言えます。
実際、Algol(やPascal)では関数定義のネストがあるので、むしろCより関数型的です。
> unitとか()とかnilとかのように
void型の値、というものが無いので、ぜんぜんそのように使えません。
> 扱おうとしたんだとおもう。
思えません。
>>82 一部のALGOLの処理系は、
Cのマクロ処理のように文字列展開して、
名前渡しを実現していた。
サンクが考えだされたのは少し後。
手続き型とされる言語は、いつのまにかLispのようなことができるようになっていた。
そして、結果的に、Lispは手続き型言語に分類されるようになった。
私の主張したいことは、次の2つです。
・手続き型言語と関数型言語の間には、これといった断絶はない。
・手続き型言語が、Lispや関数型言語の特徴を取り込み始めたのは最近ではない。
>なんで比較対象がFortranやCobolじゃないのかわかりません。
確かに本当の意味で純粋手続き型というのは、FORTRANやCOBOL、それに古典的なBASICだろう。
構造化と関数型の概念をわけて考えたかったので、ALGOL/PASCALを純粋手続き型に分類したけれども・・。
手続きに名前をつけて、他のコードから名前呼び出し可能にした時点で、ラムダ式っぽくなり始めてているし関数型に近づいている。
関数定義のネストはさほど関数型的とは思えないな・・。ALGOLの場合、名前渡しは関数型的な感じがする。
> 手続きに名前をつけて、他のコードから名前呼び出し可能にした時点で
call by name は「手続きに名前をつけて、他のコードから名前呼び出し可能に」
することではない。
ラムダ式はむしろ「名前を付けない手続き」を作る方法。
> 関数定義のネストはさほど関数型的とは思えない
SICP 読め。
87 :
uy:2012/07/19(木) 15:54:15.73
私のdebian環境で素数ベンチするとこんな感じ。
perl v5.10.1 0m460.331
node v0.8.2 0m448.505
gcc version 4.4.5 0m344.535
PyPy 1.9.0 0m306.669
ruby 1.8.7 0m242.838
Python 3.1.3 0m224.638
Python 2.6.6 0m163.061
PHP 5.3.3-7+squeeze13 0m163.867
ruby 1.9.3p194 0m0.912
.
>>37 > 今時、人間が機械のコード生成に勝てるのはごく特殊な場合だけ。
最近のプログラマが堕落しすぎなだけじゃないかと思うよ(´・_・`)
機械にやらせることこそプログラマの勝利だろ
>>89 コンパイラに勝つアセンブラ書いてるプログラマなんて仕事サボりすぎだろ。
AESのCPU特化のコード書くとか特殊な仕事ばっかりやってるんでもない限り。
89は、NP完全問題をカンで解ける超人なんだろう
93 :
uy:2012/07/23(月) 04:52:59.73
なんで当たり前のことが分からないんだろうな
自分は出来ないからって周りも出来ない扱い
超人()とか、
じゃあコンパイラの最適化作ってる奴ら人間じゃないのかっていう感じ
バカばっか
大津いじめ担任 韓国語教育に熱心だったが現在生徒に無関心
「NP完全問題をカンで解ける」の意味すらわからないのかうゆは。
>>94 ν速に帰れカス
え
>>93 最適化もアセンブラ一辺倒じゃねぇだろw
開発効率ってのはいろんなトレードがあるんだよ。
98 :
uy:2012/07/27(金) 20:12:10.68
最高速度についてかたってるのに
何で開発効率なんて言葉が出てくるんだよwwwwwwwwwwwwww
話にならない
バカは死ね
99 :
デフォルトの名無しさん:2012/08/10(金) 03:24:33.42
病院に行くと
100 :
デフォルトの名無しさん:2012/08/10(金) 15:49:21.75
javaって遅いから嫌い
下手に書くと1000倍とか遅くなるからな。
そりゃなんであれ、遅くなるような下手な書き方はあるし。
ついでに言うなら定数倍だったら問題ないことも多い。
androidもいまだにNDKの呪縛から開放されないし
昔からネイティブ最高なのは変わらない
コストいくらでもかけていいならな。
要求を読み取れない人は無駄に最速選ぶしかないな。
メモリリーク探すのが好きだなんてドMだな
107 :
デフォルトの名無しさん:2012/09/09(日) 10:07:56.55
関数型ってよくメモリリークしない?
クロージャがたくさん溜まることはあるけど、「メモリリーク」はしないよ
実装がゴミならする可能性はあるだろ
> 実装がゴミなら
あらゆるものについて言える論理じゃねーかwwwwww