Ruby 初心者スレッド Part 60 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/04/29(土) 02:01:58.34ID:urVXnFrH
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で

前スレ
Ruby 初心者スレッド Part 59
http://echo.2ch.net/test/read.cgi/tech/1475394638/

るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/

Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/

逆引きRuby
http://www.namaraii.com/rubytips/
2017/07/04(火) 18:47:18.87ID:nYPV9UDZ
>>554
違う違う

データを全自動で集めると思ってるわけじゃない
その「データ化する作業」も含めてワトソンでしょって言ってるの
2017/07/04(火) 18:48:27.80ID:jC9x4mB4
>>550
> たんなる検索エンジンはクイズに答えられない

だからクイズに答えれるように人間がデータを入れるんだよ。

クイズの多くは知識問題。
例えば総理大臣の名前とか。

ありとあらゆるクイズの問題と答のペアを登録していくことで
クイズ専用のデータベースを作る。

ウェブサイトの検索エンジンがクイズに答えられないので
データベースががウェブサイトだから。
ウェブサイトは人間用の文章がほとんどなのでクイズのデータとしては適切じゃない

だからクイズに適したデータベースを作り上げる。
そういう作業を人間が行うんだよ。

それを行える人間は知能があるということになるし、
人間の知能を使ってデータベース化すれば
人工知能とやらはデータベースを検索するだけでいい。
2017/07/04(火) 18:50:11.16ID:jC9x4mB4
>>566
> その「データ化する作業」も含めてワトソンでしょって言ってるの

人間が行う作業も含めて、ワトソンっていってる?
例えば自動車を運転する人間は、自動車の一部。みたいな
2017/07/04(火) 18:51:28.49ID:nYPV9UDZ
>>557
それは対話UIの部分を軽視してる

たしかにエキスパートシステムも
DBの問い合わせは行うが
たんなる検索エンジンとの違いは
対話システムを備えているところで
そこが思っているほどかんたんじゃないんだな
2017/07/04(火) 18:55:30.46ID:8gzuv+lo
IBMのビジネスモデルは基本的にパッケージ販売とSIなので、
学習済みのワトソンのAPIを提供して終わり、だとあまり意味がないわけ
IBMとしては、クソ高いパッケージとして買わせてサポートもがっつり付けてもらって、その上あわよくば下請人員まで投入して大規模案件を作りたい
だからワトソンはセルフサービスでなきゃいけないんだよ
応用として医療分野を執拗に推してるのも、医療分野はプライバシーの問題があるのでSaaSに食われにくいという面があるの
2017/07/04(火) 18:57:49.38ID:nYPV9UDZ
>>558
たとえばRubyは標準ライブラリまで含めて
みんなRubyとして使ってるでしょ?

Rubyのコアな言語の文法だけを模倣するなら
誰でもできるかもしれないが実用に耐えない

同じようワトソンのコアな検索部分だけなら
模倣できるだろうけど実用に耐えない

ワトソンなんて検索エンジンだから簡単だよって言うのは
Rubyなんてインタプリタだから簡単だよって言ってるのと同じ
2017/07/04(火) 19:03:28.55ID:jC9x4mB4
>>559
対話システムは難しいが、その反面間違っても
許されるシステムだから、ある意味簡単とも言える。

そもそも人間同士であっても、相手の言ってることが100%
通じるわけじゃない。言う側に問題がある場合だってあるしね

ある程度正しければ許されるシステムだから裏技が使える。
それは意味を理解しなくても、単語の重要度さえ判断できればいいんじゃないか?
ということ。人間とは違ったアプローチで実装できる。

対話システムというよりも、重要度判断システム
それでもいいんだよ。ある程度の正しさがあれば許されるからね。
2017/07/04(火) 19:08:32.62ID:jC9x4mB4
>>560
> 学習済みのワトソンのAPIを提供して終わり、だとあまり意味がないわけ

面白い(当たり前?)のは、分野ごとに学習済みデータが存在するということ

素人(?)考えで言えば、すべての分野を学習させたスーパーワトソンを
一つだけ提供すればいいと思うかもしれないが、そうはならない。

ようは学習というのはデータベースにすぎないので、
違う業界のデータベースを混ぜて使うと、関係ないデータが
検索で引っかかるようになる、つまりノイズが多い。

そういうところを柔軟に判断してはくれないんだよね。
知能があるわけじゃなくて、単なる検索エンジンだから。
2017/07/04(火) 19:11:35.56ID:jC9x4mB4
結局重要なのはデータベース(学習データ)であるし、
そのデータベースを作るのは人間の地道な作業で、
ワトソンっていうのは最終的には学習データ販売ビジネスになります。
565デフォルトの名無しさん
垢版 |
2017/07/04(火) 19:17:37.33ID:1Tk0DRaF
ID:8gzuv+lo
ID:nYPV9UDZ
ID:jC9x4mB4
この三つのIDが延々ワトソンの謎を話し合っているけど、けっして誰もワトソンの構造について説明しようとしないよな

