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

レス数が900を超えています。1000を超えると表示できなくなるよ。
2017/08/25(金) 15:59:11.22ID:HsL9LVKJ
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で

前スレ
Ruby 初心者スレッド Part 60
https://mevius.2ch.net/test/read.cgi/tech/1493398918/

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

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

逆引きRuby
http://www.namaraii.com/rubytips/
806デフォルトの名無しさん
垢版 |
2017/11/10(金) 22:05:04.82ID:tus45AjF
self.class.new
2017/11/10(金) 22:51:06.22ID:zSzvlQjG
class MyArray < Array
end
p (MyArray[1,2,3] + MyArray[1,2,3]).class
#=>Array

上のコードを見てもらえば分るけど、
Arrayを継承したMyArrayのインスタンス同士の演算を行うと、MyArrayでなくArrayのインスタンスが出力される
全てのメソッドの出力をMyArrayのインスタンスになるようにしたいんだけど、
メソッドを全部書き換える以外に良い方法って何かない?
2017/11/10(金) 23:47:08.43ID:fJV6zsPP
>>807
ソースコードを見てみるとArrayの派生クラスであってもArrayとして作成されるようになってる
https://github.com/ruby/ruby/blob/trunk/array.c#L3643

度々似たようなやり取りが起こるけど、この件についてはRubyの仕様として、
改善される兆しが見えない (開発者の変更する必要性が薄そう)
正攻法となるとメーリングリストのruby-devに必要性を訴えて改善するくらいになるんじゃないかなあ
2017/11/11(土) 00:16:49.19ID:JLG7hn9J
>>807
ビルトインクラスは継承すんな、てのがあるらしい
810デフォルトの名無しさん
垢版 |
2017/11/11(土) 01:33:08.56ID:XLuIumW0
確かに、出力するオブジェクトのクラスをメソッドの書き換えしないで派生先や派生元に切り替えられたら便利だよな
2017/11/11(土) 04:45:48.84ID:TdyG/ulQ
しかしそもそもArrayとか継承したいクラスだよな
オープンクラスで直接Array自体の挙動を変えてしまうと
何か問題が起こったときに怖い
812デフォルトの名無しさん
垢版 |
2017/11/11(土) 09:50:02.65ID:5mgMmggv
方法を聞いているんだから感想を言っててどうするよ
一つの方法としてMarshal.dumpとMarshal.load使うってのはどうか?
メソッドで派生元クラスのインスタンスがでてきたら、
そのインスタンスをMarshal.dumpしてクラス部分だけ書き換えてMarshal.loadしてクラスを変えるわけ
2017/11/11(土) 11:50:45.38ID:AwGKm55U
どの言語でも、Array, String などの基本クラスは継承できないし、継承してはならない

prototype.js というライブラリは、基本クラスの動作を上書きして、変更したため、
モンキーパッチと言って、非常に嫌われた

ただし、Rails のような権威が、基本クラスにメソッドを追加するのは、認められている。
これらは、開発保守が継続して行われるため

つまり、個人レベルではダメ
2017/11/11(土) 11:54:48.07ID:7DvP3YTX
どうでもいいよ
どうせRubyなんか書捨てスクリプトにしか使わないし
2017/11/11(土) 12:07:00.75ID:TdyG/ulQ
配列が使いたいときは代替eachが使いたいから
EnumerableかEnumeratorを継承するとか?
2017/11/11(土) 12:08:40.11ID:v8o/qZh1
+ が返すクラスをどうすべきかってだけで、他のメソッドはできるだけ継承したクラスを返すようになってるよ
2017/11/11(土) 12:34:01.09ID:AwGKm55U
基本クラスは、継承するな!

継承よりも、委譲
2017/11/11(土) 14:10:03.21ID:BdEcqbw0
処理系に依ってEnumerable#mapとArray#mapが別実装だったり同じだったりして気持ち悪いから
Array継承するくらいならEnumerableを継承するわ
2017/11/11(土) 14:21:19.83ID:JLG7hn9J
>>818
> 別実装だったり同じだったりして気持ち悪い
オブジェクト指向の考え方を真っ向否定するんですか…w
2017/11/11(土) 15:07:21.47ID:5mgMmggv
また荒らしが進行妨害してるのか
方法聞いてるレスだっつってんだろ

