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/17(月) 13:41:49.80ID:CuRtYSJT
>>691
VagrantやChefはユーザーによるスクリプティングを可能にするためにRubyを入れてるんであって、
プロダクトをRubyで作っちゃったから仕方なくRubyを入れてるわけではないよ
一方SASSはRubyで作っちゃった例だけど、Rubyが嫌われてnodeへ移行した
2017/07/17(月) 14:20:06.37ID:H+ZLTTJY
> Rubyが嫌われてnodeへ移行した
nodeには移行してない
Cに移行している
2017/07/17(月) 16:57:19.47ID:shGqANuA
そんな時のためのmrubyにはならないのか
2017/07/17(月) 17:05:21.70ID:CuRtYSJT
残念ながらmrubyが獲るはずだったポジションはNodeに獲られちゃった
2017/07/17(月) 18:22:28.87ID:cSztc20o
gemを使わないで何とかしようとすると情報が一気に減るんだよな。下手するとビルド方法の資料すらなかったり

>>688
あるあるすぎる。今まさにそれで頭を抱えている。昔出来たはずのことを再現しようとしているけどどうしたものか・・・

>>689-690
exerbやocraを全否定ですか

>>694
mrubyは検討したけど使えそうなライブラリが無くてcrubyにせざるを得なかった。ライセンス不明はやめてほしい
697デフォルトの名無しさん
垢版 |
2017/07/18(火) 00:28:34.69ID:2jGZGtzj
わかってると思うけど、Rubyのネガキャンやってるのがこのスレに粘着してる
こういうのは見付け次第叩いてやらないといけない
2017/07/18(火) 00:50:06.81ID:tovqy0R7
>>691みたいにヘタに突っついて論破されるのも準アンチ行為だから注意な
2017/07/18(火) 07:19:41.41ID:soRF6X66
いまだにRuby万能説に縋りRuby万能を否定されると発狂する人が住んでるのか
それは10年も前に終わった言説だ
いつまで寝ているんだ目を覚ませ
2017/07/18(火) 12:48:36.31ID:6DbTRi2A
Ruby が最上流。
他の言語よりも、常に、2, 3年早い

Rails, vagrant, chef, SASS など

DSL では、Ruby, Groovy が優れているから、
最初にこれらの言語で作られてから、Python, JS へ移植される

Kotlin も注目されているけど、型を指定するのが面倒。
まあ、型を省略して、型推論もできるけど
2017/07/18(火) 16:13:18.86ID:bC2KM4MS
rubyが最上流?
ワロス
そんな優れてるならphpもpythonも喰ってるよ。

しかも、落ち目だし。
2017/07/18(火) 16:18:08.82ID:bC2KM4MS
しかも、型省略して型推論とか微妙な言い回ししてるあたり、分かってない臭がすごくてやばい
2017/07/18(火) 17:14:45.02ID:PS9r5OZ5
>>702
C#のvarみたいなもののことなんじゃないの?
2017/07/18(火) 18:59:56.81ID:jUpeemmL
Kotlinの型推論はただの典型的な型推論ですよ
それこそ「型指定が必要だけど型推論に任せることもできます→まあ便利」で済むレベル
わかってないのは間違いないのだろうけれど
2017/07/19(水) 22:04:21.42ID:nwQCI0l5
たとえばArrayにメソッドfuncAを追加する時は
class Array
 def funcA
  return ["AAA"]
 end
end
みたいに書けば出来ますがこれをCの拡張ライブラリにしたい場合ってどうすれば良いんでしょうか?
Cからメソッドの登録を行う場合は
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(), int argc)
を使用するようですが第一引数をどのように得ればいいのか判りません
2017/07/19(水) 22:15:34.36ID:kPQDkgCo
rb_define_method(rb_cArray, "funcA", hoge_func_a, 1);

static VALUE hoge_func_a(VALUE self, VALUE arg1) { }
2017/07/19(水) 22:52:50.29ID:nwQCI0l5
え?"Array"というRubyの名前空間上の文字列?からklassを得る方法って無いの?
実際にメソッドを追加したいのは拡張ライブラリなんだけど、クラスやメソッドの登録は
関数内で行われていてklassが明示的に外部へ公開されているようには見えないのだが・・・
2017/07/20(木) 01:14:47.75ID:pXT/1iWX
>>707
組み込みクラスやモジュールに関してはグローバル変数として用意されている
ruby/ruby.hを見るべし
https://github.com/ruby/ruby/blob/trunk/include/ruby/ruby.h#L1871