自演かこれ
誰か団子呼んでこいよ
2017/07/04(火) 19:21:22.51ID:jC9x4mB4
>>565
ワトソンの構造はこちら

https://wirelesswire.jp/2016/11/57683/

> サンプルのソースコードはGithubで公開されています。 
>
>  まずは、IBMが先端技術と考える、その素晴らしい
> "コグニティブコンピューティング"のソースコードを御覧ください。

データがないと何もできないってのがわかるだろう?
2017/07/04(火) 19:24:15.28ID:nYPV9UDZ
同じ話の繰り返しになるからそろそろ切り上げたいけど
Googleなんて検索エンジンだから簡単かっていえば困難でしょ?

データを含まないデータベースの問い合わせ部分だけならできても
ネット全体の規模で検索できるから普及したわけであって

それをなんでワトソンなら自分にもできると思っちゃうのか?
っていうのが言いたい
2017/07/04(火) 19:34:05.92ID:jC9x4mB4
まあワトソンと同等レベルのソフトウェアはできるだろう。
だけど、データベース作成の人力作業コストはどうにもならないってことだ。

データがオープンになればいいんだがねw
569デフォルトの名無しさん
垢版 |
2017/07/04(火) 19:41:51.75ID:1Tk0DRaF
自演あきた?
ならば良し
2017/07/04(火) 19:58:39.76ID:olJiM2Cb
ワトソンのことはよく知らんが、>>566のリンク先のことが本当だったとしたら
あまり面白いものではないな

それはそうとして、別の観点からちょっと思うことがあって
2chで人を集めて研究して本を出版しようって発想がかなりアレなんだわな
2chで人を集めたってゲームですらまともに完成するほうが珍しいってのに
本を出版したりアプリ売って金儲けとかもうね

もし本当にそういうことがしたいんなら、本人だけで
ほぼ完成させて、デモも動いているんだけど、どうよこれ
ぐらいまでは最低でも持って行っておかないと誰も相手にしないっつーかありえないよ
そこまでやっても多分うまくいかないと思うけど

本来なら本人が優秀なら実社会で勝手に人が集まってきて勝手に輪ができて
それでどうこう、って話なんだよ
それを、なんで、2chで人集め?
って時点でもう
それもこんな人の減った末期の2chで
571デフォルトの名無しさん
垢版 |
2017/07/04(火) 20:06:46.34ID:1Tk0DRaF
スレチ

うせろ
572デフォルトの名無しさん
垢版 |
2017/07/04(火) 20:27:17.39ID:1Tk0DRaF
粘着野郎は食事か風呂のどっちかか
あいつ0時過ぎたらまたID変えてまくって何食わぬ顔で荒し行為繰り返しやがる
うぜー
2017/07/04(火) 20:39:45.57ID:/bsbbamh
>>570
技術は面白くないが役に立つ
574デフォルトの名無しさん
垢版 |
2017/07/04(火) 20:44:12.57ID:KFTmH+Xw
>>508
多分Ruby使える人で人工知能に詳しい人を探すより、大学訪ねて人工知能に詳しい人にRuby教えた方が手っ取り早い。
2017/07/04(火) 22:31:25.00ID:C0QCHaIb
ちょっと前まで何十億掛けてAIに東大の入試問題解かせて合格させようってプロジェクトがあったけど
それ以上のプロジェクトを気軽に始めようとする人って素敵☆()

壮大な目的はあるけど人集めが初心者スレなのは笑う所かなw
576デフォルトの名無しさん
垢版 |
2017/07/04(火) 22:44:59.86ID:KFTmH+Xw
案外そういう怖いもの知らずのが成功するから世の中分からんね。
パラボラアンテナもスパコンのけい
577デフォルトの名無しさん
垢版 |
2017/07/04(火) 22:46:30.79ID:KFTmH+Xw
途中で送信。。。
スパコンの京も、海外より予算少ないのに海外より性能良かった。
パラボラアンテナなんか、それで世界に広がった。
578デフォルトの名無しさん
垢版 |
2017/07/04(火) 22:47:49.56ID:KFTmH+Xw
フロッピーディスク、切り口で怪我をしない缶詰めetcetc...
2017/07/04(火) 23:28:44.33ID:olJiM2Cb
まずまともな人望があったらこんなところで人集めの質問しないだろってのがあってだね
逆に一人でもやり遂げてやるぜって訳でもなさそうだし
そーゆー部分を見て、判断しよるよ、大人は
内容とか以前に
2017/07/05(水) 05:47:53.58ID:WM8wHrYP
どうやって正答のための元となるデータを形成するか、どうやって問から正答を導く処理を行うか
この二つがワトソンにとって重要な部分なんだけど、文で色々書くよりRubyのコードで示した方がわかりやすいと思う
IDをかえて一人で書き込んでいる人のレスみてるとやっぱりそこを理解できていないみたい
2017/07/05(水) 12:01:58.02ID:Qpg00Afa
>>428
ハトむぎ茶だっけ
2017/07/05(水) 13:25:37.62ID:UBafGJG+
ヒヒヒヒヒ
2017/07/05(水) 13:44:49.29ID:Qpg00Afa
っつーかむぎ茶も出所しておまいらくらいの歳になってんだな
2chに住み着いてるかもな
2017/07/05(水) 16:49:24.95ID:ZXlk9SbS
スレの流れをぶった切って質問。
当方、数日前に
Rubyを2.1.5 -> 2.4.1へとアップグレードしたのだが、
なんかスクリプトの実行速度が3割から4割遅くなった。