毎度毎度、スレの質問無視して自演で持論を語って荒らすのやめろ
ここは初心者用の質問スレだ
821デフォルトの名無しさん
垢版 |
2017/11/11(土) 16:38:25.00ID:XLuIumW0
確かに、聞いてたのは方法だったな
明らかに見当違いなレス返してた荒らしもいたし
ごめん

質問への回答だけどメソッド書き換えせずにという事だから、
const_get、const_setを使ってその場だけクラスを入れ替えるというのは?
今、適当に思いついたので検証してないけど
822デフォルトの名無しさん
垢版 |
2017/11/11(土) 21:37:18.75ID:05iXsNcy
このスレって雑談OKなのに何言ってるんだか
2017/11/11(土) 22:58:55.05ID:+LVMEIXu
では雑談をしましょう
型Aを渡したときは型AAで、型Bを渡したときは型BBで
こういったことが簡単にしたければ、静的型の機能を使うのが一番手軽で自然
なぜなら構文レベルでサポートされてるから
(C++で言うところのテンプレートとか)
なのでRubyに静的型を導入するのが手っ取り早い

結果的にはうまくいかなかったんですが、TypeAnnotationをつけて
頑張ろうっていうのを余暇でやっているらしく
Ruby 3で導入しようとしている型システムは型推論だけでどうにかしようという
アプローチとは別のアプローチ
2010年代のプログラミング言語は型ありなのが当たり前になってきているので
Rubyはだいぶ置いてけぼり感(笑)があります
ですので、コミュニティ内での危機感も高いと思います
2017/11/11(土) 23:03:47.07ID:JLG7hn9J
それは雑談ではなくて荒らし
825デフォルトの名無しさん
垢版 |
2017/11/12(日) 00:27:53.41ID:WkrbFi3G
雑談にみせかけた荒らしをずっとやってる奴が何か文句言ってるけど、
初心者の質問スレで質問無視してスレ妨害し続けてたらみんなぶち切れるわな
もう半年以上になるんやで?
2017/11/12(日) 00:40:27.97ID:Ob05ibl6
質問なんてめったにないでしょ
827デフォルトの名無しさん
垢版 |
2017/11/12(日) 01:01:09.44ID:WkrbFi3G
そうやって質問のレスを無視して荒らすから、
みんなぶち切れてるんやで?

いい加減にしとけよ
2017/11/12(日) 01:03:23.41ID:Ob05ibl6
俺は荒らしてないよ。そうやって絡んでくる君のほうが荒らしじゃないの
2017/11/12(日) 01:08:30.49ID:K4QprXz0
ID:Ob05ibl6
ほぼ毎日、スレに質問ついてるのに何処見てるの?
もしかしておまえが例の荒らし?
テンプレ貼っておくね

>荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
2017/11/12(日) 01:14:32.30ID:Ob05ibl6
だから俺じゃないってw
俺普通に質問に答えてやったりしてるし
831デフォルトの名無しさん
垢版 |
2017/11/12(日) 01:16:43.11ID:WkrbFi3G
>質問なんてめったにないでしょ
ってどのスレの話?
2017/11/12(日) 01:19:01.73ID:Ob05ibl6
>>831
もちろんこのスレのことだよ
普段大して話題なんてないんだから、そんなに目くじら立て無くてもいいのになーって思うけどねえ
2017/11/12(日) 01:28:26.85ID:pqrFAwxv
>>832
このスレの初心者?
ここの荒らしはアンチ粘着型だからめくじら立てなくてもってのは通じないよ
ただの雑談だったらいいんだけどねー
834デフォルトの名無しさん
垢版 |
2017/11/12(日) 12:29:55.19ID:qqn9BEpx
質問者がいるんだから雑談やめろとかアホだろ
質問に対する回答以外全部荒らしってどういう事だよ
それに回答者がアンカつければいいだけじゃん
謝辞どころか〆宣言すらない質問者がどれだけいることやら
835デフォルトの名無しさん
垢版 |
2017/11/12(日) 12:35:34.52ID:WkrbFi3G
ずっとこのスレを荒らしてる奴がいるんだが