ちなみにこういう事もできる

#include <ruby/intern.h>

VALUE cDigestBase = rb_path2class("Digest::Base");
2017/07/20(木) 09:35:50.76ID:s/SNqpfK
naoyaのはめ撮り動画アップされたね
2017/07/20(木) 14:22:33.47ID:+aBWrhxZ
697の見え見えの釣り針にひっかかる粘着なんておらんやろ
って思ってたけど、見事に食い付いてるな

マジスゲー
2017/07/20(木) 22:29:26.18ID:wsBNKQXr
>>708
ありがとう
弄りたいのは野良の拡張ライブラリです
rb_path2classで出来そうなのでこれを使ってみます
2017/07/22(土) 14:27:06.95ID:GRw82bJl
拡張ライブラリをコンパイルする時に任意の場所にあるヘッダファイルやライブラリファイルを
探索させるようにするにはどのようにすればいいのでしょうか
2017/07/22(土) 14:50:45.74ID:ZFWxmOeg
それRuby全く関係ない
Cのコンパイラだけの問題
714デフォルトの名無しさん
垢版 |
2017/07/22(土) 14:59:47.85ID:6KQ6+UpV
>>712
extconf.rb 内で have_header や have_library を使う
使い方は ruby に含まれる doc/extension.ja.rdoc を見よ

https://github.com/ruby/ruby/blob/trunk/doc/extension.ja.rdoc#appendix-c-extconfrb%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B%E9%96%A2%E6%95%B0%E3%81%9F%E3%81%A1
2017/07/22(土) 15:46:06.83ID:GRw82bJl
>>713
そうですけどextconf.rbで作ったMakefileをいちいち手編集するのは正攻法ではないですよね

>>714
have_header("C:\\foo\\hoge.h")
とか
have_header("C:/foo/hoge.h")
とかやってもnoと言われてしまいます
2017/07/22(土) 15:56:18.40ID:GRw82bJl
あ、自己解決。dir_configを使えば良かったのか
dir_config("myproject")
とか書いて
ruby extconf.rb --with-myproject-include=C:\foo
とかするとそのディレクトリを探索対象に加えてくれるみたいです
2017/07/22(土) 16:07:27.55ID:LM/qA1ao
mkmf.rbでdir_config("opt")してくれてるので、--with-opt-includeならはじめから使える
2017/07/22(土) 20:13:36.13ID:6KQ6+UpV
>>715
まだ見てるかな?
すまない、find_header、find_library を伝えるべきだったな
2017/07/23(日) 03:04:04.86ID:nJm1oPvD
IDE には、ライブラリパスの参照という、ボタンがあるはず
2017/07/23(日) 08:53:05.99ID:1hI9T8Bk
ひとまず形にはなった。ALLOC_Nの開放の仕方が判らないのでALLOCA_Nにした
ALLOC〜って初期化してくれないんだな。ゴミが混じってメモリ破壊の
バグがあるのかとしばらく悩んだ。でもCはど素人だしなんかありそう

>>718
コマンドラインの方が容易に変更できるのでdir_configで行こうと思います
2017/07/23(日) 10:43:01.15ID:FBMkfY4k
>>720
ruby/ruby.hを大文字のALLOCで文字列検索してみ
RB_ZALLOCとかRB_ZALLOC_Nとかが0で初期化してくれる

あと確保したこれらはxfree(void*)で解放してね
2017/07/23(日) 21:56:04.93ID:1hI9T8Bk
>>721
ありがとう。ZALLOC_N&xfreeにしてみました
ALLOCA_Nってruby/ruby.hをみたらallocaを呼んでいるだけじゃないかw

拡張ライブラリ内部における動的なメモリの確保ってどうするのが好ましいんだろうな
スタックに積む方法はメモリのリークはないけどスタックを圧迫する(.今の環境だったら気にするほどでもない?)
allocして後にfreeする方法だと意図せず途中で抜けた時にメモリがリークする
Rubyの文字列を作ってそれを利用すると言う方法を紹介しているblogもあったけど・・・う〜む・・・
2017/07/23(日) 23:04:03.89ID:FBMkfY4k
>>722
俺も外部の人間だから本当に適切な方法なんて知らないけど……