実際のところ、以前の2.1.5はgcc5.3.0でソースからビルドしたブツで、
今回入れた2.4.1はgcc7.1.0(これもちょっと前に入れた)でビルドしている。

ちなみにうちの環境だとdtrace関係でminirubyが落ちるので、
configure --disable-dtraceが必要だった。(2.1.5は無い)

正直rubyが遅くなったのかgcc等他に問題があるかどうかも判らないんだが、
2.1以降の各バージョンでのベンチマークとか、
変更点で遅くなったとかの情報が集まっているサイト等、
知っていたら教えて欲しい。

ちなみにOSは32bit版FreeBSD 10.1系とかなりマイナーな環境。
2017/07/05(水) 18:14:21.42ID:WM8wHrYP
プロファイラで旧と新それぞれまわしてどこに時間がかかってるかみてみたら?
http://blog.livedoor.jp/sonots/archives/39380434.html
2017/07/05(水) 18:40:35.78ID:nlxiuXwv
>>584
ruby-2.4.1もgcc5でビルドして比較してみたらどう?
あるいはruby-2.1.5をgcc7で比較するとか
新しいものが常に最良とは限らないし
2017/07/05(水) 18:54:07.87ID:nlxiuXwv
>>586
自己補足

個人的で尖りまくったものを述べるよ
以前、とあるInteger関係のベンチマークを比較した事があったけど
(速い) ruby-2.4 > (ruby-2.3, ruby-2.2) > ruby-2.0 > ruby-2.1 (遅い)
という結果になった

ゴンパイラはgcc8-devel、FreeBSD-11-AMD64上で実行
2017/07/05(水) 20:40:32.03ID:IBgoqo2I
http://takenaka-akio.org/etc/benchmark/
どうも、40倍〜200倍ぐらいは遅くなることを覚悟しないとダメ見たよ
仮に100倍遅くなるとしたら、3GHzのCPUが「30MHz」相当になるってことだから
ちょっと無視できるようなものではないね
コードの書き方を工夫するなどしても、100倍の差はなかなか埋まるものではないよな
もともと1秒で済んでいたはずの処理に100秒もかかることになるし
ここまで遅いと、ちょっとしたことが命取りになってくる
最初見積もっていたより処理に二倍の時間がかかかるようになってしまった場合
1秒が2秒になるのは1秒増えるだけだから我慢できても
100秒が200秒になるのは、追加の+100秒もは我慢できないとおもうよ
589デフォルトの名無しさん
垢版 |
2017/07/05(水) 21:36:48.67ID:LKhZWwoW
すまん
誰か>>588 の言っている事を翻訳してくれ
590デフォルトの名無しさん
垢版 |
2017/07/05(水) 21:42:41.90ID:z3CI8qH6
処理の規模によってはアルゴリズム考えないとヤヴァイぞ☆
って言ってる。
2017/07/05(水) 21:57:18.69ID:i6JVabOm
アセンブラで書くのが絶対的正義ってことでしょ
2017/07/05(水) 22:00:41.82ID:IBgoqo2I
二つの意味が含まれているから確かにわかりにくな

まず一つ目は、既に100倍ぐらい遅いんだから
今更、3〜4割遅くなったぐらいで騒ぐほどのことじゃない
速度が欲しかったらほかの言語を使え

二つ目は、100倍も遅いということは、3.0GHzの最新CPUを使っていたとしても
実質30MHzのCPUを使っているようなものだから
ほんのちょっとしたことが命取りで、更なる3〜4割もの性能ダウンは到底無視できない
考えてもみれば、100MHzのCPUが主流だったころは、本当にシビアだったとおもう
最適化最適化で、1クロック縮めるのに命を懸けている人たちもいたね
今更そういった時代に逆戻りしてしまうのはなんだかなーと思うし
速度がほしかったらほかの言語を使え

何故か同じ結論にたどり着くわけだが、Rubyではよくあること
593デフォルトの名無しさん
垢版 |
2017/07/05(水) 22:03:48.33ID:z3CI8qH6
昔はね。
C++でさえCからすれば遅い言われてた。
(これは理論上今でも、再利用性を得る代わりに遅くなる。C++はCの後継として、遅くなるのを最小限に抑える仕様。でも確実に遅い)
でも、CPUの進歩やコンパイラの進歩で人間が直接アセンブラ触るより速いと言われてる。
2017/07/05(水) 22:09:10.95ID:W7p06HKZ
Railsみたいに、I/O 処理があれば、C/C++でも遅くなるから、Rubyと大差ない