頭大丈夫?
2017/11/12(日) 13:50:01.60ID:9KdAqRKN
静的型のほうがさ宇ぐれてる云々言う粘着してる奴は確かにいるけど
それ以外のささいな会話も荒らし認定ってどういうことよ
2017/11/12(日) 15:17:44.54ID:SkwCxk0Z
雑談に似せた荒らしを行うから荒らし認定されるんじゃない?
荒らし行為やスレの妨害じゃないなら誰も文句なんて言わないよ

そもそも、この期に及んで質問なんてめったに無いとかレスつけたり、
何ヶ月も荒らされてる事を無かった事にする奴って荒らし本人じゃないのか?
2017/11/12(日) 15:34:09.85ID:GrP4UM5B
>>837
今日の書き込みだけでもおかしなコメがいくつもあるから
やはり荒らしが自演してるんだろうね
こうやって工作して荒らせる環境を作るのが目的だと思う
2017/11/13(月) 11:16:26.32ID:9i4StzNN
rubyのメソッドチェーンがよくわからない
あとフックかけられるポイントも

メソッド呼び終わった直後にフック掛ける方法ってある?
840デフォルトの名無しさん
垢版 |
2017/11/13(月) 20:26:44.92ID:NOdl0XYl
>>839
トレースポイントというものがある
https://docs.ruby-lang.org/ja/latest/class/TracePoint.html

TracePoint.trace(:return, :c_return) do |tp|
  p tp.return_value
end

"A".downcase.upcase.upcase!
# => "a" => "A" => nil
2017/11/13(月) 23:44:35.19ID:9i4StzNN
おおー、これは便利だ
ありがとう
842デフォルトの名無しさん
垢版 |
2017/11/13(月) 23:58:39.44ID:NOdl0XYl
追記

全てのあらゆるメソッドに介入するため、
if tp.path == __FILE__ したり、
if tp.method_id == :method_name したりして範囲を絞ると見やすくなる

他には自家製クラス・モジュールであればprepend使って面白おかしくすることも可能
2017/11/14(火) 19:27:47.47ID:hugtgo3r
コードゴルフで1000までの素数を標準出力に出力ってのをやってるけど
60文字が限界だ。誰か画期的なの教えてくれ。
844デフォルトの名無しさん
垢版 |
2017/11/14(火) 20:35:46.66ID:43++cTdw
過去スレには結構そういうのが載ってると思うけど参考にしてみたら?
今現在はあんまり流行っていない、
というかコードをスレに書かないと誰も乗ってこないと思う