VALUE bufvalue;
size_t bufsize = 1024;
void *ptr = RB_ALLOCV(bufvalue, bufsize);

任意の処理を行う
ここで例外が発生しても次のGCで勝手に開放される
bufvalueはrubyの世界へと出さないように気をつける

/* メモリの即時開放(freeされる) */
RB_ALLOCV_END(bufvalue);



VALUE bufstr = rb_str_buf_new(bufsize);
void *ptr = RSTRING_PTR(bufstr);

任意の処理を行う
rubyの世界に出しても問題なし
ただし出したあとで再び使う場合は必ず
rb_str_modify(bufstr); /* freezeされたらaboneするけどな */
ptr = RSTRING_PTR(bufstr);
をやり直す

/* メモリの開放(即時開放されるかは実装任せ) */
rb_str_resize(bufstr, 0);


こんな感じかな
2017/07/24(月) 00:44:09.77ID:7DZLuR6j
今気がついたのだが・・・
自作メソッドの入力値が不適切→rb_raiseを叩く→Segmentation fault
rb_raiseの引数に動的な物は含まれていないし、未解放のメモリがあるわけでもないしどうなっているんだ
例外を発生させる時の作法とかあるのだろうか

しかも2個作ったメソッドの片方だけこの現象が起きる。処理内容に問題があるわけではないけど
これを放置するのはマズイよな

>>723
ありがとう。参考になります
725デフォルトの名無しさん
垢版 |
2017/07/24(月) 05:46:45.69ID:q6ge4pC6
メモリスタック確認するのが一番じゃね?適当だけど
2017/07/24(月) 08:11:09.42ID:rFx+DNZY
なるほど・・・ってVC++環境でコアダンプってどうやって取れば良いんだろ
ググるとWindows Error Reportがトラップしている時にタスクマネージャからダンプさせる
とか出てくるけどトラップされている訳じゃないのでこの方法は使えないし・・・
それともどこかにダンプが保存されているんだろうか
2017/07/24(月) 12:01:57.41ID:YHai+DFK
プロセスにアタッチしてブレイクしたら。
2017/07/24(月) 19:26:11.30ID:R/9Imr1c
困った時のprintfデバッグ
2017/07/26(水) 14:44:00.57ID:P+h1MRRW
【Unity】ソートアルゴリズム12種を可視化してみた - Qiita
http://qiita.com/r-ngtm/items/f4fa55c77459f63a5228
2017/07/27(木) 10:11:51.47ID:FeDFxsXm
ソフトウェアデザインがインターフェースの記事を丸々パクって問題になったことがあったな
2017/07/29(土) 18:02:23.06ID:Xgmp5DuD
VisualC++でビルドすると--disable-debug-envを付けてもデバッグビルドになってしまうように見えるけど気のせいかな・・・
インストールされるサイズが--enable-debug-envと比べてちっとも変わらない
生成したMakefileにデバッグ関係のオプションを削ったCFLAGSとLDFLAGSを書き込んだらインストールサイズが大分小さくなった
732724
垢版 |
2017/07/31(月) 01:44:48.62ID:0NH1HYUL
ようやく原因がわかった
rb_scan_argsの第3引数が"22"と不適切な値にしていたことが原因だった。適切な"2"にしたら問題なくなった
複数のスレッドが動いているため?か例外を起こす場所が一定になるわけではない模様
rb_pでデバッグしていくと>>724の位置で例外が起きる(rb_raiseの第一引数がぶっ壊れていると
思われる)んだけど、デバッガで追いかけるとrb_scan_args内部で例外が起きる
2017/07/31(月) 02:05:04.23ID:9Hgupd7z
要約すると
Ruby ⇔ C と行き来するのはえらく面倒だ
ってことだな
これなら、Rubyを使うことそのものが目的じゃないのならだが
初めから Java、C#、C++ などを使ったほうが良かったってこったな
2017/07/31(月) 07:03:37.88ID:VY/jm5nF
というか今時はRPCやメッセージキューを使って完全に分離してしまえばいい
WindowsでRubyの時点でどのみち実用性のないオナニーなんだから好きにすればいいけど
735724
垢版 |
2017/07/31(月) 08:10:27.67ID:S3S/4XWd
引数を間違えると警告もなくメモリをぶっ壊す関数って絶対にこれだけじゃないよね・・・
今回の件で困ったことまとめ
・VC++のコマンドラインからビルドした物をデバッグする例が全然見つからない
 VC++のIDEで開発したプロジェクトやgcc&makeで開発した物をgdbでデバッグする例なら沢山出てくるんだけどな