一方、数学・アルゴリズム系で、I/O 処理がなければ、C/C++が断然速い
595デフォルトの名無しさん
垢版 |
2017/07/05(水) 22:21:10.70ID:LKhZWwoW
つまりちょっと前からいるIDを変えてトンチンカンな書き込みを続ける例の荒らしだな

失せろ、スレチだボケェ
2017/07/05(水) 22:26:23.22ID:IBgoqo2I
>でも、CPUの進歩やコンパイラの進歩で人間が直接アセンブラ触るより速いと言われてる。

まさにその通りだ
ここでもいくつかのことが言えて

一つ目は普通にC/C++使っとくのが現状最速だろうってことと

二つ目は当時はアセンブラと比べたらC/C++ですら遅いといわれていたが
別に100倍も遅かったわけではない、ということと

三つ目は、二つ目の続きなわけだけど
アセンブラと比べてC/C++が遅いといっても100倍も遅かったわけではないんだが
CPUがあまりに遅かったからちょっとのことで騒いでいた
Rubyは3.0GHzのCPUを使っていても実質的には30MHzのCPUでプログラムを動かしているようなものだから
まるで当時のような状況、ちょっとのことが命取りな状況、ということと

四つ目は、100MHzのCPUが主流だったころ、もし100倍の性能のCPUが発売されたら
みんなそっち使うよね、ってこと
できることが全然違う、速度的には新幹線と徒歩ぐらい違う
東京から大阪へ行くのに、新幹線なら、考えうる限りの寄り道しまくっても絶対徒歩より早く着く
と、言い切れるぐらいには速度差がある、ので、コーディングで手を抜けそうだね、ってことと

五つ目は、既にC/C++の最適化は鬼のような状況で、普通の人がアセンブラで書いても
到底太刀打ちできない(SEEは別)
C/C++はアセンブラより速くなったといえるだろうし、克服したといえるし、良い選択になっているが
一方で、今現在、RubyはC/C++よりも100倍遅いという現実がある

「でも、CPUの進歩やコンパイラの進歩で
 (Rubyを使ったほうが)人間が直接C/C++を触るより速いと言われてる。」

という風な文章は成り立たない
2017/07/05(水) 22:35:31.37ID:i6JVabOm
>>596
その代わり面倒なコードがてんこ盛りで生産性の落ち方が半端ない
そこまでの速度を要求されるコードなんてほとんどないんだから、生産性の方が重要だよね、
ってのが高級言語の考え方なんだから速度だけにフォーカスした考えは世の中の高級言語を
すべて否定するものだ
2017/07/05(水) 22:59:13.93ID:IBgoqo2I
>>597
またいくつか言えて

>その代わり面倒なコードがてんこ盛りで生産性の落ち方が半端ない

本当にそう言えるのかどうなのか
今現在の状況で、静的型言語に比べて動的型言語の生産性がはるかに高い
と言い切れる人はいったいどれだけいるんだろうか
むしろ動的型言語のほうが生産性がない、という風潮ではないだろうか
だってここ最近新しく出てきた言語は当たり前のように静的型だし
それを売りにしている

で、これもかなり譲って、生産性は同等ぐらい、と考えるのなら
「実行速度100倍差」が重くのしかかる
3.0GHzの最新CPUを使っても30MHzと同等
ここまで遅いと、別の方向で頭を使う

C/C++が新幹線の「のぞみ」だとしたら
JavaやC#は「ひかり」ぐらいの速度、あるいはそれ以上は普通に出る
これなら同じ土俵に立っているといえるし
そのうえで生産性などを考える、これはわかる
だから俺は別に生産性etcの高級言語の考え方を否定する立場はとってない

しかしRubyの速度は「徒歩」である
こうなればまた考え方が変わってくる
2017/07/05(水) 23:10:18.58ID:i6JVabOm
>>598
JavaだってC/C++に比べれば降級言語で速度も遅いが、普通に使われている
それはC/C++より生産性が(まだ)マシだからだ
これは静的型とか動的型とかは関係ない

つまり速度だけにフォーカスした比較は大きく間違ってるということだ
2017/07/05(水) 23:19:57.66ID:k8UT78WG
続きは「C/C++はRubyより100倍早いスレ part24」でやってくれ
2017/07/05(水) 23:20:10.86ID:WM8wHrYP
588ってどのレスへの返しなの?
遡って100レス程見たけどどこからも繋がっていないように見えるんだけど

こういうのはちょっと怖い
2017/07/05(水) 23:22:21.12ID:IBgoqo2I
>>599
C/C++が新幹線の「のぞみ」だとしたら
JavaやC#は「ひかり」ぐらいの速度、あるいはそれ以上は普通に出る
これなら同じ土俵に立っているといえるし
そのうえで生産性などを考える、これはわかる
だから俺は別に生産性etcの高級言語の考え方を否定する立場はとってない