あと、変わったお題ならプチ盛り上ると思う
2017/11/14(火) 20:39:19.62ID:yEmE0LhS
50B
a=[*2..1e3]
p a.each{|e|a.reject!{|v|v!=e&&v%e<1}}
2017/11/14(火) 20:45:40.97ID:yEmE0LhS
47B 切りがないのでこれで終わりにする
p (a=*2..1e3).each{|e|a.reject!{|v|v>e&&v%e<1}}
2017/11/14(火) 20:54:13.19ID:yEmE0LhS
45B これでほんとにラスト
p (a=*2..1e3).each{|e|a-=(2..31).map{|v|v*e}}
2017/11/14(火) 20:54:58.38ID:hugtgo3r
おお流石さらっと回答が。ありがとうございます。俺のぼろ臭いエラトステネスもどきとは一味違いますね。
2017/11/14(火) 21:04:49.82ID:yEmE0LhS
ついでだがPrimeクラスを使ってもいいなら33B
#!ruby -rprime
p *Prime.each(1e3)
2017/11/15(水) 21:17:20.80ID:V8OOXL+L
「Rubyのpublic/private/protectedはaccess controlとしては壊れている」と言われたが、その答えは「確かに。access controlとして作ってないからな」というものであった。
2017/11/15(水) 21:18:26.53ID:V8OOXL+L
publicとprivateも壊れてるんですか?
2017/11/15(水) 21:18:44.62ID:V8OOXL+L
「privateはsendとかでアクセスできるし、サブクラスからも見える」だそうです。確かにそうだ。publicは壊れていないと思いますけど、他2つが(access control として)壊れていたら、そもそも指定できる必要はないとは言えそう。
2017/11/15(水) 21:55:17.62ID:PrGhGlG4
なんだこの自演
2017/11/15(水) 22:31:56.17ID:V8OOXL+L
御大のtwitterの会話を貼り付けただけ
2017/11/15(水) 22:32:21.95ID:V8OOXL+L
すぐ自演とか頭悪ポw
2017/11/16(木) 00:12:57.76ID:EjNhewu+
自演と言うよりは
引用の仕方を知らないんだろうね
2017/11/16(木) 06:47:18.22ID:0Chmg9DF
この反応はやはり荒らしか
858デフォルトの名無しさん
垢版 |
2017/11/16(木) 14:52:27.31ID:L3BAWltd
自演失敗とな?
よし、晒し上げるか
859デフォルトの名無しさん
垢版 |
2017/11/17(金) 21:40:30.22ID:+zjghEIw
sliceで負数を指定したときの挙動の解釈が合ってるか教えてくれ
例えばnに12345って文字列があったとして
p n.slice(0,1)
p n.slice(-1,0)
ってやると1と5が出力される
つまり、絶対値が正数の負数が文字列の後ろから順々に対応してるって解釈で合ってる?
860デフォルトの名無しさん
垢版 |
2017/11/17(金) 21:56:30.56ID:IylgmQJ2
>>859
あってる
StringだけじゃなくてArrayでも同じ
ちなみに二つの整数値を与えるのではなく範囲で終わりを示す方法もよく使われる
p "12345".slice(1..-1) # => "2345" # 二つのピリオド
p "12345".slice(1...-1) # => "234" # 三つのピリオド
p "12345".slice(1..-2) # => "234"
p "12345".slice(1, -1) # => nil # 二つの引数

sliceだけじゃなくて[]でも同様に使う事ができる
2017/11/17(金) 21:57:12.32ID:5DUWZGJy
(-6..6).each{|i|p n[i]}と試せばすぐにわかることをなぜ人に聞くのか
2017/11/17(金) 21:58:54.04ID:5DUWZGJy
というかp n.slice(-1,0)は""じゃないのか
863デフォルトの名無しさん
垢版 |
2017/11/17(金) 22:22:53.66ID:+zjghEIw
>>860
サンクス
ついでに聞くけど
二つピリオドの方は範囲xが『1番目≦x≦-1番目』で
三つピリオドの方は範囲xが『1番目≦x<-1番目』って事でいいの?
2017/11/17(金) 22:48:06.98ID:5DUWZGJy
マニュアル呼んだほうが早い

https://docs.ruby-lang.org/ja/latest/method/Array/i/=5b=5d.html#permalink
https://docs.ruby-lang.org/ja/latest/class/Range.html
865デフォルトの名無しさん
垢版 |
2017/11/17(金) 22:51:39.58ID:IylgmQJ2
>>863
その認識でいい

それと>>862の指摘は正しい
俺様うっかりしてた
2017/11/17(金) 23:17:48.28ID:g+LRYPuD
イミュータブルの話していい?
記憶違いかもしれないけど、なんか将来のRubyでStringがイミュータブルになるって話だかを小耳にしたんだけど、どういうこと?
今のStringって書き換える操作に見えても実は別の生成したStringへ参照を換えているだけだで、
イミュータブルだと思ってたんだけど違うの?
2017/11/17(金) 23:27:32.19ID:2lBbqhr3
>>866
<<したらインスタンスの中身が書き換わるよ
まあRailsがフォークしてMRIは事実上終了だろうから心配いらない
2017/11/17(金) 23:33:09.94ID:urhgHz9b
>>867
ソースプリーズ
2017/11/17(金) 23:44:19.35ID:fWRDFZO8
現実的に考えて、今のRuby界にPython3ショック並の非互換を乗り越える体力はない
そもそも3がリリースされる日が本当に来るのかは怪しいけど、もし出てもRails系には完全スルーじゃないかな
静的型もメタプログラミング全開のRailsに役立つようなものにはならないだろうし
870デフォルトの名無しさん
垢版 |
2017/11/17(金) 23:56:41.31ID:IylgmQJ2
>>866
今はリテラル文字列のオブジェクトが別だけど
ruby3になったらおなじオブジェクトになるって事
今のrubyでもコマンドラインオプションやソースコードのマジックコメントで挙動を確認できる

