プログラミング言語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/
探検
Ruby 初心者スレッド Part 60 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2017/04/29(土) 02:01:58.34ID:urVXnFrH
691デフォルトの名無しさん
2017/07/17(月) 13:21:14.47ID:Uy8niamL vagrant, chef, SASS とかに、Ruby の実行環境も入れて、配布しているだろ?
692デフォルトの名無しさん
2017/07/17(月) 13:41:49.80ID:CuRtYSJT >>691
VagrantやChefはユーザーによるスクリプティングを可能にするためにRubyを入れてるんであって、
プロダクトをRubyで作っちゃったから仕方なくRubyを入れてるわけではないよ
一方SASSはRubyで作っちゃった例だけど、Rubyが嫌われてnodeへ移行した
VagrantやChefはユーザーによるスクリプティングを可能にするためにRubyを入れてるんであって、
プロダクトをRubyで作っちゃったから仕方なくRubyを入れてるわけではないよ
一方SASSはRubyで作っちゃった例だけど、Rubyが嫌われてnodeへ移行した
693デフォルトの名無しさん
2017/07/17(月) 14:20:06.37ID:H+ZLTTJY > Rubyが嫌われてnodeへ移行した
nodeには移行してない
Cに移行している
nodeには移行してない
Cに移行している
694デフォルトの名無しさん
2017/07/17(月) 16:57:19.47ID:shGqANuA そんな時のためのmrubyにはならないのか
695デフォルトの名無しさん
2017/07/17(月) 17:05:21.70ID:CuRtYSJT 残念ながらmrubyが獲るはずだったポジションはNodeに獲られちゃった
696デフォルトの名無しさん
2017/07/17(月) 18:22:28.87ID:cSztc20o697デフォルトの名無しさん
2017/07/18(火) 00:28:34.69ID:2jGZGtzj わかってると思うけど、Rubyのネガキャンやってるのがこのスレに粘着してる
こういうのは見付け次第叩いてやらないといけない
こういうのは見付け次第叩いてやらないといけない
698デフォルトの名無しさん
2017/07/18(火) 00:50:06.81ID:tovqy0R7 >>691みたいにヘタに突っついて論破されるのも準アンチ行為だから注意な
699デフォルトの名無しさん
2017/07/18(火) 07:19:41.41ID:soRF6X66 いまだにRuby万能説に縋りRuby万能を否定されると発狂する人が住んでるのか
それは10年も前に終わった言説だ
いつまで寝ているんだ目を覚ませ
それは10年も前に終わった言説だ
いつまで寝ているんだ目を覚ませ
700デフォルトの名無しさん
2017/07/18(火) 12:48:36.31ID:6DbTRi2A Ruby が最上流。
他の言語よりも、常に、2, 3年早い
Rails, vagrant, chef, SASS など
DSL では、Ruby, Groovy が優れているから、
最初にこれらの言語で作られてから、Python, JS へ移植される
Kotlin も注目されているけど、型を指定するのが面倒。
まあ、型を省略して、型推論もできるけど
他の言語よりも、常に、2, 3年早い
Rails, vagrant, chef, SASS など
DSL では、Ruby, Groovy が優れているから、
最初にこれらの言語で作られてから、Python, JS へ移植される
Kotlin も注目されているけど、型を指定するのが面倒。
まあ、型を省略して、型推論もできるけど
701デフォルトの名無しさん
2017/07/18(火) 16:13:18.86ID:bC2KM4MS rubyが最上流?
ワロス
そんな優れてるならphpもpythonも喰ってるよ。
しかも、落ち目だし。
ワロス
そんな優れてるならphpもpythonも喰ってるよ。
しかも、落ち目だし。
702デフォルトの名無しさん
2017/07/18(火) 16:18:08.82ID:bC2KM4MS しかも、型省略して型推論とか微妙な言い回ししてるあたり、分かってない臭がすごくてやばい
703デフォルトの名無しさん
2017/07/18(火) 17:14:45.02ID:PS9r5OZ5 >>702
C#のvarみたいなもののことなんじゃないの?
C#のvarみたいなもののことなんじゃないの?
704デフォルトの名無しさん
2017/07/18(火) 18:59:56.81ID:jUpeemmL Kotlinの型推論はただの典型的な型推論ですよ
それこそ「型指定が必要だけど型推論に任せることもできます→まあ便利」で済むレベル
わかってないのは間違いないのだろうけれど
それこそ「型指定が必要だけど型推論に任せることもできます→まあ便利」で済むレベル
わかってないのは間違いないのだろうけれど
705デフォルトの名無しさん
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)
を使用するようですが第一引数をどのように得ればいいのか判りません
class Array
def funcA
return ["AAA"]
end
end
みたいに書けば出来ますがこれをCの拡張ライブラリにしたい場合ってどうすれば良いんでしょうか?
Cからメソッドの登録を行う場合は
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(), int argc)
を使用するようですが第一引数をどのように得ればいいのか判りません
706デフォルトの名無しさん
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) { }
static VALUE hoge_func_a(VALUE self, VALUE arg1) { }
707デフォルトの名無しさん
2017/07/19(水) 22:52:50.29ID:nwQCI0l5 え?"Array"というRubyの名前空間上の文字列?からklassを得る方法って無いの?
実際にメソッドを追加したいのは拡張ライブラリなんだけど、クラスやメソッドの登録は
関数内で行われていてklassが明示的に外部へ公開されているようには見えないのだが・・・
実際にメソッドを追加したいのは拡張ライブラリなんだけど、クラスやメソッドの登録は
関数内で行われていてklassが明示的に外部へ公開されているようには見えないのだが・・・
708デフォルトの名無しさん
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");
組み込みクラスやモジュールに関してはグローバル変数として用意されている
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");
709デフォルトの名無しさん
2017/07/20(木) 09:35:50.76ID:s/SNqpfK naoyaのはめ撮り動画アップされたね
710デフォルトの名無しさん
2017/07/20(木) 14:22:33.47ID:+aBWrhxZ 697の見え見えの釣り針にひっかかる粘着なんておらんやろ
って思ってたけど、見事に食い付いてるな
マジスゲー
って思ってたけど、見事に食い付いてるな
マジスゲー
711デフォルトの名無しさん
2017/07/20(木) 22:29:26.18ID:wsBNKQXr712デフォルトの名無しさん
2017/07/22(土) 14:27:06.95ID:GRw82bJl 拡張ライブラリをコンパイルする時に任意の場所にあるヘッダファイルやライブラリファイルを
探索させるようにするにはどのようにすればいいのでしょうか
探索させるようにするにはどのようにすればいいのでしょうか
713デフォルトの名無しさん
2017/07/22(土) 14:50:45.74ID:ZFWxmOeg それRuby全く関係ない
Cのコンパイラだけの問題
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
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
715デフォルトの名無しさん
2017/07/22(土) 15:46:06.83ID:GRw82bJl716デフォルトの名無しさん
2017/07/22(土) 15:56:18.40ID:GRw82bJl あ、自己解決。dir_configを使えば良かったのか
dir_config("myproject")
とか書いて
ruby extconf.rb --with-myproject-include=C:\foo
とかするとそのディレクトリを探索対象に加えてくれるみたいです
dir_config("myproject")
とか書いて
ruby extconf.rb --with-myproject-include=C:\foo
とかするとそのディレクトリを探索対象に加えてくれるみたいです
717デフォルトの名無しさん
2017/07/22(土) 16:07:27.55ID:LM/qA1ao mkmf.rbでdir_config("opt")してくれてるので、--with-opt-includeならはじめから使える
718デフォルトの名無しさん
2017/07/22(土) 20:13:36.13ID:6KQ6+UpV719デフォルトの名無しさん
2017/07/23(日) 03:04:04.86ID:nJm1oPvD IDE には、ライブラリパスの参照という、ボタンがあるはず
720デフォルトの名無しさん
2017/07/23(日) 08:53:05.99ID:1hI9T8Bk ひとまず形にはなった。ALLOC_Nの開放の仕方が判らないのでALLOCA_Nにした
ALLOC〜って初期化してくれないんだな。ゴミが混じってメモリ破壊の
バグがあるのかとしばらく悩んだ。でもCはど素人だしなんかありそう
>>718
コマンドラインの方が容易に変更できるのでdir_configで行こうと思います
ALLOC〜って初期化してくれないんだな。ゴミが混じってメモリ破壊の
バグがあるのかとしばらく悩んだ。でもCはど素人だしなんかありそう
>>718
コマンドラインの方が容易に変更できるのでdir_configで行こうと思います
721デフォルトの名無しさん
2017/07/23(日) 10:43:01.15ID:FBMkfY4k >>720
ruby/ruby.hを大文字のALLOCで文字列検索してみ
RB_ZALLOCとかRB_ZALLOC_Nとかが0で初期化してくれる
あと確保したこれらはxfree(void*)で解放してね
ruby/ruby.hを大文字のALLOCで文字列検索してみ
RB_ZALLOCとかRB_ZALLOC_Nとかが0で初期化してくれる
あと確保したこれらはxfree(void*)で解放してね
722デフォルトの名無しさん
2017/07/23(日) 21:56:04.93ID:1hI9T8Bk >>721
ありがとう。ZALLOC_N&xfreeにしてみました
ALLOCA_Nってruby/ruby.hをみたらallocaを呼んでいるだけじゃないかw
拡張ライブラリ内部における動的なメモリの確保ってどうするのが好ましいんだろうな
スタックに積む方法はメモリのリークはないけどスタックを圧迫する(.今の環境だったら気にするほどでもない?)
allocして後にfreeする方法だと意図せず途中で抜けた時にメモリがリークする
Rubyの文字列を作ってそれを利用すると言う方法を紹介しているblogもあったけど・・・う〜む・・・
ありがとう。ZALLOC_N&xfreeにしてみました
ALLOCA_Nってruby/ruby.hをみたらallocaを呼んでいるだけじゃないかw
拡張ライブラリ内部における動的なメモリの確保ってどうするのが好ましいんだろうな
スタックに積む方法はメモリのリークはないけどスタックを圧迫する(.今の環境だったら気にするほどでもない?)
allocして後にfreeする方法だと意図せず途中で抜けた時にメモリがリークする
Rubyの文字列を作ってそれを利用すると言う方法を紹介しているblogもあったけど・・・う〜む・・・
723デフォルトの名無しさん
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);
こんな感じかな
俺も外部の人間だから本当に適切な方法なんて知らないけど……
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);
こんな感じかな
724デフォルトの名無しさん
2017/07/24(月) 00:44:09.77ID:7DZLuR6j 今気がついたのだが・・・
自作メソッドの入力値が不適切→rb_raiseを叩く→Segmentation fault
rb_raiseの引数に動的な物は含まれていないし、未解放のメモリがあるわけでもないしどうなっているんだ
例外を発生させる時の作法とかあるのだろうか
しかも2個作ったメソッドの片方だけこの現象が起きる。処理内容に問題があるわけではないけど
これを放置するのはマズイよな
>>723
ありがとう。参考になります
自作メソッドの入力値が不適切→rb_raiseを叩く→Segmentation fault
rb_raiseの引数に動的な物は含まれていないし、未解放のメモリがあるわけでもないしどうなっているんだ
例外を発生させる時の作法とかあるのだろうか
しかも2個作ったメソッドの片方だけこの現象が起きる。処理内容に問題があるわけではないけど
これを放置するのはマズイよな
>>723
ありがとう。参考になります
725デフォルトの名無しさん
2017/07/24(月) 05:46:45.69ID:q6ge4pC6 メモリスタック確認するのが一番じゃね?適当だけど
726デフォルトの名無しさん
2017/07/24(月) 08:11:09.42ID:rFx+DNZY なるほど・・・ってVC++環境でコアダンプってどうやって取れば良いんだろ
ググるとWindows Error Reportがトラップしている時にタスクマネージャからダンプさせる
とか出てくるけどトラップされている訳じゃないのでこの方法は使えないし・・・
それともどこかにダンプが保存されているんだろうか
ググるとWindows Error Reportがトラップしている時にタスクマネージャからダンプさせる
とか出てくるけどトラップされている訳じゃないのでこの方法は使えないし・・・
それともどこかにダンプが保存されているんだろうか
727デフォルトの名無しさん
2017/07/24(月) 12:01:57.41ID:YHai+DFK プロセスにアタッチしてブレイクしたら。
728デフォルトの名無しさん
2017/07/24(月) 19:26:11.30ID:R/9Imr1c 困った時のprintfデバッグ
729デフォルトの名無しさん
2017/07/26(水) 14:44:00.57ID:P+h1MRRW 【Unity】ソートアルゴリズム12種を可視化してみた - Qiita
http://qiita.com/r-ngtm/items/f4fa55c77459f63a5228
http://qiita.com/r-ngtm/items/f4fa55c77459f63a5228
730デフォルトの名無しさん
2017/07/27(木) 10:11:51.47ID:FeDFxsXm ソフトウェアデザインがインターフェースの記事を丸々パクって問題になったことがあったな
731デフォルトの名無しさん
2017/07/29(土) 18:02:23.06ID:Xgmp5DuD VisualC++でビルドすると--disable-debug-envを付けてもデバッグビルドになってしまうように見えるけど気のせいかな・・・
インストールされるサイズが--enable-debug-envと比べてちっとも変わらない
生成したMakefileにデバッグ関係のオプションを削ったCFLAGSとLDFLAGSを書き込んだらインストールサイズが大分小さくなった
インストールされるサイズが--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内部で例外が起きる
rb_scan_argsの第3引数が"22"と不適切な値にしていたことが原因だった。適切な"2"にしたら問題なくなった
複数のスレッドが動いているため?か例外を起こす場所が一定になるわけではない模様
rb_pでデバッグしていくと>>724の位置で例外が起きる(rb_raiseの第一引数がぶっ壊れていると
思われる)んだけど、デバッガで追いかけるとrb_scan_args内部で例外が起きる
733デフォルトの名無しさん
2017/07/31(月) 02:05:04.23ID:9Hgupd7z 要約すると
Ruby ⇔ C と行き来するのはえらく面倒だ
ってことだな
これなら、Rubyを使うことそのものが目的じゃないのならだが
初めから Java、C#、C++ などを使ったほうが良かったってこったな
Ruby ⇔ C と行き来するのはえらく面倒だ
ってことだな
これなら、Rubyを使うことそのものが目的じゃないのならだが
初めから Java、C#、C++ などを使ったほうが良かったってこったな
734デフォルトの名無しさん
2017/07/31(月) 07:03:37.88ID:VY/jm5nF というか今時はRPCやメッセージキューを使って完全に分離してしまえばいい
WindowsでRubyの時点でどのみち実用性のないオナニーなんだから好きにすればいいけど
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++は不慣れなので変なことを書いていたらスマン
今回の件で困ったことまとめ
・VC++のコマンドラインからビルドした物をデバッグする例が全然見つからない
VC++のIDEで開発したプロジェクトやgcc&makeで開発した物をgdbでデバッグする例なら沢山出てくるんだけどな
・CLIアプリケーションのためかデバッガから起動させるとgem関係のファイルがないとRubyが例外を吐いて動かない
requireの後に$<.getsを書いてコマンドプロンプトから起動。デバッガからアタッチしてブレークポイントをセット後に
Enterを入れて実行を再開。ただし100%上手くいくわけではない模様。無限ループ?にはまる時もある
エントリーポイントで止めて環境変数やカレントディレクトリを適切に設定した後に再開すれば動くのかな?
やり方が判らないけど
・RubyがSegmentation faultをトラップしてしまうためにメモリダンプを取れない?
signal.cやwin32.cでそれっぽそうなところを書き換えてみたけどトラップを止めさせることは出来なかった
どこを弄ればいいのだろうか・・・
C/C++は不慣れなので変なことを書いていたらスマン
736デフォルトの名無しさん
2017/07/31(月) 15:59:11.85ID:2wHF06gt ファイル名以外でファイルを識別するにはどうしたらいいんだ?
ファイル名変更したとしてもファイル名変更前とファイル名変更後のファイルを同じものとしてみたい
ファイルクラスのドキュメント見てみたけとそれらしいのはなかった
ファイル名変更したとしてもファイル名変更前とファイル名変更後のファイルを同じものとしてみたい
ファイルクラスのドキュメント見てみたけとそれらしいのはなかった
737デフォルトの名無しさん
2017/07/31(月) 16:30:54.00ID:PivEBbdv 何を以て同じファイルとみなすかに依る
単に内容だけ比較するなら FileUtils.#cmp を使うと良いよ
https://docs.ruby-lang.org/ja/latest/method/FileUtils/m/cmp.html
単に内容だけ比較するなら FileUtils.#cmp を使うと良いよ
https://docs.ruby-lang.org/ja/latest/method/FileUtils/m/cmp.html
738デフォルトの名無しさん
2017/07/31(月) 23:41:34.38ID:X3kyqB8s739デフォルトの名無しさん
2017/08/01(火) 01:21:43.84ID:eJYTTdCf >>737
こんな便利なメソッドがあったのか
でも変更前のファイルが残ってるやけじゃないからここでは使えないかな…
>>738
https://docs.ruby-lang.org/ja/latest/class/File=3a=3aStat.html
LINUXだからこの辺使ってinodeで判別できそう!ありがとう!
こんな便利なメソッドがあったのか
でも変更前のファイルが残ってるやけじゃないからここでは使えないかな…
>>738
https://docs.ruby-lang.org/ja/latest/class/File=3a=3aStat.html
LINUXだからこの辺使ってinodeで判別できそう!ありがとう!
740デフォルトの名無しさん
2017/08/01(火) 08:33:14.08ID:YiDwID17 >>739
そういう用途なら、ハードリンクに注意。
そういう用途なら、ハードリンクに注意。
741デフォルトの名無しさん
2017/08/01(火) 11:24:21.35ID:QsBohnup inodeは再利用されるからいつかギョッとするときが来ると思う
https://ideone.com/zPXgqb
https://ideone.com/zPXgqb
742デフォルトの名無しさん
2017/08/01(火) 16:59:50.09ID:T1EbqLjy いまどきのファイルシステムなら拡張属性つかえんじゃない?
索引つくれないと面倒だけど中身比較するよかまし
索引つくれないと面倒だけど中身比較するよかまし
743デフォルトの名無しさん
2017/08/01(火) 19:11:35.76ID:ggiqqoER744デフォルトの名無しさん
2017/08/01(火) 19:40:15.57ID:PARHYe6N まあ「inode見ればファイル名変更にも追従できる!」なんてやらなきゃいけない時点でなにかがとてつもなくおかしいわな
gitみたいなかんたんファイル変更検知機能付きアプリケーションを見てみると絶望できるかもしれないね
gitみたいなかんたんファイル変更検知機能付きアプリケーションを見てみると絶望できるかもしれないね
745デフォルトの名無しさん
2017/08/02(水) 13:55:20.56ID:5on7mlkV rubyでcoincheck apiを使ってみたいんだけど、いまドットインストールを見終わって、たのしいRubyを見終わったんだけど、opensllとかuriとかnet/httpとかの使い方はどうやったら分かるようになるのかな
746デフォルトの名無しさん
2017/08/02(水) 20:17:50.89ID:Y8o6EGzu それくらいはマニュアル見ろよ
ということでマニュアルの読み方の勉強が必要
ただ、それらのライブラリはプロトコルをちっとも隠蔽してくれてないのでOpenSSLやURIやHTTPの基礎知識は必須だぞ
普通なら使いたいapi試しながら勉強しろと言うんだが絶妙にトライアルアンドエラーのしにくい分野のapiなのが辛いな
ということでマニュアルの読み方の勉強が必要
ただ、それらのライブラリはプロトコルをちっとも隠蔽してくれてないのでOpenSSLやURIやHTTPの基礎知識は必須だぞ
普通なら使いたいapi試しながら勉強しろと言うんだが絶妙にトライアルアンドエラーのしにくい分野のapiなのが辛いな
747デフォルトの名無しさん
2017/08/03(木) 19:35:54.85ID:Yq3e1WJ9 Ruby並みに生産性が高く、C並みに高速で何でも作れる言語があったら神
748デフォルトの名無しさん
2017/08/03(木) 19:55:35.10ID:eWbe8h/f KotlinあたりにRubyっぽいライブラリがあれば案外簡単に実現できそう
749デフォルトの名無しさん
2017/08/03(木) 19:59:35.69ID:Yq3e1WJ9 Javaがないと動かない時点で全然C並みじゃない
750デフォルトの名無しさん
2017/08/03(木) 21:17:20.06ID:Wy5AX0em >Ruby並みに生産性が高く、C並みに高速で何でも作れる言語
じゃーC++だね
生産性はJavaやC#には負けるかもしれないが
静的型言語だから少なくともRubyより生産性あるしな
じゃーC++だね
生産性はJavaやC#には負けるかもしれないが
静的型言語だから少なくともRubyより生産性あるしな
751デフォルトの名無しさん
2017/08/03(木) 21:59:48.18ID:yhj86Quo752デフォルトの名無しさん
2017/08/03(木) 22:12:01.14ID:Wy5AX0em 8万行ぐらいのフリーソフトなら作ったことあるけど
逆にRubyでこの規模のソフト開発するのは嫌だなぁ
逆にRubyでこの規模のソフト開発するのは嫌だなぁ
753デフォルトの名無しさん
2017/08/03(木) 22:14:29.74ID:Wy5AX0em C++は割と何でも作れる懐の深い言語だと思うよ
速度も最速といってよいレベルだし
C++で作って重かったらもう諦めるっつーか
諦めも付く
速度も最速といってよいレベルだし
C++で作って重かったらもう諦めるっつーか
諦めも付く
754デフォルトの名無しさん
2017/08/03(木) 22:16:49.93ID:Wy5AX0em そもそも
>ある程度の規模のアプリ書いたことある?
って聞き方がおかしいんだよなぁ
どちらかと言えばRubyは短いプログラムをサクッと作るのが得意分野なのに
ある程度の規模が前提なら、そりゃ、静的型の方が良いだろうよ
>ある程度の規模のアプリ書いたことある?
って聞き方がおかしいんだよなぁ
どちらかと言えばRubyは短いプログラムをサクッと作るのが得意分野なのに
ある程度の規模が前提なら、そりゃ、静的型の方が良いだろうよ
755デフォルトの名無しさん
2017/08/03(木) 22:20:14.12ID:rbKeWnbz 一般的にメモリの保護機構を持たないと言うだけでその言語の生産性はかなり下がる
後に開発された言語の多くがメモリの保護機構を用意していることからもこれは明らか
C++でコンパイルが通れば一発動作のスーパーハッカーなら生産性は高いだろうけど
そりゃ言語の生産性が高いわけではなくそいつが凄いだけw
後に開発された言語の多くがメモリの保護機構を用意していることからもこれは明らか
C++でコンパイルが通れば一発動作のスーパーハッカーなら生産性は高いだろうけど
そりゃ言語の生産性が高いわけではなくそいつが凄いだけw
756デフォルトの名無しさん
2017/08/03(木) 22:22:18.12ID:yhj86Quo >>753
それと生産性の高さとは何も関係ないけどね
それと生産性の高さとは何も関係ないけどね
757デフォルトの名無しさん
2017/08/03(木) 22:27:07.72ID:JmT9ks+l rubyなら8千行
758デフォルトの名無しさん
2017/08/03(木) 22:27:27.39ID:Wy5AX0em だから
>(C++は)生産性はJavaやC#には負けるかもしれないが
って書いただろ
でもRubyより有ればひとまずそれで良いんだろ?
しかも>>751なんかは「ある程度の規模」って条件を指定してるし
>(C++は)生産性はJavaやC#には負けるかもしれないが
って書いただろ
でもRubyより有ればひとまずそれで良いんだろ?
しかも>>751なんかは「ある程度の規模」って条件を指定してるし
759デフォルトの名無しさん
2017/08/03(木) 22:29:36.38ID:yhj86Quo760デフォルトの名無しさん
2017/08/03(木) 22:36:03.43ID:Wy5AX0em それでも静的型の方が生産性があるってのが業界のFAだろ?
最近出てきた言語はどうなってる?当たり前に静的型の機能を持ってるだろ
あと、C++はRubyよりシェア(という言い方が適切かは分からないが)高いし
コミュニティーも活発だよ
だから
>Ruby並みに生産性が高く、C並みに高速で何でも作れる言語
の回答はC++だ
他に選択肢有るか?
最近出てきた言語はどうなってる?当たり前に静的型の機能を持ってるだろ
あと、C++はRubyよりシェア(という言い方が適切かは分からないが)高いし
コミュニティーも活発だよ
だから
>Ruby並みに生産性が高く、C並みに高速で何でも作れる言語
の回答はC++だ
他に選択肢有るか?
761デフォルトの名無しさん
2017/08/03(木) 22:37:48.85ID:Wy5AX0em あと、C++はライブラリも結構豊富な方だと思うよ
Cのライブラリも使えるし、まぁ、大体は何でも
言語の生産性を考えたとき、利用者が多いことも有利に働くよ
Cのライブラリも使えるし、まぁ、大体は何でも
言語の生産性を考えたとき、利用者が多いことも有利に働くよ
762デフォルトの名無しさん
2017/08/03(木) 22:44:10.59ID:yhj86Quo >>760
> 最近出てきた言語はどうなってる?当たり前に静的型の機能を持ってるだろ
最近出てきた言語はどうなってる?当たり前にメモリ管理機能を持ってるだろ
静的型のメリットをメモリ管理のデメリットが塗りつぶしてるんだよ、C++は
> 最近出てきた言語はどうなってる?当たり前に静的型の機能を持ってるだろ
最近出てきた言語はどうなってる?当たり前にメモリ管理機能を持ってるだろ
静的型のメリットをメモリ管理のデメリットが塗りつぶしてるんだよ、C++は
763デフォルトの名無しさん
2017/08/03(木) 22:48:11.18ID:Wy5AX0em Boehm GCでも使えばよいだろ
764デフォルトの名無しさん
2017/08/03(木) 22:51:34.98ID:Wy5AX0em それに周りを見渡してみればC++で書かれた
大規模中規模アプリが山のようにあるのに
本当に生産性が低いといえるのかどうなのか
大規模中規模アプリが山のようにあるのに
本当に生産性が低いといえるのかどうなのか
765デフォルトの名無しさん
2017/08/03(木) 22:58:07.67ID:6SHaFuae 生産性が高ければそこそこの「シェア」も自然とあるだろうが
そこそこの「シェア」があるからといって生産性が高いとは限らない
そこそこの「シェア」があるからといって生産性が高いとは限らない
766デフォルトの名無しさん
2017/08/03(木) 23:01:51.14ID:yhj86Quo767デフォルトの名無しさん
2017/08/03(木) 23:02:53.79ID:yhj86Quo768デフォルトの名無しさん
2017/08/03(木) 23:08:35.02ID:Wy5AX0em769デフォルトの名無しさん
2017/08/03(木) 23:10:08.67ID:yhj86Quo770デフォルトの名無しさん
2017/08/03(木) 23:11:31.02ID:9Ns8iW3Z771デフォルトの名無しさん
2017/08/03(木) 23:12:12.72ID:yhj86Quo 第一、なんでそんな人間がRubyスレ覗いてるの?
君の意見だとRubyには見るべきところなんて一切ないはずなのにさ
別の言語を叩いてスッキリしたいのか、煽ってるだけなのかどっちかだよね
どちらにしても性格最悪だね
君の意見だとRubyには見るべきところなんて一切ないはずなのにさ
別の言語を叩いてスッキリしたいのか、煽ってるだけなのかどっちかだよね
どちらにしても性格最悪だね
772デフォルトの名無しさん
2017/08/03(木) 23:17:01.30ID:9Ns8iW3Z >>771
そりゃ ruby を愛しているからだよ(ぼそ)
そりゃ ruby を愛しているからだよ(ぼそ)
773デフォルトの名無しさん
2017/08/03(木) 23:20:08.59ID:Wy5AX0em >>770
実際問題、スマポもあるしな
問題になるのは循環参照がある場合だけだけど
でもそれは設計段階でわかることだから
片方をweak_ptrにすれば良いだけだしな
言うほど面倒ということもないし
世の中のC++アプリは普通に動いてるし
あと、短い間しか生きてない、常駐しないプログラムなら
メモリをいちいち開放する必要もないしな
OSに任せておけばよいだろうよ
>別の言語を叩いて
俺は別にC++に所属しているわけじゃないし
「別」も糞もない、俺にとってC++もRubyも一言語にすぎないよ
実際問題、スマポもあるしな
問題になるのは循環参照がある場合だけだけど
でもそれは設計段階でわかることだから
片方をweak_ptrにすれば良いだけだしな
言うほど面倒ということもないし
世の中のC++アプリは普通に動いてるし
あと、短い間しか生きてない、常駐しないプログラムなら
メモリをいちいち開放する必要もないしな
OSに任せておけばよいだろうよ
>別の言語を叩いて
俺は別にC++に所属しているわけじゃないし
「別」も糞もない、俺にとってC++もRubyも一言語にすぎないよ
774デフォルトの名無しさん
2017/08/03(木) 23:21:25.18ID:Wy5AX0em だいぶズレてきてしまっているけど、もともとは
>Ruby並みに生産性が高く、C並みに高速で何でも作れる言語
ってお題だぞ
C++しか無いだろ
>Ruby並みに生産性が高く、C並みに高速で何でも作れる言語
ってお題だぞ
C++しか無いだろ
775デフォルトの名無しさん
2017/08/03(木) 23:24:01.10ID:rbKeWnbz C++の生産性が次世代C、C++を目指して開発されたD、Go、Rustなどを上回ることはないと断言して良いはず
C++の名を挙げるならその前にこれらを挙げるべきだ
C++の名を挙げるならその前にこれらを挙げるべきだ
776デフォルトの名無しさん
2017/08/03(木) 23:28:11.69ID:Wy5AX0em シェアが少なかったり使える人が少ない言語なんか選んじゃだめだよ
今は生産性の話をしているのに
だからC++なのさ
今は生産性の話をしているのに
だからC++なのさ
777デフォルトの名無しさん
2017/08/03(木) 23:28:54.47ID:rbKeWnbz シェアと生産性はなんの関係もないw
778デフォルトの名無しさん
2017/08/03(木) 23:30:28.02ID:6SHaFuae >>768
「生産性が高ければそこそこの「シェア」も自然とあるだろうが
そこそこの「シェア」があるからといって生産性が高いとは限らない」
という言説からどういう論理で
「つまりRubyは生産性が無いってことだな」
という結論が出るんですかね
これらから言えることは飽くまで「シェア」があることからは生産性に関して何も推論できないということ
肝心なところの説明がふわっとしてて独善的なんだよ
「生産性が高ければそこそこの「シェア」も自然とあるだろうが
そこそこの「シェア」があるからといって生産性が高いとは限らない」
という言説からどういう論理で
「つまりRubyは生産性が無いってことだな」
という結論が出るんですかね
これらから言えることは飽くまで「シェア」があることからは生産性に関して何も推論できないということ
肝心なところの説明がふわっとしてて独善的なんだよ
779デフォルトの名無しさん
2017/08/03(木) 23:31:12.11ID:Wy5AX0em 特にD言語なんか挙げてる時点で何もわかってないね
あれはもうダメでしょ、誰がどう見ても
D言語の開発がいつ始まったか知らないけど
10〜15年ぐらい経ってこの状況なのに
これから先どう化けるってのよ
あんなので開発するのは生産性以前の問題だよ
あれはもうダメでしょ、誰がどう見ても
D言語の開発がいつ始まったか知らないけど
10〜15年ぐらい経ってこの状況なのに
これから先どう化けるってのよ
あんなので開発するのは生産性以前の問題だよ
780デフォルトの名無しさん
2017/08/03(木) 23:33:45.92ID:yhj86Quo 結局何が言いたいんだろうね
Rubyなんて使えないってことですかね?
だとしたらそれはRubyスレで語ることですかね?
Rubyなんて使えないってことですかね?
だとしたらそれはRubyスレで語ることですかね?
781デフォルトの名無しさん
2017/08/03(木) 23:38:14.16ID:Wy5AX0em >>778
自分で
>生産性が高ければそこそこの「シェア」も自然とあるだろう
って言ったんだろ
言い換えれば、シェアが無い言語は生産性が無いってことになるだろ?
分かりにくかったら会話風にして例を出してやろうか?
A:Rubyって生産性高いんですか?
B:生産性が高ければそこそこの「シェア」も自然とあるだろう(実際には無い)
A:あ、低いんだ・・・
>これらから言えることは飽くまで「シェア」があることからは生産性に関して何も推論できない
そういうことが言いたかったら
「生産性が高くてもシェアがあるとは限らないし
シェアがあるからと言って生産性が高いとも限らない」
っていうべきじゃん
でも君の言ったのは
「生産性が高ければそこそこの「シェア」も自然とあるだろう」
だからね、お忘れなく
自分で
>生産性が高ければそこそこの「シェア」も自然とあるだろう
って言ったんだろ
言い換えれば、シェアが無い言語は生産性が無いってことになるだろ?
分かりにくかったら会話風にして例を出してやろうか?
A:Rubyって生産性高いんですか?
B:生産性が高ければそこそこの「シェア」も自然とあるだろう(実際には無い)
A:あ、低いんだ・・・
>これらから言えることは飽くまで「シェア」があることからは生産性に関して何も推論できない
そういうことが言いたかったら
「生産性が高くてもシェアがあるとは限らないし
シェアがあるからと言って生産性が高いとも限らない」
っていうべきじゃん
でも君の言ったのは
「生産性が高ければそこそこの「シェア」も自然とあるだろう」
だからね、お忘れなく
782デフォルトの名無しさん
2017/08/03(木) 23:39:38.23ID:Wy5AX0em783デフォルトの名無しさん
2017/08/03(木) 23:40:45.06ID:yhj86Quo784デフォルトの名無しさん
2017/08/03(木) 23:42:53.41ID:Wy5AX0em Rubyの初心者だからだよ
785デフォルトの名無しさん
2017/08/03(木) 23:43:34.73ID:rbKeWnbz 生産性は成果/コスト
C++を含むC系言語の生産性ってどのくらいなんだろうね
非標準ライブラリの信頼性検査コストや、デバッグのコスト、言語仕様に
起因する事故の損失や対応に要したコストを積み重ねたら悲惨なことになりそう
C++を含むC系言語の生産性ってどのくらいなんだろうね
非標準ライブラリの信頼性検査コストや、デバッグのコスト、言語仕様に
起因する事故の損失や対応に要したコストを積み重ねたら悲惨なことになりそう
786デフォルトの名無しさん
2017/08/03(木) 23:46:00.36ID:yhj86Quo787デフォルトの名無しさん
2017/08/03(木) 23:52:39.73ID:85r5WZPx ぶっちゃけて言うと、メモリ管理がびみょいC++は生産性低いかも知らん
が
「特定の業種だと」C++がデフォルトって話にはなるわな
なに組み込んでんの? 的な意味で
ゲームもそうらしいが俺はゲーム業界知らんので
あとは単純な「慣れ」の問題もあるだろう
「慣れ」は個人の主観的感想
キチンとポジション明確にしてる人(例:「俺組み込みやってるんだけどさ」と前置きがあったといった人)
が言ったのでなければ無視すべき項目
とりあえず >> 768 の
> それでもRubyよりは生産性有るから問題ないだろう
という一文を見る限り、RubyじゃなくてC++スレに行くべき人ではないかなぁと判断している
RubyよりC++のほうが得意ならC++の話をC++スレでしているべきだ
が
「特定の業種だと」C++がデフォルトって話にはなるわな
なに組み込んでんの? 的な意味で
ゲームもそうらしいが俺はゲーム業界知らんので
あとは単純な「慣れ」の問題もあるだろう
「慣れ」は個人の主観的感想
キチンとポジション明確にしてる人(例:「俺組み込みやってるんだけどさ」と前置きがあったといった人)
が言ったのでなければ無視すべき項目
とりあえず >> 768 の
> それでもRubyよりは生産性有るから問題ないだろう
という一文を見る限り、RubyじゃなくてC++スレに行くべき人ではないかなぁと判断している
RubyよりC++のほうが得意ならC++の話をC++スレでしているべきだ
788デフォルトの名無しさん
2017/08/03(木) 23:55:37.05ID:6SHaFuae 「生産性が高ければ「シェア」もある」は
「「シェア」がある」が真ならこの命題は満たされてこれ以上『生産性に関して何も推論できない』でしょ
もちろんこのことから「シェア」がなければ生産性が高くないと言えるという指摘は正しい
しかしそれまでにC++はRubyより「シェア」があるとは言っているがRubyには「シェア」が無いとは言っていないのでふわっとしてて独善的と評しただけの話
「「シェア」がある」が真ならこの命題は満たされてこれ以上『生産性に関して何も推論できない』でしょ
もちろんこのことから「シェア」がなければ生産性が高くないと言えるという指摘は正しい
しかしそれまでにC++はRubyより「シェア」があるとは言っているがRubyには「シェア」が無いとは言っていないのでふわっとしてて独善的と評しただけの話
789デフォルトの名無しさん
2017/08/03(木) 23:56:56.33ID:85r5WZPx うわー俺酔っぱい度高ぇな、もう寝るか
あと久々にRubyist Magagineみたら「RubyからPython蹴ったら統計処理の対応できなくね?」という
変態の記事があったので……ああ、うんRuby使いっぽいなって思った(小学生の日記風感想)
Pygmentsもそれで対応してるからな、どんだけ他人の成果を再利用するつもりだあいつら(いい意味で)
あと久々にRubyist Magagineみたら「RubyからPython蹴ったら統計処理の対応できなくね?」という
変態の記事があったので……ああ、うんRuby使いっぽいなって思った(小学生の日記風感想)
Pygmentsもそれで対応してるからな、どんだけ他人の成果を再利用するつもりだあいつら(いい意味で)
790デフォルトの名無しさん
2017/08/04(金) 00:01:33.92ID:6xnwiv0x 「C++のほうがRubyより生産性高い ※個人の感想です」
とか書いておいたら誰もケチ付けなかったと思うがねえ
レスは全部「お前の中ではな」になるだろうが
とか書いておいたら誰もケチ付けなかったと思うがねえ
レスは全部「お前の中ではな」になるだろうが
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 小島瑠璃子さん、代表取締役を務める会社を破産申請 [牛丼★]
- 「残クレ」でマイホーム、国が銀行向け保険 新型住宅ローン普及促す -日経 ★3 [少考さん★]
- 【サッカー】日本代表、FIFAランキング“4位”の強豪イングランドとの対戦が正式決定! 来年3月に聖地ウェンブリーで激突へ [久太郎★]
- 三崎優太氏「貧乏に生まれたら奨学金地獄、親ガチャで人生が決まるなんて…」環境による教育の差を疑問視 「おかしいよ」 [muffin★]