しかしRubyの速度は「徒歩」である

そのうえ、生産性が高いかどうかすら分からないというのは
>>598に書いた通り
2017/07/05(水) 23:26:32.17ID:i6JVabOm
>>602
徒歩でも問題ない場面であれば気にしなくてもいい
そして世の中のほとんどは徒歩で問題ない

徒歩でも問題ないところに「いや新幹線が必要なんだ!」なんてのはもはや技術的な問題ではなく、
ただの思考停止
2017/07/05(水) 23:37:18.10ID:nlxiuXwv
>>602
zlibで圧縮処理する場合、Cとrubyでどんだけ差が出るかわかる?
rubyを徒歩に例えているけど、途中で新幹線を利用してるんだぞ
2017/07/05(水) 23:38:31.89ID:IBgoqo2I
それは「徒歩」とか「新幹線」という言葉にとらわれすぎである
これは単に、あまりにも速度差が有るということを表現するために
「徒歩」とか「新幹線」とか言っているわけで
利便性その他まで含めて比喩しているわけではないんだぞ

なおかつ、生産性が高いかどうかすら怪しいというのは>>598にも書いたし
実際世の中そういう空気になっているじゃろ

生産性が低くて速度が遅かったら後は何が残る?

もし生産性が同程度だったとしても、それならば速いほうが良いだろ
100倍も圧倒的な差があるんだから
多少非効率な書き方したっておつりがくるぞ
2017/07/05(水) 23:40:47.70ID:VZUi/cSm
>>598
> 今現在の状況で、静的型言語に比べて動的型言語の生産性がはるかに高い
> と言い切れる人はいったいどれだけいるんだろうか

どちらかがどちらかを上回るって話じゃないからなぁ。

動的言語だと書くのが楽。型を書かなくてもいい場面が多いから
短いコードで目的を達成できる。その点で生産性が高いと言えるが、
大規模アプリでは、型が書いてないためにコードの把握に時間がかかる。

静的型言語では要所要所に型が書いてあって、記述量は増えるが
その分コードを把握しやすく、コンパイラが見つける矛盾の量も増える。


だから開発するものがどれだけの規模のコード量かで生産性が高い方が決まる。
つまり静的型言語の方が高い場合と、動的型言語の方が生産性が高いかの境目があるということ

しかしその境目がまた問題で、技術力が高い人であれば短いコードでシンプルに書くことができる。
だから境目は技術力が高い人ほど動的型言語の方が生産性が高いことを示すことになる。
2017/07/05(水) 23:41:32.36ID:i6JVabOm
>>605
> それならば速いほうが良いだろ
別に?
徒歩5分のところに行くのに新幹線と車と自転車と徒歩とどれがいい?とか聞かれても「どれでもいいや」
って思うだけだし
2017/07/05(水) 23:47:31.26ID:VZUi/cSm
徒歩5分のところに新幹線や車を使ったら
たいてい遅くなるぞw
2017/07/05(水) 23:53:49.42ID:VZUi/cSm
技術力が高い人ほど動的型を好むのは
たまたまとかいうわけじゃなくて、
短く書けてしまうから「この程度の小さな規模」の
コードになってしまうことが多いからなわけだよね
2017/07/06(木) 00:02:07.40ID:AOJFjP+S
>>607
あるコマンドかアプリか処理か、何か知らんが、何かあって
処理に5分もかかったら、対話性などというものはないし
まず使い方そのものからして考え直さなければならない
進捗ぐらいは表示したいし、アプリの構成そのものからして考えないとな
5分という時間は何もしないには長すぎるので、作業いったん中断ってところだな

これが100倍速いと3秒で終わる
3秒なら、まぁ、待てるかな
ちょっと遅いが、ギリギリ、リアルタイムな対話といえるレスポンスだな
作業は中断しないな

5分と3秒の違い、わからない?

あと、徒歩五分のコンビニに行くにしても、瞬間移動が使えるなら
俺はそういった能力、ほしいな
大は小を兼ねるというし
瞬間移動が使えることで生産性が落ちるわけでもないしな
2017/07/06(木) 00:05:57.18ID:AOJFjP+S
まぁフォトショップでフィルタをかけるとか、なんでもよいんだけど
5分待たされるのはしんどいよ
ほんと、作業が中断しちゃう
コーヒー飲むかタバコ吸うかウンコするか

3秒ならまぁ何とかってところ
2017/07/06(木) 00:06:41.72ID:EqEhEZ9Z
>>610
徒歩というたとえだから5分と設定しただけだよ