$ ruby24 -e '5.times{ p "abcdefg".object_id }' 17208605440
17208605280
17208605200
17208605120
17208605020

$ ruby24 --enable frozen-string-literal -e '5.times{ p "abcdefg".object_id }'
17208605640
17208605640
17208605640
17208605640
17208605640

rubyの実装レベルの話だと内部で共有文字列オブジェクトがcopy on writeされるようになってるだけ
ruby3になると共有文字列オブジェクトが直接表に出てくるってことになるんだろうね
2017/11/18(土) 00:42:51.61ID:llwTwelI
一番の違いは文字がイミュータブルになるってことだろ
だからcopy on writeする必要もない
writeできないんだからcopyも不要
2017/11/18(土) 00:49:48.52ID:sDELvJVN
>>869
また静的型かよ
それにRailsのコミッタがどんだけRubyコミッタとしても掛け持ちしているのを知らんのか
2017/11/18(土) 00:50:21.77ID:18l+ABsp
>>872
いつもの粘着君だ
ほっとけ
2017/11/18(土) 00:55:46.00ID:pAjRC1cg
ruby3にショックを起こしそうな変更が大してなさそうな所がショックなのではないだろうか
文字列といえば、SHARABLE_MIDDLE_SUBSTRINGはruby3で標準になるのか誰か知らんか
2017/11/18(土) 01:01:26.66ID:sDELvJVN
>>874
今はArrayだけだもんね
ぜひとも標準にしてもらいたいけど
俺を含めて第三者のC extensionに不安があるからなあ
2017/11/18(土) 02:23:57.54ID:v7CgBLN2
>C extension
詳細プリーズ
2017/11/18(土) 03:03:45.56ID:pAjRC1cg
文字列のデータがヌル終端文字列とは限らないので、char*取る時はStringValueCStr()使うとか
878デフォルトの名無しさん
垢版 |
2017/11/18(土) 04:44:28.98ID:LQXdQwI7
たのしいruby読みとおしたけどあんまたのしくない
2017/11/18(土) 06:34:47.32ID:O/cG1rmo
プログラミングが楽しいんであって
本で勉強するのが楽しいわけじゃないからな
2017/11/18(土) 16:31:16.15ID:6foiYhRZ
関数型言語 Elixir からの影響

文字列が、immutable なら、安全で効率的
2017/11/18(土) 21:45:21.11ID:W95R0KgI
>>866
Rubyで文字列をfreezeしまくるのが流行ってて
なんでかって、最適化のため
> http://d.hatena.ne.jp/ku-ma-me/20151004/p1
> 2 行目は 1 行目の 2 倍くらい速いです。
だもんで、freeze付けまくるっていう手動の最適化が蔓延していて
(二倍も速くなるならせざるを得ない)
なにかCとかアセンブラでシコシコ最適化していた90年代の香りがする
これもRubyが意味もなく遅すぎるのが原因で
主要言語と比べて30〜50倍ぐらい遅いので、3.0GHzの最新CPUで走らせても
実質60〜100MHzの激遅化石CPUで走らせていることになるので
まぁ90年代といわれれば、ちょうどそのあたりかもしれない
> https://qiita.com/sue738/items/6c312672cecd9e0400a2
あの頃はちょっとの速度差がクリティカルで、何か懐かしいね

