トップページ⇒tech
681コメント180KB

最速スクリプト言語決定戦!

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
おまいら、そろそろ最速スクリプト言語がどれなのか決定しませんか?
最初のお題は「たらいまわし関数」でGO
0002デフォルトの名無しさんNGNG
Haskell
0003デフォルトの名無しさんNGNG
Lazyなやつは反則
0004デフォルトの名無しさんNGNG
言語仕様的にはRubyでしょ。
どこかのコピペにもあったけど、新しいだけあって
他の言語を凌駕してる。
0005デフォルトの名無しさんNGNG
RubyはPythonやPerlに負けてなかったか?
http://www.bagley.org/〜doug/shootout/bench/ackermann/
0006デフォルトの名無しさんNGNG
http://www.bagley.org/%7Edoug/shootout/bench/ackermann/
こっちだな。
0007デフォルトの名無しさんNGNG
Rubyは言語仕様が基地外じみていることが賞賛されるのに、
C#は言語仕様がJavaより複雑だとして非難されている。
これはつまり、Ruby信者とJava厨の声が大きいということでしかない。
そういう基地外の妄想を真に受けないこと。
0008デフォルトの名無しさんNGNG
おまいら、速さを語って下さい。
0009デフォルトの名無しさんNGNG
本当に早さではなく速さなのか?
だったら語ることは何もない。
0010デフォルトの名無しさんNGNG
H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P!
H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P!
H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P!
H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P!
H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P!
H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P!
H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P!
H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P! H・S・P!
0011デフォルトの名無しさんNGNG
>>9
スクリプトの実行速度比較。
Rubyは1.6.8だから遅い。1.8は速い、と言っている
信者も居るので、おまいら実測で語って下さい、と。
0012デフォルトの名無しさんNGNG
Ocaml
0013デフォルトの名無しさんNGNG
>>6
これ「たらいまわし」じゃないし。
0014たらいまわし関数NGNG
int tarai(int x, int y, int z)
{
if (x <= y) return y;
return tarai(tarai(x - 1, y, z),
tarai(y - 1, z, x),
tarai(z - 1, x, y));
}
0015デフォルトの名無しさんNGNG
開発の期間、実行開始までの時間、付属ライブラリの効率、
何が最速なんだか。
0016デフォルトの名無しさんNGNG
>>1
スクリプト言語ってのはお手軽に処理を自動化するためのもんであって
よっぽどの事がない限り速度なんて問題にならんけどな。
0017デフォルトの名無しさんNGNG
>>14
それ再帰。
0018デフォルトの名無しさんNGNG
このスレは実行速度のみでスクリプト言語を評価するスレです。
0019デフォルトの名無しさんNGNG
それなら圧倒的にperlだな。
唯一parrotが動く言語だから
0020デフォルトの名無しさんNGNG
開発速度
・速い … Perl
・遅い … C
実行速度
・速い … C
・遅い … Perl

以上。〜終了〜
0021デフォルトの名無しさんNGNG
Cはスクリプト言語じゃねぇっす。
0022デフォルトの名無しさんNGNG
Lispは?
00231NGNG
LispはOK。
Schemeも参戦可。
ただしネイティブコンパイルは認めない。
0024デフォルトの名無しさんNGNG
もう>>19で結論は出てるだろ
さっさと終了しろ。
0025デフォルトの名無しさんNGNG
どう考えてもschemeだな。
0026デフォルトの名無しさんNGNG
>>24
これだからperl厨は。

マシン語。終了。
0027デフォルトの名無しさんNGNG
Gaucheマンセー
0028デフォルトの名無しさんNGNG
>>17
こいつ何言ってんの?
0029デフォルトの名無しさんNGNG
Perl で Inline:::C 使うのが早いんじゃない。
実行速度が必要ならスクリプト言語使わんつーの。
0030デフォルトの名無しさんNGNG
>>29
オーバーヘッドがものすごかったり。
0031デフォルトの名無しさんNGNG
Ocamlなのは明らかなのにこれ以上何を語るの?
0032デフォルトの名無しさんNGNG
Perl最強!
0033デフォルトの名無しさんNGNG
この板caml信者多いな。学生だらけってことか。
0034デフォルトの名無しさんNGNG
ネイティブコンパイル不可なのでOcamlが本当に最速になるかどうか・・・。
The Great Computer Language Shootoutのページには出てない早い処理系が
ある言語もあるしね。

0035デフォルトの名無しさんNGNG
ていうか>>1なんか無視してコンパイルありで最速言語の話にしよう。
0036デフォルトの名無しさんNGNG
>>35
機械語
で終了。
0037デフォルトの名無しさんNGNG
機械語なんて書けねえだろ!高級言語オンリー!
つーわけでC。

*******************************************

           終       了

*******************************************
0038デフォルトの名無しさんNGNG
Cは低級言語。



***********よって再開*************
0039デフォルトの名無しさんNGNG
高級言語の定義すら知らない馬鹿が一匹
0040デフォルトの名無しさんNGNG
>>39
いや、あってるだろ。

>>38にとってCは理解しがたいコンピュータよりの言語だと言うだけの話だ。

そしてそれは一般人から見れば正しい見解であると思うが。
0041デフォルトの名無しさんNGNG
一般人って非プログラマのこと?
そんな視点に高級低級の定義を任せるのか?
0042デフォルトの名無しさんNGNG
>>38-39
新説を述べるときは説明責任を果たせ。
00431NGNG
おまいら、スクリプト言語の速さについて語ってください。
0044デフォルトの名無しさんNGNG
Faster than a bullet
0045デフォルトの名無しさんNGNG
>>41
それじゃネタ振りとして>>6のサイトにある benchmark を最新の実装でテスト
して報告して下さい。話はそれから。
00461NGNG
じゃ、>>41さん、おながいします。

私の見たい対戦カード、

 ピュアOOPL頂上対決:Ruby vs. Smalltalk
 関数型真の頂上対決:Ocaml vs. Scheme (←SchemeはGaucheで)
 次世代VM対決:Parrot vs. RubyVM (まだ無理か)

 
0047デフォルトの名無しさんNGNG
| ピュアOOPL頂上対決:Ruby vs. Smalltalk
Smalltalk

| 関数型真の頂上対決:Ocaml vs. Scheme (←SchemeはGaucheで)
Haskell

|次世代VM対決:Parrot vs. RubyVM (まだ無理か)
どっちも vaporware なので引きわけ
0048デフォルトの名無しさんNGNG
>>46
> 関数型真の頂上対決:Ocaml vs. Scheme (←SchemeはGaucheで)
Haskell とか Clean では無い訳ね?
00491NGNG
>>48
Lazyな奴は階級が違うという認識で・・・。
00501NGNG
じゃあエキジビジョンマッチ:Haskell vs. Cleanもキボンヌ。
005145NGNG
あー間違えた。
s/>>41/>>43/
0052デフォルトの名無しさんNGNG
>>51
エスケープしろよ・・・
00531NGNG
え、(;´ Д`)オレ?
0054デフォルトの名無しさんNGNG
仕方ないのでちっとも最新の実装じゃないが晒す。

tarai(12,6,0)の結果
(Rubyを1.0とした時の相対速度。小さいほど速い。)

Python2.2.2: 0.50
Ruby1.6.8:  1.00
Perl5.8.1:  1.12
CLISP2.29:  1.80



・・・・・・Pythonマンセー。
0055デフォルトの名無しさんNGNG
12 6 0でたらい回すと俺のperlはコアダンプ吐いて死ぬ。
0056デフォルトの名無しさんNGNG
>>55
6 3 0でたらいまわせば?
0057デフォルトの名無しさんNGNG
なあ遅延評価とかいうのが鍵になってるそうだが、
そうするとはしょりのうまいスクリプトが一番早くなるのか?

まあ、それも早さなんだろうけど…
0058デフォルトの名無しさんNGNG
あらゆる場面で、ではないんだよな。
0059デフォルトの名無しさんNGNG
pikeっつうのもある

http://pike.ida.liu.se/
00601NGNG
>>57
小細工なしの素直なコードで速度を競うのが一応このスレの趣旨。
0061デフォルトの名無しさんNGNG
>>60
初めて聞いた。
0062名無しさん@EmacsNGNG
これをみると Lua ≒ Io < Perl < Python だな。
http://www.iolanguage.com/comparisons/Performance.html
0063デフォルトの名無しさんNGNG
Hspは?
0064デフォルトの名無しさんNGNG
>>63
HSPでもいいけど
そろそろPerlに移行したらどうだい?
HSP習得できるなら
CでもC++でも習得できると思うぞ。
言語は言われてるほどそんなに変わらないよ。
0065デフォルトの名無しさんNGNG
えーっとスレを精読した結論として、WSHが最速っていうことでo.k?
0066BARNGNG
BFだ! ハード実装されたBFが一番早い!!
http://pc2.2ch.net/test/read.cgi/tech/1036013915/
時代はシェル・スクリプト・アクセラレーター
0067デフォルトの名無しさんNGNG
アセより読みずらいBF、WhiteSpace等は無しでおねがいします
0068デフォルトの名無しさんNGNG
とりあえず、ここで語ってる人って、
それぞれの言語使った事あるのかな?
漏れはPerlもHSPもRubyも使ったけど
一番、(・∀・)イイ!! と思った言語は、

 l i n g o

・・・ああ、でも最速ではないですね。ゴメソ
0069デフォルトの名無しさんNGNG
Pikeなら使ってるが、正直英語のドキュメントすらかなり不足してる上に、
日本語の文献となると0ではない、つーレベルなんで勧めはしないな。
あと、正規表現まわりはかなり貧弱。

まぁ、画像まわりのライブラリが異常に強力だったりするが。
00701NGNG
おまいら、マターリ話してないで、たらいまわしてください。
0071デフォルトの名無しさんNGNG
だったらテメーがコード書けや。人任せにすんなヴォケ。
0072デフォルトの名無しさんNGNG
ここは、1がぜんぶやるスレです
00731NGNG
>>71
( ´ ∀`)>>54は漏れ・・・・。

>>72
まだ自作自演しなきゃならないのか・・・。
0074デフォルトの名無しさんNGNG
ghc のある Haskell が最速ってことで。
0075デフォルトの名無しさんNGNG
変わったとこで Strongtalk (強い型付きの Smalltalk )

Tarai >> x: x <Int> y: y <Int> z: z <Int> ^ <Int>
 x <= y ifTrue: [^ y].
 ^ self
  x: (self x: x-1 y: y z: z)
  y: (self x: y-1 y: z z: x)
  z: (self x: z-1 y: x z: y)

Time millisecondsToRun: [Tarai x: 12 y: 6 z: 0]

=> 0.27 / (ruby 1.8.0 (2003-08-04) [i386-cygwin])
0076デフォルトの名無しさんNGNG
>>75
一桁間違えた…。