実際に計算だけで5分かかるような処理ならそりゃC/C++を使うだろうし、そんな処理をガンガン書く場面は
想定できないし問題ないよ
2017/07/06(木) 00:15:20.73ID:EqEhEZ9Z
要するに徒歩5分はスクリプトで言えば1秒以内に終わる処理だね
1秒を0.01秒に縮められます!とか言われても、でも1秒で十分なんでって思うだけだしね
2017/07/06(木) 00:22:28.74ID:hXlN8tOU
結局何を主張してるのか理解出来ねえ
rubyなんざ使い物にならねえよって>>610が言いたいのか?
同意を得たいなら他のスレで暴れろよな
2017/07/06(木) 00:36:23.27ID:AOJFjP+S
そもそもからしておかしいんだよ
プログラムの実行速度が速すぎるのが原因で生産性が落ちることはない
聞いたこともない
大は小を兼ねるということわざが当てはまって、速すぎて困るということはない

プログラムの実行速度が速いことのトレードオフだけど、これも良くわららない状況だ
今現在はどちらかというと静的型のほうが生産性があるんじゃないか、とすら言われている
そんな状況で100倍も遅かったら、どうなるんだ?
3.0GHzのCPUでも実質的には30MHz相当

あと、静的型言語が速い傾向があるといっても、本当に誰も何もせずに速いってわけじゃなく
コンパイラが最適化を相当キバってくれているから速いわけだ
プログラマがちまちま考えなくてもコンパイラが頑張ってくれる、という方面での生産性という見方もあるし
速くなった分は余裕ができるのでプログラムを手抜きできるっていう生産性もある

また、動的型言語であっても速いのはある
例えばJSは静的型と同じ土俵に立てるぐらいに速いだろ?
これをもってしてMatzは動的型でも速度は出せるって言い張るんだけど
そのような実装を用意できてない状態でそんなこと言って何になるんだ?
2017/07/06(木) 00:38:42.41ID:EqEhEZ9Z
>>615
> 大は小を兼ねるということわざが当てはまって、速すぎて困るということはない
別にRuby程度の速度で困ることもない場面がほとんどなので、問題はない
2017/07/06(木) 00:39:54.73ID:DNqxUdzY
> そんな状況で100倍も遅かったら、どうなるんだ?
> 3.0GHzのCPUでも実質的には30MHz相当

その計算をすることに意味はない。
今後一切やめてくれって言いたいレベル。

現実としてその違いは、重大な問題を引き起こすかどうかで決まる。
わからないと言うならば、問題は起こってないということだ。
2017/07/06(木) 00:43:06.60ID:DNqxUdzY
> プログラムの実行速度が速すぎるのが原因で生産性が落ちることはない

当たり前だ。実行速度と生産性は無関係だからだ。

無関係といったんだ。実行速度を速くしても生産性は落ちないとは言ってないからな。

無関係ということは、実行速度を速くすることで
 生産性が落ちる場合もあるし、
 生産性が落ちない場合もある
 生産性が上がる場合だってある
ということだ

> 大は小を兼ねるということわざが当てはまって、速すぎて困るということはない

速くするため生産性が落ちるのであれば困る。
2017/07/06(木) 01:01:27.03ID:AOJFjP+S
Rubyが今の100倍速くなったとしたらどうなんだ?
前のままで十分だったから遅くしてくれ、戻してくれ、とはならんだろ
速いほうがいいに決まっているのに、遅くてもよいと言い張るのは
すでに普通の感覚を失ってしまっている
Ruby3.0ではどうにかネイディブスレッドを導入しようという話だが
これもどうにか実行効率を上げよう試みだ
結局速いほうが良いという話

ものすごく変な言い方をすると、Rubyが今の100倍速かったら
もっといろいろなことにRubyを使えるはずなのに
そういったことをユーザー自ら否定してしまうのは変なコミュニティーだ
「自分たちはこれでよいんだ」的な
でも1億あげるっていったら間違いなく飛びつく

速度を落としてまで動的型にしたが
それもちょっと前からどちらかというとメリット無いんじゃねと言われていて
今ではその評価もすっかり固まってしまったが
これなら何故速度を犠牲にしたのか意味がよくわからない状況
2017/07/06(木) 01:03:39.40ID:EqEhEZ9Z
>>619
> 結局速いほうが良いという話
大事な前提条件が抜けている
「コードが変わらないならば」という条件がな
2017/07/06(木) 01:12:20.24ID:AOJFjP+S
必ずしもコードが変わらない場合にのみ速度が速いことが歓迎される
というわけでもなかろう
処理系の実行速度が速いことには何時でも一定の価値基準がある
2017/07/06(木) 01:13:25.30ID:EqEhEZ9Z
>>621
> Rubyが今の100倍速くなったとしたらどうなんだ?
君がこういう前提を出したんだよ?
2017/07/06(木) 01:13:59.37ID:AOJFjP+S
周りを見渡せばRubyよりも100倍速い言語や処理系が既にあって
しかもRubyのような動的型は失敗だったんじゃないかという空気だ
2017/07/06(木) 01:16:51.07ID:EqEhEZ9Z
>>623
君の頭の中ではそうなんだろうね
世間に出た方がいいと思うよ
2017/07/06(木) 01:32:38.58ID:hXlN8tOU
>>623
お前が吐き出した空気じゃねえか
澱み杉
2017/07/06(木) 07:30:15.82ID:LqVtic6r
失敗も何も動的言語は生まれた時から「動作は遅いが作るのが早くできるので素晴らしい、しかしそれゆえ脆いので長期堅牢には向かない」ときちんと認識されていた
完璧を目指していたことなど一度たりとてない
2017/07/06(木) 09:30:16.79ID:jsnas7L+
そもそもMatzが遊びで作った言語だろ?
それをわざわざ公開してくれて
我々は彼の善意によってタダで使わせてもらってんだろ?

