プログラミング言語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
716デフォルトの名無しさん
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より生産性高い ※個人の感想です」
とか書いておいたら誰もケチ付けなかったと思うがねえ
レスは全部「お前の中ではな」になるだろうが
とか書いておいたら誰もケチ付けなかったと思うがねえ
レスは全部「お前の中ではな」になるだろうが
791デフォルトの名無しさん
2017/08/04(金) 01:04:33.14ID:2RnUdeBz 横に長い言語は生産性が高い。
792デフォルトの名無しさん
2017/08/04(金) 08:10:50.87ID:NssrcL9O つーか言語の評価に標準ではないライブラリを持ち込んでいる時点で頭のおかしい人だろ
これが許されるならRubyで数値計算ライブラリや画像処理ライブラリを利用した時の速度をもって
Rubyでも高速に演算できると主張できてしまう。そんなことを吠えている奴がいたらアホ丸出しw
これが許されるならRubyで数値計算ライブラリや画像処理ライブラリを利用した時の速度をもって
Rubyでも高速に演算できると主張できてしまう。そんなことを吠えている奴がいたらアホ丸出しw
793デフォルトの名無しさん
2017/08/04(金) 09:14:05.59ID:PF1N3/4o >>790
言語を比較する際に、生産性のみを論点にするのはナンセンスだ。
生産者は人間および組織であって、その人間、組織の言語習熟度が生産性に大きく影響するからだ。
言語を比較する際に、
1. 学習容易さ
2. 作ったアプリの実行効率(実行に要する、時間、バッテリーの効率性)
3. 多様なアプリを作れるか?
4. 大規模、多人数組織でアプリを構築容易か?
こういった観点で比較しないと!
言語を比較する際に、生産性のみを論点にするのはナンセンスだ。
生産者は人間および組織であって、その人間、組織の言語習熟度が生産性に大きく影響するからだ。
言語を比較する際に、
1. 学習容易さ
2. 作ったアプリの実行効率(実行に要する、時間、バッテリーの効率性)
3. 多様なアプリを作れるか?
4. 大規模、多人数組織でアプリを構築容易か?
こういった観点で比較しないと!
794デフォルトの名無しさん
2017/08/04(金) 09:44:59.17ID:ABZoxKZM 初心者なら明らかにrubyのが生産性高いな
自分でプログラミング用のツール組むようになってくるとどの言語も大差なくなってくる気がする
簡素に書けるとかはストレスやミスを減らすのには役立つけど
自分がフレームワーク使ったり作ったりして結局ビジネスロジック記述だけが最終的な仕事だと思ってるからかもしんない
自分でプログラミング用のツール組むようになってくるとどの言語も大差なくなってくる気がする
簡素に書けるとかはストレスやミスを減らすのには役立つけど
自分がフレームワーク使ったり作ったりして結局ビジネスロジック記述だけが最終的な仕事だと思ってるからかもしんない
795デフォルトの名無しさん
2017/08/04(金) 10:22:37.37ID:PF1N3/4o Ruby初心者が毎日
# sample.rb
foo 14
bar 15
boo { | val | val > 5 }
bar 18
こんなビジネスロジックを記述するDSLばかり仕事で書かされていても、
Rubyについて習熟する事にはならない。
このファイルsample.rbがconfig.instance_eval File.read sample.rb
されている事を知らないと、全く何やってるか?判らんだろうなぁ。
おまけに、configがどのクラスのインスタンスなのか?判らんと初心者は、
生産活動しているとは言え、それはロボットと同じだ。
Railsアプリなんかは、こんな感じじゃ無いのか?
# sample.rb
foo 14
bar 15
boo { | val | val > 5 }
bar 18
こんなビジネスロジックを記述するDSLばかり仕事で書かされていても、
Rubyについて習熟する事にはならない。
このファイルsample.rbがconfig.instance_eval File.read sample.rb
されている事を知らないと、全く何やってるか?判らんだろうなぁ。
おまけに、configがどのクラスのインスタンスなのか?判らんと初心者は、
生産活動しているとは言え、それはロボットと同じだ。
Railsアプリなんかは、こんな感じじゃ無いのか?
796デフォルトの名無しさん
2017/08/04(金) 10:28:16.49ID:PF1N3/4o SinatraのDSLの例
#sinatra.rb
get '/' do
'how are you?'
end
get '/path/to' do
"this is [/path/to]"
end
get '/erb_template_page' do
erb :erb_template_page
end
こんなん、がWebサイトになるなんて、初心者は納得できるのだろうか?
#sinatra.rb
get '/' do
'how are you?'
end
get '/path/to' do
"this is [/path/to]"
end
get '/erb_template_page' do
erb :erb_template_page
end
こんなん、がWebサイトになるなんて、初心者は納得できるのだろうか?
797デフォルトの名無しさん
2017/08/04(金) 10:36:36.83ID:ABZoxKZM お前だってtcpとかhttpレスポンスヘッダいちいち書かないだろ
大事なのは理解してるか、何かあったとき対応できるか
大事なのは理解してるか、何かあったとき対応できるか
798デフォルトの名無しさん
2017/08/04(金) 11:24:56.64ID:zdzyWEfw プログラミング好きな奴がWebに籠もりたがるのは、仕事でソフトウェア開発すれば気持ちがわかるよ
手の届かないところに自分のコードをリリースするということがどれほど忌々しいことか
手の届かないところに自分のコードをリリースするということがどれほど忌々しいことか
799デフォルトの名無しさん
2017/08/04(金) 14:03:05.98ID:7yKCvYxX 実行環境を制御できないこともね
たとえ仮想でもサーバごと納品できるのは(その点においてだけ)最高
JavaScript書かなくてもよくなればもっといいんだけど、まあ、そこは現実のお金との兼ね合いということで
うまくいっている部分があればあるほど我慢もききますわいな
たとえ仮想でもサーバごと納品できるのは(その点においてだけ)最高
JavaScript書かなくてもよくなればもっといいんだけど、まあ、そこは現実のお金との兼ね合いということで
うまくいっている部分があればあるほど我慢もききますわいな
800デフォルトの名無しさん
2017/08/04(金) 15:15:50.08ID:Mgeezcro これだけ反応があってモゴモゴしてるってことは図星だったってことだな
>少なくともRubyより生産性あるしな
>少なくともRubyより生産性あるしな
801デフォルトの名無しさん
2017/08/04(金) 18:32:45.78ID:szkrtuN4802デフォルトの名無しさん
2017/08/04(金) 19:57:38.99ID:US5e0j3V >>794
> どの言語も大差なくなってくる気がする
あーそれ分かる
意外とねぇ、言語ごとのあれこれってのはどうにでもなる
どうにでもならない部分は逆に言うとどの言語でも同じ
苦しむところはどこでも同じと思う
> どの言語も大差なくなってくる気がする
あーそれ分かる
意外とねぇ、言語ごとのあれこれってのはどうにでもなる
どうにでもならない部分は逆に言うとどの言語でも同じ
苦しむところはどこでも同じと思う
803デフォルトの名無しさん
2017/08/04(金) 21:02:33.10ID:Mgeezcro だとしたら実行速度が速い言語ほど優秀って事になりますね
1.5倍ぐらいなら全然許容範囲だろうけど
50倍〜100倍遅い言語は存在価値ありませんよね
1.5倍ぐらいなら全然許容範囲だろうけど
50倍〜100倍遅い言語は存在価値ありませんよね
804デフォルトの名無しさん
2017/08/04(金) 21:15:48.69ID:szkrtuN4 >>803
はいはい、また君か
はいはい、また君か
805デフォルトの名無しさん
2017/08/04(金) 21:42:15.51ID:Jq4PnWl3 出来ることに大差ないっていう文言を生産性等に大差がないと臆することなく換言する図々しさよ
806デフォルトの名無しさん
2017/08/04(金) 21:47:51.74ID:Mgeezcro >初心者なら明らかにrubyのが生産性高いな
>自分でプログラミング用のツール組むようになってくるとどの言語も大差なくなってくる気がする
>あーそれ分かる
>意外とねぇ、言語ごとのあれこれってのはどうにでもなる
↑これは生産性についての話じゃないのかね?
>自分でプログラミング用のツール組むようになってくるとどの言語も大差なくなってくる気がする
>あーそれ分かる
>意外とねぇ、言語ごとのあれこれってのはどうにでもなる
↑これは生産性についての話じゃないのかね?
807デフォルトの名無しさん
2017/08/04(金) 23:51:53.04ID:US5e0j3V 日付変わる前に見たので一応レスしとく
>>806
ごめん
流れも読んでないし
さらに
切り取って部分的にレスしただけ
生産性とかについて特にコメントしたつもりはない
何に大差が無いかについては
実はなーんも考えてない
>>806
ごめん
流れも読んでないし
さらに
切り取って部分的にレスしただけ
生産性とかについて特にコメントしたつもりはない
何に大差が無いかについては
実はなーんも考えてない
808デフォルトの名無しさん
2017/08/05(土) 00:01:37.19ID:CDgy3mrn >何に大差が無いかについては
>実はなーんも考えてない
そういうことにしないとRubyに良いところが何も無くなるからな
遅い、だけが残る
>実はなーんも考えてない
そういうことにしないとRubyに良いところが何も無くなるからな
遅い、だけが残る
809デフォルトの名無しさん
2017/08/05(土) 06:58:32.21ID:pAL2FsqO 速度はだいたいIOがボトルネック
なのでどの言語でも実行時間同じになってくる
一部のアプリでは速度が大事でアセンブラとかで最適化されてたりもするけど
なのでどの言語でも実行時間同じになってくる
一部のアプリでは速度が大事でアセンブラとかで最適化されてたりもするけど
810デフォルトの名無しさん
2017/08/05(土) 07:00:10.28ID:pAL2FsqO >>805
生産性を上げるツールやマクロ作れない初心者にはそうかもね
生産性を上げるツールやマクロ作れない初心者にはそうかもね
811デフォルトの名無しさん
2017/08/05(土) 08:01:57.22ID:Zex8il51 漏れは、10言語ぐらい知っているけど、DSL を作りやすい、Ruby が圧倒的。
次いで、Groovy
vagrant, chef, SASS, Homebrew とか、ツールを作る際、
真っ先に、Ruby を候補に上げる
型安全性を高めるなら、Kotlin。
Kotlin = Java + Groovy
GC が無い、C/C++ などは、数年やってもバグるから、まともなアプリを作れない。
MISRA-C とか、安全にするには、学習コストが高い
派遣で行けば、分かるけど、数十人来ても、即さよならw
できる人が見つからない
デバイスとか、やる事が低レベルだから、
募集企業は、コンピューターリテラシーが必要って書いてる
コンピューターリテラシーって書いてる所は、要注意。
コンピューターのすべてを知ってる人の意味だから、
何百年勉強しても、分かることは、絶対にあり得ない
「Linux プログラミング・インタフェース」の著者は、
Linuxのman ページを書いてるけど、世界で唯一の、すべてを知る人
次いで、Groovy
vagrant, chef, SASS, Homebrew とか、ツールを作る際、
真っ先に、Ruby を候補に上げる
型安全性を高めるなら、Kotlin。
Kotlin = Java + Groovy
GC が無い、C/C++ などは、数年やってもバグるから、まともなアプリを作れない。
MISRA-C とか、安全にするには、学習コストが高い
派遣で行けば、分かるけど、数十人来ても、即さよならw
できる人が見つからない
デバイスとか、やる事が低レベルだから、
募集企業は、コンピューターリテラシーが必要って書いてる
コンピューターリテラシーって書いてる所は、要注意。
コンピューターのすべてを知ってる人の意味だから、
何百年勉強しても、分かることは、絶対にあり得ない
「Linux プログラミング・インタフェース」の著者は、
Linuxのman ページを書いてるけど、世界で唯一の、すべてを知る人
812デフォルトの名無しさん
2017/08/05(土) 08:10:39.26ID:INBBpNiE LLVMのruby実装も頓挫しちゃってるみたいね
813デフォルトの名無しさん
2017/08/05(土) 13:09:40.79ID:ncTzjPCq バージョンアップのたびに、互換性を心配しなくちゃいかんのが面倒。
Microsoftとかすこしはみならえ。
Microsoftとかすこしはみならえ。
814デフォルトの名無しさん
2017/08/05(土) 13:35:28.94ID:pAL2FsqO >>811
別にツールは対象となる言語で作る必要はないけどね
別にツールは対象となる言語で作る必要はないけどね
815デフォルトの名無しさん
2017/08/05(土) 13:36:41.39ID:CKOXuY3S rubyも長期サポート対象となるバージョンを出せば多少はよくなるかな
と思ったけどエンタープライズエディションってのがあったっけ
と思ったけどエンタープライズエディションってのがあったっけ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 ★2 [Hitzeschleier★]
- 小島瑠璃子さん、代表取締役を務める会社を破産申請 [牛丼★]
- 「残クレ」でマイホーム、国が銀行向け保険 新型住宅ローン普及促す -日経 ★3 [少考さん★]
- 【サッカー】日本代表、FIFAランキング“4位”の強豪イングランドとの対戦が正式決定! 来年3月に聖地ウェンブリーで激突へ [久太郎★]
- もうVIPから移住すふわ
- 【悲報】ジャップ、日中戦争に賛成が5割弱...軍歌の音が聞こえる... [856698234]
- (´・ω・`)クリスマスが今年もやってくる~
- 小5ぐらいからずっと下痢なんだけど、これなに?
- 千晴さん千晴さん
- 鍋には肉、白菜、豆腐