Rubyはコンピュータに出来ることはコンピュータにやらせる主義なので
プログラマに手動の最適化を強いるし、型チェックもプログラマにやらせる
何か矛盾したことを言っているように思えるが
言語開発者の視点に立って、全力で手抜きして言語処理系を作ることを考えると
別に間違ったことは言ってない
幽遊白書風に言うと、仙水の言う「俺達七人」に君らは入ってないってことだな
2017/11/18(土) 21:46:45.02ID:18l+ABsp
また粘着君か
2017/11/18(土) 22:36:14.71ID:fA1Yzd5Y
早くしたいなら言語変えろよ
JavaでもC#でもGoでもさ
884デフォルトの名無しさん
垢版 |
2017/11/18(土) 23:34:36.39ID:kadopebp
腕振り回すのが早いからって、野球選手にはなれないんだけどね。
2017/11/18(土) 23:41:43.75ID:W95R0KgI
速度が必要なら他の言語を使え、と言いつつも
巷ではfreeze祭り開催中
(事実それが理由で3.0で検討されてるわけで)
やはりちょっとでも早くしたいというね
遅いといっても限度があるんだろうな
1.2倍とか1.5倍とかなら我慢できるが
30〜50倍は別次元というか、もはや別物
折角3.0GHzの最新CPUを使ってるのに
100MHz以下になるとはねトホホ

プログラムは遅くて困ることは有っても速くて困ることはないわけだが
遅くなった原因が、今となっては何のメリットもない動的型を採用したことと
コンパイラの最適化の手抜き、だからな
ちっとも利用者視点じゃなく、単に言語を作る側の手間の都合なわけだが
教祖様よろしく巧みに隠して言いくるめてきたが、もうウソがばれて限界ってところかな
2017/11/18(土) 23:56:34.49ID:W95R0KgI
>腕振り回すのが早いからって、野球選手にはなれないんだけどね。

さすがに意味不明すぎて吹いた
他の主要言語は、腕振り回しているだけだとも?
随分だな
2017/11/19(日) 00:08:39.46ID:ViJ+9/xP
ちょっとどころか3倍速くしたいのがruby3だ
2017/11/19(日) 00:09:28.92ID:ico5wL+/
>>885
じゃぁアセンブラ使っておけば?
2017/11/19(日) 00:30:02.83ID:udvNJGPu
今やC/C++、Java、C#などの主要言語はコンパイラの最適化が鬼だから
常識的には人間がアセンブラで書くより速いわけ
だから書くなら
じゃぁC/C++、Java、C#使っておけば?
だし、言われるまでもなく世の中そうなってて
んーだから何?って感じなんだが

なんというか・・・
速度が速い代わりに使い勝手が悪い、だの
使い勝手が良い代わりに速度が遅い、だの
そういう厨が好みそうなマンガの設定みたいなトレードオフは発生してない
非常だわなぁ

では全てにおいてメリットが無い方式なら
いったい誰が作って、誰が支持するのかというと
これがなかなか北朝鮮のような国があったりもするので
存在していることだけを理由に正しいとは言えない
2017/11/19(日) 00:45:07.64ID:ico5wL+/
>>889
アホか?

C++がマジで使いやすくて速いとか思ってるなら、一回脳みそ洗濯機にかけた方がいいぞ?
C++は速さのために色々と犠牲にした言語だということを理解できないならエンジニアとして
致命的欠陥があると言わざるをえない
2017/11/19(日) 00:50:56.77ID:ANnOsUYp
Javaや.NETは起動時にコンパイルしてるから
実行速度ではなく起動速度が遅い