=> 0.027 / (ruby 1.8.0 (2003-08-04) [i386-cygwin]
0077デフォルトの名無しさんNGNG
>>75
対Ruby(1.8)比で0.27か。
Strongtalkって知らなかったけど結構速いね。
0078デフォルトの名無しさんNGNG
なに?0.027ですと?
爆速ですな。
0079デフォルトの名無しさんNGNG
Shootoutのページの数値から類推するにStrongtalkはOcamlと
いい勝負しそうな予感。
0080デフォルトの名無しさんNGNG
既出だけど比較のため。
GNU CLISP 2.31 (2003-09-01) (Common Lisp インタープリタ)

(defun tarai (x y z)
 (if (<= x y)
  y
  (tarai
   (tarai (1- x) y z)
   (tarai (1- y) z x)
   (tarai (1- z) x y))))

(time (tarai 12 6 0))

=> 1.8 / (ruby 1.8.0 (2003-08-04) [i386-cygwin])
0081デフォルトの名無しさんNGNG
Gauche 0.7.3 (Scheme インタープリタ)

(define (tarai x y z)
(if (<= x y)
  y
  (tarai
   (tarai (- x 1) y z)
   (tarai (- y 1) z x)
   (tarai (- z 1) x y))))

=> 0.45 / (ruby 1.8.0 (2003-08-04) [i386-cygwin])
0082デフォルトの名無しさんNGNG
ruby 1.00 (ruby 1.8.1 (2003-12-25) [i386-mswin32])
gosh 0.31 (gauche 0.7.1)
petite 0.14 (petite chez scheme 6.0a)
0083デフォルトの名無しさんNGNG
VisualWorks 7.1 (XEROX Smalltalk-80 の正統な継承者)

Tarai class >> x: x y: y z: z
 x <= y ifTrue: [^ y].
 ^ self
  x: (self x: x-1 y: y z: z)
  y: (self x: y-1 y: z z: x)
  z: (self x: z-1 y: x z: y)

Time millisecondsToRun: [Tarai x: 12 y: 6 z: 0]

=> 0.02 / (ruby 1.8.0 (2003-08-04) [i386-cygwin])


Squeak 3.6 (XEROX Smalltalk-80 の派生物の Apple Smalltalk の派生物)
(VisualWorks とコード同じ)

=> 0.2 / (ruby 1.8.0 (2003-08-04) [i386-cygwin])

もっさりとした印象の VisualWorks が Strongtalk 以上のパワーを発揮したのは
意外でした。Squeak はやはり、Smalltalk 勢の中ではへたれてる。
0084デフォルトの名無しさんNGNG
(define *memorize-table* '())
(define (memorize proc)
 (lambda args
  (let ((x (assoc args *memorize-table*)))
   (if x (cdr x)
     (let ((result (apply proc args)))
      (set! *memorize-table* (cons (cons args result) *memorize-table*))
      result)))))

という感じのマクロ用意して

(define tarai
 (memorize ;; ←これ追加
  (lambda (x y z)
   (if (<= x y) y
    (tarai
     (tarai (- x 1) y z)
     (tarai (- y 1) z x)
     (tarai (- z 1) x y))))))

(tarai 12 6 0) ;; => 12
でほぼゼロになる。
まあ、メモ化は無しだよね。
0085デフォルトの名無しさんNGNG
マクロじゃなくて関数だった。
0086デフォルトの名無しさんNGNG
memoizeは参考記録ということで。
Smalltalkって結構速いなぁ。見直した。
0087デフォルトの名無しさんNGNG
Self 4.1.5

_AddSlots:
(| taraiX: x Y: y Z: z = (
x <= y ifTrue: [^ y].
^ taraiX: (taraiX: x-1 Y: y Z: z)
Y: (taraiX: y-1 Y: z Z: x)
Z: (taraiX: z-1 Y: x Z: y)) |)

[taraiX: 12 Y: 6 Z: 0] time

=> 0,45 / (ruby 1.8.1 (2003-12-25) [powerpc-darwin])
0088デフォルトの名無しさんNGNG
>83
Squeak はともかくVisualWorksやStrongtalk はネイティブ化してるでそ
0089デフォルトの名無しさんNGNG
>>88
てへっ。
0090デフォルトの名無しさんNGNG
Lua 5.0 Copyright (C) 1994-2003 Tecgraf, PUC-Rio

function tarai(x, y, z)
if x <= y then return y else return tarai(
tarai(x - 1, y, z), tarai(y - 1, z, x), tarai(z - 1, x, y)) end end

=> 0.30 / ruby 1.8.1 (2003-12-25) [i386-mswin32]
0091デフォルトの名無しさんNGNG
∩(´・ω・`)∩たらいまわせ!
0092デフォルトの名無しさんNGNG
Objective Caml version 3.07+2

let rec tarai x y z =
  if x <= y then y
  else tarai (tarai (x - 1) y z) (tarai (y - 1) z x) (tarai (z - 1) x y);;
Printf.printf "%d\n" (tarai 12 6 0)

=> 0.036 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]

Gauche scheme interpreter, version 0.7.3
(define (tarai x y z)
  (if (<= x y)
    y
    (tarai (tarai (- x 1) y z)
      (tarai (- y 1) z x)
      (tarai (- z 1) x y))))
(tarai 12 6 0 )

=> 0.097 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]

Gaucheの結果が>>82とかなり違うなぁ。
噂に違わずOcaml速えぇ。
0093デフォルトの名無しさんNGNG
ところで、

ruby 1.8.1 (2003-12-25) [powerpc-darwin]
=> 0.99 / ruby 1.6.8 (2002-12-24) [powerpc-darwin7.0]

でした。
たらいまわし関数については1.6と1.8の実行速度に大きな差はないようだ。
009482NGNG
参考までに(ruby 1.8.1 (2003-12-25) [i386-mswin32] )

自作Cインタプリタ 0.029 (直接ネイティブコードに翻訳)
VC7         0.011  (/O2オプションのみ)

結局、0.1より下回るにはJITかネイティブへ変換するしかなさそうで、
VM駆動系は0.3〜0.2なら速い部類、Cのswitch-caseを使った実装では
0.2辺りが多分限界じゃないかと思う。ネイティブ変換しない形で速度を
追求するならforthやpetite-scheme、qscheme等が採用している、
threaded codeの形式にするしかないんじゃないか?
とか書いてたら、

>>92
>Gauche scheme interpreter, version 0.7.3
>=> 0.097 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]
なんでこんなに違いが・・
OS・環境にかなり左右されるのか、それとも7.1->7.3で何かあるのか。
009592NGNG
>>81はGauche0.7.3で0.45なのでバージョンよりも
プロセッサ(i386 vs PowerPC)の違いが大きいみたいだな。

>>92のOcamlはネイティブコンパイルしてないし、
GaucheもVMだから、PowerPC系では早いVMなら
0.1を切ることができるみたいなり。

0096デフォルトの名無しさんNGNG
ついでにForthでやってみた。
gforth 0.6.2
=> 0.05 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]

VM系ではやはりOcamlが最速か?
0097デフォルトの名無しさんNGNG
int tarai(int x, int y, int z)
 {
 if (x <= y) return y;
 return tarai(tarai(x - 1, y, z),
         tarai(y - 1, z, x),
         tarai(z - 1, x, y));
 }
丶────────────v──────────
   HEY! YO! slash !!
                ∧_∧  sh !! sh !!
          bin !   (´∀` )     
            ____○___つヾ__
          /⊂二⊃/†::† /⊂二⊃ ./|
       | ̄::: ̄.| ̄ ̄ ̄| ̄ :::  ̄ | .|
       | TARAI | ̄ ̄ ̄|MAWASHI.| .|
0098デフォルトの名無しさんNGNG
CLISP の結果ってバイトコンパイルしたやつ? VM の速度比較なら VM が
実行するバイトコードで計測してあげないと。実際、ロード時に勝手に
コンパイルするオプションがあるわけで、コンパイルした結果つかわない
と気の毒な気がするんだが…。(Ruby が無いので自分では比較できん)
009982NGNG
>>95
自分もocaml入れて試してみた。
http://caml.inria.fr/distrib/ocaml-3.07/ocaml-3.07pl2-win-msvc.exe
ここのバイナリからocaml.exe
=> 0.12 / ruby 1.8.1 (2003-12-25) [i386-mswin32]

petite-schemeより少し速い、でもPowerPC程の差はなかった。
やっぱりOSかプロセッサに依存してるみたいね。
つーかRubyがよっぽどヘタる実装なのか。
それにしてもOCaml速えーな。
0100デフォルトの名無しさんNGNG
実行時バイトコードコンパイルするスクリプト処理系だとRuby比0.2ぐらいはでるってことは、
RubyもVM実装したら最大5倍速くなる可能性があるってことか?

ちなみにPike(7.4.31-Win32-Windows-NT-5.1.2600-i86pc)
=> 0.159 / ruby 1.8.1(2003-12-25)[i386-mswin32]
0101デフォルトの名無しさんNGNG
>>99
こんなのもある。
プロセッサごとにdirect,indirect,switchなどのthreaded VMの性能比較。

http://www.complang.tuwien.ac.at/forth/threading-v1/
http://www.complang.tuwien.ac.at/forth/threading/

Pentium系プロセッサはdirect threadedにしてもあまりVM性能があがらないのかな。
0102デフォルトの名無しさんNGNG
CLISPをコンパイルしてやってみた。

GNU CLISP 2.29 バイトコードコンパイル済み
=> 0.14 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]

かなり速くなるね。
0103デフォルトの名無しさんNGNG
Rubyに 勝ったら コイツで 報告♪
   Rubyに 負けたら タライが 落ちる♪
丶────────────v──────────
   HEY! YO! slash !!
              ∧_∧     sh !! sh !!
        bin !   (´∀` )     
            ____ゝ つ_つソ____
          /⊂二⊃)).†::†../⊂二⊃))/|
       | ̄::: ̄.| ̄ ̄ ̄| ̄ :::  ̄ | .|
       | TARAI | ̄ ̄ ̄|MAWASHI.| .|
0104102NGNG
ちなみにロード時コンパイルオプションでやってみると
0.15 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]
でした。
見直したぜ、CLISP。
010582NGNG
自分もCLISP試してみた。(clisp-2.32-win32.zip)

(defun tarai (x y z)
 (if (<= x y) y
  (tarai
   (tarai (- x 1) y z)
   (tarai (- y 1) z x)
   (tarai (- z 1) x y))))
(compile 'tarai) ;; ←これだけで良い?
で、
=> 1.8 / ruby 1.8.1 (2003-12-25) [i386-mswin32]
だった。
ppcは不思議な石だな・・

ところで、taraiだけベンチって意味あるのか疑問に思えてきたが。
010699NGNG
ヤパーリなぁ。Lisp の中では遅いと言われているけどいくらなんでもそこまで
遅いとは思わなかったんで。もつかれさまですた。
010782NGNG
失礼
>>105のCLISPの1.8は0.18間違いでした。
0108104NGNG
ちなみに
Petite Chez Scheme Version 6.9b
0.089 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]

ですた。

>>105
漏れのは起動時に-Cオプションをつけただけです。
0109デフォルトの名無しさんNGNG
BrainFuckでtaraiって書けるの?
0110デフォルトの名無しさんNGNG
Python 2.3.3 で試した。

=> 0.416 / ruby 1.8.1 [i386-cygwin]

ですた。まぁまぁの結果。
0111デフォルトの名無しさんNGNG
gforth-fast 0.6.2

: tarai { x y z }
  x y <=
  if
    y
  else
    x 1- y z recurse
    y 1- z x recurse
    z 1- x y recurse recurse
  then ;
12 6 0 tarai . cr bye

=> 0.02 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]

キタ━━━━━━(゚∀゚)━━━━━━!!
0112デフォルトの名無しさんNGNG
丶────────────v──────────
              |l|___ll||
            |l ./カナダライ\
             .|/ ̄ ̄ ̄\| <<
             \__∧/从
        GON !   (´Д` ;)
            ____γ___つソ___
          /⊂二⊃).∪::†./⊂二⊃))/|
       | ̄::: ̄.| ̄ ̄ ̄| ̄ :::  ̄ | .|
       | TARAI | ̄ ̄ ̄|MAWASHI.| .|
0113デフォルトの名無しさんNGNG
カナダドライ
0114デフォルトの名無しさんNGNG
本命のHaskellが出てないね。
他はだいたい出揃ったかな。
0115デフォルトの名無しさんNGNG
>>114
>>49
0116デフォルトの名無しさんNGNG
Hspは?
0117デフォルトの名無しさんNGNG
・・・ここにおいておきますね。

PHP 4.3.2 Zend Engine v1.3.0

<?php
function Tarai($x, $y, $z){
 if($x <= $y) return $y;
 return Tarai(Tarai($x - 1, $y, $z), Tarai($y - 1, $z, $x), Tarai($z - 1, $x, $y));
}
$r = Tarai(12,6,0);
print "Tarai(12,6,0): $r\n";
?>

1.7 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]
0118デフォルトの名無しさんNGNG
もうたらいまわしはいいよ。
0119デフォルトの名無しさんNGNG
C++インタプリタとかいうCINTとかROOTとか
試して欲しいなあ。
0120デフォルトの名無しさんNGNG
藻前がやれ>119
0121デフォルトの名無しさんNGNG
>>111
forthはthenの位置とかrecurseがキモイね
相互再帰とかどうなんの?
0122デフォルトの名無しさんNGNG
>>120
やりました。スタックオーバーフローで死にました。


再帰じゃないテスト無いの?
0123デフォルトの名無しさんNGNG
Nested Loops
http://www.bagley.org/~doug/shootout/bench/nestedloop/

これなんてどうだろう?
N = 16 で。

# ruby
n = 16
x = 0
n.times do
n.times do
n.times do
n.times do
n.times do
n.times do
x += 1
end
end
end
end
end
end
puts x
0124デフォルトの名無しさんNGNG
>>119
UnderC(1.2.9w)(Win32)
=> 0.266 / ruby 1.8.1(2003-12-25)[i386-mswin32]

…マイナーすぎか。
0125デフォルトの名無しさんNGNG
>>123
| n x |
n := 16.
x := 0.
n timesRepeat: [
 n timesRepeat: [
  n timesRepeat: [
   n timesRepeat: [
    n timesRepeat: [
     n timesRepeat: [x := x + 1]]]]]].
^ x

Squeak 3.6
 => 0.58
/ ruby 1.8.1 (2003-12-25) [i386-cygwin]
Strongtalk 1.1.1
 => 0.24 / 〃
VisualWorks 7.1
 => 0.03 / 〃
0126デフォルトの名無しさんNGNG
>>123 マクロ展開で時間を無駄遣いしてるがまー誤差だろ。
わざわざ Ruby インスコしちまったぜ。
(defmacro nest (N nest-level &body body)
(if (<= nest-level 1)
`(loop repeat ,N do ,@body)
`(loop repeat ,N do (nest ,N ,(1- nest-level) ,@body))))

(defun test (&aux (x 0))
(nest 16 6 (incf x))
(print x))

(test)

=> 0.165 / ruby 1.8.1 (2003-12-25) [i386-freebsd4.9]
0127デフォルトの名無しさんNGNG
何LISP?
0128126NGNG
>>127 スマソ一番大事な事を書き忘れたな…。Common Lisp 界最遅の CLISP タソです。
他のはコンパイラばっかなんで参戦できねー。
0129デフォルトの名無しさんNGNG
CMUCL の PYTHON なら良いんじゃない?
うちは Mac なので無理だけど。
0130デフォルトの名無しさんNGNG
CMUCL の Python は ネ イ テ ィ ブ コ ー ド コ ン パ イ ラ

0131デフォルトの名無しさんNGNG
php3,4,5 てどうよ。
0132デフォルトの名無しさんNGNG
>>126 ユーザビリティの低いクソコードじゃ速度で勝ってもしょうがないね
0133デフォルトの名無しさんNGNG
Self 4.2

_AddSlots: (|
 nestedLoops: n = (
  | x <- 0 |
  n do: [
   n do: [
    n do: [
     n do: [
      n do: [
       n do: [x: x+1]]]]]].
  ^ x) |)

[nestedLoops: 16] time

=> 0.055 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]
0134デフォルトの名無しさんNGNG
CLISP 2.32
マクロを使わずに命令的にそのまま。

(defun nestedLoops (n)
 (let ((x 0))
  (loop repeat n do
  (loop repeat n do
  (loop repeat n do
  (loop repeat n do
  (loop repeat n do
  (loop repeat n do (incf x)))))))
 
x))

(time (nestedloops 16))
=> 5.05 / ruby 1.8.1 (2003-12-25) [i386-cygwin]

(compile 'nestedloops)
(time (nestedloops 16))

=> 0.19 / ruby 1.8.1 (2003-12-25) [i386-cygwin]
0135デフォルトの名無しさんNGNG
>>130
そうだったっけ? スマソ。
CMUCL はインタープリタ積んでるはずなんで、それ使ったラッテコとね。

ラッテコって何だろう・・・。
0136デフォルトの名無しさんNGNG
このスレのためにrubyインストールしたぜ。
0137デフォルトの名無しさんNGNG
Hspは?
0138デフォルトの名無しさんNGNG
自分でやれよ
0139デフォルトの名無しさんNGNG
spidermonkey

function tarai(x, y, z) {
   if(x<=y) return y;
   return tarai(tarai(x-1, y, z),
   tarai(y-1, z, x),
   tarai(z-1, x, y));
}
print(tarai(12,6,0));

=> 3.50 / ruby 1.8.1 (2003-12-25) [i386-win32]
0140デフォルトの名無しさんNGNG
>>6
mawkってperlより全然速いんだね。awkファンとして嬉しい。
perlより遅いという評価が定着したのはgnuのせいだ。
0141デフォルトの名無しさんNGNG
Objective Caml version 3.07+2

let n = 16
let rec loopF x = function 0 -> x | i -> loopF (x+1) (i-1)
let rec loopE x = function 0 -> x | i -> loopE (loopF x n) (i-1)
let rec loopD x = function 0 -> x | i -> loopD (loopE x n) (i-1)
let rec loopC x = function 0 -> x | i -> loopC (loopD x n) (i-1)
let rec loopB x = function 0 -> x | i -> loopB (loopC x n) (i-1)
let rec loopA x = function 0 -> x | i -> loopA (loopB x n) (i-1);;
Printf.printf "%d\n" (loopA 0 n)

=> 0.054 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]
0142デフォルトの名無しさんNGNG
一応CLISPとも比較
GNU CLISP 2.29 (-Cオプション)

(defmacro nest (N nest-level &body body)
(if (<= nest-level 1)
`(loop repeat ,N do ,@body)
`(loop repeat ,N do (nest ,N ,(1- nest-level) ,@body))))

(defun test (&aux (x 0))
(nest 16 6 (incf x))
(print x))

(test)

=> 0.13 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]
0143デフォルトの名無しさんNGNG
さらにgforthとも・・・。
gforth-fast 0.6.2

16 value n
: nestedloop
  0 n 0 do
    n 0 do
      n 0 do
        n 0 do
          n 0 do
            n 0 do
              1+
            loop
          loop
        loop
      loop
    loop
  loop
;
nestedloop . cr

=> 0.018 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]
0144デフォルトの名無しさんNGNG
lua

n = 16
x = 0
for i = 1, n do
for j = 1, n do
for k = 1, n do
for l = 1, n do
for m = 1, n do
for o = 1, n do
x = x + 1
end
end
end
end
end
end
print(x)


=> 0.228 / ruby 1.8.0 (2003-08-04) [i386-cygwin]
0145デフォルトの名無しさんNGNG
http://sheepman.parfait.ne.jp/20030418.html#p05
これのruby版が早過ぎるんだが、どういうことなんでしょう
ネエティブコンパイルしたのに勝ったんだが・・・
0146デフォルトの名無しさんNGNG
引数でかくすればきっと負けてくれるでしょう。
0147デフォルトの名無しさんNGNG
くやしくて、ネエティブコンパイラの方でも、同じことやらせたらruby版に勝てた
ruby版より行数膨らみすぎたけど。

遅延評価の一旦を垣間見た気がした
0148デフォルトの名無しさんNGNG
>>145
Ruby で速いなら、ほかのではもっと速い?

Squeak 3.6

Tarai class >> x: x y: y z: z
 x value <= y value ifTrue: [^ y value].
 ^ Tarai
  x: [Tarai x: [x value - 1] y: y z: z]
  y: [Tarai x: [y value - 1] y: z z: x]
  z: [Tarai x: [z value - 1] y: x z: y]

Time millisecondsToRun: [Tarai x: [64] y: [32] z: [0]]

=> 0.001 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]