そのへんの間隔というか距離感というか
忘れちゃってる奴おるよな
自分のオカンに対して無限に批判するような態度の
2017/07/06(木) 09:43:08.71ID:k46M2gqo
文句があるなら自分で言語作ればいいじゃん。
2017/07/06(木) 10:11:36.56ID:IrPrEl9j
仇ばかり広めやがっておいたが過ぎる
2017/07/06(木) 11:25:53.97ID:YVvleWfm
RubyでつくるRubyとかでも読もうよ
2017/07/06(木) 12:15:37.69ID:OTGRz3s4
リファクタリングのRuby版読むと、
Rubyのコードが如何に解説するのに向いているかわかる

こんな感じのRubyのコード使った解説本はもっと増えて良い
2017/07/06(木) 12:41:45.00ID:JvJmzwJo
とりあえず
> 今現在はどちらかというと静的型のほうが生産性があるんじゃないか、とすら言われている
このソースが欲しいとこだな
まーこいつの妄想だろうが
2017/07/06(木) 13:20:06.18ID:YVvleWfm
リファクタリングするときとかIDEの力を借りれば
静的のほうが生産性が上がるかもとは
散々言われてきたが?
2017/07/06(木) 13:39:42.81ID:tNWdrmh7
>>631
それ暗にRubyはクソコードはが多いとdisられてるんじゃね
2017/07/06(木) 22:14:31.93ID:DNqxUdzY
>>619
> Rubyが今の100倍速くなったとしたらどうなんだ?
速い代わりに、C++言語みたいになったりしたら
戻してくれって言うよ。生産性が落ちるんだから当たり前じゃないかw
2017/07/06(木) 22:19:42.92ID:DNqxUdzY
プログラム言語っていうのは道具だからね。(その言語の開発者以外は)

一般的な道具で考えてみればわかる
速いけど不便。少し遅いけど便利。

遅くても実用上問題なければ、便利な方を
取ることの方が多いだろう。

誰もがF1カーに乗るわけじゃあるまいしw
2017/07/06(木) 23:14:22.78ID:jsnas7L+
既存の言語に文句いうやつが
その言語以上の素晴らしい言語を作った例は皆無

あるとしたら…それこそperlに対するrubyくらいのもん
2017/07/06(木) 23:19:58.00ID:OTGRz3s4
633 :
デフォルトの名無しさん
2017/07/06(木) 13:20:06.18 ID:YVvleWfm
リファクタリングするときとかIDEの力を借りれば
静的のほうが生産性が上がるかもとは
散々言われてきたが?
634 :
デフォルトの名無しさん
2017/07/06(木) 13:39:42.81 ID:tNWdrmh7
>>631
それ暗にRubyはクソコードはが多いとdisられてるんじゃね

流石にこれは気持ちわる過ぎる
2017/07/06(木) 23:24:14.70ID:DNqxUdzY
>>633
> リファクタリングするときとかIDEの力を借りれば
> 静的のほうが生産性が上がるかもとは

大規模システムの場合はそうだけど、
小規模の場合は大差ない。

そして技術力が高い人ほど、システムを小規模に保つことができる。

技術力が高い人ほど動的の方が生産性が高い場合が多くなる
640デフォルトの名無しさん
垢版 |
2017/07/06(木) 23:29:32.44ID:OTGRz3s4
そんなに健常者に混じりたいのか?
2017/07/07(金) 01:03:55.66ID:6Wd58F7c
OpenGLのgemつっこんでぐりぐり動かしてるけど、
テクスチャ関連やアニメーションモデルのデータの持ち方がいまいちピンと決まらない
その場で決めても後日、なんか手をいれなければならなくなる気がして二進も三進も

Rubyならでは冴えたやり方ってない?
642デフォルトの名無しさん
垢版 |
2017/07/07(金) 05:22:24.20ID:1OiH67XQ
>>596
>>593だけど、おいらのレスに乗っかって何やら面白いことになってんね。
自分で関数から何からLLで書けばそうなんだけど、LLのライブラリじゃCで書かれてること多いからね。
それにI/O多いLLお得意の文字列処理とかは>>594の言う通り大差ない。
計測した事あるけど誤差の範囲って言って良い。
小説何十冊分が1ファイルに入ったりした時に差が体感できる程度。
100冊分超えたらCや他のコンパイラ言語検討して良いと思う。
30MHZが遅いって言ってもPICとかのマイコンは4MHzとかで、それでも十分人間より速い。