・CLIアプリケーションのためかデバッガから起動させるとgem関係のファイルがないとRubyが例外を吐いて動かない
 requireの後に$<.getsを書いてコマンドプロンプトから起動。デバッガからアタッチしてブレークポイントをセット後に
 Enterを入れて実行を再開。ただし100%上手くいくわけではない模様。無限ループ?にはまる時もある
 エントリーポイントで止めて環境変数やカレントディレクトリを適切に設定した後に再開すれば動くのかな?
 やり方が判らないけど
・RubyがSegmentation faultをトラップしてしまうためにメモリダンプを取れない?
 signal.cやwin32.cでそれっぽそうなところを書き換えてみたけどトラップを止めさせることは出来なかった
 どこを弄ればいいのだろうか・・・

C/C++は不慣れなので変なことを書いていたらスマン
2017/07/31(月) 15:59:11.85ID:2wHF06gt
ファイル名以外でファイルを識別するにはどうしたらいいんだ?
ファイル名変更したとしてもファイル名変更前とファイル名変更後のファイルを同じものとしてみたい
ファイルクラスのドキュメント見てみたけとそれらしいのはなかった
2017/07/31(月) 16:30:54.00ID:PivEBbdv
何を以て同じファイルとみなすかに依る
単に内容だけ比較するなら FileUtils.#cmp を使うと良いよ

https://docs.ruby-lang.org/ja/latest/method/FileUtils/m/cmp.html
2017/07/31(月) 23:41:34.38ID:X3kyqB8s
>>736
ファイルシステム次第なんじゃないの。
Linuxならだいたいinodeでいいだろうし。
2017/08/01(火) 01:21:43.84ID:eJYTTdCf
>>737
こんな便利なメソッドがあったのか
でも変更前のファイルが残ってるやけじゃないからここでは使えないかな…

>>738
https://docs.ruby-lang.org/ja/latest/class/File=3a=3aStat.html
LINUXだからこの辺使ってinodeで判別できそう!ありがとう!
2017/08/01(火) 08:33:14.08ID:YiDwID17
>>739
そういう用途なら、ハードリンクに注意。
2017/08/01(火) 11:24:21.35ID:QsBohnup
inodeは再利用されるからいつかギョッとするときが来ると思う
https://ideone.com/zPXgqb
2017/08/01(火) 16:59:50.09ID:T1EbqLjy
いまどきのファイルシステムなら拡張属性つかえんじゃない?
索引つくれないと面倒だけど中身比較するよかまし
2017/08/01(火) 19:11:35.76ID:ggiqqoER
>>742
拡張属性をRubyから使うのは面倒じゃないか?

オレとしては、要件を考え直すことを勧めたいが。
そういうアプリを見ないのはそれだけの理由があるんだから。
2017/08/01(火) 19:40:15.57ID:PARHYe6N
まあ「inode見ればファイル名変更にも追従できる!」なんてやらなきゃいけない時点でなにかがとてつもなくおかしいわな
gitみたいなかんたんファイル変更検知機能付きアプリケーションを見てみると絶望できるかもしれないね
2017/08/02(水) 13:55:20.56ID:5on7mlkV
rubyでcoincheck apiを使ってみたいんだけど、いまドットインストールを見終わって、たのしいRubyを見終わったんだけど、opensllとかuriとかnet/httpとかの使い方はどうやったら分かるようになるのかな
2017/08/02(水) 20:17:50.89ID:Y8o6EGzu
それくらいはマニュアル見ろよ
ということでマニュアルの読み方の勉強が必要