そしてRailsも起動が遅い。こっちは理由が少し
異なっていて動的型だからコンパイルが不要なんだが
読み込むファイルが多くなりすぎて起動速度が遅い
2017/11/19(日) 02:43:18.14ID:tAVjO9Xo
いくら早くたってC++は複雑で読み書きしにくい
Rubyは実行速度より開発速度に振ってるから
2017/11/19(日) 04:19:06.14ID:/3rRHq6p
>>892
というほどでもないんだよなあ。
とくにC#あたりと比べると。
894デフォルトの名無しさん
垢版 |
2017/11/19(日) 08:33:08.93ID:RgqRbH7C
>>890
C++11以降はRubyよりはるかに使いやすい。
2017/11/19(日) 08:55:34.34ID:kYPwLJsc
スタートアップにはRailsが好まれるというのも眉唾だよな
ソースの量なんて最初のうちはすぐに増えるもんだし、事業が軌道に乗るまでは大きな変更も多いはず
とりあえず今手っ取り早く動くものを作りたいからという理由でRailsを選ぶような奴がテストなんか書いてるわけないし、
テストがないと変更が困難になるという動的型の性質がネックになるのは意外とすぐなんじゃないかという気がする
2017/11/19(日) 09:42:25.92ID:IcfiaN/i
C#は「とても」書きやすいかといわれるとふんぬうううううって感じだ
書きやすいようにするモダンな構造はたくさん含まれてて文法未来も明るいが、全体としてはRubyのほうがまだいいと思う
今のところRubyよりいいなと思ってるのはKotlin+IntelliJ
Javaで書かなければいけない部分がもっと減れば書きやす四天王に入ると思うのでどんどんKotlin部分増やして欲しい
2017/11/19(日) 10:51:15.62ID:/3rRHq6p
C#は、IDEのサポートが前提だからな。
2017/11/19(日) 11:10:12.09ID:tAVjO9Xo
>書きやす四天王
面白そうだからみんなで書いてみれば?

オレの場合書きやすいのはRuby一強で
二位以下はPythonとかLLが団子状態で並ぶけど
2017/11/19(日) 11:42:50.02ID:udvNJGPu
いや、洗脳されてる(というより確信犯←本来の意味でも誤用の意味でも)人の意見は
誰も興味ないというか常に無視されるというか
社民党が何か言っててもみんな聞き流してるわけで
大人な人達の言うところの民主主義というか
そもそも数に入ってないから無視してよいという暗黙の鬼畜現象
2017/11/19(日) 12:15:25.95ID:ico5wL+/
>>899
自分の意見のことですね
よくわかります
901デフォルトの名無しさん
垢版 |
2017/11/19(日) 12:24:31.26ID:lEYmgXHF
同じ事させるなら、「実行速度」がRubyより早い言語が有るのは当たり前。
Rubyは例えばCで書いた巨大ライブラリ・ツールとも言える訳だから。
2017/11/19(日) 13:37:32.97ID:udvNJGPu
↑唐突になんだ?
2017/11/19(日) 14:12:32.54ID:ojBPgPKj
話を変えるけど、
mswin32版のRuby2.4インスコして、今は懐かしきRDEで何か出来ないかハックしてんだけど普通に動くなコレ
動かない部分は、debug2から経由してrde.dllかrde.soを呼ぶデバッグ機能の辺りで、
バイナリについてきたこれらのファイルをロードできないのが原因だけど、
RDE1.1.1バイナリや1.0.1ソース拾えたんで何とかなりそう
904デフォルトの名無しさん
垢版 |
2017/11/19(日) 14:26:48.86ID:GIoVTHnu
RDEはすごく使いやすかったな
1.9や2.x以降も対応してくれるなら今でも使いたい
文字列コード関係とか問題ないの?
2017/11/19(日) 15:34:37.97ID:ojBPgPKj
>>904
特に問題ない
というかRubyの多言語化はCSI方式と呼ばれるもので、
ruby内部では種々の文字コードを認識せずバイナリとして扱い、指定した文字コード用のメソッドでバイナリに処理してるだけだから
マジックコメントでUTF-8指定して(2.x以降はデフォルトがUTF-8だから指定しなくても良い)、RDEもUTF8N指定しとけばOK

後、RDEについてるrde_export.rbみてたらちょっとした書き換えで2.4用の入力補完データを自動で出せるようになってる
RDEハック中だから、他にも聞きたいことあったら言ってくれ
906デフォルトの名無しさん
垢版 |
2017/11/19(日) 19:59:54.94ID:ojBPgPKj
問題は2.4用のrde.dllが無いことだからmswin32ruby1.8用のrde.dllをバイナリ改造して
msvcrt-ruby18.dllのロードをmsvcr100-ruby240.dllに書き換えて、
メソッドあわせれば楽に出来るんじゃないかと思いついたんだけど躓いた

msvcr100-ruby240.dllをPEviewで確認したらrb_str_new2が無いじゃないか
こういった内部に詳しい人、誰かいない?
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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