速かった…(藁
0149デフォルトの名無しさんNGNG
>>148
yの評価を端折ればさらに3倍強(偶然?)。たぶんrubyも一緒。

Tarai class >> x: x y: y z: z
 | yValue |
 x value <= (yValue _ y value) ifTrue: [^ yValue].
 ^ Tarai
  x: [Tarai x: [x value - 1] y: y z: z]
  y: [Tarai x: [yValue - 1] y: z z: x]
  z: [Tarai x: [z value - 1] y: x z: y]
0150デフォルトの名無しさんNGNG
速度じゃないけど nested loop のソースを見ると >>142 のコードがイイね。
LISP カコイイ。
0151デフォルトの名無しさんNGNG
Python 2.3.3 (2003-12-18) [i386-mswin32]

from itertools import repeat
n = 16
x = 0
for i in repeat(None, n):
  for i in repeat(None, n):
    for i in repeat(None, n):
      for i in repeat(None, n):
        for i in repeat(None, n):
          for i in repeat(None, n):
            x += 1
print x

=> 0.677 / ruby 1.8.1 (2003-12-25) [i386-mswin32]

微妙・・・
0152デフォルトの名無しさんNGNG
>>150
マクロがないので、悔し紛れにクロージャで(^_^;)

VisualWorks 7.2nc

| nestedLoops x |
nestedLoops := [ : n : nestLevel : proc |
 nestLevel = 0
  ifTrue: [proc]
  ifFalse: [
   nestedLoops
    value: n
    value: nestLevel-1
    value: [n timesRepeat: proc]]].
x := 0.
(nestedLoops value: 16 value: 6 value: [x := x + 1]) value.
^ x

print it時にいろいろ叱られた末、速度も200%増しでショボーン
かえって分かりにくいし…
0153デフォルトの名無しさんNGNG
>>152
>>152
Squeakはブロックで再帰呼び出しができないので、メソッドで

Integer >> levels: n timesRepeat: aBlock
 self < 1 ifTrue: [↑ aBlock].
 ↑ self-1 levels: n timesRepeat: [n timesRepeat: aBlock]

| x |
x ← 0.
(6 levels: 16 timesRepeat: [x ← x + 1]) value.
↑ x

こちらはなぜかちょびっと速くなる。
0154R..yNGNG
>>152-153
マクロなど羨しがるな。みっともない。同じオブジェクト指向な言語として恥ずかしいぞ。
「ループを 6 回繰り返すコードを書け」と書ける事になんの意味があると言うのだ。
オブジェクト指向は構文抽象よりもはるかに高尚でエレガントなのだ。
マクロは使用法によらず常に悪である。なぜならば、マクロはつまりユーザビリティが低いのだ。
マクロを使うとコードはわかりにくくなるからだ。
0155デフォルトの名無しさんNGNG
馬鹿にはね。
0156デフォルトの名無しさんNGNG
def nest(n, nest_level, &body)
return body if nest_level < 1
nest(n, nest_level-1) {n.times(&body)}
end

x = 0
nest(16, 6) {x += 1}.call
puts x
0157デフォルトの名無しさんNGNG
それは「ループを書くコード」じゃなくてただの「ループするコード」だって
わかって書いてるの?どうでもいいけど Ruby が良いのはもう十分理解ましたので
勘弁してください。
0158デフォルトの名無しさんNGNG
なんでちょっとでも言語ネタが出ると Ruby の話になるんだろう。
だれかマイナー言語のベンチマークで本題に戻して〜
0159デフォルトの名無しさんNGNG
>>150
まくろって、つおい?

: nest { n d c }
  d 0 do
    n postpone literal 0 postpone literal postpone do
  loop
  c compile,
  d 0 do
    postpone loop
  loop
;

: nestedloop 0 [ 16 6 ' 1+ nest ] ;

nestedloop . cr


=> 0.010 / ruby 1.8.1 (2003-12-25) [powerpc-darwin]

16が即値で展開されるためさらに速くなった。
0160デフォルトの名無しさんNGNG
>>159は
gforth-fast 0.6.2
でつ。
0161デフォルトの名無しさんNGNG
∩(´・ω・`)∩アゲトキマスネ
0162デフォルトの名無しさんNGNG
(´・ω・`)アガッテナイシ
0163150NGNG
荒れてしまって申し訳ない。 >>159 さん自分は厨なので LISP も Forth もちゃんと触った
事はないので聞かれても…
0164デフォルトの名無しさんNGNG
>>151

def nested(n):
    x = 0
    i_r = range(n)
    for a in i_r:
        for b in i_r:
            for c in i_r:
                for d in i_r:
                    for e in i_r:
                        for f in i_r:
                            x += 1
    print x

じゃ駄目なの?

Python 2.3
=> 0.370 / ruby 1.8.1 (2003-12-25) [i386-mswin32]
0165151NGNG
>>164
おいらが浅はかだっただけでつ(´・ω・`)
0166デフォルトの名無しさんNGNG
gforthはnative並の速さだな
もしかして実行時コンパイル?
0167デフォルトの名無しさんNGNG
>>166
コンパイル時実行、
・・とForth界隈では呼ばれています。マクロじゃなくて。
でもこの「コンパイル」っていうのは、ForthではVMコード
生成のことを言ってるわけで、ネイティブコード生成ではないです。
gforth自体はVMで動作してます。

0168デフォルトの名無しさんNGNG
Forth ってすげぇ〜 VM 動作でこの速度かよ!! 恥ずかしながら
てっきり実行時にコンパイルしてるもんだと思ってた…

;; CMUCL で型指定付きでコンパイル
* (time (test))
; Evaluation took:
; 0.03 seconds of real time
; 0.023329 seconds of user run time
; 0.0 seconds of system run time
; 32,939,360 CPU cycles

;; インタプリタ起動時間込みでこれ.
$ time gforth-fast nest.f -e bye
16777216
gforth-fast nest.f -e bye 0.27s user 0.00s system 99% cpu 0.275 total
0169デフォルトの名無しさんNGNG
forth スゴイ
マジオススメ
と思ったけど日常生活で使うにはやはり厳しい…
0170デフォルトの名無しさんNGNG
cmuclはネイティブコンパイラですね。
ForthだとbigForthがネイティブコンパイルできるんですが、
まあ、スレ違いということで。。。。
0171デフォルトの名無しさんNGNG
ディスコンパイルすればちゃんとVMとして残ってるのがわかる。
see nestedloop
: nestedloop
0 <4212491> <16> 0
DO 16 0
DO 16 0
DO 16 0
DO 16 0
DO 16 0
DO 1+
LOOP
LOOP
LOOP
LOOP
LOOP
LOOP ; ok

ただしプリミティブを見るとnativeコードになってる
see 1+
Code 1+
( $401ABB ) inc ecx \ $41
( $401ABC ) add ebx , # 4 \ $83 $C3 $4
( $401ABF ) jmp dword ptr FC [ebx] \ $FF $63 $FC
end-code

この最後の2行に注目すると、
( $401ABC ) add ebx , # 4 \ $83 $C3 $4
( $401ABF ) jmp dword ptr FC [ebx] \ $FF $63 $FC

direct threaderd codeという方法を使ってるのがわかる。(ebxがpcに相当)
0172デフォルトの名無しさんNGNG
綴り間違えた
s/threaderd/threaded/
0173159NGNG
ちなみにgforth0.6以降は、

>New threaded code execution method: primitive-centric (allows the following),
>hybrid direct/indirect threaded (easier portability), with dynamic superinstructions
> (typical speedup on Athlon: factor 2).

と書かれていてprimitive-centricという新しい手法を使っているらしい。
(詳細不明。。)
0174デフォルトの名無しさんNGNG
正直、動的型な言語だとまず型チェックとか入るから
いきなりinc ecxとか実行でけるforthがうらやましい。
つーことはecx何某はスタックトップの演算ということかな。
(あんま知らないので間違ってたらすまそ)
0175デフォルトの名無しさんNGNG
ecxはレジスタらしいね。
スタックトップ(TOS)をレジスタに割り当てるのはVMの高速化の常法。
0176デフォルトの名無しさんNGNG
>>170
そうです。型指定しないと generic-function (bignum かもしれないんで)
呼んじゃうので forth より遅かったです。でも良く考えたら最適化コンパイラ
じゃ構造がかわっちゃうかもしんないから >>171 を見てもそもそも比較に
なんないっすね…。
0177デフォルトの名無しさんNGNG

void main() {
int n=16;
int x=0;
int a,b,c,d,e,f;
for (a=0; a<n; a++){
for (b=0; b<n; b++){
for (c=0; c<n; c++){
for (d=0; d<n; d++){
for (e=0; e<n; e++){
for (f=0; f<n; f++){
x++;
}
}
}
}
}
}
printf("%d\n", x);
}

cint
=> 0.32 / ruby 1.8.1 (2003-12-25) [i386-mswin32]
0178デフォルトの名無しさんNGNG
あ、今Hspで動作計測したんだけど
たぶん一番早いよコレ。マジすごすぎだわ。
諸事情によりくわしいことはいえないんだけどどれよりも早かった。ほんと。
0179デフォルトの名無しさんNGNG
かんじおべんきょうしろ。
0180デフォルトの名無しさんNGNG
あ、今BrainFuckで動作計測したんだけど
たぶん一番早いよコレ。マジすごすぎだわ。
諸事情によりくわしいことはいえないんだけどどれよりも早かった。ほんと。
0181デフォルトの名無しさんNGNG
Haskellをリクエストしている人がいたので参戦。
tarai (640, 320, 0)

module Main where
tarai :: Int -> Int -> Int -> Int
tarai x y z
  | x <= y  = y
  | otherwise = tarai (tarai (x - 1) y z) (tarai (y - 1) z x) (tarai (z -1) x y)
main = print $ tarai 640 320 0

ghc -O2 tarai.hs
./a.out  0.00s user 0.01s system 105% cpu 0.017 total

runhugs tarai.hs
runhugs tarai.hs  3.17s user 0.12s system 89% cpu 3.671 total
# やっぱりhugsは遅い。
0182デフォルトの名無しさんNGNG
ちなみに
http://sheepman.parfait.ne.jp/20030418.html#p05
のRuby版は(620, 320, 0)では終わらない。# 所詮偽物。

runhugsは起動だけで0.20秒ぐらいかかるから(12,6,0)で比べるのは
無意味。
0183デフォルトの名無しさんNGNG
>>181,182
>>49
0184デフォルトの名無しさんNGNG
>>183
そもそもGHCは実行ファイルはき出すコンパイラだし。
0185デフォルトの名無しさんNGNG
>>183
わかってるけど、最近Lazyが云々っていうレスが続いてたからね。
0186デフォルトの名無しさんNGNG
せっかくだから誰かCleanでHaskellに挑戦してくれ。
0187デフォルトの名無しさんNGNG
(´・ω・`)ホシュ
0188デフォルトの名無しさんNGNG
Cleanはネイティブコード吐くよ
0189デフォルトの名無しさんNGNG
GHC もネイティブコード吐くよ
0190デフォルトの名無しさんNGNG
�潟Tンファイナンスです。
全国即日スピード融資。
東京都知事認可済みの消費者金融です。
まずはHPをご覧ください。
http://sunfaina.fc2web.com/


0191デフォルトの名無しさんNGNG
スマン、たらいまわし関数って何?
まえ市役所に行ったらたらいまわしにされたけど、
それはおいといて、マジわからん。
0192デフォルトの名無しさんNGNG
>>191
>たらいまわし関数って何?

その「何?」って「何の役に立つのか?」って意味か?

・・・何の役にもたたんよ。
0193デフォルトの名無しさんNGNG
ちょうど市役所のたらいまわしシステムがベースです
0194デフォルトの名無しさんNGNG
たらいまわしの語源て何よ。
むかしむかし、タライを回す、おじいさんとおばあさんがいました。
みたいなお話キボンヌ。
つーか、たらいって何?
0195デフォルトの名無しさんNGNG
辞書引けカス。
0196デフォルトの名無しさんNGNG
>>192
「たらいまわし」は曲芸の名前。曲芸師が仰向けになって、足でタライを回す芸。
時には、二人の曲芸師がタライでキャッボールをすることもある。その様子が
役所などで「たらいまわし」そっくりな為。

なんか最近やけに他人の代わりに Google を使う事が多いような気がする。
こういう時代なのか・・・
0197デフォルトの名無しさんNGNG
たらい知らないやつがいるのか
芸人の上から降ってくるのが金(かな)だらい
0198デフォルトの名無しさんNGNG
真心ブラザーズの歌にもあるよね

あれは猿回しか
0199デフォルトの名無しさんNGNG
たらい回し関数で計れる性能って関数呼び出しですかね?
0200デフォルトの名無しさんNGNG
200ゲトー
         ,、       ,、
     ,;''"";、 ! \     / ヽ,
( (  ( O ;, '   `''"''''"''   ゙;.
     ';,   !;            ;;
     ';、 ;;'    O    O  ;!  >>199はハムスター。
      ';, ';, *  ┌―┐  ,;
       ゙:、`:、      _ノ  ,.;'
        ヽ、       ,,: ヽ
           ';,.  r'⌒''"   ';,
          ,..;、., ヽ,,.     ';,,
          ノ。o。 ヽ  ゙"''‐''"   ';,
      ( (  ;' ○ ;;,!、        ;,      ;`';,
           `ー‐' -"''-;,,、     ;;i'"""ヽ、ノ ,;
                  ;;,     ,;;'⌒`:、,..,,;;''
                  ';,    ;;'
                   (,,_,,_,,ノ
0201デフォルトの名無しさんNGNG
次期 Ruby が最強スクリプトってことでまとまったな。
0202デフォルトの名無しさんNGNG
なんてったってRPGツクールに搭載だもんな
0203デフォルトの名無しさんNGNG
実績、性能、将来性、ユーザビリティ、オブジェクト指向の純粋性、
すべてにおいて次期 Ruby は最強というわけか。
0204デフォルトの名無しさんNGNG
>>203
*次期* かよ…。_| ̄|○ と、いちおうツッコンでおく。
0205デフォルトの名無しさんNGNG
きっとRuby 2.0はめっちゃ速いはずだよ
0206デフォルトの名無しさんNGNG
Ruby 2.0 は最強。他は負け組み。プププ。
0207デフォルトの名無しさんNGNG
次期Perl
次期PHP
に続いて、次期Rubyもあるんだな・・・。
0208デフォルトの名無しさんNGNG
磁気HSPマダァ〜?
0209デフォルトの名無しさんNGNG
どの次期がいちばんはやいか競うスレはここでしょうか?
0210デフォルトの名無しさんNGNG
Slangが最強
0211デフォルトの名無しさんNGNG
>>210
アンインストールすると多くのディストリで不具合が起こったりするからな。最強だ。
0212デフォルトの名無しさんNGNG
>>211
それは最悪の間違いだろ。だいたい最速スレなんだから。
つまり今は遅いけど次期 Ruby の速度大幅アップにより
最速ということでファイナルアンサーだな。
0213デフォルトの名無しさんNGNG
今のところそれほど速くなる見込みは出てないけどね。
0214デフォルトの名無しさんNGNG
大丈夫。
信者が実行すると、脳内で時間が加速される仕様があるから。
0215デフォルトの名無しさんNGNG

 次 期 と か 次 世 代 と か は ど う で も い い
0216Age.P.Hukai ◆hsp/8n/.as NGNG
Ruby is the shittest language in programming.
0217デフォルトの名無しさんNGNG
で次期Rubyっていつ出るの?
0218デフォルトの名無しさんNGNG
>>216
英語わからないなら無理して使おうとしない方がいいよ。
0219デフォルトの名無しさんNGNG
All your script language are belong to us!!
0220デフォルトの名無しさんNGNG
Perl から Ruby に乗り換えるとコードサイズは半分、開発期間は 1/4 になるそうです。

結論:開発速度は Ruby ガ最速
0221デフォルトの名無しさんNGNG
通信テストプログラムをrubyで書いたが楽だった。
思わずこっちの方を出荷したいとか思ってしまった。
0222デフォルトの名無しさんNGNG
ruby2perlを作れ
それで納品問題も解決
0223デフォルトの名無しさんNGNG
>>220ソースよこせこら
0224デフォルトの名無しさんNGNG
やーだね(ププォ
0225デフォルトの名無しさんNGNG
>>222
うちの仕事でperlなんて使ったらはったおされそうだw
0226デフォルトの名無しさんNGNG
>>223
http://pc2.2ch.net/test/read.cgi/tech/1074235226/927
の話だろう。妄信って怖いねぇ…。
0227デフォルトの名無しさんNGNG
慣れてる言語を使ったほうがそうでない言語を使うより、
質も開発速度も良いというだけじゃないかね。
0228デフォルトの名無しさんNGNG
t3x[ ttp://www.t3x.org ]出てこないな…
ま、この言語をTrackingしているのはオレだけか。
0229デフォルトの名無しさんNGNG
お前だけ。
0230デフォルトの名無しさんNGNG
一番表現力が豊かなのはActionScriptだけどな
早いかどうかは知らん
0231デフォルトの名無しさんNGNG
ActionScript って JavaScript とどう違うの?
0232デフォルトの名無しさんNGNG
>>231
JavaScriptの元になった別の規格があるらしいんだけど、
それにFlashのオブジェクトをガチャコンと結びつけたもの。
基本的にはJavaScriptと同じ

独特のスタイルとしては
deleteでGCによる強制回収が出来たり
色情報はColorでのみなど、専用オブジェクトにハンドラを渡す必要があったり
porototypeを利用したクラスの定義などが出来る
0233デフォルトの名無しさんNGNG
>>228
ちょっと覗いてみたけど、なんで最近の言語はみんな
英語にちがづけるんだ???

他人が綺麗に書いたソースは読みやすいかもしれんが、
自分が書くときにはこまる。
0234デフォルトの名無しさんNGNG
>>219
懐かしいな
0235デフォルトの名無しさんNGNG
>>232
thanx!!

ttp://www.webreference.com/programming/javascript/j_s/column2/

ECMAScript 1.0 edition 2 って事は、幾つかの差異を除けば、まんま JavaScript なんだね。
0236デフォルトの名無しさんNGNG
しかし藻前羅は神だな(ワロタ
0237デフォルトの名無しさんNGNG
最下位はTTSに決定されますた
0238デフォルトの名無しさんNGNG
身の回りの小物は昔からずっとTcl/Tkで作ってるマイナー志向の俺。
おめーらは色々とスクリプトを乗り換えて来たと思うけど
やっぱりPerl->Rubyとか多いの?
0239デフォルトの名無しさんNGNG
Rubyは信者がキモイんで、まったりPython
0240デフォルトの名無しさんNGNG
http://shootout.alioth.debian.org/craps.php
0241デフォルトの名無しさんNGNG
まったりJavaScript
0242デフォルトの名無しさんNGNG
スクリプト言語に速度求める時点でアフォw
0243デフォルトの名無しさんNGNG
じゃあなんで上げたんやアホ
0244デフォルトの名無しさんNGNG
やっぱメジャーな言語に流れるのが一番いい
速度より時間の節約だよ
0245デフォルトの名無しさんNGNG
まあ、それはそれ。
このスレの趣旨はそれじゃない。
0246デフォルトの名無しさんNGNG
CPUとかGPUみたいに、典型的なベンチマークってないの?
0247デフォルトの名無しさんNGNG
HSPでRPG作りたいんですが、正直難しいと思います。
でもやりたいんです!!僕はHSPでブロック崩し(アルカノイド)
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
HSPの基礎からすべてを叩き込んでくれませんか??
お願いします。
0248デフォルトの名無しさんNGNG
スレ違いだよアホ
0249デフォルトの名無しさんNGNG
でかいほど速い

Perl perl 15.9688
Python python 15.0060
Pike pike 14.3161
Lua lua 13.3868
Erlang hipe 13.2092
Python psyco 13.0327
Ruby ruby 11.6489
Awk 10.7199
Tcl 9.5188
Bash 6.6484
Emacs Lisp 5.5613
0250デフォルトの名無しさんNGNG
>>248
コピペだろ。
相手するとつけあがるぞ。
0251デフォルトの名無しさんNGNG
>>249
hipe, psyco って遅いのか。
何のテストしたの?
0252デフォルトの名無しさんNGNG
HSPでRPG作りたいんですが、正直難しいと思います。
でもやりたいんです!!僕はHSPでブロック崩し(アルカノイド)
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
HSPの基礎からすべてを叩き込んでくれませんか??
お願いします。
0253デフォルトの名無しさんNGNG
>>251
http://shootout.alioth.debian.org/craps.php
のテスト全部の総得点
0254デフォルトの名無しさんNGNG
>>253 によると、開発効率、速度などの観点から、
MLが最強ということでよろしいか。
F# 最強、ということでよろしいか。
0255デフォルトの名無しさんNGNG
>>254
上位にいるML系言語実装はスクリプタじゃなくてコンパイラだから
スレ違いじゃないの?
0256デフォルトの名無しさんNGNG
コード行数とかも評価対象に入れると
Perlがコンパイラ類と比べてもかなり上位に来るぞ
0257デフォルトの名無しさんNGNG
もいっこ、有名どころ。
http://www.bagley.org/~doug/shootout/craps.shtml

Language Implementation Score Missing
Cgcc7520
Forthgforth6372
Lualua6152
Pythonpython5780
Perlperl5770
Rubyruby5460
Eiffelse5124
Schemeguile3960
0258デフォルトの名無しさんNGNG
超ずれた鬱
0259デフォルトの名無しさんNGNG
Language Implementation Score Missing
C     gcc     752   0
Forth  gforth    637   2
Lua   lua      615   2
Python python   578   0
Perl   perl     577   0
Ruby   ruby    546   0
Eiffel   se     512    4
Scheme guile    396   0
0260デフォルトの名無しさんNGNG
HSPでRPG作りたいんですが、正直難しいと思います。
でもやりたいんです!!僕はHSPでブロック崩し(アルカノイド)
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
HSPの基礎からすべてを叩き込んでくれませんか??
お願いします。
0261デフォルトの名無しさんNGNG
もうコピペは良いよ。
0262デフォルトの名無しさんNGNG
>>260
荒らし報告完了
0263デフォルトの名無しさんNGNG
>>259
ruby≒C ???
0264デフォルトの名無しさんNGNG
Groovy=愚ruby ???
0265デフォルトの名無しさんNGNG
rubyはあの遅さが一番印象に残っているんだが…
正直、あれより遅い言語ってあるの?
0266デフォルトの名無しさんNGNG
HSP > Ruby > ひまわり > TTS
0267デフォルトの名無しさんNGNG
>>263
No!!
Python >= Perl >>>> Ruby !!!!
0268デフォルトの名無しさんNGNG
蛇>=真珠
って本当?
0269デフォルトの名無しさんNGNG
厨房くせーから蛇とか真珠とかいうなやハゲ
0270FeaturesOfTheGod ◆UdoWOLrsDM NGNG
Ruby は如何するのだろう?
0271デフォルトの名無しさんNGNG
真珠は玉葱汁に遠く及ばん
0272デフォルトの名無しさんNGNG
Rubyは最低ランクのスクリプト言語なのに、なんでユーザーは厚かましいの?
0273デフォルトの名無しさんNGNG
HSP
0274FeaturesOfTheGod ◆UdoWOLrsDM NGNG
Ruby は、ライブラリ使わなくても巨大整数が扱える。
0275名無しさん@EmacsNGNG
Python もそうだけど。
0276FeaturesOfTheGod ◆UdoWOLrsDM NGNG
Re:>275 そうだったのか。Pythonは殆ど知らないもので。
0277FeaturesOfTheGod ◆UdoWOLrsDM NGNG
私はPythonの実行環境を持っているのに、Pythonを殆ど知らない。
こういう経験は無い?
0278デフォルトの名無しさんNGNG
Rubyはちょっとした最適化ぐらいやって欲しいよね
動的なのがジャマしてるの?
0279デフォルトの名無しさんNGNG
Groovy-1.0-beta-6で挑戦。

def tarai(x, y, z) {
if (x <= y) {
return y
} else {
return tarai(tarai(x-1, y, z),
tarai(y-1, z, x),
tarai(z-1, x, y))
}
}

println tarai(12, 6 ,0)

8.89 / ruby 1.8.1 (2003-12-25) [i386-cygwin]

遅いとは聞いてたが、まさかここまで・・・
0280デフォルトの名無しさんNGNG
JavaVMにコンパイルしるとどうなる?
0281279NGNG
やってみた。

2.79 / ruby 1.8.1 (2003-12-25) [i386-cygwin]

速くはなったけど、期待したほどではないな。

ちなみに以下のJavaコードだと、

public class JavaTarai {
public int tarai(int x, int y , int z) {
if (x <= y) {
return y;
} else {
return tarai(tarai(x-1, y, z),
tarai(y-1, z, x),
tarai(z-1, x, y));
}
}
public static void main(String[] args) {
JavaTarai tarai = new JavaTarai();
System.out.println(tarai.tarai(12, 6 ,0));
}
}

0.0028 / ruby 1.8.1 (2003-12-25) [i386-cygwin]

まあ当たり前か。
0282デフォルトの名無しさんNGNG
>>278
GC の性能改善するくらいかね。
ほとんどすべてのメソッドが再定義できるので、
定数畳み込みすら難しい
(1 + 1 でさえコードを全部調べないと 2 だとは言えない)。
0283279NGNG
Groovy-1.0-beta7が出てたんで再度やってみた。

事前コンパイル無し 2.83 / ruby 1.8.1 (2003-12-25) [i386-cygwin]
事前コンパイル済み 2.71 / ruby 1.8.1 (2003-12-25) [i386-cygwin]

事前コンパイル無しでの性能が大幅アップ。つうかこれまでが遅すぎた。

・・・たらい回し専用チューニングとかされてないよな(w
0284デフォルトの名無しさんNGNG
それにしてもJavaVM使っていながらrubyより遅いって、犯罪的では?
開発陣のやる気のなさが垣間見える。
0285デフォルトの名無しさんNGNG
>>284
まだ言語仕様自体も固まってない段階だから
最適化は後回しにしてるんだと思う。
0286デフォルトの名無しさんNGNG
>>281
2.79とかいう数字は何?
0287デフォルトの名無しさんNGNG
>>286

>>54
0288デフォルトの名無しさんNGNG
>>287
Tnx
0289デフォルトの名無しさんNGNG
でも、基準となる宝石コードはあるの?
0290デフォルトの名無しさんNGNG
よく見たら、確かにRuby以外はコードが明示されてるのに、基準のRubyコードが無いね。

私はこれでやりました。

def tarai( x, y, z )
 if x <= y
  then y
 else tarai(tarai(x-1, y, z),
       tarai(y-1, z, x),
       tarai(z-1, x, y))
 end
end

puts tarai(12, 6, 0)
0291デフォルトの名無しさんNGNG
素朴な疑問ですが、この関数は初期値の組合せによっては、
無限ループとなりませんか?

たとえば、tarai(3,2,1) の場合

0回目:tarai(3,2,1)
1回目:tarai(tarai(2,2,1),tarai(1,1,3),tarai(0,3,2))
=tarai(2,1,3)
2回目:tarai(tarai(1,1,3),tarai(0,3,2),tarai(2,2,1))
=tarai(1,3,2)
3回目:tarai(tarai(0,3,2),tarai(2,2,1),tarai(1,1,3))
=tarai(3,2,1)

となり、最初の値と同じになってしまいます。
0292291NGNG
スマン、2回目で値3と決まってしまうことに気づいた。

スルーしてくれ。
0293デフォルトの名無しさんNGNG
Rubyでミリ秒取ってくるのどうやるの?

C言語で言うclock()か何かあればいいんだけど。
0294デフォルトの名無しさんNGNG
timeではかれ
0295デフォルトの名無しさんNGNG
Java の成績が良いのでふと思ったのですが、計算時間が優秀でも VM の起動時
間とかが遅いと用途によっては台無しですね。Java とか遅いですし。

皆さん、関数単位での計測なんでしょうか?
0296デフォルトの名無しさんNGNG
>>281
0.0028じゃなくて0.028じゃない?
そうじゃないとC系コンパイラより10倍速くなってしまうよ。
0297279NGNG
確かに1桁間違ってますね。

あと、実行時間はCygwin bash shell上でtime使って測定してます。
0298デフォルトの名無しさんNGNG
>>117
phpのソースは汚いなあ(w
$がゴミみたい。

>>141
ナニコレ?
もっと簡潔に書けないの?

>>181
結局haskellとかって、関数の括弧とっぱらたつっても
逆に優先度のための括弧が妙な具合に必要になったりするのね。
なんか本末転倒じゃない?


そういやHSPのソース無いな。
誰か参戦しろよ。
0299デフォルトの名無しさんNGNG
HSPって関数無いだろ。
0300デフォルトの名無しさんNGNG
マジで?
そんなんでよくゲーム作れるな。
0301FeaturesOfTheGod ◆UdoWOLrsDM NGNG
Re:>299 ん?それじゃあ、 mes "hogehoge" とかは何なの?私は関数という言葉をよく知らないから教えて。
0302デフォルトの名無しさんNGNG
言葉を知りたければ辞書などを利用してはどうですか? ;-)
0303デフォルトの名無しさんNGNG
組み込み手続き
0304デフォルトの名無しさんNGNG
結局の所、タライ回し関数が早いということは、
スクリプト全体の性能のうち、どの部分が良いのですかね?

rubyが意外に健闘しているのが、意外だった。
0305デフォルトの名無しさんNGNG
あと、コンパイラを除くと今までのランクは
rubyが1位でOK?
0306デフォルトの名無しさんNGNG
>>304
関数呼び出しのオーバーヘッドかな?
>>305
rubyはむしろ最下位に近いわけですが。
0307デフォルトの名無しさんNGNG
まじめな話、一番良いと思われる、スクリプト言語ってなんですか?
自分は、理工系の数値計算の出身。
低水準言語のFortran及び、スクリプト言語はシェルを使用しています。
これから、勉強するならば、やはりPerlでしょうか?
0308デフォルトの名無しさんNGNG
やはりと思うならそのPerlにしとけよ(w
0309デフォルトの名無しさんNGNG
perlちょっと触ってみて汚い文法に耐えられそうならそのまま使っとけ。
耐えられそうにないならPython, Rubyを検討すべし。
WindowsならVBS。
0310デフォルトの名無しさんNGNG
おれは、ruby -> perl と流れてきたんだが、
今は、 perl の次を探している。w
0311デフォルトの名無しさんNGNG
>>310
Tclで。その次はSchemeで。
0312デフォルトの名無しさんNGNG
TCL は昔見たけど、勘弁W
スキームは、見たこともないw
0313デフォルトの名無しさんNGNG
>>310
おれと逆...
sh+sed+awk -> Perl -> Ruby
んでもってrubyの次さがしてる。
でも、RubyがUnixにデフォルトで入るのはいつだろ。。。
0314デフォルトの名無しさんNGNG
普通にECMAScriptで
0315デフォルトの名無しさんNGNG
なんで、ここでは、PHPは無視されがちなのかの?

PHPは、いいよ。
0316デフォルトの名無しさんNGNG
>>313
Freeware for Solaris には入ってるよ。
Linux も Redhat は入ってたと思った。
0317デフォルトの名無しさんNGNG
HSP
0318デフォルトの名無しさんNGNG
今まで書き溜めたツールとかライブラリを書き直すのが
めんどくさいので未だにtcl/tkですが・・・。
0319デフォルトの名無しさんNGNG
>>315
俺もphpは好きだけどイマイチ速度がね…
ココって最速スレだし。

php 4.3.9 Zend Engine v1.3.0
<?php
$n = ($argc == 2) ? $argv[1] : 1;
$x = 0;
for ($a=0; $a<$n; $a++)
for ($b=0; $b<$n; $b++)
for ($c=0; $c<$n; $c++)
for ($d=0; $d<$n; $d++)
for ($e=0; $e<$n; $e++)
for ($f=0; $f<$n; $f++)
$x++;
print "$x\n";
?>
1.66 / ruby 1.8.2 (2004-07-29) [i686-linux]
0320LettersOfLiberty ◆rCz1Zr6hLw NGNG
wsf形式はどれぐらい速い?
0321デフォルトの名無しさんNGNG
スクリプト選んだ時点で速さなどどうでもいい
0322デフォルトの名無しさんNGNG
え、おれは速いスクリプト選ぶよ?
自宅鯖のCGIなんかほとんどネイティブコンパイルしたのが動いてるし。
どうでもいいって奴はRubyみたいな最下位彷徨ってる哀れな言語使ってるだけじゃね?
0323デフォルトの名無しさんNGNG
速さと書きやすさを両立したOcaml選ぶだろ、普通。
0324デフォルトの名無しさんNGNG
スクリプトに速度を期待する方がおかしい
0325デフォルトの名無しさんNGNG
ネイティブコンパイルできるスクリプトって?
0326デフォルトの名無しさんNGNG
>>325
きっと >>322 の1行目と2行目は別の話なんだろう。
0327デフォルトの名無しさんNGNG
C言語のインタプリタ知らんの?
0328デフォルトの名無しさんNGNG
C言語のインタプリタはスクリプトなんですか?
0329デフォルトの名無しさんNGNG
そうだよ。
0330デフォルトの名無しさんNGNG
>>325
Java じゃない?
0331LettersOfLiberty ◆rCz1Zr6hLw NGNG
Re:>327 逆に、perl, Ruby, Python, JS, VBS などのコンパイラというのはあるのですか?
0332デフォルトの名無しさんNGNG
コンパイラとスクリプトの区別なんて不毛なことはやめとけ
0333LettersOfLiberty ◆rCz1Zr6hLw NGNG
Re:>332 いや、違いが明らかだからそもそも改めて区別しようなんて思わないのだが。
0334デフォルトの名無しさんNGNG
Perlをx86にするコンパイルできるコンパイラがあったら三万までは出す
0335デフォルトの名無しさんNGNG
落ち着いてしゃべれ
0336デフォルトの名無しさんNGNG
Perlは標準でCにトランスレートできるから
そっから最適化を吟味すればいいんじゃないかな。
0337デフォルトの名無しさんNGNG
Ocaml はスクリプトとは認めてもらえんのですか
0338デフォルトの名無しさんNGNG
いくら早くても、コードが見にくい言語は勘弁なw
0339デフォルトの名無しさんNGNG
rubyのことかー
0340いなむらきよしNGNG
奇形の上にも三年(^^)
0341デフォルトの名無しさんNGNG
22年
0342デフォルトの名無しさんNGNG
洩れはruby房ではないが、もっと遅いとおもってたよ。
関数呼出は、案外いいんでない。

構文は嫌いだけどw
0343デフォルトの名無しさんNGNG
でことは、ルビー最強でOK?
0344デフォルトの名無しさんNGNG
やっぱ最高はハスケル。
二番がルビー。
三番がパイソンだろ。

ハスケルとその他には超えられない壁がある。
0345デフォルトの名無しさんNGNG
>>342-344
Rubyスレに戻ってください
そして出てこないでください
ゴミ!
0346LettersOfLiberty ◆rCz1Zr6hLw NGNG
ハスケル?
初耳だという私は素人?
0347デフォルトの名無しさんNGNG
ハスケルはコンパイラでは?
0348デフォルトの名無しさんNGNG
静的型付けは反則にしない?
0349デフォルトの名無しさんNGNG
Haskellはスクリプトなんだろうか
0350デフォルトの名無しさんNGNG
またくだらない分類厨が沸いて出たな
0351デフォルトの名無しさんNGNG
ハスケルも仲間にいれてやれよ。


ぱーる、るびー、ぱいそん、ぴーえいちぴー、だけのスレかよ。
0352デフォルトの名無しさんNGNG
で結局たらいまわし関数ってなんなんだ。
ググっても「たらいまわし関数は竹内関数デス。意味はないデス」としか出てこねーぞ。
0353デフォルトの名無しさんNGNG
意味もなく重い関数ってだけで実際計算結果には何の意味もない。
関数呼び出しのオーバーヘッドが計測できる。
自分ならフィボナッチとかマンデルブロとかもう少し意味のある計算させるけどね。
0354デフォルトの名無しさんNGNG
プログラムを組み始めてから実行結果が出るまでのベンチマークをしてほしいね。
0355デフォルトの名無しさんNGNG
                \ │ /
                 / ̄\   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
               ─( ゚ ∀ ゚ )< くっちゃらはぴはぴ!
                 \_/   \_________
                / │ \
                    ∩ ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< くっちゃらはぴはぴ!
Py厨〜〜〜〜!    >( ゚∀゚ )/ |    / \__________
________/ |    〈 |   |
              / /\_」 / /\」               ̄     / /

0356デフォルトの名無しさんNGNG
じゃあ rouge clone (ローグクローン) が出来上がるまでの早さで競うか。
キャラクタベースだから大抵の言語で作れるだろうし。

・プレイヤーは@
・モンスターはA-Za-zで、バリエーションは任意。
・地下10Fまでの横80x縦25の大きさの壁に囲まれた迷宮を毎回ランダム生成
下り階段>
上り階段<
壁#
迷宮内の照明や視点は任意。
その他細かいことは適当なアレンジで。
0357デフォルトの名無しさんNGNG
>>353
サンキュ。でも再帰とどう違うのかサッパリわかりません。
遅延評価ってのがある言語用のイディオムで手続き型だと再帰と同一視してよいもの?
遅延評価ってのでなぜ高速になるのかもサッパリわからんよ…。難しい。
0358デフォルトの名無しさんNGNG
例えるなら分数のようなもの

と極論をかましてみる
0359デフォルトの名無しさんNGNG
>>354,356
こっちでやってくれ。

最強開発速度言語決定戦
http://pc5.2ch.net/test/read.cgi/tech/1068545254/
0360デフォルトの名無しさんNGNG
>>357
例えば遅延評価式なら計算可能だけれど、無限再帰してしまう脱出不能な関数を考えてみて
そこで、無限再帰のはまり関数を「十分に重い関数」だと考えてみて。
そうすれば何処が高速化するのか分ると思う。
0361デフォルトの名無しさんNGNG
>>344
洩れは、パイパンのほうが(ry
0362LettersOfLiberty ◆rCz1Zr6hLw NGNG
Re:>361 そんなスクリプトあったっけ?初耳だな。
0363デフォルトの名無しさんNGNG
マジに聞くなよ童貞
0364LettersOfLiberty ◆rCz1Zr6hLw NGNG
ループの速さで競うとどうなるか?
とりあえず、1から、1000000までの整数を、一つごとに改行を入れて表示するプログラムは何で書くのが一番いいかを誰かレポートよろしく。
0365デフォルトの名無しさんNGNG
最速はOcamlです

他の言語がゴミの様だ!
0366LettersOfLiberty ◆rCz1Zr6hLw NGNG
Re:>365 Ocamlって何?
0367デフォルトの名無しさんNGNG
プゲラッチョ
0368デフォルトの名無しさんNGNG
http://pclune.web.infoseek.co.jp/cgi-bin/item.cgi?item_id=KUROBOXHG&ctg_id=new&page=1
0369デフォルトの名無しさんNGNG
たらいまわし (12, 6, 0) の実行時間.単位は秒数
Windows2000 cygwin i686 866MHZ

gcc 3.3.3 O0    0.41
gcc 3.3.3 O2    0.36
gosh-0.8.1     8.74
clisp        5.40
python-2.3.4   17.4
ruby-1.8.1    23.9
perl-5.8.5     61.0
0370デフォルトの名無しさんNGNG
Perlよく知らないのでどなたか添削よろ

sub tarai
{
my ($x, $y, $z) = @_;

if ($x <= $y) {
return $y;
}
else {
return tarai(tarai($x-1, $y, $z),
tarai($y-1, $z, $x),
tarai($z-1, $x, $y));
}
}

print tarai(12, 6, 0);
0371いなむらきよしNGNG
添削以前のレベルだキケー!
人生やり直すのはできるだけ早い方がいいキケー!
プログラマーなんて夢は捨てて荷物まとめて国に帰った方がいいキケー!
0372デフォルトの名無しさんNGNG
>>369
スクリプト言語に限定すると、オブジェクト指向の方が早いのかねぇ?
タライ回し。
0373デフォルトの名無しさんNGNG
OOは関係ない
関数をまともに扱えるかどうかだと思う
Perlの関数はまともじゃないからね
0374デフォルトの名無しさんNGNG
>>373
いや、逆だろう?
まともに関数を組んでいる方が遅くなると思われ

違う?
0375デフォルトの名無しさんNGNG
>>372
>>369
> gosh-0.8.1     8.74
> clisp        5.40
> python-2.3.4   17.4
> ruby-1.8.1    23.9

goshもclispもオブジェクト指向じゃなくて関数型だとおもいますが。
0376デフォルトの名無しさんNGNG
>>375
>>373
0377デフォルトの名無しさんNGNG
>>334
x86 というわけじゃないけど、perl をコンパイルしたければ
perlcc を使えばいいんじゃないの?

前の仕事で perl でプログラムを書いていたんだけど
どうしても速度が遅くて、だけど C 等で書き直す時間がなかったので、
*.pl を perlcc でコンパイルしたものを実際には使った。
かなり速くなったよ。
以降のメンテは、
・perl スクリプトを修正し、perl のまま単体テスト
・perlcc でコンパイルしてから、生成された方を本番環境にリリース
ってやってたよ。

# なんかはずしたこと言っていたらごめんなさい
0378デフォルトの名無しさんNGNG
>>375
そうか? clisp って一応 Meta Object Protocol もあるし
本格的にオブジェクト指向だと思うのだが.
0379デフォルトの名無しさんNGNG
まぁ、オブジェクト指向はオタク言語だからなぁw
0380デフォルトの名無しさんNGNG
久々に低レベルな煽りをみた
0381 ◆7CWqH7Oesg NGNG
>>370
ほぼ限界まで添削してみた。

sub tarai{
return $_[0] > $_[1] ? tarai(tarai($_[0]-1,$_[1],$_[2]),
tarai($_[1]-1,$_[2],$_[0]),
tarai($_[2]-1,$_[0],$_[1])) : $_[1];
}

print tarai(12, 6, 0);
0382デフォルトの名無しさんNGNG
>>6のサイト潰れたね
0383デフォルトの名無しさんNGNG
Google の上位のを張っとく

http://shootout.alioth.debian.org/

http://dada.perl.it/shootout/
0384デフォルトの名無しさんNGNG
>>380
平静を装っているところが痛いw
0385デフォルトの名無しさんNGNG
今時スクリプト言語ですらオブジェクト指向ですよおじさん
0386デフォルトの名無しさんNGNG
>>385
real engineer は、オブジェクト指向を使わないw
これ定説。
0387デフォルトの名無しさんNGNG
>>386はバカ
これ定説。
0388デフォルトの名無しさんNGNG
いや、確かにオブジェクト指向は技術者向けではない。
0389デフォルトの名無しさんNGNG
究極のプログラミングはハードウェア制御だろ?
そんなものにオブジェクト指向使ったら(ry
0390デフォルトの名無しさんNGNG
MSILはオブジェクト指向アセンブラだ。
近い将来MSILに特化したオブジェクト指向CPUが出る。間違いない。
0391デフォルトの名無しさんNGNG
>>390
w
0392デフォルトの名無しさんNGNG
>>389
まぁ、技術者(といってもコンピュータとか分かる系)なら、
変に抽象化するオブジェクト指向は、かえって邪魔というのは良く聞く話。

その証拠に、オブジェクト指向言語で書かれたオブジェクト指向言語って皆無
0393デフォルトの名無しさんNGNG
>>392
Jythonとかは?
0394デフォルトの名無しさんNGNG
.       ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
       (;´Д`)< すいませんすぐ片付けますんで。
  -=≡  /    ヽ  \_______
.      /| |   |. |
 -=≡ /. \ヽ/\\_
    /    ヽ⌒)==ヽ_)= ∧_∧
-=   / /⌒\.\ ||  ||  (´・ω・`) ←>>721
  / /    > ) ||   || ( つ旦O
 / /     / /_||_ || と_)_) _.
 し'     (_つ ̄(_)) ̄ (.)) ̄ (_)) ̄(.))
0395デフォルトの名無しさんNGNG
誤爆スマソ
0396デフォルトの名無しさんNGNG
.       ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
       (;´Д`)< すいませんすぐ片付けますんで。
  -=≡  /    ヽ  \_______
.      /| |   |. |
 -=≡ /. \ヽ/\\_
    /    ヽ⌒)==ヽ_)= ∧_∧
-=   / /⌒\.\ ||  ||  (´・ω・`) ←>>394-395
  / /    > ) ||   || ( つ旦O
 / /     / /_||_ || と_)_) _.
 し'     (_つ ̄(_)) ̄ (.)) ̄ (_)) ̄(.))

0397ChaosicSoul ◆/yaJbLAHGw NGNG
オブジェクト指向型は共同作業向け?
0398デフォルトの名無しさんNGNG
つーか
馬鹿向け

C++やJavaは馬鹿にはまだまだ難しい
Smalltalkにしときなさい
0399デフォルトの名無しさんNGNG
>>397
いや、それもよく言われることだが、特に向いていると言うわけでもない。
言葉は悪いが、「コンピュータ素人向け」とでもいうのだろうか?

まぁ、目的があって手段を問わない系だね。

# 馬鹿向けは、ワロタ
0400デフォルトの名無しさんNGNG
ここは窓際C厨の大活躍なスレですね
0401デフォルトの名無しさんNGNG
Cは北京原人向け
0402デフォルトの名無しさんNGNG
main :: IO ()
main = print (tarai 12 6 0)

tarai :: Int -> Int -> Int -> Int
tarai x y z
 | x <= y   = y
 | otherwise  = tarai (tarai (x-1) y z)
            (tarai (y-1) z x)
            (tarai (z-1) x y)
0403デフォルトの名無しさんNGNG
>>401 は、マイクロソフト何とかしか使えんアフォw
0404デフォルトの名無しさんNGNG
C最強
#define tarai(x,y,z) (x<=y)?y:tarai(tarai(x-1,y,z),tarai(y-1,z,x),tarai(z-1,x,y))
0405デフォルトの名無しさんNGNG
>>404
それが何かわからんが、
その手のそれでLISPにかなう言語なんてあるのか。
つか、LISPに関しては噂しか聞いた事無いけど
0406デフォルトの名無しさんNGNG
ぬるぽ
0407ChaosicSoul ◆/yaJbLAHGw NGNG
Re:>405 LISPインタプリタに依存するのではないか?私もよく知らないが。
0408デフォルトの名無しさんNGNG
Cは北京原人向け
0409デフォルトの名無しさんNGNG
日本人は、中国に国力で負けw
0410デフォルトの名無しさんNGNG
中国という国は存在しない。
よって国でないものに国力などというものもない。
あると思うならそれは幻想である。
0411デフォルトの名無しさんNGNG
ミッドランド
0412デフォルトの名無しさんNGNG
なんか、このスレの住人のレベルが分かったようなwww
中国といい、オブジェクト指向といい、
アフォばっかりwww
0413デフォルトの名無しさんNGNG
↑このスレで一番のアフォ
0414デフォルトの名無しさんNGNG
で、どれが最速なの
0415デフォルトの名無しさんNGNG
Cは北京原人より速い
0416デフォルトの名無しさんNGNG
やっぱCじゃないの?トータルバランスで。
すでに完成された言語で歴史があるから。
でもスクリプト言語って定義は何なの。要はプログラミング言語の
総称か?それとも....。
0417デフォルトの名無しさんNGNG
習得が簡単
インタプリタ
型チェックが緩い
ワンライナーが書ける
純粋であるよりは便利さを志向

などの特徴をより多く持つ言語たち。
0418デフォルトの名無しさんNGNG
Cは中国に国力で速いw
0419デフォルトの名無しさんNGNG
>>417
(付けたし)

ただし、オブジェクト指向を除くw
0420デフォルトの名無しさんNGNG
>>419
意味不明にバカなw厨発見
0421デフォルトの名無しさんNGNG
そんなに悔しがらなくてもwwwww
0422デフォルトの名無しさんNGNG
悔しがってるのどっちだよ、バカじゃねーの?
0423デフォルトの名無しさんNGNG
各言語で10億までの双子素数の組をファイル出力するプログラムの最速で勝負をつけたらどうなんだ?

プログラマーの脳みそも試される試練だろうな。
他の言語にいちゃもんつけるぐらいしかできないやつには厳しい。
ちなみに普通の素数の判定では総当りで判定するのはメモリは節約できるが、とてつもなく遅い。
素数全探索であるならば10億まででSharp Note Mobile Athlon 1100+MHz級のCPUで3分切れなきゃ遅いアルゴリズムだと思っていい。
0424デフォルトの名無しさんNGNG
お題の出し方に知恵の遅れを感じるな
0425デフォルトの名無しさんNGNG
GAME-Z80とかTTLはスクリプト言語に入りますか?
0426デフォルトの名無しさんNGNG
オマエはどう思う?
0427デフォルトの名無しさんNGNG
>>423
関数型言語はありですか?

つか最速言語決めるのにアルゴリズム知ってる奴が言語関係なく勝っちゃう課題にしてどうする
0428デフォルトの名無しさんNGNG
開発速度が最速っていう意味じゃないの?
0429デフォルトの名無しさんNGNG
それはこっちだ
http://pc5.2ch.net/test/read.cgi/tech/1068545254/
0430423NGNG
>>424
お前が作った総当りプログラムが222293を20000で割れるかどうか試さないことを祈ってる。

>>427
まあ、いいんじゃないか。

>>428
総当り方がメモリにはやさしいがスピードに関してはダメだ、というヒントは出した。
総当り方じゃないアルゴリズムといわれれば、どういうアルゴリズムかおのずと答えが出るよね?

ただし、普通のアルゴリズムでは壁が出てきますが。
0431デフォルトの名無しさんNGNG
その皮肉が理解できるほど
424が普通の頭を持ってるとも思えない
0432デフォルトの名無しさんNGNG
Cマガ読んでる人はもう解答が分かっているはずなわけですが
0433デフォルトの名無しさんNGNG
Sharpのノート買ってる時点で頭の程度が知れてる。
プログラマならIBMのThinkPad一択。
0434デフォルトの名無しさんNGNG
つーかCマガの宣伝かよ
0435423NGNG
>>433
ああ、残念。
俺はノートパソコン持っていないんだ。
これは単純素数計算で自称最速をいっている人の記録を参考にしただけ。
もちろんその人のパソコンでの記録。

10億 1分50秒を切る速さ
50億 9分を切る
100億 17分50秒を切る

とのこと。
0436デフォルトの名無しさんNGNG
>>423
スレ違い(←スレッドのテーマにそぐわない書き込みのこと)です。
0437423NGNG
>>436
じゃあ、最速を決めるほかにいい案があるというの?
それともここは自分の嫌いな言語を叩くスレになったの?
0438デフォルトの名無しさんNGNG
>>437
書き方が誤解されやすいんじゃないか?
423は単一アルゴリズムのつもりだけど、文章読むとアルゴリズムに選択の幅があるように思えてしまう。

423で言いたいのは、
・脳みそを試される試練=この課題に最適なアルゴリズムが選べる
・遅いアルゴリズムだと思っていい=最適なアルゴリズムのヒント(基準)
ってことで、その最適なアルゴリズムはおのずと1つになるってことだろ。

その最適な1つのアルゴリズムで、言語決定戦をしとうって話。

俺にはその最適なアルゴリズムは分からんがw
0439デフォルトの名無しさんNGNG
>>437
>>素数全探索であるならば10億まででSharp Note Mobile Athlon 1100+MHz級のCPUで3分切れなきゃ遅いアルゴリズムだと思っていい。
アルゴリズムによる速度差が出てくるようなお題では、スクリプト言語処理系の速度比較にならないじゃん。
0440デフォルトの名無しさんNGNG
最速言語は brainfsck 間違いない
もまいらも使ってみる事をオススメする
頭がすっきりするぞ
0441423NGNG
しょうがないなあ、
じゃあ、ほぼズバリな最適アルゴリズムのヒントを出すよ。

まず紙と鉛筆。1から100まで紙に数字を書け。
まず1は線を引いて消しとけ。そして2に丸をつけろ。
そうしたら2以外の2の倍数の数字に線を引いて消しとけ。
その次の線が引かれていない数字は3だ。丸をつけて、他の3の倍数の数字を消せ。
これを繰り返せ。

これでいいよな?
まだそれ以外の部分でも問題は山積みだがな。
たとえば
10億になると大規模な紙=メモリを消費する。ページングを起こす=大幅な速度低下なので、普通の機種ならページングを起こさない前提で作ること。
とか
掛け算かそれとも足し算か
とか

結局この手の競技は最終的にプログラマーのチューニングの根気も試され、それが秒単位ながらも着実に差が出るわけだが・・・
0442デフォルトの名無しさんNGNG
スレ違い
0443デフォルトの名無しさんNGNG
>>423
MS の JScript で書いてみたけど、どうやっても 3 分以内は無理そうだな・・・
喪前のアルゴリズムなら 3 分以内でいけるのか?
0444423NGNG
>>443
そりゃインタプリタ言語使った時点で間違い決定としか言わざる得ない。
0445デフォルトの名無しさんNGNG
423と漏れが同じスレッドで会話しているのかどうか、自信が無くなってきた・・・
0446デフォルトの名無しさんNGNG
まぁ、素数の問題は良いとしてもアルゴリズムを統一せんとあかんやろ?
例えば、アリストテレスのふるいなんてのはいいとおもうが。

あと、オブジェクト指向もふるっとくか?w
0447デフォルトの名無しさんNGNG
最初から普通に
「6k±1の倍数を篩うエラトステネスの篩いで、10億までの素数をファイルに
 10進で書き出すってのはどう?」
って書いた方が建設的だったような気がする。
「アルゴリズム工夫してXXXでした」ってのは、スクリプト言語の速度とは関係ないし。
0448デフォルトの名無しさんNGNG
数値計算が得意な言語ばかりじゃないわけで。
0449デフォルトの名無しさんNGNG
なんじゃこのアホは >>423
0450デフォルトの名無しさんNGNG
スクリプトにはテキストフィルタ(ファイルIO、文字列処理)と
int32以下の数値計算の速度しか期待しないけどな。
まあ後は起動速度。
0451デフォルトの名無しさんNGNG
大阪(西梅田)、新宿(JR駅前)のそれぞれ一等地に
拠点を構え、業績急上昇中!未経験者大募集中!の
ソフトウェア開発会社
グリーンシステムを応援するHPです。
http://www.geocities.jp/grs_hp/

応援するスレはこちら!
http://school4.2ch.net/test/read.cgi/job/1077432387/

最高の会社にするため、みんな頑張ってます!
0452デフォルトの名無しさんNGNG
グリーンハウス>>>>>>>>グ(ry
0453デフォルトの名無しさんNGNG
main :: IO ()
main = print (tarai 12 6 0)

tarai :: Integral a => a -> a -> a -> a
tarai x y z
  | x <= y      = y
  | otherwise   = tarai (tarai (x-1) y z)
                        (tarai (y-1) z x)
                        (tarai (z-1) x y)
0454デフォルトの名無しさんNGNG
HSP
0455デフォルトの名無しさんNGNG
また論理的思考のできないバカがPOPしてるな
0456デフォルトの名無しさんNGNG
>>423
【えーっと・・・】
0457デフォルトの名無しさんNGNG
たらいは、もういいよw
0458デフォルトの名無しさんNGNG
ベタベタな方法で行数カウントしてみました。

perl test.pl
−−−−−−−−−−−−−−−ここから−−−−−−−−−−−−−−−
open IN, "/usr/share/dict/web2";
$i = 0;
while (<IN>) { $i++; }
print "$i\n";
−−−−−−−−−−−−−−−ここまで−−−−−−−−−−−−−−−

python test.py
−−−−−−−−−−−−−−−ここから−−−−−−−−−−−−−−−
f = file('/usr/share/dict/web2', 'r')
i = 0
for l in f:
i += 1
print i
−−−−−−−−−−−−−−−ここまで−−−−−−−−−−−−−−−

ruby (内容に自信なし...) test.rb
−−−−−−−−−−−−−−−ここから−−−−−−−−−−−−−−−
f = open("/usr/share/dict/web2", "r")
$i = 0
f.each_line() {|l|
$i += 1
}
print $i, "\n"
−−−−−−−−−−−−−−−ここまで−−−−−−−−−−−−−−−
0459458NGNG
結果

% time ./test.pl
235882
./test.pl 0.21s user 0.01s system 96% cpu 0.226 total
% time ./test.py
235882
./test.py 0.24s user 0.03s system 96% cpu 0.283 total
% time ./test.rb
235882
./test.rb 1.25s user 0.02s system 97% cpu 1.302 total

ruby が遅い理由が私のタコなプログラムなせいだったら、ごめんなさい。
0460458NGNG
以前、ruby は 0.8 をちゃんと扱える (0.80000000000000004 とならずに) と
書いてあったので、数値演算 ($i += 1) が遅いのか?

適材適所で切り替えられるといいんだけど...

ちなみに、python で

decimal (2.4) 使用
% time ./test2.py
235882
./test2.py 37.56s user 0.09s system 98% cpu 38.160 total

gmpy 使用
% time ./test3.py
235882
./test3.py 0.58s user 0.02s system 98% cpu 0.612 total

とそれなりに遅くなる。
# decimal 遅すぎ orz
0461デフォルトの名無しさんNGNG
>>458
ruby版、イテレータが重いみたい。
while ( f.gets ) do
$i += 1
end

のが速い。
それでもperlやpythonより遅かったけど。

あと、rubyは31bitまでの整数は即値で扱ってる。
0462デフォルトの名無しさんNGNG
>>458
これは反則?かなり速くなると思うよ
data = ''; open('/usr/share/dict/web2', 'rb'){|f|data = f.read}
data.concat "\n" if data[-1,1] != "\n"
p data.count("\n")
0463461NGNG
反則ならこういうのもあるけど
f = open "xxx"
f.readlines
print f.lineno, "\n"

それでもperlより遅いのは何故だ。

perl>>458版
real 0m0.046s
user 0m0.040s
sys 0m0.000s

ruby反則版
real 0m0.054s
user 0m0.050s
sys 0m0.000s
0464458NGNG
>>461
サンクスです。やってみました。
% time ./test2.rb
235882
./test2.rb 1.23s user 0.03s system 97% cpu 1.295 total

う〜ん、気持速くなったか...

>>462
こちらもサンクスです。やってみました。
% time ./test3.rb
235882
./test3.rb 0.07s user 0.01s system 99% cpu 0.078 total

速くなったが、perl や python でも「それだったら...」というのがありそう。

>>448 で、数値演算だけでないよ、とあったので、ファイル読み書きでも
やってみようかな、というのが元々の動機なので微妙ですね。

i++ を替えると応用が効くかなと思ってベタベタにしてあるんで...
# 言語に特化した方法で競うのも面白そうですが。


0465461NGNG
ごめん。462のが速い。

real 0m0.011s
user 0m0.010s
sys 0m0.000s
0466462NGNG
Rubyの高速化はいかに標準ライブラリ(=ネイティブコード、可能ならば標準添付ライブラリも)を
使いこなせるかが鍵だと思う。
0467デフォルトの名無しさんNGNG
>>466
それはそうかも知れないけど、このスレの目的からはずれてるんじゃないかと
0468デフォルトの名無しさんNGNG
それはつまり、あんまりRubyで書くなと言ってるのと変わらないわけで、
すなわちRubyは使い物にならないということでは・・・?
まさか専用イテレーターまで遅いとは思わなかったが。

せめて>>458の単純な繰り返しぐらいは内部で専用ロジックでも用意して
高速に実行できるべきだよね。
悪評高いHSPでもそれぐらいのズルやってるでしょ?
まあ処理が複雑化すればそんなもの無いに等しくなるだろうけどね。

たまにRubyは言語仕様の制限で遅いのは仕方が無い、って言う人がいるけど、
それは言語設計が悪いことを示しているわけだよ。

ライブラリ使って「〜のが速い」って言うのはそのライブラリに完全に依存してるし
それはそのスクリプト言語の速さじゃない。
言い換えればライブラリを適用できない処理は全て遅いということになる。
今後も、その標準ライブラリは肥大化していくのかねえ。
0469デフォルトの名無しさんNGNG
ならばPythonも使い物にならないね。Perlより遅いのは間違いないから。
0470デフォルトの名無しさんNGNG
クスクス
0471デフォルトの名無しさんNGNG
>>468
近年稀に見る低レベルな釣りだな
0472デフォルトの名無しさんNGNG
ライブラリ使ってもPerlやPythonに勝てないなんて
これはもう日本発の言語らしく切腹するしかないな
0473462NGNG
>>467
標準の物を使っちゃ駄目となると何もできないわけだが…
標準なんだから使っても移植性に問題は出ないだろうし
0474デフォルトの名無しさんNGNG
うだうだ、うぜぇなぁ!
たかだかコンマ数秒の差だろう?

プログラム作る時の時間を考えてみろ、
rubyの方が1億倍ぐらい速いぜ!
0475デフォルトの名無しさんNGNG
     最  高  言  語  R  u  b  y
0476デフォルトの名無しさんNGNG
Ruby is Namber one
0477デフォルトの名無しさんNGNG
>>468
大抵の場合、速くなくても困らない。
速度がほしいならスクリプト言語じゃなくて C で書くよ。
0478デフォルトの名無しさんNGNG
歳くってくると、C で書く根性がなくなってくる...

一瞬で終わるタスクなら差は気にしないけど、数倍の差があると 1時間が数時
間か... 同程度の手間で書けるんだったら、速いスクリプト言語の方がいい
なぁ、となってしまう。
0479デフォルトの名無しさんNGNG
1時間で書いて1秒で実行が終了するより、
10分で書いて1分で実行が終了するほうがまし
0480デフォルトの名無しさんNGNG
同じ処理を
10分で書いて 10分で終了する言語
10分で書いて 60分で終了する言語
どちらを選ぶ?
0481デフォルトの名無しさんNGNG
>>480
条件がそれしか提示されて無いなら当然前者を選ぶしか無いけど、
0482デフォルトの名無しさんNGNG

> 479 :デフォルトの名無しさん:04/11/06 17:21:29
> 1時間で書いて1秒で実行が終了するより、
> 10分で書いて1分で実行が終了するほうがまし

これはつまり、C言語よりスクリプト言語の方がよい(場合が
多い)ということだ。

[例]Ruby>>>C言語

> 480 :デフォルトの名無しさん:04/11/06 17:25:54
> 同じ処理を
> 10分で書いて 10分で終了する言語
> 10分で書いて 60分で終了する言語
> どちらを選ぶ?

恐らく、どのスクリプト言語であろうとも、慣れて来れば
それなりの時間でコードを書けてしまう。(大差は無い)

となると、はやりスクリプト言語のなかでは実行速度が早い
ほうが良いということだ。

[例]Perl>>>Ruby

[結論]Perl最強!!
0483デフォルトの名無しさんNGNG
何が有ろうとRubyが最強である事には変化がなくそれは永遠である。
0484デフォルトの名無しさんNGNG
>>483
偽 Ruby 厨なんだよね?
ウザいの通り越して、気味悪いんだけど。
Ruby 使っている方々が可哀想だ。
0485デフォルトの名無しさんNGNG
>>473
そうやって毎回似た様な処理をするライブラリを1つずつチェックするのか?
速いライブラリ探すのに手間が掛かるよりは
普通に書いた処理が普通に速いほうがいい

実際458から速い方法が見つかるまでかなり時間掛かってるし
この程度の処理を書くのに毎回あんな時間が掛かる様ではヤバイ
0486デフォルトの名無しさんNGNG
つまりRubyは処理系も開発速度も遅くなる傾向があることがここに証明された
○結論
Rubyマジヤバイ
0487デフォルトの名無しさんNGNG
>>458の事例から推測できる事は以下の通り

・Rubyは普通に書いたらPerlの4倍遅い。
・開発速度はPerlが5分だとすると、Rubyはその20倍は掛かる。
0488デフォルトの名無しさんNGNG
>>485
> 実際458から速い方法が見つかるまでかなり時間掛かってるし

こんな根拠にもならん根拠出してまで必死になっている理由がよくわからん。
0489デフォルトの名無しさんNGNG
クスクス
0490デフォルトの名無しさんNGNG
どちらかというとお前の人生における生産効率の低さが気になる。
0491デフォルトの名無しさんNGNG
>普通に書いた処理が普通に速いほうがいい

まあねえ・・
0492デフォルトの名無しさんNGNG
>>485
RubyでPerlと同程度の実行効率を得るにはその20倍の時間が掛かる。

の方が適切かと。
0493デフォルトの名無しさんNGNG
ライブラリに頼るってことは自分(=言語)に自信がない証拠。
0494デフォルトの名無しさんNGNG
20倍の根拠がマジで分からん。
0495458NGNG
得手不得手があるのは分かりきっているんだから、code 晒して実測した方が
このスレ的に面白いと思うんだが...

1つの事例でけなしあっても無駄なだけ。
0496デフォルトの名無しさんNGNG
>>493はいつもライブラリを使わないでプログラムを書いているわけですね。w
0497デフォルトの名無しさんNGNG
>>492
なんでそんなに必死なの?・・・・
0498デフォルトの名無しさんNGNG
問題は、>>458が思いついたごく自然なコードでかなりの差が出たことだよ。
なるべくRubyが有利になるようにイテレーターを使ったりしていたにもかかわらず。

>>462, >>463が反則コードを書いてやっと追いつくが、
反則では比較にならない。

0499デフォルトの名無しさんNGNG
イテレータって速度を出すためのものだとでも思っているんだろうか?
0500デフォルトの名無しさんNGNG
Rubyに何か嫌な思い出でもあるんじゃね?
0501デフォルトの名無しさんNGNG
>>494
>>458の投稿時間から>>466の結論が出るまで掛かった時間が約1時間半。
Perlと比べて大雑把に20倍は掛かる見積もり。
0502デフォルトの名無しさんNGNG
同じ処理を
5分で書いて 0秒で終了する言語
1時間半で書いて 0秒で終了する言語
どちらを選ぶ?
0503デフォルトの名無しさんNGNG
Rubyコードの手直しには3人程度の人間が必要だったことも考慮したい。
それでも1時間半。
0504デフォルトの名無しさんNGNG
Ruby最強!!
`cat "/usr/share/dict/web2" | wc -l`
0505デフォルトの名無しさんNGNG
いや、だからそんなものが何で開発時間の根拠になるわけ?
なんか痛いを通り越して電波飛ばしているようにしか見えない。
0506デフォルトの名無しさんNGNG
501のせいで興ざめだな。
0507デフォルトの名無しさんNGNG
>>505
>>464の通り、458は他人が提案するまで速い方法を思いつかなかった。
これだけでRubyでの開発は困難だという証明になる。
0508デフォルトの名無しさんNGNG
いいよいいよ。
Rubyは無茶苦茶遅い。
それがいいたいんだろ。
0509muNGNG
どっかのスレで質問したときは Python と Ruby は同じくらいの速度だって
いわれたんですけど、あれは間違いだったのかな。
やっぱり Python のほうが Ruby より速いんだね。
0510デフォルトの名無しさんNGNG
Perlも反則とやらを使えば早くなるんだろ?
比較する意味ないって。
0511デフォルトの名無しさんNGNG
問題の提供から解答するまでruby信者がこのスレに常駐していることが前提ってことだろ?
そんなにひまな人が多いわけじゃないからな。

それと、ライブラリと入っても、Arrayオブジェクトだぜ?
普通の配列で、それを使って反則か?
0512デフォルトの名無しさんNGNG
Rubyが遅すぎるのはまつもとが遊んでるせい
奴の家に乗込め
0513デフォルトの名無しさんNGNG
>>511
>>498
0514デフォルトの名無しさんNGNG
アロケーションやGCの効率が影響するくらいメモリを使って、
I/Oもそれなりにあって、かつ簡単に移植できるベンチマーク、
どこかにないかな。
0515デフォルトの名無しさんNGNG
>>499
では>>458は何故イテレーターを使ったのかな。
おそらくRubyに準拠したスタイルで書きたかったんだろう。
それで遅いのはもはや罪であるとしか言い様がない。
0516デフォルトの名無しさんNGNG
別にイテレータは有利にならないし。
0517デフォルトの名無しさんNGNG
どのみちwhileでも遅いし。
0518デフォルトの名無しさんNGNG
>>514
ディレクトリツリー全検索して
各ディレクトリ(とそのサブディレクトリ)が保持する
ファイルサイズと割合を表示していくプログラムとか。
0519デフォルトの名無しさんNGNG
これrubyでもっと早くならない?
http://shootout.alioth.debian.org/bench/ary/
0520デフォルトの名無しさんNGNG
                >>503,507,515
                    ↓
                          カタカタ____ ___
                  ∧_∧   ||\   .\  |◎ |
                  <.#`Д´>  ||  | ̄ ̄|  |:[].|
            ∧_∧ ┌(   つ/ ̄.l| / ̄ ̄/ ..| =|
   ∧_∧   ( TДT) |└ ヽ |二二二」二二二二二二二二」
  ( TДT)  ( つ つ   ̄]||__)   | ||       | ||
  (つ  つ  /  / /   / ̄\   / ||       / ||
  と_)_)  (___)__)  ◎    ◎.[___||     .[___||
            ∧
   / ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   | 工作員よ、もういいんだ・・・・・・
   | 本当に良く頑張った・・・もう充分じゃないか・・・
   | 楽になっていいんだ・・・
   | 忘れるんだ・・・何事もなかったように・・・・・・
0521デフォルトの名無しさんNGNG
rubyはなんでこんなのが遅いの?ってのが結構あるから、
そこを地道に潰してけばpythonぐらいにはなるんじゃないの?
とりあえず>>519が遅い原因でも潰してみようぜ。
0522でしゃばってみるNGNG
かなり強引だが、開発時間 = プログラムを解くために必要な思考時間 = プログラムの記述量として、
プログラムの要素数や行数を比べることのほうが適切だと思う。たとえば、Cだと
#include <stdio.h>
int main(void){
FILE *fp;
int ch;
fp = fopen(fname, "r");
while(1){
ch = fgetc(fp);
if(ch == EOF)break;
putchar(ch);
}
fclose(fp);
}
だいたいこうなるが、bashだと「cat $1」だ。
もちろん、変数名を縮めたり、適切に改行を入れなくても要素数(ifとかwhileとか)で考えるから無駄。もちろん可読性も。
0523462NGNG
>>519
RubyのArrayはあまり速くない。処理によってはString#[]の方が速かったりする

>>521
他の言語みたいに書くと洒落にならないほど遅くなるのは事実かも…
俺もCのコードを移植しようとしてとりあえず動く程度を作ってみたら無茶苦茶遅かった。
Rubyスレの面々にはかなわないと思うがちょっとやってみる。
手際は悪いのでしばらく待ってくれ
0524デフォルトの名無しさんNGNG
>>522
C言語だって短く書けと言われれば書けるだろ。

#include <stdio.h>
main() { int c; while ((c=getchar())!=EOF) putchar(c); }

bashで1からcat書けと言われたらこうは書けないし。
0525デフォルトの名無しさんNGNG
まともな速度にするためにパズルを解かなきゃいけないなんて、あほらしくね?
0526デフォルトの名無しさんNGNG
>>524
それは「cat $1」とは違う・・・

俺が反論するならCだって↓こうかけるだろといいたいところだ。
int main(int argc, char* argv[]) {
return execlp("cat", argv[1]);
}

使用できるライブラリの話をしだしたらとうてい公平な比較にはならない。
0527デフォルトの名無しさんNGNG
>>524
そうじゃなくて要素数だよ。
524のCで思考すると、
1.まず、標準ライブラリを持ってくる。
2.変数cを宣言する
3.取ってきた文字をcに入れて、EOFでない間繰り返す
4.文字を出力する
5.繰り返し終わり
みたいに考える。
対してbashは
1.引数に指定されたファイルを開く
で終わる。
この差が開発時間ではないのか?ってこと
0528デフォルトの名無しさんNGNG
勝ち負けとか煽るから話がそれてくるんだよ。
その言語の一番特徴的なコード書いて計測する。
ただそれだけの話だろ。
0529デフォルトの名無しさんNGNG
例えば手前の文字とxorして出力したいという事になるとbashではお手上げ

//encode
#include <stdio.h>
main() { int c,k=0; while ((c=getchar())!=EOF) putchar(key^c),key=c; }

//decode
#include <stdio.h>
main() { int c,k=0; while ((c=getchar())!=EOF) key^=c,putchar(key); }
0530デフォルトの名無しさんNGNG
それもう速度の話じゃなくなってるじゃん
0531デフォルトの名無しさんNGNG
うん。すれちがいだ。
スクリプトの速度を比較するなんて、あんまり意味の無いスレだな。
0532デフォルトの名無しさんNGNG
つまり仕様変更に弱いと
0533デフォルトの名無しさんNGNG
rubysaikyou!
0534デフォルトの名無しさんNGNG
>>521
いや、数行程度のベンチマークプログラムならものによって
Pythonが早かったりRubyが早かったりするが、ある程度の大きさの
プログラムならPythonのほうが遅くなることが多い。
0535462NGNG
>>521
ゴメソ…これ、かなりチューンされているわ。
プロファイラで追ってみたがこれ以上速くするのは俺の頭じゃムリポ…○| ̄|_
0536デフォルトの名無しさんNGNG
>>535
数値計算と Array の要素へのアクセスがほとんどだから
あれよりも速くするのは無理かと。
VM ベースになれば改善されるケースだと思う。
0537デフォルトの名無しさんNGNG
>>519の普通に書いた版だとどんな感じのコードになるの?
0538デフォルトの名無しさんNGNG
こんなもんかね。
n = Integer(ARGV.shift || 1)
x = Array.new(n){|i| i + 1 }
y = Array.new(n, 0)
1000.times do
  n.times do |i|
    y[i] += x[i]
  end
end
puts "#{y.first} #{y.last}"

Enumerable 大好き版。
n = Integer(ARGV.shift || 1)
x = Array.new(n){|i| i + 1 }
y = Array.new(n, 0)
1000.times{ y = y.zip(x).collect{|i, j| i + j } }
puts "#{y.first} #{y.last}"
0539デフォルトの名無しさんNGNG
>>498
そうなんだよね。
洩れはrubyつかうけど、やはり遅いと感じるよ。
しかも、文法がメチャ難しいw
0540デフォルトの名無しさんNGNG
>>538
これで、どれぐらい遅くなる???

もとリストでは、かな〜り早いと感じたけど。
0541デフォルトの名無しさんNGNG
>>539
> しかも、文法がメチャ難しいw
そうか。まあがんばれ。そのうち初心者を抜け出したときに
なんであんな簡単なので悩んでいたんだろうと思うときがくる。
0542デフォルトの名無しさんNGNG
>>540
Array に正順アクセスか逆順アクセスかの違いだけなので
そんなに違わない。

$ time ruby19 -v a.rb 9000
ruby 1.9.0 (2004-11-06) [i686-linux]
1000 9000000

real 0m12.557s
user 0m12.560s
sys 0m0.000s

$ time ruby19 -v b.rb 9000
ruby 1.9.0 (2004-11-06) [i686-linux]
1000 9000000

real 0m13.440s
user 0m13.440s
sys 0m0.000s
0543デフォルトの名無しさんNGNG
つーかそもそも逆順でアクセスしなきゃいけないのかな。
だとすれば n.times do |i| を n.downto(0) do |i| に。
0544デフォルトの名無しさんNGNG
やっぱRubyは最強だな
0545デフォルトの名無しさんNGNG
とうとうここまできたか↓
電車男で801(1ウホッ)
http://pie.bbspink.com/test/read.cgi/801/1099656889/
0546デフォルトの名無しさんNGNG
おまえら延々とスレ違いネタやってて恥ずかしくないのか?
ここ逝け
http://pc5.2ch.net/test/read.cgi/tech/1068545254/
0547デフォルトの名無しさんNGNG
糞スレ立てたのでよろしくね。

Python厨とRuby厨が仲直りするスレッド
http://pc5.2ch.net/test/read.cgi/tech/1099804004/
0548デフォルトの名無しさんNGNG
>>541
それは分かるけど、測定はあくまでも
その言語にとって一番自然or普通な書き方で勝負するものだ。

0549デフォルトの名無しさんNGNG
ライブラリ使って「速くなりました」って、アホかと思う。
0550デフォルトの名無しさんNGNG
”標準”ライブラリならその言語の一部だろう。
0551デフォルトの名無しさんNGNG
>>550
なら、インラインアセンブラを「標準」と歌えば
催促かい?www
0552デフォルトの名無しさんNGNG
何か考えが浅いな。
0553デフォルトの名無しさんNGNG
551が何を言いたいのかわからんが
インラインアセンブラが書けるライブラリが
”標準添付”の言語なら別に問題ないだろ?
0554っっっっっっっっっるううううううっっっっっっbっっっっっっっっyNGNG
ばかばっか
0555デフォルトの名無しさんNGNG
インラインアセンブラってMicroSoft系のコンパイラでは”標準”だよな
Borland系なら別にアセンブラを用意しないといけないが・・・
0556デフォルトの名無しさんNGNG
>>555
Microsoft系のスクリプト言語というと JScript とか VBScript とかだけど、
よく知らないけどインラインアセンブラなんて無さそうな感じだよ・・・

それとも別スレの話題かなにか?
0557デフォルトの名無しさんNGNG
Forth なんかはスクリプト言語っぽいっちゃぽいし、アセンブラも書けそうな感じだけど
今日 PostScript 以外にメジャーな実装が無いか・・・
0558デフォルトの名無しさんNGNG
javaVM上のスクリプト系言語の「最遅」決定戦キボンヌ。
Jruby , Jython, Groovy ...
0559デフォルトの名無しさんNGNG
ドドネットもキボンヌ
0560デフォルトの名無しさんNGNG
Groovy は遅いらしいな
自分で計ったことは無いけど
0561デフォルトの名無しさんNGNG
>>558
一版スクリプト言語での最遅言語ってのもオモロいかもなw
0562デフォルトの名無しさんNGNG
Rava
0563デフォルトの名無しさんNGNG
まぁ、意図的に遅くするのは簡単なので、
無意味だろうな。と釣られてみるw

AA略
0564デフォルトの名無しさんNGNG
rubyってうんこだったんだな
知らなかった
0565デフォルトの名無しさんNGNG
>>564
んなこったーない。
0566デフォルトの名無しさんNGNG
>>563
最速って企画でやらせて下から集計すればいいだけの話
0567デフォルトの名無しさんNGNG
rubyは早くなったな!
0568デフォルトの名無しさんNGNG
>>567
計った結果晒して!
0569デフォルトの名無しさんNGNG
数字だけで判断するんやったら小学生でもできる。
0570デフォルトの名無しさんNGNG
ばかだなあ
Ruby笑っちゃう程遅いよ
0571デフォルトの名無しさんNGNG
何と比べて遅いんだ?
ネタはいらん。
0572デフォルトの名無しさんNGNG
速度
C > Ruby >>>>>>>>>>>>> C++ >>>>>>>>>>>>>>>>>>>>>>>>> Python >>>>>>>>>>>>>>>>>>>> Java >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Perl
0573デフォルトの名無しさんNGNG
>>572 はぁ?




速度
Ruby >>>>>>>>>>>>>>>>>>> C >>>>>>>>>>>>> C++ >>>>>>>>>>>>>>>>>>>>>>>>> Python >>>>>>>>>>>>>>>>>>>> Java >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Perl




0574デフォルトの名無しさんNGNG
この期に及んでrubyが遅くないと信じている奴が居ること自体が信じられん。
ま、groovyよりは速い。それは認める。w
0575デフォルトの名無しさんNGNG
2ch読んでC>>>JAVA>Python≧Rubyは分かった。

用途によってはPythonよりRubyの方が早いこともある程度。
Rubyはオブジェクト指向優先だから仕方ない。
Pythonとは目指す所が少し違うから。開発の規模も違うし。
JAVAもネイティブJAVAがまともに使えれば…
それでも漏れはJAVA嫌いだからつかわないけどw

で、Perlは、どの辺?全然ダメ?Ruby>Perl位?
個人的に書き殴れるんで好きなんだけどね。
Web限定ならPHPの方がいいですが…
PHPもどの辺か教えてーー
0576デフォルトの名無しさんNGNG
>>575
なにを血迷ってるのか分かりませんが
C>>>Python≧Ruby>>>JAVA>>>C++>>>>PHP>>>>Perl
0577デフォルトの名無しさんNGNG
つまらん。
0578デフォルトの名無しさんNGNG
>>575

マトモなレスだと思ったが、1点突っ込んでおく。

> Rubyはオブジェクト指向優先だから仕方ない。

何故だ?
基本的にオブジェクト指向は好きでないが(思考の邪魔)
速度的には中立な筈だ。

> で、Perlは、どの辺?全然ダメ?Ruby>Perl位?
> 個人的に書き殴れるんで好きなんだけどね。

マジレスすると、Perlはメジャースクリプト言語の中では
上位クラスでしょうな。

# 煽りはスルーでよろしく。
0579デフォルトの名無しさんNGNG
なぜオブジェクト指向が思考の邪魔になるのか理解不能
0580デフォルトの名無しさんNGNG
おつむがたりないだけでせう
0581デフォルトの名無しさんNGNG
ねたでしょ
0582デフォルトの名無しさんNGNG
C>C++>JAVA>>>(省略)>>>lua>>>Perl>>>Python>>>Ruby>>>PHP

実際計ったらこんな感じだった
0583デフォルトの名無しさんNGNG
そういえば何でPHPみたいな糞が流行ってるんでしょうな
0584デフォルトの名無しさんNGNG
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> PHP
0585デフォルトの名無しさんNGNG
>>583
web開発に特化しているだけあって、webでは使うと楽だよ。
言語の程度はともかくとして。
0586デフォルトの名無しさんNGNG
PHPはWeb用のCみたいな感じだね。Web以外の用途にはほとんど使う気しない。
0587デフォルトの名無しさんNGNG
そういえば何でHSPみたいな糞が流行ってるんでしょうな
0588デフォルトの名無しさんNGNG
↑馬鹿の一つ覚えプププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
ププププププププププププププププププププププププププププププププププププププププププププププププププププププ
0589デフォルトの名無しさんNGNG
↑馬鹿の一つ覚え
0590デフォルトの名無しさんNGNG
そういえば何で「↑馬鹿の一つ覚えプププ」みたいな糞が流行ってるんでしょうな
0591デフォルトの名無しさんNGNG



     ---     最   高   言   語   R   u   b   y   ---


.
0592デフォルトの名無しさんNGNG
LISPer いますか?
0593デフォルトの名無しさんNGNG
おれのいくスレはいつもRuby関係で荒れるな(w
どうにかしろよ
0594デフォルトの名無しさんNGNG
>>592
いたらどうする
0595デフォルトの名無しさんNGNG
>>592
いるけど最速だの最高だの最強だのと主張する気はないぞ
0596デフォルトの名無しさんNGNG
LISPerは >>592 を除いてみんな大人
0597デフォルトの名無しさんNGNG
LISP って実用性が低いって本当ですか?
0598デフォルトの名無しさんNGNG
ねこみみです。
0599デフォルトの名無しさんNGNG
本家 Yahoo! のショッピングに Lisp が使われる程度には実用性がありません。
0600デフォルトの名無しさんNGNG
できる人間は道具を選ぶ権利がある。
そうでない人間は道具に従うことになる。
0601デフォルトの名無しさんNGNG
LISPって速いの?
0602ChaosicSoul ◆/yaJbLAHGw NGNG
Re:>601 LISPにはバイトコンパイルがあるから、微妙なところ。

ところで、C言語のインタプリタってどこにあるのですか?
0603デフォルトの名無しさんNGNG
これのことじゃないの?
ttp://root.cern.ch/root/Cint.html
0604バカのVCNGNG
フフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフ
フフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフ
フフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフ
フフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフ
0605デフォルトの名無しさんNGNG
うちのperlで>>381がうまく動いてないみたいなんですが、
何が原因でしょうか?(いつまでたっても終わらない)
WindowsXPに入れたActivePerlです。
バージョンは

perl -v

This is perl, v5.8.2 built for MSWin32-x86-multi-thread
(with 25 registered patches, see perl -V for more detail)

Copyright 1987-2003, Larry Wall

Binary build 808 provided by ActiveState Corp. http://www.ActiveState.com
ActiveState is a division of Sophos.
Built Dec 9 2003 10:19:40
0606デフォルトの名無しさんNGNG
もっと小さい入力でやってみたら?
(12,6,0)じゃなくて(2,1,0)とか
0607デフォルトの名無しさんNGNG
(11,6,0)でやったら終わりました。

(12,6,0)ではスタック溢れか何かでしょうか?
でもインタプリタのくせにエラー出ないのはおかしいですよね。
Ctrl+Cで止めようとするとアクセス違反のダイアログが出るし。
これはPerlのバグ?
自分内でのPerlの信用度が低下しました。
0608デフォルトの名無しさんNGNG
ActivePerlの最新版5.8.4build 810でやっても同じでした。
ちゃんとテストしてないのかな。
0609デフォルトの名無しさんNGNG
cygwin だとちゃんと動くんだよね

~$ perl -v
This is perl, v5.8.5 built for cygwin-thread-multi-64int
0610デフォルトの名無しさんNGNG
そうでしたか。
この件でActiveStateの信用ガタ落ちしました。
もうあそこのは使わないことにします。
ありがとうございました。
0611デフォルトの名無しさんNGNG
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Perl
0612デフォルトの名無しさんNGNG
cygwinのperlでやってみました。
おおざっぱですが
ruby 1.8.1 (2003-12-25) [i386-mswin32]は15秒
perl, v5.8.5 built for cygwin-thread-multi-64intは15秒
Gauche scheme interpreter, version 0.8.1 [euc-jp]は3秒
となりました。(WindowsXP Pro Pentium M1.6G)
0613デフォルトの名無しさんNGNG
Perl 版は >>381 より >>370 のほうが速い
配列の参照回数が減るから
0614613NGNG
ごめん>>613は忘れて
0615デフォルトの名無しさんNGNG
ごめん LISPer は忘れて。
0616デフォルトの名無しさんNGNG
ごめんこのスレは忘れて
0617デフォルトの名無しさんNGNG
CCleanは速いみたいだけど
ぜんぜん読めえや(w
速さは言語難易度と比例するのか
06181NGNG
 >  スクリプト言語でいちばん速いのはどれでしょうか?
 >  これって、トリビアの種になりますよね?よろしくお願いします。
0619デフォルトの名無しさんNGNG
>>618 Ruby 次期バージョン
0620デフォルトの名無しさんNGNG
LINGO
0621デフォルトの名無しさんNGNG
>>617
hellow world と 1〜1000まで合計するプログラムキボン!
0622デフォルトの名無しさんNGNG
>>617
アセンブラ最強伝説は揺るがないってことでフジワラ豆腐店〜
0623まとめてやったぞNGNG
おまいらCやC++もスクリプト言語として考えて順列つけてるのか?
一応Cは除外したが。あとweb限定で考えてるけどいいんだよな?

そうすると JAVA>PHP>Perl>Python≧Ruby

Rubyに関してはオブジェクト指向を速度より優先して作ってるから遅くても仕方ない。
Pythonも速度を気にするならCで書いて、それを読みこめって感じだからね。
最近はJAVAのとこPHPに書き直したりしてるし、そこまで速度は変わらないようだ。
0624デフォルトの名無しさんNGNG
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>> Java
0625デフォルトの名無しさんNGNG
>>582
0626デフォルトの名無しさんNGNG
使いたいときに使いたい言語を使えば良い。それだけのこと。
0627デフォルトの名無しさんNGNG
使いたいときに使える言語がない。それだけのこと。

勉強せぃってヵ。
0628デフォルトの名無しさんNGNG
ハノイの塔で競うのはどうか
グラフ探索とか
ライブラリだけでできない様な処理がいい
0629デフォルトの名無しさんNGNG
ヾ( ゚д゚)ノ゛ハヤクカケー
0630デフォルトの名無しさんNGNG
速度が必要ならCで書いて読み込めばいいっていわれても、
普段スクリプト言語使ってると、いまさらCで書くのが面倒で馬鹿馬鹿しくなってくるんだよな。
0631提案だNGNG
>>630
そうそう。近未来的なスクリプト言語では、
スクリプト ソースの中に拡張モジュールのコードを埋め込めるのがいい。
実行時に動的にコンパイルしてくれる。
0632デフォルトの名無しさんNGNG
実行時に毎回コンパイルすんの?
0633デフォルトの名無しさんNGNG
>>631
拡張モジュールかはともかく、
似たものは既にPerlにあるよ。
0634デフォルトの名無しさんNGNG
>>633
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Perl
0635631NGNG
>>632
どっかにキャッシュしておけばいい。

>>633
それはどうやってやるの?
0636デフォルトの名無しさんNGNG
30秒と経たないうちに反応があるというのも怖いな。
0637デフォルトの名無しさんNGNG
>>635 Inline.pm
0638631NGNG
>>637 情報ありがとう。面白そうだから調べてみる。
0639デフォルトの名無しさんNGNG
スクリプトの利便性を捨ててるよな>Inline.pm
特定環境でしかウゴカネエだろ
0640デフォルトの名無しさんNGNG
Perlすごいね!
どうやってるんだろう!

って、動的な言語なら大したことねーですよ(プ
0641デフォルトの名無しさんNGNG
意味不明。馬鹿?
0642デフォルトの名無しさんNGNG
>>641
Ruby ?????????>>>>>>>>>>>>>>>>>>>>>>>>>Perl
0643デフォルトの名無しさんNGNG
Perl6は何でも埋め込めるんでしょ
0644デフォルトの名無しさんNGNG
それはparrotではないのか。しかも違うし。
0645デフォルトの名無しさんNGNG
>>623
だ〜か〜ら〜
速度が遅いのをオブジェクト指向の性にするなって!

散々既出だろ、アフォ目
0646デフォルトの名無しさんNGNG
DOSコマンド最速
0647デフォルトの名無しさんNGNG
オブジェクト試行
0648デフォルトの名無しさんNGNG
オブジェクト女学院
0649デフォルトの名無しさんNGNG
オブジェクト奉行
0650デフォルトの名無しさんNGNG
オブジェクト趣向
0651デフォルトの名無しさんNGNG
オブジェクト太郎
0652デフォルトの名無しさんNGNG
オブジェクト仮面
0653デフォルトの名無しさんNGNG
>>648
ワロタw
0654デフォルトの名無しさんNGNG
あーあ、台無しだ
0655デフォルトの名無しさんNGNG
最強オブジェクト指向 Ruby
0656デフォルトの名無しさんNGNG
ぶち壊しトドメはこれにつきるね。>るび
0657デフォルトの名無しさんNGNG
>>656
ストッパー、師範認定!
0658デフォルトの名無しさんNGNG
いまさらだが、実行速度を出すコーディングができるというのと、
普通にコーディングしたきの実行速度って違うよな。

あと、Perl で Inline::C 使うのと、
ネイティブコードになってる外部モジュール使うのって、あんま差ないよな。
0659デフォルトの名無しさんNGNG
>>658
前半、比較対象がそもそも違う。
後半、意味不明
0660デフォルトの名無しさんNGNG
配布されてるバイナリやmakefileをそのまま使わずに
CPUに最適化させるとかなり高速化するよな
0661デフォルトの名無しさんNGNG
>>660
何の話をしてる?
0662デフォルトの名無しさんNGNG
たまたま見つけたというかgoogleの最初のほうにあったのを貼っとく
http://www.lib.uchicago.edu/keith/crisis/benchmarks/tak/
0663デフォルトの名無しさんNGNG
うちの環境でそれやってみたけど
Perl 506678 microseconds per iteration
Python 1029786 microseconds per iteration
Tcl 1199482 microseconds per iteration
だったよ
0664デフォルトの名無しさんNGNG
ちなみにCは15513 microseconds per iterationだったよ
0665デフォルトの名無しさんNGNG
いろんな言語がparrotで実行されるようになったら、
ベンチマークの差もなくなってくるのかな。
0666デフォルトの名無しさんNGNG
Io試してみたけど遅いぞ

tarai := method(x, y, z,
 return if(x <= y, y,
  thisBlock(
   thisBlock(x-1, y, z),
   thisBlock(y-1, z, x),
   thisBlock(z-1, x, y))))
tarai(12,6,0)

=> 2.5 / ruby 1.8.1 (2003-12-25) [i386-mswin32]

Ioはこっから落としたやつ
http://www.iolanguage.com/Downloads/
IoDesktop-2004-12-16
0667デフォルトの名無しさんNGNG
http://www.iolanguage.com/Comparisons/Performance.html
ここのベンチも2年前のだからあてになんないね
0668デフォルトの名無しさんNGNG
まだ、タライ回しとかやってたのかw
もっと実用的なベンチマークは無いのか?
0669デフォルトの名無しさんNGNG
実用的なベンチって何?
0670デフォルトの名無しさんNGNG
MD5の実装
0671デフォルトの名無しさんNGNG
じゃ、ためしにソース晒せ
0672デフォルトの名無しさんNGNG
めんどくさいから文字列連結にしよう
0673デフォルトの名無しさんNGNG
タライ回しって、関数呼出ぐらいしか計れないよねぇ〜
0674デフォルトの名無しさんNGNG
function cat(l, r) { return l + r; }
var s = "", max = 1000000;
for (var i = 0; i < max; i++) { s = cat(s, i); }
0675デフォルトの名無しさんNGNG
>>669
LISP インタプリタ
0676デフォルトの名無しさんNGNG
LISP自体が(ry
0677デフォルトの名無しさんNGNG
あげてまで何がいいたいんだ?
0678デフォルトの名無しさん05/01/17 02:41:16
>>677
彼はLISP使いに嫉妬するロートルプログラマー39歳
0679デフォルトの名無しさん05/03/01 15:36:42
保守
0680デフォルトの名無しさん05/03/13 06:53:33
>>678
貴方もLISP使いに嫉妬するロートルプログラマー39歳
0681デフォルトの名無しさん05/03/13 07:49:39
たらい回し関数でGO!
■ このスレッドは過去ログ倉庫に格納されています