ただ、それらのライブラリはプロトコルをちっとも隠蔽してくれてないのでOpenSSLやURIやHTTPの基礎知識は必須だぞ
普通なら使いたいapi試しながら勉強しろと言うんだが絶妙にトライアルアンドエラーのしにくい分野のapiなのが辛いな
2017/08/03(木) 19:35:54.85ID:Yq3e1WJ9
Ruby並みに生産性が高く、C並みに高速で何でも作れる言語があったら神
2017/08/03(木) 19:55:35.10ID:eWbe8h/f
KotlinあたりにRubyっぽいライブラリがあれば案外簡単に実現できそう
2017/08/03(木) 19:59:35.69ID:Yq3e1WJ9
Javaがないと動かない時点で全然C並みじゃない
2017/08/03(木) 21:17:20.06ID:Wy5AX0em
>Ruby並みに生産性が高く、C並みに高速で何でも作れる言語

じゃーC++だね
生産性はJavaやC#には負けるかもしれないが
静的型言語だから少なくともRubyより生産性あるしな
2017/08/03(木) 21:59:48.18ID:yhj86Quo
>>750
C++の生産性が高いって、マジ発言っすか?
C++である程度の規模のアプリ書いたことある?
2017/08/03(木) 22:12:01.14ID:Wy5AX0em
8万行ぐらいのフリーソフトなら作ったことあるけど
逆にRubyでこの規模のソフト開発するのは嫌だなぁ
2017/08/03(木) 22:14:29.74ID:Wy5AX0em
C++は割と何でも作れる懐の深い言語だと思うよ
速度も最速といってよいレベルだし
C++で作って重かったらもう諦めるっつーか
諦めも付く
2017/08/03(木) 22:16:49.93ID:Wy5AX0em
そもそも
>ある程度の規模のアプリ書いたことある?
って聞き方がおかしいんだよなぁ
どちらかと言えばRubyは短いプログラムをサクッと作るのが得意分野なのに
ある程度の規模が前提なら、そりゃ、静的型の方が良いだろうよ
2017/08/03(木) 22:20:14.12ID:rbKeWnbz
一般的にメモリの保護機構を持たないと言うだけでその言語の生産性はかなり下がる
後に開発された言語の多くがメモリの保護機構を用意していることからもこれは明らか
C++でコンパイルが通れば一発動作のスーパーハッカーなら生産性は高いだろうけど
そりゃ言語の生産性が高いわけではなくそいつが凄いだけw
2017/08/03(木) 22:22:18.12ID:yhj86Quo
>>753
それと生産性の高さとは何も関係ないけどね
2017/08/03(木) 22:27:07.72ID:JmT9ks+l
rubyなら8千行
2017/08/03(木) 22:27:27.39ID:Wy5AX0em
だから
>(C++は)生産性はJavaやC#には負けるかもしれないが
って書いただろ
でもRubyより有ればひとまずそれで良いんだろ?
しかも>>751なんかは「ある程度の規模」って条件を指定してるし
2017/08/03(木) 22:29:36.38ID:yhj86Quo
>>758
C++はRubyより生産性は明らかに低いよ
メモリ管理は面倒だし、ちょっとなにかやればSEGVするし
2017/08/03(木) 22:36:03.43ID:Wy5AX0em
それでも静的型の方が生産性があるってのが業界のFAだろ?
最近出てきた言語はどうなってる?当たり前に静的型の機能を持ってるだろ
あと、C++はRubyよりシェア(という言い方が適切かは分からないが)高いし
コミュニティーも活発だよ
だから
>Ruby並みに生産性が高く、C並みに高速で何でも作れる言語
の回答はC++だ
他に選択肢有るか?
2017/08/03(木) 22:37:48.85ID:Wy5AX0em
あと、C++はライブラリも結構豊富な方だと思うよ
Cのライブラリも使えるし、まぁ、大体は何でも
言語の生産性を考えたとき、利用者が多いことも有利に働くよ
2017/08/03(木) 22:44:10.59ID:yhj86Quo
>>760
> 最近出てきた言語はどうなってる?当たり前に静的型の機能を持ってるだろ
最近出てきた言語はどうなってる?当たり前にメモリ管理機能を持ってるだろ