Prolog勉強した時はプログラミング言語は本来こうあるべきって書いてるページあって、方向性はそうだけど、その解は絶対Prologじゃねーって思ったけども。
確かにここまでCPU速くなったなら、人間がコンピュータのアーキテクチャに合わせる必要はない。
とは言え、CPUのx86と同じ、すでにコード資産が無視出来ないんよな。。。
643デフォルトの名無しさん
垢版 |
2017/07/07(金) 08:48:43.90ID:ntVt91QO
バージョン上げたgccでrubyのバージョン更新したら遅くなったからgccに要因があるのかrubyに要因があるのかヒントになる情報をくれって>>584 が訊いてるのに
なぜこんなアホな話が出てくるんだ?
644デフォルトの名無しさん
垢版 |
2017/07/07(金) 11:01:19.92ID:ntVt91QO
晒しage
645584
垢版 |
2017/07/07(金) 12:15:57.82ID:de0deAJS
まあ関係ない話はおいといて…

>>585
gemの入れ直しが面倒なのでプロファイラは後回しの予定.
>>586
家のマシンだとgccの入れ替えに10時間かかるんだ……(フルビルドしてるせいだけど)
というわけで手元にソースがあった3種類のrubyをgcc7.1.0でビルドし直して入れ替えて
問題のスクリプトをtimeで計ってみた。

ruby2.1.2 2.0秒 -> ruby2.3.1 2.4秒 -> ruby2.4.1 2.8秒
もちろんioとか抜いたuser時間ね。

修正履歴をざっと調べたところ
Bignum(だっけ?とにかくでかい整数)周りの修正が影響しているんじゃないかと現在考慮中。
2017/07/07(金) 12:35:48.56ID:6Wd58F7c
二日前の話をなぜ今に?

もしかして情報がもっと欲しいの?
だったらrubyのソースコードを読むしか無いよ
647584
垢版 |
2017/07/07(金) 14:11:00.10ID:de0deAJS
>>646
あーいや、情報についてはあんまり期待してない。

もともと
「実際に体感できるレベルで速度低下してるが適当にググっても情報が無い」+
「gccの入れ替え面倒というか今週暑過ぎ」
というのが質問の理由だったからね.

実際幾つか他の適当なスクリプトでも実行時間を計測して比較してみたところ、
ここまで大きな速度低下は無かったというのもあって今では少し安心してる。
入れ替え後最初に実行したスクリプトで地雷を踏んだのは運が悪かった。
2017/07/07(金) 14:38:37.78ID:6Wd58F7c
ますますわからない
何を求めての書き込みだったの?
649デフォルトの名無しさん
垢版 |
2017/07/08(土) 13:12:39.97ID:3StuOUHl
>>619
>>635
CとのインターフェースならPythonの方が良いよ
650デフォルトの名無しさん
垢版 |
2017/07/08(土) 13:18:08.48ID:lhqNZaXL
いつまその話引っ張るつもりだよ
2017/07/08(土) 13:19:15.07ID:lhqNZaXL
いつまでその話引っ張るつもりだよ
2017/07/08(土) 14:06:59.57ID:fcf9I7tU
これをRubyで解きなさい
普通のパズルではない「正規表現クロスワード」がBBCラジオに登場 - GIGAZINE
http://gigazine.net/news/20170707-regular-expression-puzzle/
2017/07/08(土) 15:45:07.53ID:FfZt44/H
>>645
まさか、Fixnum関係ではないよなあ?
ペナルティがないこともIntegerに統合した理由だろうと思ってたんだけど。
654デフォルトの名無しさん
垢版 |
2017/07/11(火) 01:41:06.03ID:MbVhLJ6O
railsスレから移動してきました。

def index
UNIXSocket.open('/tmp/myapp.sock') do |sock|
sock.write(params.to_query)
rt = sock.readline
render text: rt
end
end

みたいなことがしたいのですが、どうも
rt = sock.readline
のところで処理が止まってしまうように見えています。
renderの部分まで処理を進めるにはどのような書き方をすればよいのでしょうか。
教えて頂けますと嬉しいです。
2017/07/11(火) 02:00:52.46ID:7uNv3Rqd
sock.write(params.to_query)
rt = sock.readline

書き込んで、読み込む?
矛盾してないか?
読み書き両用なのか?

もし両用なら、相手からの返事を待っているのだろう
656デフォルトの名無しさん
垢版 |
2017/07/11(火) 02:19:22.94ID:MbVhLJ6O
レスありがとうございます。
やりたいこととしては、socket.writeでソケットにクエリを投げて
通信先で処理を行ってレスポンスが返ってくるので、
それを sock.readline で読み取るという双方向な感じのことです。

通信先のプロセスをkillするとなぜか処理が進んで、rtに正しいデータが格納され、
render まで処理が進むのですが・・アドバイスいただけると幸いです。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況