静的型のメリットをメモリ管理のデメリットが塗りつぶしてるんだよ、C++は
2017/08/03(木) 22:48:11.18ID:Wy5AX0em
Boehm GCでも使えばよいだろ
2017/08/03(木) 22:51:34.98ID:Wy5AX0em
それに周りを見渡してみればC++で書かれた
大規模中規模アプリが山のようにあるのに
本当に生産性が低いといえるのかどうなのか
2017/08/03(木) 22:58:07.67ID:6SHaFuae
生産性が高ければそこそこの「シェア」も自然とあるだろうが
そこそこの「シェア」があるからといって生産性が高いとは限らない
2017/08/03(木) 23:01:51.14ID:yhj86Quo
>>763
それだとC++のメリットないじゃん
Java使えばいいじゃん
2017/08/03(木) 23:02:53.79ID:yhj86Quo
>>764
スーパーハカーがよってたかって書いてるからね
残念ながら一般人はスーパーハカーではない
2017/08/03(木) 23:08:35.02ID:Wy5AX0em
>>765
>生産性が高ければそこそこの「シェア」も自然とあるだろうが
いいこと言うね、つまりRubyは生産性が無いってことだな

>>766
Java使えばよいよ
ただ、質問者?はC並みの速度って注文を付けてるからね
だったらC++だね、と
それでもRubyよりは生産性有るから問題ないだろう

>>767
君の思ってる一般人の基準がおかしいんじゃないの?
2017/08/03(木) 23:10:08.67ID:yhj86Quo
>>768
> 君の思ってる一般人の基準がおかしいんじゃないの?

君の方がおかしいよ
C++の方が生産性が高いかどうかアンケとってみた方がいいよ
2017/08/03(木) 23:11:31.02ID:9Ns8iW3Z
>>759
メモリ管理が面倒と思えるのは下手な証拠
C++ の RAII は手放せないのだが,他の言語でこの手の手法は使えないんだよね
2017/08/03(木) 23:12:12.72ID:yhj86Quo
第一、なんでそんな人間がRubyスレ覗いてるの?
君の意見だとRubyには見るべきところなんて一切ないはずなのにさ

別の言語を叩いてスッキリしたいのか、煽ってるだけなのかどっちかだよね
どちらにしても性格最悪だね
2017/08/03(木) 23:17:01.30ID:9Ns8iW3Z
>>771
そりゃ ruby を愛しているからだよ(ぼそ)
2017/08/03(木) 23:20:08.59ID:Wy5AX0em
>>770
実際問題、スマポもあるしな
問題になるのは循環参照がある場合だけだけど
でもそれは設計段階でわかることだから
片方をweak_ptrにすれば良いだけだしな
言うほど面倒ということもないし
世の中のC++アプリは普通に動いてるし
あと、短い間しか生きてない、常駐しないプログラムなら
メモリをいちいち開放する必要もないしな
OSに任せておけばよいだろうよ

>別の言語を叩いて
俺は別にC++に所属しているわけじゃないし
「別」も糞もない、俺にとってC++もRubyも一言語にすぎないよ
2017/08/03(木) 23:21:25.18ID:Wy5AX0em
だいぶズレてきてしまっているけど、もともとは
>Ruby並みに生産性が高く、C並みに高速で何でも作れる言語
ってお題だぞ
C++しか無いだろ
2017/08/03(木) 23:24:01.10ID:rbKeWnbz
C++の生産性が次世代C、C++を目指して開発されたD、Go、Rustなどを上回ることはないと断言して良いはず
C++の名を挙げるならその前にこれらを挙げるべきだ
2017/08/03(木) 23:28:11.69ID:Wy5AX0em
シェアが少なかったり使える人が少ない言語なんか選んじゃだめだよ
今は生産性の話をしているのに
だからC++なのさ
2017/08/03(木) 23:28:54.47ID:rbKeWnbz
シェアと生産性はなんの関係もないw
2017/08/03(木) 23:30:28.02ID:6SHaFuae
>>768
「生産性が高ければそこそこの「シェア」も自然とあるだろうが
そこそこの「シェア」があるからといって生産性が高いとは限らない」
という言説からどういう論理で
「つまりRubyは生産性が無いってことだな」
という結論が出るんですかね
これらから言えることは飽くまで「シェア」があることからは生産性に関して何も推論できないということ
肝心なところの説明がふわっとしてて独善的なんだよ
2017/08/03(木) 23:31:12.11ID:Wy5AX0em
特にD言語なんか挙げてる時点で何もわかってないね
あれはもうダメでしょ、誰がどう見ても
D言語の開発がいつ始まったか知らないけど
10〜15年ぐらい経ってこの状況なのに
これから先どう化けるってのよ
あんなので開発するのは生産性以前の問題だよ
2017/08/03(木) 23:33:45.92ID:yhj86Quo
結局何が言いたいんだろうね
Rubyなんて使えないってことですかね?
だとしたらそれはRubyスレで語ることですかね?
2017/08/03(木) 23:38:14.16ID:Wy5AX0em
>>778
自分で
>生産性が高ければそこそこの「シェア」も自然とあるだろう
って言ったんだろ
言い換えれば、シェアが無い言語は生産性が無いってことになるだろ?
分かりにくかったら会話風にして例を出してやろうか?
A:Rubyって生産性高いんですか?
B:生産性が高ければそこそこの「シェア」も自然とあるだろう(実際には無い)
A:あ、低いんだ・・・

>これらから言えることは飽くまで「シェア」があることからは生産性に関して何も推論できない
そういうことが言いたかったら
「生産性が高くてもシェアがあるとは限らないし
 シェアがあるからと言って生産性が高いとも限らない」
っていうべきじゃん
でも君の言ったのは
「生産性が高ければそこそこの「シェア」も自然とあるだろう」
だからね、お忘れなく
2017/08/03(木) 23:39:38.23ID:Wy5AX0em
>>780
>>774
2017/08/03(木) 23:40:45.06ID:yhj86Quo
>>782
そういう言語があるならRubyスレ覗かないよね?
なんで覗いてるの?
2017/08/03(木) 23:42:53.41ID:Wy5AX0em
Rubyの初心者だからだよ
2017/08/03(木) 23:43:34.73ID:rbKeWnbz
生産性は成果/コスト
C++を含むC系言語の生産性ってどのくらいなんだろうね
非標準ライブラリの信頼性検査コストや、デバッグのコスト、言語仕様に
起因する事故の損失や対応に要したコストを積み重ねたら悲惨なことになりそう
2017/08/03(木) 23:46:00.36ID:yhj86Quo
>>784
初心者がなぜRubyはC++より生産性が低いって断言してるの?
使ってもいないくせに断言できるわけないよね?
2017/08/03(木) 23:52:39.73ID:85r5WZPx
ぶっちゃけて言うと、メモリ管理がびみょいC++は生産性低いかも知らん



「特定の業種だと」C++がデフォルトって話にはなるわな
なに組み込んでんの? 的な意味で
ゲームもそうらしいが俺はゲーム業界知らんので

あとは単純な「慣れ」の問題もあるだろう
「慣れ」は個人の主観的感想
キチンとポジション明確にしてる人(例:「俺組み込みやってるんだけどさ」と前置きがあったといった人)
が言ったのでなければ無視すべき項目

とりあえず >> 768 の
> それでもRubyよりは生産性有るから問題ないだろう
という一文を見る限り、RubyじゃなくてC++スレに行くべき人ではないかなぁと判断している
RubyよりC++のほうが得意ならC++の話をC++スレでしているべきだ
2017/08/03(木) 23:55:37.05ID:6SHaFuae
「生産性が高ければ「シェア」もある」は
「「シェア」がある」が真ならこの命題は満たされてこれ以上『生産性に関して何も推論できない』でしょ
もちろんこのことから「シェア」がなければ生産性が高くないと言えるという指摘は正しい
しかしそれまでにC++はRubyより「シェア」があるとは言っているがRubyには「シェア」が無いとは言っていないのでふわっとしてて独善的と評しただけの話
2017/08/03(木) 23:56:56.33ID:85r5WZPx
うわー俺酔っぱい度高ぇな、もう寝るか

あと久々にRubyist Magagineみたら「RubyからPython蹴ったら統計処理の対応できなくね?」という
変態の記事があったので……ああ、うんRuby使いっぽいなって思った(小学生の日記風感想)
Pygmentsもそれで対応してるからな、どんだけ他人の成果を再利用するつもりだあいつら(いい意味で)
2017/08/04(金) 00:01:33.92ID:6xnwiv0x
「C++のほうがRubyより生産性高い ※個人の感想です」

とか書いておいたら誰もケチ付けなかったと思うがねえ
レスは全部「お前の中ではな」になるだろうが
2017/08/04(金) 01:04:33.14ID:2RnUdeBz
横に長い言語は生産性が高い。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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