Ruby 初心者スレッド Part 60at TECH
Ruby 初心者スレッド Part 60 - 暇つぶし2ch2:デフォルトの名無しさん
17/04/29 02:04:15.15 urVXnFrH.net
埋めちゃったんで立てた

3:デフォルトの名無しさん
17/04/29 02:11:02.44 BB1qYBqv.net
>>1
Rubyもっと流行って欲しいよー

4:デフォルトの名無しさん
17/04/29 09:19:50.66 +NUMWd7U.net
>>1

5:デフォルトの名無しさん
17/04/29 09:29:52.67 /b3MraXM.net
>>前1000
どうしてもインデックスの計算やメンバ検索などで
間にRubyのコードが入ってしまうので結局遅くなるよ

6:デフォルトの名無しさん
17/04/29 10:05:49.82 LxFH88XB.net
まつもとがmrubyに力いててるからなぁ
Ruby3頑張ってほしいわ

7:デフォルトの名無しさん
17/04/29 10:08:09.41 gzSp69Zc.net
Matzは最適化には興味ないでしょ
大半のRubyプログラマも然り

8:デフォルトの名無しさん
17/04/29 11:21:01.87 AcfKxaUU.net
コンパイラはできんのか

9:デフォルトの名無しさん
17/04/29 12:46:44.81 eMb5q7il.net
10レスくらいあれば落ちない?

10:デフォルトの名無しさん
17/04/29 13:09:14.76 AqsgnRmH.net
Mastodonの急な流行によりRubyに脚光が!
浴びてないな
浴びてないね
Railsも微妙

11:デフォルトの名無しさん
17/04/29 16:27:48.07 cjUk9ycm.net
>>8
mruby-cli?
mrubyからDLLを叩けるようになればWin32ネイティブで動くアプリを作れそうとは妄想している
mrubyは2.x.xと比べてもかなり遅いのが悩みどころ。2.x.xのつもりで書いていると速度が悲しいことになる

12:デフォルトの名無しさん
17/04/30 04:15:05.53 C4fcJeOa.net
JRubyのドキュメント少ないなあ
JRuby+JavaFXでGUIアプリ作ってみたい

13:デフォルトの名無しさん
17/04/30 07:04:15.22 HZc5pT/v.net
JavaFXの方もほとんど誰も使ってないぞ
パイオニアといえば聞こえはいいが後を追う人も誰もいなさそう

14:デフォルトの名無しさん
17/04/30 10:18:17.54 V7fCcZ2D.net
JRubyFX便利

15:デフォルトの名無しさん
17/04/30 10:59:05.21 HKpgHA6l.net
JRubyってCRubyより実行が速いって言われるけど自分が使う範囲だと遅いんだよなぁ
起動とかCRubyだと10msもかからないプログラムの終了に数秒かかるしあほらしくなるくらい遅いし
肝心の実行速度自体も速くない。1.8.x比ならともかく2.x.x比だと優位性は感じられなかった

16:デフォルトの名無しさん
17/04/30 11:54:58.94 ZnazSADk.net
rubyで書かれたデスクトップアプリは何があるんだろう
個人的に知らないので、有名所があれば教えて欲しい

17:デフォルトの名無しさん
17/04/30 12:16:26.06 VPr4LyhY.net
有名なものはない

18:デフォルトの名無しさん
17/04/30 12:19:05.53 raNlWE+W.net
遅すぎてCに戻る。

19:デフォルトの名無しさん
17/04/30 12:23:47.65 HKpgHA6l.net
昔プライベートなGUIツールをwxRuby+exerbで作ったことがあるけど大分苦労させられた

20:デフォルトの名無しさん
17/04/30 12:53:10.79 eW5YwfF4.net
RubyでGUIは遅すぎて話にならなかった記憶しかない。

21:デフォルトの名無しさん
17/04/30 12:56:04.44 VPr4LyhY.net
wxはPythonの方が造りやすい

22:デフォルトの名無しさん
17/04/30 12:56:45.45 Yjf3oY9z.net
ほとんどc/c++だから遅くはならんでしょ

23:デフォルトの名無しさん
17/04/30 13:05:44.18 eW5YwfF4.net
いんや。
起動がdll読みまくりだからC#の起動時よりさらに遅いのよ。
起動が終わればまあ、気にするほどじゃ無いんだが。。。
C#の起動でさえ焦れったいから、我慢の限界超える遅さ。

24:デフォルトの名無しさん
17/04/30 13:27:18.11 HKpgHA6l.net
wxRuby+exerbで作った奴は一瞬で起動するよ
Javaや.NETの方が遙かに待たされる
Ruby2.x.xでwxが使えればなぁ・・・

25:デフォルトの名無しさん
17/04/30 13:56:27.67 GKlomiNq.net
で、結局今はGUIは何で作るの?

26:デフォルトの名無しさん
17/04/30 14:02:35.33 HKpgHA6l.net
HTMLですむ&RScriptをインストール出来るならActiveScriptRubyを使ってHTAと言う手もあるな
GUIを英語とにらめっこせずに標準的に書けるから結構楽

27:デフォルトの名無しさん
17/04/30 14:58:18.35 VPr4LyhY.net
>>25
少なくともRubyは使わない

28:デフォルトの名無しさん
17/04/30 15:29:46.79 HKpgHA6l.net
Rubyは遅いと言われるけど実際の処理だとそうでもないんだよなぁ
大容量のバイナリデータを読み込んでゴリゴリ演算するような用途だと
PythonやLuaにしたところでインタプリタ稼働率の上昇やI/O性能で
コーディング量が増える割に速くならない
Rubyでも標準のCライブラリを積極的に使うような書き方をすると以外と
大差ない速度が出ちゃったりするし

29:デフォルトの名無しさん
17/04/30 15:47:34.18 VPr4LyhY.net
CPUの進化に助けてもらってる面はある

30:デフォルトの名無しさん
17/04/30 16:25:39.24 HKpgHA6l.net
CPUはあまり関係なくね?自分は同じマシンで比べているよ
ベンチマークによってはRubyはPythonやLua(JITな奴)の1/数やそれ以下の速度しか出なかったりするけど
自分が試した限りそんなことはないな。圧倒的な速度で処理できるのかと期待すると肩すかしになる
JRubyやIronRubyも同じで、速くはならないどころか自分が試した限りでは遅くなったw
起動が遅くて実行も遅いのでは出番なし

31:デフォルトの名無しさん
17/04/30 17:19:13.39 Yjf3oY9z.net
今のJRubyって滅茶苦茶速いはず

32:デフォルトの名無しさん
17/04/30 18:11:13.89 GKlomiNq.net
エレクトロンの本ポチってみた
これでGUI作ってみるわ・・・

33:デフォルトの名無しさん
17/04/30 19:03:42.97 HKpgHA6l.net
>>31
ホントに?自分が試したのは1年ちょっと前くらいだからそんなに大昔じゃないぞ
当時すでにJRubyの速度はCRubyに対して明確に速いのが常識的な風潮だったんで
試してみたら全然そんなことなかった
今作っているのがCRuby 2.1.xで数十秒から数分かかる代物なんでこれが1/数で終わると嬉しいなぁ

34:デフォルトの名無しさん
17/04/30 21:18:20.36 V7fCcZ2D.net
当たり前のことだけど何をやらせるかにも依るでしょ

35:デフォルトの名無しさん
17/04/30 23:56:49.84 HZc5pT/v.net
>>33はきっとライブラリの実装がボトルネックになってるんだろうな

36:デフォルトの名無しさん
17/05/01 00:37:35.10 U8II69aQ.net
簡易的な計測なので参考程度だけど計ってみた
処理内容
 25MB程度のWaveファイル読みながらフィードバックタイプのエフェクトを掛けてWaveファイルに吐き出す
 読み出しはダブルバッファリング。書き出しは直書き
計測方法
 数回計ってそれっぽい時数を採用
jruby 9.1.8.0 (2.3.1) 2017-03-06 90fc7ab Java HotSpot(TM) Client VM 25.25-b02 on 1.8.0_25-b18 +jit [mswin32-x86]
 65sec程度 メモリの使用は440MB程度
ruby 2.1.2p95 (2014-05-08 revision 45877) [i386-mswin32_100]
 75sec程度 メモリの使用は200MB程度
ruby 2.4.0p0 (2016-12-24 revision 57164) [i386-mswin32_100]
 90sec程度 メモリの使用は130MB程度
インタプリタの起動時間は含まないからJRubyはこれに2~3秒加算される
jruby 1.7.12だと100秒以上かかっていたからかなり速くなっているけど、CRubyと
比べて劇的に速いってほどじゃないな。速度差はGCのさじ加減のような気も・・・
あと2.4を使ったら速くなるかと思ったら遅くなったw

37:デフォルトの名無しさん
17/05/01 01:09:37.50 U8II69aQ.net
ruby 2.4.0p0 (2016-12-24 revision 57164) [x64-mswin64_100]
 70sec程度 メモリの使用は230MB程度
やっぱりCGのさじ加減?

38:デフォルトの名無しさん
17/05/01 01:13:18.27 P+4F2YiV.net
>>36
それIOがネックになってないか?
CPU使用率を開示せよ

39:38
17/05/01 01:16:50.69 P+4F2YiV.net
すまん、正確には「IOのためのAPI呼び出しのコスト」だな
CPU使用率が仮に100%でもRubyコードそのものの実行時間を測ってるのかどうかは疑わしいよ

40:デフォルトの名無しさん
17/05/01 02:30:50.38 fBLf4yNS.net
メモリ節約と速度は反比例するのは常識だが。。。

41:デフォルトの名無しさん
17/05/01 03:01:26.20 U8II69aQ.net
>>38
IOは足を引っ張っている。最初は処理単位(2Byteや4Byte)で呼んでいて洒落にならないほど遅かった
今は512KB単位で読み込んでいる。25MB程度の場合はreadの呼び出し回数が50回程度の
はずでかなり抑えられているはず
ただしバックグラウンドで読んでいるためにオーバーヘッドは増えている
オンメモリで処理すれば多少速くなるのは確かだろうけど扱うデータ量が多いと数百MBに達する
可能性があることを考えるとあまり現実的はないか
dl経由でCreateFileを叩いてFILE_FLAG_SEQUENTIAL_SCANを付けて開いてWinAPI経由で読み込むとか
などまだ改善しそうな策はあるけどどこまで速くなるかは何とも・・・

42:デフォルトの名無しさん
17/05/01 07:02:53.40 lT1GiCV3.net
>>40
そんなことはない
速い言語ではメモリアクセスがボトルネックになることもある
それに、能力の低いプログラマはやたらとメモリを食うプログラムを作る傾向がある

43:デフォルトの名無しさん
17/05/01 07:18:13.85 fBLf4yNS.net
画像処理みたいに同じデータにアクセスするコードが少ないか、Rubyインタプリタみたいにループで同じデータ(この場合Rubyコード)にアクセスするコードが多いかの違いだろ。
メモリ確保した割に速くなかったからバランス取ったんじゃねーの?

44:デフォルトの名無しさん
17/05/01 08:19:56.73 3OyRI7P6.net
caseでラベルがラベルではなくラベルの文字列としかマッチしないって酷い仕様だな
アリエンティーすぎる

45:デフォルトの名無しさん
17/05/01 08:40:59.02 3OyRI7P6.net
そんなことはなかった
木の生だった

46:デフォルトの名無しさん
17/05/01 09:42:14.76 B7FMiEuI.net
Ruby初心者スレ的には使用メモリを気にするのは初心者の証
こういうスクリプト言語なんて自分のぶんの処理が速ければそれでいいのだ
ただし脱中級者認定要件に「Cレベルでのメモリ動作を理解し適宜気にする」という項目があるにはあるがw

47:デフォルトの名無しさん
17/05/01 10:18:46.45 lXMk8r4o.net
def f1(n,r)
n
end
def f3(n,r)
(n+1)%2
end
def f4(n,r)
n%2
end
def f5(n,r)
(n%r)==0?1:0
end
fs=[f1,f1,f3,f4,f5]
fs[3](21,7)
みたいに関数を配列に入れて使いたいんだが触って5時間の初心者なんでわからん。
具体的なコード教えてくれめんす。

48:デフォルトの名無しさん
17/05/01 10:34:15.38 B7FMiEuI.net
>>47
技術的には可能ではあるがカレーを箸で食べる方法を工夫するようなものだ
まずは何を食べるときの話なのか教えてくれると最初からスプーンを勧めることができるぞ

49:デフォルトの名無しさん
17/05/01 10:47:11.79 lXMk8r4o.net
ありがとうございます。
詳細は明かせないです(説明すると人として恥ずかしいレベルのあれやこれやの理由で)。
関数の集合と適用順番を求める処理が上位にあって。
そこから降ってきたものを具体的に計算したりするときに使いたいのです。
引数の値に対応する関数リストがあるときに関数の適用順序をif文で分岐するとコードが偉いことになるので。
引数に1が来たら関数2,3,5
引数に2が来たら関数3,7,8,12,23
、、、
引数にnが来たら関数1,13を適用
みたいな対応表で、if文で適用関数を区別せず、リストとかで処理を記述したいわけです。

50:デフォルトの名無しさん
17/05/01 11:04:38.77 F35eYYLf.net
>>49
単純に引数で処理変えたいなら、case文で場合分けすればええんで?
def fn(a,b,c)
case a
when a = 1
puts sum = b + c
puts sum = 2*b
when a = 2
puts sum = b - c
when a = 3
puts sum = b * c
when a = "div"
puts sum = b / c
end
end
fn(1,10,5)
#=>15
#=>20
fn(2,10,5)
#=>5
fn(3,10,5)
#=>50
fn("div",10,5)
#=>2

51:デフォルトの名無しさん
17/05/01 11:18:46.93 ZySc29+x.net
Ruby始めてすぐなのならどっかででっかい条件分岐させて「実行したいメソッドとその処理順方法」を記した何かを紐づける記述が絶対に必要
それをたとえばデータ配列なんかに持つことは愚行であって(だいいちそのデータだけ見てもなにしてるか読めないし改変追加しんどいだろ)
素直に地の文で論理を記述するべきだろうね
てなわけで被らない分岐をすべて>>50のcaseで分岐させ、メソッドを実行する順番を書いただけの分岐後専用メソッドにぶん投げるのが妥当では
分岐が数十個超あるならクラス作ってファクトリーメソッドとかあのへんに行くんだろうけど1か月くらい早いと思う

52:デフォルトの名無しさん
17/05/01 11:23:20.88 F35eYYLf.net
話脱線するけど、上のメソッドにp使うと
p fn(2,10,5)
#=>5
#=>nil
って表示されるけど、何に対してnilを出してるのかが分からん

53:デフォルトの名無しさん
17/05/01 11:44:56.25 hzoMRY/L.net
>>42
firefox/realplayerの悪口はもっと言え

54:デフォルトの名無しさん
17/05/01 11:53:49.39 ZySc29+x.net
>>52
Rubyのメソッドはすべて戻り値を返す
返すべき適当な値がない場合はnilを返す
んでirbとかはメソッド戻り値も律儀に表示する
irb> def m1; end
irb> m1
=> nil
そいで画面表示するメソッドを使うと標準出力内容とメソッド戻り値が2段表示になる

55:デフォルトの名無しさん
17/05/01 11:54:30.99 L3YRsyvl.net
putsの返り値がnilだからでしょ

56:デフォルトの名無しさん
17/05/01 11:54:54.16 lXMk8r4o.net
親切な返答ありがとうございます。
なるほど全然ダメな発想だったのですね私。
将来的な話なのですが、ゲームの雑魚敵を配列に入れた複数の関数で動きや思考や攻撃防御を制御して、
雑魚敵の部位ダメージ量や探索モードや怒りモードなどへの条件を満たすと、配列内の関数を入れ替えることで雑魚敵の挙動を制御したい。
という現時点での目標があります。
とりあえず教えてもらったコードを理解できるか今から頑張ってみます。

57:デフォルトの名無しさん
17/05/01 11:56:43.97 F35eYYLf.net
>>54
メソッドの戻り値だったのか、ありがとん

58:デフォルトの名無しさん
17/05/01 21:44:37.52 +TVy5Krd.net
ロボットの動きなどは、case文で書く方がまれ。
右に動く関数とか、上に動く関数とかを、Hash か配列に入れておく
キーマップなどもそう。
キー A~Z に該当する動きを、case文で書くのは大変
呼び出される処理を、ブロックで書く。
ブロックを呼び出すのは、yield
yield(引数)とすると、その引数は、ブロック引数として渡ってくる。
{ |引数| 処理 }
処理が2行以上あるなら、do ~ end を使えばよい
-> (引数){ 処理 }
lambda{ |引数| 処理 }
Proc.new{ |引数| 処理 }
proc{ |引数| 処理 }
Proc.new, proc では、return が使えないから、->, lambda を使えばよい <


59:デフォルトの名無しさん
17/05/03 02:23:03.67 wSFjLMka.net
>>56
enemy[0]=Slime.new
enemy[1]=Goblin.new
enemy[1].state=Angry.new
enemy[0].action #普通に弱い
enemy[1].action #Angryのメソッドにより強い
こういうことならオブジェクト指向について学ぶといい
ただ敵の数が多いとハードコーディングしないでメタプログラミングのがいいかもな
基礎を覚えたら

60:デフォルトの名無しさん
17/05/03 23:40:20.15 zkWNfzXl.net
スライムとゴブリンを別のクラスにする意味はないだろ
そんなもんデータが違うだけ

61:デフォルトの名無しさん
17/05/04 00:17:43.27 PMOSX9lZ.net
普通、スライムとゴブリンは、振る舞い・攻撃パターンが異なるから、
別の基本クラスを継承する
スライムは、無形モンスター。
ゴブリンは、小鬼か妖精族?

62:デフォルトの名無しさん
17/05/04 01:07:10.81 kDn7ReiV.net
ちょっと古い DXRubyの話かと思った

63:デフォルトの名無しさん
17/05/04 01:10:22.16 kDn7ReiV.net
2dのRPGやシューティングは作りやすかったけど
3dは他の使った方が良い
興味ないか……

64:デフォルトの名無しさん
17/05/04 03:22:55.23 ufmsKYbO.net
>>60
基礎を覚えたらと書いてあるだろ

65:デフォルトの名無しさん
17/05/04 10:08:11.63 4jJ2tlWM.net
いま流行りのますとどん
Rubyを学ぼうというインスタンスはないものか

66:デフォルトの名無しさん
17/05/04 23:01:56.14 TB6ujr0/.net
rubyの求人が無くて泣く
プログラマになりたいと思って勉強したのに・・・…
これからrubyとrailsの需要が爆発的に伸びるとかってありえますか?

67:デフォルトの名無しさん
17/05/04 23:38:24.44 ufmsKYbO.net
>>65
立てていいぞ

68:デフォルトの名無しさん
17/05/04 23:41:48.41 ufmsKYbO.net
>>66
オブジェクト指向とか別の言語だろうと役に立つ
構文覚えただけならrubyの仕事増えようと役に立たない
それか言語を規定してない仕事でrubyを提案すればいいだろ

69:デフォルトの名無しさん
17/05/04 23:44:35.87 lRx89izX.net
RubyもRailsも落ち目で衰退する一方だよ
でも所詮それらは道具であり大して重要なことではない
AWSとかのインフラ方面の知識を身につけて一通り自分で作れるようになるとか、
実際にサービス作って運用してみるとか
とにかくモノ作れる奴にはいくらでも働き口はある

70:デフォルトの名無しさん
17/05/04 23:50:13.53 rtRP+bqL.net
趣味または職業プログラマーとして「生きていく」のにRubyは強力に役立つ
ただし職業プログラマーとして「働く」のにはあまり役に立たない
これはそういうものだ
食べていくのならRubyだけじゃなくRuby「とそれ以外」を身に着けろ

71:デフォルトの名無しさん
17/05/05 00:40:00.34 ayKeenIH.net
それってRuby以外の言語でも言える事じゃね?
というか国はプログラマーの育成に力を入れているようだけどその実態はコーダーの育成
世界で戦っていく上で必要なのは英語の意味でのシステムエンジニア(≠ソフトウェアエンジニア)だろ・・・

72:デフォルトの名無しさん
17/05/05 00:42:47.93 YKLEnk0e.net
ハローワークでも、Pythonの求人は、ほとんどないけど、
Rubyの求人は、たまに見る

73:デフォルトの名無しさん
17/05/05 01:01:51.97 78DJCXmh.net
Ruby覚えたら次はJavaでもC#でも飯の種になりそうな言語覚えれば良いじゃん
他の言語について知ると元の言語の理解も深まるから
それこそプログラマとして働くなら特定の言語だけしか使えないなんてありえないよ

74:デフォルトの名無しさん
17/05/05 01:05:47.85 TDjvniVu.net
日本に必要なのは質の高いプログラマーだと思うぞ
世界で戦えるサービスやアプリが少ないのはプログラマーの質の問題が大きい
教育面で言えばごくごく一部の大学と大学院を除くと
日本の大学よりCourseraで受けられる講義のほうがレベル高いからな
小学生にプログラミング教育するより高等教育に力入れないと話にならん
あとハローワークは知らんがRubyの求人は普通にあるよ
Rubyで人とるようなところはハロワに出さないだけじゃないの
リクナビとか一般的なサイトで調べてみたら?

75:デフォルトの名無しさん
17/05/05 01:44:48.67 mu06C9qQ.net
文法覚えて食えるんだったらせわないわ。

76:デフォルトの名無しさん
17/05/05 02:14:13.82 iQB12R96.net
とりあえずRubyで色々作れるなら、他の言語でも文法とライブラリ覚えりゃ作れるでしょ。
ある日Javaでこれ作って。って言われたらJava入門書とWebのドキュメントで翌日には学びながら作り始めるのが当たり前の世界よ?
ソースはおいら。

77:デフォルトの名無しさん
17/05/05 15:07:31.63 K1twnG6D.net
ねえねえ、Rubyバイナリのバージョン管理って今でもrbenvでいいの?

78:デフォルトの名無しさん
17/05/05 19:19:15.08 u3v3zIiy.net
URLリンク(ideone.com)
二乗の和をもとめたいのですが,うまくいきません
URLリンク(ideone.com)
との違いはなんでしょうか?

79:デフォルトの名無しさん
17/05/05 19:33:23.14 78DJCXmh.net
>>78
URLリンク(ideone.com)
評価順が違う
戻り値をそのまま使う時は {}
そうでなければ do end が普通かな

80:デフォルトの名無しさん
17/05/05 19:55:45.07 yiYPdEw2.net
これはdo...endと{}の結合の強さの違いによる問題だね
ここ参照して
URLリンク(rurema.clear-code.com)
上でも言われてるけどブロック付きメソッドの戻り値をpしたいときは{}使わないと思ったように動かないよ

81:
17/05/05 19:56:57.31 u3v3zIiy.net
>>79
コメントありがとうございます.
しかし手元の教科書(たのしいruby)では
obj.method(list) do | ブロック変数|

end

obj.method(list) { | ブロック変数|

}
は互換であると書いてあります.評価順序の違い,とは >>78 のプログラム例では,どのような順序になるから,違う,といえるのでしょうか?

82:デフォルトの名無しさん
17/05/05 20:02:27.64 yiYPdEw2.net
例えば
p (1..10).map{|i| i**2}
は(1..10).map{|i| i**2}の戻り値をpするけど
p (1..10).map do |i| i**2 end

p((1..10).map) do |i| i**2 end
と同じ動きをする。
互換というのは明らかな誤謬。

83:
17/05/05 20:05:43.45 u3v3zIiy.net
>>82
なるほど,よくわかりました
丁寧な回答ありがとうございました

84:デフォルトの名無しさん
17/05/05 20:10:13.54 yiYPdEw2.net
ついでに、いちいち書き換えるのが面倒なら
(1..10).map do |i| i**2 end.display
(1..10).map do |i| i**2 end.tap{|e| p e}
とかって書くのもありだね

85:デフォルトの名無しさん
17/05/05 20:20:15.00 sevG6PSJ.net
mapをdo end で書くのキモい

86:デフォルトの名無しさん
17/05/05 23:25:26.52 G0OfeBgr.net
結合の強さって初めて知ったわ
こんな仕様あったのか

87:デフォルトの名無しさん
17/05/06 14:02:42.85 2cSynca3.net
教えてください。(当方Rubyまったく無知です。)
下記のスクリプトを走らせるとSSLエラーが出るので、
拾ってきた証明書を読ませて何とかしたのですが、
open-uri.rb:359:in `open_http': 403 Forbidden (OpenURI::HTTPError)
と、エラーが出ます。UserAgentや認証やら何かでけられてると思うんですが。
403.1とかのサブエラー返してくれればまだしも原因わからず。
※Yahooボックスから一括DL
URLリンク(lp6m.hatenablog.com)

88:デフォルトの名無しさん
17/05/06 14:25:24.99 5w6KEOXn.net
つまりそのためにYahooのアカウント取ってBOXに何か入れて検証しろと

89:デフォルトの名無しさん
17/05/06 18:26:04.98 l3lhsLeM.net
普通に認証失敗してんだろ
認証に成功してるかどうかもわからないコード使って
Ruby無知です、わかりません、教えてくださいって酷いゆとりだね

90:デフォルトの名無しさん
17/05/06 18:31:44.81 5w6KEOXn.net
Rubyを学んでいないのならこんな古臭いスクリプトをわざわざRuby入れて使う必要はない

91:デフォルトの名無しさん
17/05/06 19:32:19.76 s8HixK2i.net
yahoo box さらうプログラムなら他にもあるよな

92:デフォルトの名無しさん
17/05/06 20:03:38.15 2cSynca3.net
自覚も無い人間の屑共が消えろゴミカス

93:デフォルトの名無しさん
17/05/06 20:23:44.39 s8HixK2i.net
私たちはあなたのような人を売るほど見てきてるのですよルンルン

94:デフォルトの名無しさん
17/05/07 03:19:50.14 edBtKeoY.net
>>80-84
{ }, do~end は互換じゃなかったのか!
しかし、ブロックの外側に、p を付ける方が、おかしい!
ブロックの外側に、p を付けるって事は、ブロック全体の戻り値を表示する事になる。
ブロック内の各処理の結果じゃない

95:デフォルトの名無しさん
17/05/07 03:25:08.49 edBtKeoY.net
>>87-92
たぶん、Rubyの問題ではない
「403 Forbidden OpenURI::HTTPError」で検索!

96:デフォルトの名無しさん
17/05/07 04:53:57.72 cg7edk1d.net
case文書く時に
case 比較したいオブジェクト名
when 値1 then
文1
って書いてあるけど
別に比較したいオブジェクト名を省略しても動くよね
ただリファレンス見てもその辺の注釈が無いけど、どういう理屈で動いてるんだろう

97:デフォルトの名無しさん
17/05/07 08:48:03.37 xlJMQ4jE.net
>>96
caseに値を指定するかどうかでwhenの値の扱いが変わる
特に不思議な仕掛けがある訳じゃなく、単純に文法上別の動作をするってだけのこと
リファレンスにも普通に書いてあるぞ

98:
17/05/07 10:30:19.21 qkFjvNg9.net
>>94
>しかし、ブロックの外側に、p を付ける方が、おかしい!
なるほど、何もしらない初学者だから、こういったこともよくわかっていなかったのです
今後ともよろしくお願いいたします。
今演習をしていますが、
s = "Ruby is an object oriented programming language"
に含まれるアルファベットの頻度をカウントしようとして
s.each_char do |c| で、手がとまっています

99:デフォルトの名無しさん
17/05/07 10:32:21.91 ZvN12MF9.net
そうですか頑張ってください

100:デフォルトの名無しさん
17/05/07 10:49:01.57 yCqO92dr.net
s.chars.uniq.each_with_object({}){|c,h|h[c]=s.count(c)}

101:デフォルトの名無しさん
17/05/07 10:50:54.94 yCqO92dr.net
あと別にブロックの外側に、p を付ける事はおかしくない
ブロック全体の戻り値が知りたいときだってあるでしょう

102:デフォルトの名無しさん
17/05/07 11:42:11.78 cg7edk1d.net
>>97
よく読んだらcase文の最後の所に
省略した場合の挙動が書いてありました・・・・・・申し訳ないです
しかしこれで色々と楽が出来そうです、ありがとうございました

103:デフォルトの名無しさん
17/05/07 14:43:52.81 bug3EadL.net
>>98
Rubyに限った話じゃないけどある処理を実装しようとする時は
その処理の入力と出力の型を最初に考えるといいと思うよ
(厳密に定義されてる型じゃなくても別によくて入出力の形式くらいの意味)
例えば
文字列の文字出現頻度をカウントするメソッドの入出力は
string -> hash {“a” => 3, “b” => 5, …}
でeach_charに渡すブロックの入出力は
char -> hash
でcharを1つずつ受け取って意図したhashを返すにはどうするのかを考える

104:デフォルトの名無しさん
17/05/07 15:02:27.91 bug3EadL.net
(続き)
例えば特定の文字が出てくるたびにインクリメントすればいいと考えれば
最初は↓こういう実装でもいい
s = "Ruby is an object oriented programming language"
result = Hash.new(0)
s.each_char do |char|
result[char.downcase] += 1
end
上のコードが手続き的で副作用が気持ち悪いと思うようになってくればreduceに変える
s.chars.reduce(Hash.new(0)) {|result, char| result[char.downcase] += 1; result}
reduceだとブロックの最後に明示的にresultを返してやらないといけないのが美しくないと思えばeach_with_objectに変える
s.chars.each_with_object(Hash.new(0)) {|char, result| result[char.downcase] += 1}
文字の集合をgroup byすればいいというふうに考えれば↓こういう感じとか(パフォーマンスは上のほうがよいけど)
s.chars.group_by{|char| char.downcase}
.map{|key, value| [key, value.length]}
.to_h
入出力の型を考えて、ロジックを考えて、ロジックをコードで表現する方法を見つける

105:デフォルトの名無しさん
17/05/07 15:19:04.40 2pnfBwSz.net
>>104
副作用の意味分かってる?

106:デフォルトの名無しさん
17/05/07 15:42:28.57 3+oylOXC.net
大学すら行ったことのない人は「演習」の意味も分からず>>103-104みたいなことを書くのだ
気をつけようね

107:デフォルトの名無しさん
17/05/07 16:16:42.30 2pnfBwSz.net
reduceは考え方が手続き型に近いので、関数型特有のトップダウンな思考が身についてない人にも馴染みやすいためか、低スキルな人が好んで使うよね
故に>>104のように無自覚に副作用書いちゃう馬鹿野郎も多い

108:デフォルトの名無しさん
17/05/07 18:08:01.01 vOdx9BxG.net
ここでネタ書いてる人がいる.
URLリンク(jbpress.ismedia.jp)

109:
17/05/07 18:18:09.31 qkFjvNg9.net
ruby の記述力には感動すら感じさせられますね
今回、必要があって ruby を始めましたが、末永くお付き合いさせていただくことになりそうですね、C/C++ だけに眠っていたのは損失でした…

110:デフォルトの名無しさん
17/05/07 20:38:50.83 YLCveNdh.net
>>108
自己紹介GJ

111:デフォルトの名無しさん
17/05/07 21:06:49.51 edBtKeoY.net
>>98
>s.each_char do |c| で、手がとまっています
手が止まるのは、習っていない事をしようとするから。
そりゃ出来ないはず
先に「たのしいRuby 第5版、2016」を3回読めば、ほとんどの事は書いてある

112:デフォルトの名無しさん
17/05/07 21:36:25.47 vOfy+8Oj.net
>>104
すでに>>105が指摘しているけど、破壊的代入は副作用の一つだよ
副作用の無い「関数型プログラミング」と呼ばれる作法に従えば、
以下のコードになる
URLリンク(ideone.com)
詳しくは以下の文書を参照
・Rubyによる関数型プログラミング
 URLリンク(www.h6.dion.ne.jp)
あと蛇足を加えると:
・上記のコードでは、reduce ではなく inject を用いた
・効率という視点では破壊的代入を用いる>>104のコードのほうが優れている
・わざわざメソッド String#chars で文字列を文字の配列に展開するよりも、
 ブロックを伴わないメソッド String#each_char は列挙オブジェクト
 (enumerator)を返すから、それを直接inject(あるいは reduce)へ
 チェーンさせたほうが効率的である

113:デフォルトの名無しさん
17/05/07 21:47:04.67 hR29VPCg.net
>>109
ちゃんと覚えるつもりならRubyの一般的なコーディングルール調べてからのほうがいいよ
自然に do end と {} の使い分けも出来るように考えられてたりとか
無駄な時間を減らせるようになってる

114:デフォルトの名無しさん
17/05/07 22:19:19.16 3+oylOXC.net
reduceという別名をつけてくれたのはありがたいことだと思う
厄介な人間の区別がつけやすくなったからな

115:デフォルトの名無しさん
17/05/07 22:25:07.52 yCqO92dr.net
LISPER大激怒

116:デフォルトの名無しさん
17/05/07 22:28:15.75 vQOCcspz.net
enumeratorが効率的なわけがない

117:デフォルトの名無しさん
17/05/07 22:37:40.27 3+oylOXC.net
>>115
Rubyのreduceは別にreduceしてるわけではないし
関数型やってるわけでもないのに「わざわざ」reduceと呼ぶのは
・reduceの動作を理解していない
・Rubyと他の関数型言語等との区別をつけられていない
という点で危険人物の可能性が高い
そして実際にそうだったわけであって

118:デフォルトの名無しさん
17/05/08 00:02:12.04 H9Jpde9f.net
>>112
副作用って書いたのはステートメント単位の話ね
each_charとcharsの違いはたかだか知れてるけど
インクリメントのたびに新しいHash作ってたら
100倍・1000倍のオーダーでパフォーマンス変わるよ

119:デフォルトの名無しさん
17/05/08 00:17:01.28 cPdEWfXE.net
Rubyではほとんどの場合injectだよな
reduceという名前で書きたい処理だと思ったことはRubyではまだないわ
名前重要、は組み込みライブラリにも適用されるのだ

120:デフォルトの名無しさん
17/05/08 01:00:12.59 H9Jpde9f.net
パフォーマンス比較
URLリンク(ideone.com)

121:デフォルトの名無しさん
17/05/08 01:16:43.69 RkG8OoQA.net
ループはwhile最強のはずと思ったけど、配列や文字列の添字参照は引数のパースにコストがかかるし
何文字目か数えないといけないからeach_charsのほうがマシだな

122:デフォルトの名無しさん
17/05/08 05:42:30.32 WmCrZwJe.net
effective rubyに倣ってreduceだわ

123:デフォルトの名無しさん
17/05/08 13:18:08.61 iGkkPwEU.net
Rubyist Magazine - map と collect、reduce と inject ― 名前の違いに見る発想の違い
URLリンク(magazine.rubyist.net)
俺はmap/reduce派

124:デフォルトの名無しさん
17/05/09 00:44:03.70 AJpeMRYn.net
>>123
長ったらしいな。
まず、Rubyは他の言語を参考にした。
map と collect、reduce と inject と2つあるのは
Lispを参考にした名前が、mapとrecude、
Smalltaikを参考にした名前が、collectとinjectである。
というだけだろう?
ここまででRubyの話は終わりじゃないか。

125:デフォルトの名無しさん
17/05/09 00:44:54.41 AJpeMRYn.net
JavaScriptに標準であるのは、mapとrecudeだな。

126:デフォルトの名無しさん
17/05/09 01:55:29.32 lu7Bmdm9.net
配列の関係でお聞きしたいです
URLリンク(ideone.com)
こんな感じで任意の文字列を受け取って、それを1文字ずつ分割するっていう動きなのですが
配列を使って繰り返そうとすると上手くいかないです
URLリンク(ideone.com)
どうすれば配列に値を返すことが出来るのでしょうか?

127:デフォルトの名無しさん
17/05/09 02:12:04.57 7rjXR/HL.net
スクリプトのちぐはぐさから見て、おそらくコピペ継ぎはぎだけで体系的な学習を全くしてないと思われる
書籍のたのしいRubyを買えとまでは言わないので、なんかどっか適当なアフィサイトででも勉強するといいよ
制御構造と変数のスコープについての勉強が足


128:りない 第6章とか第7章とかそのへんまで読破だ



129:デフォルトの名無しさん
17/05/09 02:21:33.84 7rjXR/HL.net
最初のスクリプト修正
input = gets.chomp
s1,s2,s3 = input.split(" ")
a = s1.split(//)
b = s2.split(//)
c = s3.split(//)
p a,b,c
次のやつの例
input = gets.chomp
arr = input.split(" ")
result = []
arr.each do |s|
result << s.split(//)
end
result.each do |e|
p e
end
うまく処理が行われるように変数名を変えたのがポイントであるが眠いので説明はほかの人に譲る
とにかく基礎知識が足りないので焦らずにまずは変数とかそのへんの解説を読むのだよ

130:デフォルトの名無しさん
17/05/09 02:28:47.25 7rjXR/HL.net
追記、1行で書くアホが湧くかもしれないがその人は自分のことしか考えてないので現時点では無視してよい
あなたに必要なのは基礎なのだから
ではお先におやすみなさい

131:デフォルトの名無しさん
17/05/09 02:39:10.44 lu7Bmdm9.net
>>128
あ、新しく空の配列作っておいて
繰り返しの時に、分割した結果をその中に入れるっていう処理にすれば良かったんですね
ありがとうございました!

132:デフォルトの名無しさん
17/05/09 07:31:40.84 k6HrUJzH.net
違う
ローカル変数やブロック変数の動作を全く理解してないのだ
だから自己代入してバグっても何も思わない

133:デフォルトの名無しさん
17/05/09 07:34:19.28 WySm2t97.net
>>131
あー、確かにその辺は凄い曖昧ですね・・・・・・
もう一回その周辺含めて勉強し直します

134:87
17/05/09 20:42:21.42 ptoav/qt.net
結局、会社出入のSIの担当に個人的にお願いしました。
10分で数行追加して解決してくれました。Win10の問題とファイル100ケ問題2点があったとか。
自分で解決するのは無理でしたね。
解決してくれた方には10万くらい謝礼を考えていたのですが、この方には辞退されてしまいましたので
二人で銀座のクラブで豪遊して、逆に初任給相当くらいぶっとばしてしまった・・・
孫の写真をEOS-1D X で撮影した数千枚をぜんぶYAhooBOXにに保管していて、家内に怒られており
苛立ってしまい、お騒がせして申し訳ございませんでした。

135:デフォルトの名無しさん
17/05/09 20:45:26.48 SmlWSda1.net
書き込みから頭の悪さが伝わってくるな

136:デフォルトの名無しさん
17/05/09 21:36:06.57 V+0O6ahJ.net
孫もいるのに>>92みたいなこと言うのか……

137:デフォルトの名無しさん
17/05/09 22:04:56.60 AJpeMRYn.net
だって娘ってもうおばさんじゃん

138:デフォルトの名無しさん
17/05/10 21:24:41.33 mz/WKowH.net
まともに取り合ってれば俺が10万もらえたんか?

139:デフォルトの名無しさん
17/05/10 21:38:57.44 T9zZBiea.net
いや、可哀想だが、鳥取も被害者だろ。

140:デフォルトの名無しさん
17/05/11 12:25:59.80 3ycP24fA.net
一発だけなら誤射かもしれない

141:デフォルトの名無しさん
17/05/11 22:46:17.95 SAAdjKtg.net
MonoにあるIronRuby(ir.exe)でRubyスクリプトを走らせようとすると
unknown: no such file to load -- gem_prelude.rb (LoadError)
というエラーが出て終了してしまいます。
どうすれば良いでしょうか?

142:デフォルトの名無しさん
17/05/11 22:59:59.49 jM8xSb+p.net
IronRubyは全くメンテされてないゴミ
諦めてC#使おう

143:デフォルトの名無しさん
17/05/12 00:42:07.19 lh1VWFPT.net
「gem_prelude.rb LoadError」で検索!
初心者は、paiza.IO, codepad などで、ブラウザでプログラミングするのが簡単

144:デフォルトの名無しさん
17/05/12 03:23:42.25 KfydbfhB.net
Rubyとは直接関係ないのですが
RubyMineの補完機能で、入力した段階で自動的に一番上が選択されるようにするにはどうすれば良いのでしょうか?
(IntelliJの方では最初から自動的に選択されてました)
RubyMineとIntelliJの比較
URLリンク(i.imgur.com)
URLリンク(i.imgur.com)
RubyMineを使ってる方で分かる方はいらっしゃらないでしょうか

145:デフォルトの名無しさん
17/05/12 19:32:54.36 HOHLzPdy.net
Rubyでスクレイピングしたいんですが、串がうまく動かないです。串はTorを使いたいと思います。
p "Creating tor agent..."
p "My raw ip address is #{Mechanize.new.get('URLリンク(ifconfig.me)').body}"
tor ||= TorPrivoxy::Agent.new '127.0.0.1', '', {8118 => 9150} do |agent|
begin
sleep 10
p "My ip address is now chenged to #{agent.ip}"
p tor.get("URLリンク(ja.wikipedia.org)).encode(Encoding::SJIS)
rescue
p "エラーです".encode(Encoding::SJIS)
end
end

146:デフォルトの名無しさん
17/05/13 06:47:49.32 nrviLaTM.net
どの行で、どんなエラーメッセージが出るの?
そのエラーメッセージで検索すれば?

147:デフォルトの名無しさん
17/05/14 09:17:54.13 c1+aTdNX.net
rubyでは現在の行とファイルをだすような__LINE__とか__FILE__はないんですか?

148:デフォルトの名無しさん
17/05/14 09:32:49.01 4OWrar4G.net
標準的な動作で不足であるという場合
その不足な動作自体を満たすライブラリの有無を質問するのではなく
そもそも何のためにそれが必要だと考えているのかを述べてみなされ

149:デフォルトの名無しさん
17/05/14 09:51:16.72 9iFdkmzT.net
>>146
ある

150:デフォルトの名無しさん
17/05/14 10:01:11.30 c1+aTdNX.net
》》148
ありがとうごぞいます

151:デフォルトの名無しさん
17/05/14 21:59:53.35 YpRHpm2r.net
Rubyの作者の技術力ってどのくらいなの?
低くはないとおもうけど、そんなにたかくもないの?

152:デフォルトの名無しさん
17/05/14 22:07:52.12 2j/fEy8A.net
マルチスレッドや文字コード系はあんま詳しくないから詳しい人に手伝って貰ってたとか日経ソフトウェアの昔の対談記事で書いてたな。
ギークって程じゃないと言う印象。

153:デフォルトの名無しさん
17/05/14 22:11:20.20 3p+3tmMb.net
技術力は知らんが心の底からプログラミング好きなんだなぁとは思うな、言語オタクだから言語作ったそうだし

154:デフォルトの名無しさん
17/05/14 22:25:40.71 YpRHpm2r.net
>>151
マルチスレッドや文字コードの仕様もぜんぶ知ってないと、技術力は高いといえない?
日本で技術力が高い人ってどのくらいいるんでしょう。
Ruby作った人でも技術力が高くないといわれたら、道が険しすぎる。

155:デフォルトの名無しさん
17/05/14 22:32:18.91 DiPyQd5B.net
言語処理系、特にパフォーマンスを度外視したスクリプト言語の実装ってそんなに難しくないよ
Rubyの互換実装って驚くほど短期間で作られたりするし

156:デフォルトの名無しさん
17/05/14 22:40:30.08 0pt2h6WS.net
言語処理系の実装って、経験のない人はなぜかそれがすごく高度なことだというイメージを持ってるよな
やってみたらわかるけど、動かすだけなら意外と全然難しくないよ
ゲームとか作る方がずっと難しい

157:デフォルトの名無しさん
17/05/14 22:58:19.67 zv0DKnzD.net
思ったほどには「あらゆることを深く知っている」必要はないよね
言語作成センスと時の運とコミュニティへの頭の下げ方だと思うわ

158:デフォルトの名無しさん
17/05/14 23:12:20.70 3p+3tmMb.net
「実装」なら俺でもできるが「設計」はなぁ

159:デフォルトの名無しさん
17/05/14 23:24:09.84 Xbcx3KQE.net
>>151
おいおい、Matzをもって
> ギークって程じゃないと言う印象。
とは、本気か?おまえどんだけえらそうなの。
>>153
> Ruby作った人でも技術力が高くないといわれた
だれじゃ、そんなこと言ったのは。
初歩的なインタプリタは学生でも作れるけど、rubyぐらい完成度の高いのは無理だろ。

160:デフォルトの名無しさん
17/05/14 23:29:39.07 Xbcx3KQE.net
>>154
そりゃ仕様をまるごとパクって作れば短期間で作れるでしょ。理由がおかしい。
整合性のとれた言語仕様を考えるところがいちばん大変だろうに。
>>155
> 動かすだけなら意外と全然難しくないよ
だからといってrubyの作者がギークって程じゃないとは、ここはすごいプログラマの集まりですね。

161:デフォルトの名無しさん
17/05/14 23:44:43.80 SkVs727u.net
あらゆる分野においてエキスパートじゃないと技術があるとは言えない、と本気で思い込んでる
人がちらほらいるようで
そんなウルトラスーパーハカーなんて世界に何人いることやら

162:デフォルトの名無しさん
17/05/14 23:57:58.99 4upkAWVg.net
これでも貼ってみるか
マツドサイエンティスト・研究日誌 保存版 システムエンジニアリング(その4) 超人にならなくていい
URLリンク(anoda.web.fc2.com)
日本は完璧主義だからか平気で完璧超人を求めるよね

163:デフォルトの名無しさん
17/05/14 23:58:21.34 aG/BUJsi.net
多分「完成度」の基準がみんなバラバラすぎて上手くコミュニケーションが取れてないな
Brainfuck系言語というか、いわゆる難解プログラミング言語みたいなジョークみたいな物だったら
確かに「実装」は簡単
が、Ruby、PHP、Pythoみたいに一つの主要言語にまで昇華させるには
言語設計まで含めてめちゃくちゃ大変な作業が必要になる
なので
Rubyっぽい、プログラム言語っぽく動く何かを作る→頑張れば出来る
RubyやPythonの設計思想を受け継ぎながら、独自の言語設計に基づいて言語を作る→並大抵の人間には出来ない代物
っていう感じかな「

164:デフォルトの名無しさん
17/05/15 00:04:17.64 6XCGPePS.net
>>158
だれだったか忘れましたが、ツイッターでだれか言ってました。
有名人?なのかな、それなりに有名っぽい人だったので、技術力の高い低いってどういう基準で判断するのかなと思って。

165:デフォルトの名無しさん
17/05/15 08:25:41.29 AFguA/nP.net
だからだれなんだよそんな偉そうなのは

166:デフォルトの名無しさん
17/05/15 09:26:37.14 jzzH2kBs.net
RubyはMatzが数学苦手なのが良かった
結果、平均的なPGの頭に合った言語になった
頭の良すぎる人が作った言語は結局一部の人間のオナニーで終わっちゃう
FortranとかCとかJavaとかC#とかは頭の良い人たちが本気でボリューム層向けに作った完璧な「製品」だけど、
そういうのに比べるとRubyはまあ適度な頭の緩さが馴染みやすいよね

167:デフォルトの名無しさん
17/05/15 21:51:39.50 xoO/l6gC.net
>>164
誰っていわれても、ツイッターでみかけただけでどこのだれかまでは覚えてないです。
ごめんね。
たくさんのひとがリツイしてたから、自分で探したら出てくるかもよ。

168:デフォルトの名無しさん
17/05/17 01:45:08.88 y0sg8W2t.net
それいいな。俺も困った時に使ってみよう
たくさんのひとがリツイしてたから、自分で探したら出てくるかもよ。

169:デフォルトの名無しさん
17/05/17 04:25:58.23 Q6ZDgQU6.net
うーん、あまりにも初心者過ぎてあれなんだが、プログラミングを学び始めて
まずrubyを真面目にやろうと思ったんだ。他の言語もさわりはしたんだけどね。
でも、実際に環境を構築しようとrubyをインストールして、
環境変数のPathの設定も本の通りに確認したんだけど
実際に打つと#とかで内部コマンド~ファイルとして認識されていませんって
出るんよ、 Pathって打ってみるときちんとCドライブのRubyのbinを
参照?してるんだけど・・・私はどこを間違えているんだろう。

170:デフォルトの名無しさん
17/05/17 05:58:15.48 AoGXWMN0.net
>>168
答えじゃなくてすまんけど感想を。
そういうことを聞ける場所が2chしかないのが残念だよね
Rubyを始める人のコミュニティってないものか
ずっとそういう場所を探している

171:デフォルトの名無しさん
17/05/17 06:20:15.54 Q6ZDgQU6.net
>>169
そですねー、私もまずコミュニティ的なものを探したんですけど
勉強会みたいなのはあるのに、こういった掲示板的なものは
みつけられないんですよね。初心者はわりかしきついですね。
相変わらず四苦八苦してますw
2chはマイナーなものは、あまり素人は歓迎されない気もしますね。

172:デフォルトの名無しさん
17/05/17 06:20:34.43 +84GJVyA.net
まさか生のrubyコードをコマンドプロンプトに『打ち込んでるんじゃ

173:デフォルトの名無しさん
17/05/17 06:34:58.31 AoGXWMN0.net
>>170
無いなら作れってところなのだけど
それを作る技術を得るためには・・・
堂々巡りで困ってる
2chには妖怪が住んでいるからなぁ

174:デフォルトの名無しさん
17/05/17 06:50:32.62 AoGXWMN0.net
>>171
なるほど!
ruby -v
を試してみればいいんだな
#とかでという意味がよくわからないけど

175:デフォルトの名無しさん
17/05/17 06:53:25.51 +84GJVyA.net
きっと「#」で始まる行をコピペしてコマンドプロンプトにそのまま張り付けたんじゃないのかね
binにパス通ってるならirb起動すれば幸せになれるかもね

176:デフォルトの名無しさん
17/05/17 07:06:09.77 Q6ZDgQU6.net
>>171
あははw
いろいろあって混乱してたんだw
本にもテキストエディタで書けって書いてあったw
その前にPath関係の確認させられてたから勘違いしてしまった。
すごいあっさり大事なことが色々かいてあるとこ見逃してたw
C言語の勉強をrubyの勉強する前に触っておこうと思って
コンパイラに書いてたような感覚でやってしまったw
rubyのさわりもブラウザ上で書く感じの勉強だったんだ
だ、だから違うんよ?うん、違う違う。知ってた知ってた。

177:デフォルトの名無しさん
17/05/17 07:15:15.40 Q6ZDgQU6.net
まあ、初心者ってこういうくだらない質問するもんだから、許して笑ってくれさい。
そして、そういう初心者用のコミュニティは作れないっていうか、
初心者が作っても人集まらないだろうからここでできれば助けて下さい。
rubyスレ希少なんです・・・という初心者の声なのでした。

178:デフォルトの名無しさん
17/05/17 07:20:26.73 AoGXWMN0.net
>>176
俺はそういうのが作りたいんだー

179:デフォルトの名無しさん
17/05/17 07:21:52.55 AoGXWMN0.net
2chって「初心者」って言葉に食いつく妖怪もいるからなぁ

180:デフォルトの名無しさん
17/05/17 07:35:16.07 zoT6JpA4.net
OKWAVEとかどう?

181:デフォルトの名無しさん
17/05/17 07:44:52.13 AoGXWMN0.net
>>179
それは見てなかったなぁ
よっしゃ
これからそこへ質問入れてみるぞ

182:デフォルトの名無しさん
17/05/17 07:53:53.40 S++XgTKO.net
>>172
掲示板を立ち上げること自体は難しくないけど、管理維持するには住人やISPなどのバックアップが必要不可欠
個人で運営する場合は、住人による自治が基本になるしそれで対応しきれない案件に関しては管理人やISPによる強権発動で対応
これらの支援を受けられなくなって久しいし、荒らしに対応できなくなるのは目に見えていて長期的維持を望めない
あと技術の初心者は構わないがコミュ力初心者は遠慮願わないと。今や「初心者は免罪符ではない」などと言われることも無くなったしなぁ・・・

183:デフォルトの名無しさん
17/05/17 07:55:53.94 AoGXWMN0.net
>>179
そこのRubyカテゴリは1ヶ月眠ってるがな

184:デフォルトの名無しさん
17/05/17 08:48:21.65 vMnI7rwx.net
2ch以外で質問できそうな所っていうとこの辺のサイトか
質問できる所
テラテイル
URLリンク(teratail.com)
スタック・オーバーフロー
URLリンク(ja.stackoverflow.com)
Rubyの記事投稿が多い所
Qiita
URLリンク(qiita.com)

185:デフォルトの名無しさん
17/05/17 09:02:29.68 AoGXWMN0.net
>>183
teratailもstackoverflowも質問することがはっきりしてる場合なんだよね
ある程度のレベルがいるし。
Qiitaいいたっては聞くというより情報発信サイトかと思われる
でも
今Qiitaに登録したったw

186:デフォルトの名無しさん
17/05/17 10:02:00.71 vwwaD4yq.net
>>170
まずWindowsを使いこなせてないからだな
言語のスレだとみんな環境違うしそういう知識は身につかないかも
適切なとこ見てれば質問のしかた(必要な情報)もわかってくるはずだ

187:デフォルトの名無しさん
17/05/17 15:22:05.45 O9qCgXnQ.net
>>183
SOのjpはやめとけ

188:デフォルトの名無しさん
17/05/17 15:34:35.54 P4LQUJ7D.net
>>186
stackoverflowあかんの?
ちょいとその辺の事情をお願い

189:デフォルトの名無しさん
17/05/17 15:58:25.56 JDHyCaYk.net
日本語のスタックオーバーフローって検索の上位に出てこないイメージ
ってことは・・・・・・

190:デフォルトの名無しさん
17/05/17 18:45:28.28 AoGXWMN0.net
Ruby2.4のリファレンスマニュアルをダウンロードするにはどうしたらいいのー

191:デフォルトの名無しさん
17/05/17 19:08:51.18 +84GJVyA.net
階層構造を保持したままローカルに保存できるソフトでも使えば

192:デフォルトの名無しさん
17/05/17 19:20:27.17 t1VY0/wg.net
昔はzipとかなかったっけ

193:デフォルトの名無しさん
17/05/17 19:24:12.98 AoGXWMN0.net
古いバージョンのマニュアルと最新のならダウンロードできるようになってるんだけどね

194:デフォルトの名無しさん
17/05/17 22:49:59.99 OcBoOJyM.net
>>164,166
どこの誰かは覚えてないといったけど、ふと思って探してみたら、あっさり見つかった。
URLリンク(mobile.twitter.com)
> ソフトウェア分野一般に通じる「技術力」というのは実際には
> 存在しないのにあると信じられている幻想だと思う。その幻想が
> 広く信じられている結果として、たとえば著名プログラミング言語の
> 作者はスーパープログラマのように思われがちだとかいう現象が発生する。
たしかこれだった。

195:デフォルトの名無しさん
17/05/17 23:14:17.43 Id1y7eqA.net
JavaとかC#の作者は実際凄いらしいね
Matzは祭り上げられてる割にはRuby以外でほとんど実績らしい実績を聞かない

196:デフォルトの名無しさん
17/05/17 23:20:38.33 y0sg8W2t.net
JavaとかC#の作者の名前は?
Matz個人、人間一人と渡り合えるなんて、すごい人だろうね。

197:デフォルトの名無しさん
17/05/17 23:23:53.49 Id1y7eqA.net
>>195
自分で調べたら?
どっちもチーフアーキテクトは個人崇拝されてる有名人だよ

198:デフォルトの名無しさん
17/05/17 23:25:17.03 y0sg8W2t.net
「チーフアーキテクトは」ってことは
それ以外の役職の人がいるってこと?
Matz一人に対して複数の人があつまらないと
対抗できないってのはちょっと恥ずかしくね?

199:デフォルトの名無しさん
17/05/17 23:27:09.81 SKu/yZ4u.net
>>197
それを言うならRubyだってMatzが全部決めてる訳じゃないよ

200:デフォルトの名無しさん
17/05/17 23:27:10.61 y0sg8W2t.net
調べた
URLリンク(ja.wikipedia.org) 開発者 マイクロソフト
URLリンク(ja.wikipedia.org) 開発者 オラクル

201:デフォルトの名無しさん
17/05/17 23:27:20.00 Noyf0zx+.net
コンパイラとインタプリタじゃ難易度全然違うしな。
C#の作者なんかはTurbo Pascal,同C,同C++,Delphi,C++Builder,Visual J++,VC#,TypeScriptと、言語もだけどライブラリも設計してる。
ベテラン中のベテラン。
センスも経験も数段上。

202:デフォルトの名無しさん
17/05/17 23:28:28.62 Noyf0zx+.net
あ、言語はオリジナルはC#とTypeScriptだけだから、コンパイラとライブラリの設計がほとんどやね。

203:デフォルトの名無しさん
17/05/17 23:30:32.17 zoT6JpA4.net
JavaとかC#はチームで作ったものだからね
基本的な部分はチーフがやったとしても全体を作り上げたのはチームだから
チーフがすべての部分についてウルトラスーパーハカーである必要はないんだよ

204:デフォルトの名無しさん
17/05/17 23:46:22.36 0i9RfNds.net
Javaは忘れたがC#はアンダース・ヘルスバーグって人が作ったもん、余談だがDelphi作った人だからC#はとてもDelphiくさい

205:デフォルトの名無しさん
17/05/17 23:54:49.77 q+Jp+PKK.net
日本人って何かにつけて神とあがめ立てて思考停止する奴が多いよね。なぜそうなのか、どうやったのかとか考えようとしない

206:デフォルトの名無しさん
17/05/18 00:02:07.55 d+oDyp66.net
4月に、Win10の、Windows Subsystem for Linux(WSL)の大きな更新があった。
誰か、WSLから、Rubyを使っている人、いる?
居たら、報告して
日経Linux 6月号に、WSL の特集あり

207:デフォルトの名無しさん
17/05/18 00:36:47.85 HnnQPjdl.net
>>193
ツイートが連続してて、そのリンクはろうとしたけどめんどくさいので、かわりにこれで。
URLリンク(i.imgur.com)
だんだん思い出したけど、スーパーハッカーとかスーパープログラマーで調べてたんだった。
ルビーの作者でもスーパープログラマーじゃないなら、どうしていいのかわかんないな。日本にいなさそう。

208:デフォルトの名無しさん
17/05/18 00:42:18.01 mKKG/7h8.net
すごいプログラマだけどもスーパープログラマーという方向性の人ではないと思う
なんというか、仮面ライダーとウルトラマンくらい傾向が違う
だいたい正義の味方のだいたい超能力人間なんだけど、まとめると違和感

209:デフォルトの名無しさん
17/05/18 01:07:17.85 dz2c6KN5.net
>>206
プロの一流の選手を、ドラフトにひっかかりもしなかった三流が「あの選手は大したことない」と言ってるみたいな感じか。
たまにいるよな、こういうの。

210:デフォルトの名無しさん
17/05/18 02:12:28.50 k2/bnmai.net
こんなレベルの人の集まりかと思わせる雑談だな
これもパートスレの弊害だろ

211:デフォルトの名無しさん
17/05/18 02:28:27.52 n0l9x2sF.net
>>205
rbenv で入れて使ってる。
ちょっとしたスクリプト動かすのに便利。

212:デフォルトの名無しさん
17/05/18 07:40:51.40 HnnQPjdl.net
>>208
どちらかというと、半分以上は嫉妬心だと思う。つまりやっかみ。
大学の演習で作るようなレベルのものと、世界中のサービスで使われるレベルのものとでは、難易度がはるかに違うのにな。

213:デフォルトの名無しさん
17/05/18 07:58:52.21 jHW9tOS8.net
設計技術と実装技術って無関係とは言わずとも別物だけど区別出来ていない人は多い
プログラミングは後者である

214:デフォルトの名無しさん
17/05/18 07:58:54.30 uGmNBL+O.net
Matzさんはプログラミング言語の知識は凄いけど最適化周りは今一つってのは共通認識だと思っていたが…昔からずっと「Rubyは遅い」って皆でブーブー言ってたじゃない
でも前者の能力持ってる人は稀有だからやっぱりスーパープログラマーに違いないと思うよ
アニメーターの大塚康生さんが「宮さん(宮崎駿)は描くの早いけど絵は上手くない」って評してるけどMatzはプログラミング言語界の宮崎駿みたいなもんだよ
ある方向は秀でてるけどある方向はそれほどでもない。だけどスーパー○○には違いない

215:デフォルトの名無しさん
17/05/18 08:10:53.60 jHW9tOS8.net
Rubyが遅いのはコーディング技術の不足よりシステム設計の制約だと思っていたけど違うのか?
あのシステム設計がJIT化の障害にもなっているみたいだし、Intelのプログラマー陣に書かせたら
爆速に!とはいかないと思うんだが

216:デフォルトの名無しさん
17/05/18 08:52:05.04 a7kCQWZC.net
愚直なプログラミングだからドキュメントなしでやってこられたけど、未だにドキュメントが完成してないのは驚きである

217:デフォルトの名無しさん
17/05/18 09:02:19.96 mKKG/7h8.net
○○がないなんて非常識で公式やる気なさすぎでウチでは使えないよ、という人たちにスルーされたからこそ今があるのでは
Linuxみたいなもんだw

218:デフォルトの名無しさん
17/05/18 09:40:39.90 W+cXBvNa.net
>>213
> だけどスーパー○○には違いない
スーパーマツモト?

219:デフォルトの名無しさん
17/05/18 10:21:34.30 k2/bnmai.net
いまさらかもしれないがプログラマってすごく偏ってるのかな
存在も考え方も

220:デフォルトの名無しさん
17/05/18 12:17:40.22 nGaj6J50.net
C#の作者は普通の企業戦士としてクソ有能らしいね
ハッカーやアーキテクトとしての専門的技能を十二分に備えた上で、
マネージャとしてチームを率いて製品を作り上げられる超人

221:デフォルトの名無しさん
17/05/18 15:06:50.15 6nNpr9wz.net
Rubyが普及(ω)したのはドキュメントを書かなかったからだよ

222:デフォルトの名無しさん
17/05/19 00:02:38.38 JAygot/q.net
軽々しく他人のことを神だの超人だの言っちゃう人って実力は大したことないのにプライドだけ高いんだなろうな
しかも多分その自覚が無い。自分の能力が大したことないことを自覚できていればそういう表現の仕方はしないはずだし
神格化するより研究し自分の能力を伸ばすことを考えるはず

223:デフォルトの名無しさん
17/05/19 01:30:43.67 4+vIujWP.net
一流を認められない人に成長はない

224:デフォルトの名無しさん
17/05/19 01:45:17.48 ge9DZPXJ.net
よっぽど何かコンプレックスあるんだろうねこの人
ああ、この人ってのはこのスレに何日も同じようなことグチグチグチグチとえんえん書き続けてる人ね

225:デフォルトの名無しさん
17/05/19 06:30:50.15 eboDhNue.net
矛盾を含んだ文章ってスパゲッティコードみたいだよね

226:デフォルトの名無しさん
17/05/19 06:33:50.64 eboDhNue.net
そうだ
Rubyが好きなのは
Pythonみたいにインデント強制されないし
Javaみたいに大文字小文字まで強制されないからなんだ

227:デフォルトの名無しさん
17/05/19 08:24:53.47 wMmgU2C4.net
>>206
なんで時系列が逆順なんだよw
2chでも古い書き込みが上で新しいほど下になってるだろ。
そのほうが自然なんだからそうしろ
>>223
>よっぽど何かコンプレックスあるんだろうねこの人
成功した人に嫉妬してる暇があれば自分で何か作ればいいのに、そうする人は少ない

228:デフォルトの名無しさん
17/05/19 08:29:07.55 ax6ergs3.net
自分で何もできないから他人に嫉妬する、まあ俺のことなんですけどね

229:デフォルトの名無しさん
17/05/19 15:13:31.24 4aXBqFa1.net
>>225
Javaのは強制でないだろ

230:デフォルトの名無しさん
17/05/19 23:21:36.00 vjfQYplO.net
実際に結果を出した人は
その結果の現実における実在性から人生に安定感なり心の余裕が出てくるように見えますよね。

231:デフォルトの名無しさん
17/05/19 23:29:01.51 JAygot/q.net
本当の天才や神もたまにいるけどきわめて稀。ほとんどの場合は普通の能ある人
大抵の場合聞き上手&話し上手でコミュ力が高いのと論理的な思考・判断が出来る
嫉妬している暇があるなら成功している人を分析した方が建設的だし結果を出す近道だろう

232:デフォルトの名無しさん
17/05/19 23:33:19.60 ivu0jzcH.net
>>223
キチガイに絡まれたスレは悲惨だな

233:デフォルトの名無しさん
17/05/20 04:52:57.18 Gofa0r8M.net
キチガイか・・・
この言葉の取り方も人それぞれだろうけど。
もっと適当な新しい言葉はないものかね
ネットコミュニティで使えるような・・・
粘着、凝り固まった、共鳴しがたい論理、複数人を装うタイプ
ついでに嫉妬、妬みもいれとこか
そんな人をいう言葉

234:デフォルトの名無しさん
17/05/20 05:05:32.15 Gofa0r8M.net
そんなことより
誰かマジで教えてくれないか
herokuでRubyを動かしたいんや
RoRじゃなくてただのシンプルなRuby
Ruby環境のあるレンサバだとindex.rbで動くやん
あれと同じようにwebページを表示したい
windows7でやってる
gitでpushまでは出来るのだけど
どうしてもトップページが表示できない
Qiitaとかの情報はぐぐりまくってるいのだけど
ピッタリのものはない
php,node.jsがQiita情報では優勢や
rackというのがキーワードだということまではわかった
Gemfile,Gemfile.lock,Procfile,config.ru
も整えたつもりなのだけど
中身がまずいんやろなぁ
もういちど書くけど
RoRじゃなくて素のRubyで
一番シンプルにsinatraとかフレームワークを使わずに
herokuでindex.rbをトップページに表示したい

235:デフォルトの名無しさん
17/05/20 05:11:20.26 Gofa0r8M.net
>>233
これだけじゃ意味が伝わらないかもしれないから
やってることをわかってもらえるようなgithubを
24時間以内に用意するわ
なんせrubyもgithubもherokuもやり始めたばかりの素人なもので
ちょっとしたことでも時間がかかるので24時間以内な

236:デフォルトの名無しさん
17/05/20 05:17:48.16 Q4Q/cnZ9.net
そして一年が過ぎた・・・

237:デフォルトの名無しさん
17/05/20 05:46:34.75 WmFfeyqJ.net
chef, vagrant から、VirtualBox で、Linux
それか、4月に、Win10の、
Windows Subsystem for Linux(WSL)の大きな更新があったから、WSLでするとか?

238:デフォルトの名無しさん
17/05/20 06:58:20.85 S1Z+OH1L.net
IniFile使って初期化ファイルに"a\\b\\c\\r\\z"と書き込んで読み出してみたら
"a\\b\\c\r\\z"になっててハマったという愚痴

239:デフォルトの名無しさん
17/05/20 09:13:37.26 4bKGcQHk.net
アイデアをかっぱらうと成功者になれる。

240:デフォルトの名無しさん
17/05/20 17:53:17.49 5kEYc3L0.net
>>233
Qiita記事漁ってたらそれっぽいの見つけたけど
やりたい事ってこういう事?
Herokuで単純なrubyスクリプトを定期的に実行する
URLリンク(qiita.com)

241:デフォルトの名無しさん
17/05/20 18:12:45.66 abd2HxZJ.net
>>233
PythonかNode.jsでAWS Lambdaおすすめ

242:デフォルトの名無しさん
17/05/20 19:00:59.25 Gofa0r8M.net
>>239
それは見てなかった
でも最初の設定のgithub元はRailsのようだ
もっと単純にやりたい
どっちかというとこれに近いと思う
URLリンク(qiita.com)
これどおりにしても動作しなかったけど。

243:デフォルトの名無しさん
17/05/20 19:02:15.16 Gofa0r8M.net
>>240
先のステップの課題として覚えておくわ

244:デフォルトの名無しさん
17/05/20 22:54:23.09 Gofa0r8M.net
233の続き
誰かが間違いを指摘してくれることに望みをかけてここに公開する
244のqiitaを参考にしているのだけど
やったこと
githubは
URLリンク(github.com)
これからherokuの方へdeploy
そうすると
URLリンク(aiue01.herokuapp.com)
このAplication errorのページになる
herokuはheroku/rubyのBuildpacksを適用
何かが足りないか間違えてるか
それとも全く勘違いなことをしているのか
わからない 👀
Rock54: Caution(BBR-MD5:b95868ef2c0ed5e765a4d10ada4cf


245:289)



246:デフォルトの名無しさん
17/05/21 01:32:34.60 Fqssqcja.net
>>240
Pythonスレで言いなよ

247:デフォルトの名無しさん
17/05/21 02:01:38.54 1evlh7eH.net
Herokuの説明書を読んだら?
それか、自分が書いたファイルに、1行ずつ、p を書いて、
変数の内容を表示するとか
まず、どこでエラーが起きたのか、切り分ける。
それがデバッグの基本

248:デフォルトの名無しさん
17/05/21 07:01:26.49 kt8opZkV.net
>>245
まぁな

249:デフォルトの名無しさん
17/05/21 21:55:20.21 kt8opZkV.net
24時間経っても>>243の応答が無いのでリンク先は削除しておきます
これからレスをしてもらってもすぐには見れないと思うので。

250:デフォルトの名無しさん
17/05/22 08:26:38.46 oFkfOiZj.net
>>206
これはScalaの有名な人だね。調子こいたことを言ってMatzにたしなめられることが複数回あったようだから、逆恨みしてるんだろう。
なお有名な言語の作者たちは互いに尊敬しあってるよ。一流ってそういうもの。

251:デフォルトの名無しさん
17/05/22 21:31:51.11 fASqKLCq.net
1.8.xの頃の拡張ライブラリを最近の2.x.xで使えるように改造したいのですが
Rubyの各バージョン間の拡張ライブラリのインターフェイスの差異がまとまっている資料とかないですかね?

252:デフォルトの名無しさん
17/05/22 23:55:24.58 ENAWgACr.net
『Rubyレシピブック 第3版 303の技』という本を書店に残っているのを偶然見つけたのですが
Ruby1.8~1.9、JRuby1.5を対象にしているとあり
現行の2.2系、2.3系と互換性があるのかが分からず購入を迷っています
またもしあれば1.8系、1.9系、2.xx系以降の互換性や追加機能をまとめたサイトなどがあれば教えて欲しいです

253:デフォルトの名無しさん
17/05/23 00:15:49.33 9lq+WTHz.net
プロジェクトマネージャーとしては絶望的にセンスが無いとは思ったことはある。

254:デフォルトの名無しさん
17/05/23 01:52:19.84 OOs1u3xZ.net
Ruby2.0なら使えるんだけどね
それ以前のは「どうして使えないのか」「どこを変えればいいのか」の手間と情報の加減上全く勧めない
問題は2.xの逆引きレシピ本のいいのが現行では無いことだが

255:デフォルトの名無しさん
17/05/23 05:16:29.68 ZEoEO5ey.net
レシピ本には、そんな長いコードは載っていないから、
動かなければ、自分ですぐに修正できるのでは?
数値を3桁ずつ、カンマ区切りにする関数は、参考になった
Railsの1日後とか、良いよな。
1.days.from_now

256:デフォルトの名無しさん
17/05/23 06:50:04.85 qRgUoCZd.net
>>248
すいませんが若気のいたりということで大目にみてもらえませんか?
日本のScala界では貴重な人材なので。
それよりMatzの講演について話そうぜ!
URLリンク(srknr.hatenablog.com)

257:デフォルトの名無しさん
17/05/23 08:14:22.26 Mb7W8Mqo.net
>>252
やっぱり2.x系のもので無いと互換性が厳しいですか・・・・・・
新しいレシピ本が出るまで見送りたいと思います

258:デフォルトの名無しさん
17/05/23 16:42:43.02 xunAucQT.net
Ruby で文字列が英数字とハイフンのみで構成されていることの確認 (バリデーション) を正規表現を使わずに実現するのに、
string.delete("a-zA-Z0-9-").empty?
っていうやり方でとりあえず間に合わせてるんだけど、他にスマートな書き方ある?

259:デフォルトの名無しさん
17/05/23 16:55:02.24 UVgxThtR.net
正規表現を使わない理由がわからないと
何言ってもそれはなしでと言われそう

260:デフォルトの名無しさん
17/05/23 16:57:40.08 nu8Noumz.net
>>256
ぱっとリファレンス見てきたけどcountに条件逆で渡した上で0か調べるってどうかな

261:デフォルトの名無しさん
17/05/23 16:59:58.40 nu8Noumz.net
ascii_only?ってメソッドあるけど完璧な動作ではないよなぁ多分

262:デフォルトの名無しさん
17/05/23 17:12:57.96 /kxvtD+k.net
>>258
おお、情報ありがとう!
こんな感じかな。
たしかに処理的にだいぶ分かりやすくなったかも。
string.count("^a-zA-Z0-9-").zero?

263:デフォルトの名無しさん
17/05/23 17:22:10.11 /kxvtD+k.net
>>257
どうしても正規表現を使わないと実現出来ない処理でもないんじゃないかと思ったのと、セキュリティ的にチェック漏れが怖いっていうのが理由かな。
正規表現に詳しくて、間違いない自信があれば正規表現でも良いんだけど、俺にはその自信がない。。

264:デフォルトの名無しさん
17/05/23 17:25:33.79 /kxvtD+k.net
>>259
たしかに ascii_only? だとやりたいことに近いけど、アンダーバーとかその他記号も OK になっちゃって、希望する判定基準とは少し違ってきてしまうんだよね。

265:デフォルトの名無しさん
17/05/23 17:28:08.27 UVgxThtR.net
>>261
deleteの独自ルールも不安だな
どっちにしろちゃんとテストコード書いとけとしか

266:デフォルトの名無しさん
17/05/23 17:43:19.80 OOs1u3xZ.net
「ヒットしてほしい正規表現にマッチするかどうか」で書かれてたほうがよっぽど漏れがないし間違いがないしコードとしても明瞭で安心すると思うがね
countの引数の仕様は知ってる? あれってtrというUNIXコマンドと一緒なんだよ
アレに頼って長々書かれるよりは正規表現のほうがいいな俺は

267:デフォルトの名無しさん
17/05/23 18:18:44.65 /xgNS39l.net
OK な文字列以外はどんな含まれ方をしていようと一概に弾くように、delete とか count で OK な文字列だけを列挙する指定の仕方を考えたんだけど、よく考えるとそれでも抜けがある可能性は依然として否定できないわな…
正規表現を使うか使わないかは宗教的な話になりそうだけど、テストコードを書けっていうのはまさしくその通りだわ。

268:デフォルトの名無しさん
17/05/23 23:55:10.87 ZEoEO5ey.net
JavaScript では正規表現だな
2回以上、同じ正規表現を使うなら、
コンパイルを1回だけして、使いまわすことで、やや速くなる

269:デフォルトの名無しさん
17/05/24 00:37:22.71 NrN6swuV.net
evenArry, oddArry = [], []
ARGV.each_with_index{|arg, i|
evenArry.push(arg) if i.even?
oddArry.push(arg) if i.odd?
}
evenArry.zip(oddArry){|x, y| print [x,y] } if evenArry.size < oddArry.size
oddArry.zip(evenArry){|y, x| print [x,y] } if evenArry.size >= oddArry.size
puts
このコード、Pythonのzip関数は短い方に合わせてくれるのに、rubyのzipメソッドが長い方に合わせて、
短い方の不足分に勝手にnil入れるから、長さ比べて短い方でzipメソッド使うようにしてるんだけど、nilを省くメソッドあったら一行浮く。
何か良いメソッド知りませんか?

270:デフォルトの名無しさん
17/05/24 01:20:48.51 n3q9H30C.net
>ruby tes.rb 11 22 33 44 55 66 77
["11", "22"]["33", "44"]["55", "66"]
という出力をしてほしいだけなら
ARGV.each_slice(2).take_while{|e| e.size == 2}.each{|a| print a}

271:デフォルトの名無しさん
17/05/24 03:39:14.16 oHzoLy1g.net
>>267
compact

272:デフォルトの名無しさん
17/05/24 09:26:39.05 Qxrl1z8p.net
>>268
おお!
次世代言語スレで紹介して貰ったやつのエラー出ない版ですね?
そっちが動くならそっちが良いですね。
>>269
compactですか。
まさに小さい方に合わせるっぽいメソッド名。
両方コードで試してみます。
ありがとうございました。

273:デフォルトの名無しさん
17/05/25 13:14:51.22 LTbJxhuY.net
pg gemをbundle installするとこける
gem install では通るんだけどなんでかな

274:デフォルトの名無しさん
17/05/27 04:40:36.04 SdHoYqqp.net
rubyからWin32APIのGetLastErrorを使用したいんだけどエラーが出てしまう。
どうしたらいいか教えてください。。
module WIN32API
extend Fiddle::Importer
dlload 'C:\\Windows\\System32\\user32.dll'
extern 'short GetKeyState(int)' #こっちはOK
extern 'char* GetLastError()' #こっちはNG
end
--以下エラー
cannot find the function: GetLastError() (Fiddle::DLError)

275:デフォルトの名無しさん
17/05/27 05:15:11.73 6GQ16ypm.net
「user32.dll getlasterror Win32API」で検索!
Library - Kernel32.lib
DLL - Kernel32.dll
には、有りそうだけど、user32.dll には、あるかどうか分からない
DllImport("kernel32.dll", SetLastError = true)

276:デフォルトの名無しさん
17/05/27 06:45:17.62 SdHoYqqp.net
>>273
早速ありがとうございました!
無事読み込めました。。。
参考までに修正版のコードはこちらです。
module WIN32API
extend Fiddle::Importer
dlload 'user32.dll','kernel32.dll'
include Fiddle::Win32Types #DWORDとか使えるようにする
include Fiddle::BasicTypes
extern 'DWORD GetLastError()'
end
WIN32API.GetLastError

277:デフォルトの名無しさん
17/05/27 10:22:39.80 SdHoYqqp.net
すみませんもう一つ教えてください。
SendInputを使って最終的にはマウス入力/キーボード入力を行おうと考えていますが
うまくいきません。何がおかしいのでしょうか。。
---
module WIN32API
extend Fiddle::Importer
dlload 'user32.dll','kernel32.dll'
include Fiddle::Win32Types
extern 'int SendInput(int,void* ,int)'
extern 'DWORD GetLastError()'
MOUSEINPUT=struct(["DWORD type","int dx","int dy","DWORD mouseData","DWORD dwFlags","DWORD time","ulong dwExtraInfo"])
end
module SendKey
INPUT_MOUSE = 0x00000000
MOUSEEVENTF_ABSOLUTE = 0x00008000
MOUSEEVENTF_MOVE = 0x00000001
end
input = WIN32API::MOUSEINPUT.malloc
input.type=SendKey::INPUT_MOUSE
input.dx=500
input.dy=500
input.dwFlags=SendKey::MOUSEEVENTF_ABSOLUTE|SendKey::MOUSEEVENTF_MOVE
p WIN32API.SendInput(1,input,28) #出力:0 備考:sizeof(MOUSEINPUT)=28
p WIN32API.GetLastError #出力:87(パラメータが間違っています。)
-----

278:デフォルトの名無しさん
17/05/27 10:27:11.94 67vlwxuq.net
今回の件と関係あるかはともかくWIN32APIってもう非推奨じゃなかったっけ?

279:デフォルトの名無しさん
17/05/27 12:01:00.86 pz2epJPP.net
rubyは32bit版なのかな?

280:デフォルトの名無しさん
17/05/27 12:46:05.61 SdHoYqqp.net
Win32API非推奨なんですね。。
ググってみた感じいまはWSHSHELLとかでしょうか?
ちなみにRubyは64bit版を使ってました。。。

281:デフォルトの名無しさん
17/05/27 13:10:51.88 reRwAhMh.net
非推奨とか言い出したらそもそもWinでRuby自体がアウトだから気にしなくてよい

282:デフォルトの名無しさん
17/05/27 13:21:59.20 olQh0zw8.net
>>272 >>274
そもそもGetLastErrorは最後に呼んだAPIのエラーだから
rubyみたいに前後の行の間で何呼ばれるかわからん環境でまともなエラーとれるとは思えない

283:デフォルトの名無しさん
17/05/27 14:00:44.16 4VVIqOhp.net
意図するライブラリがロードされていない or 意図しない関数がコールされているんじゃないか?
C/C++で同じ動作をするコードを書いて何のファイルのどの関数が呼ばれているのか調べた方が良さそうな気も
Rubyから呼ぶ場合に限らずその辺の管理は全てプログラマ任せの上に純正のSDKやIDEの支援も得られないしな
あとWindowsAPIを叩いて作業するならWindowsSDKはほぼ必須

284:デフォルトの名無しさん
17/05/27 15:09:14.53 6GQ16ypm.net
>p WIN32API.GetLastError #出力:87(パラメータが間違っています。)
カッコを付ければ?
p WIN32API.GetLastError()

285:デフォルトの名無しさん
17/05/27 15:15:15.96 pz2epJPP.net
>>278
64bitだと構造体のサイズが違うよ

286:デフォルトの名無しさん
17/05/28 10:53:17.15 pzrDxs4u.net
case文でgetsを使って入力を受け付けたいとき日本語ってどうするんです?
hand = gets.chomp
case = hand
when "あ"
puts "グー”
.
.
.
else
puts "反則"
end
例えばこんな感じの簡単な文だけど
"あ"の中身の部分を1にしたり
そもそも .to_iにして数値にしたりすると
ちゃんと働いてくれるから
そもそも日本語入力はなにかいるんじゃないか、もしくはできないんじゃないか
と思っていて、検索してもわからんのです

287:デフォルトの名無しさん
17/05/28 11:23:43.03 eyTJlEl0.net
case = handってなんだ

288:デフォルトの名無しさん
17/05/28 11:38:33.26 nOYRngqN.net
print "input anything and Enter> "
input = gets.chomp
puts "default file encoding:"+ __ENCODING__.to_s
puts "actual external encoding: " + input.encoding.to_s
実行結果 (Windowsコマンドプロンプトで単に ruby test.rb と実行)
input anything and Enter> nya-
default file encoding:UTF-8
actual external encoding: Windows-31J
ということで文字列のエンコーディングが違うので別物だと思われてる
Windows-31Jの「あ」とUTF-8の「あ」は比較上別物になる
irb> str = "にゃー"
=> "にゃー"
irb> str.encode("Windows-31J") == str.encode("UTF-8")
=> false
「Rubyの文字エンコーディング」について調べて自分で理解するんだ
これはここでちらっと「おまじない」を述べても逆に泥沼になるぞw

289:デフォルトの名無しさん
17/05/28 11:47:56.51 pzrDxs4u.net
>>285
ごめん=はいらんね
まちがえて打ってしまった。それは元の方では書いてない
>>286
よくわかんないけど、とりあえず先に進むよ。
逆に今、文字エンコーディングについて調べても理解出来る自信がないし、
おまじない、もいづれ出てくるかもしれない。
わいみたいな本物初心者にも答えてくれて
ふたりともありがとう。

290:デフォルトの名無しさん
17/05/28 11:52:43.05 pzrDxs4u.net
しまった「いづれ」ではなくて「いずれ」だった、なんかこういうミスのほうが
恥ずかしい・・・
しかし文字エンコーディングの件で気になったけど
それは文字コードを指定している場合でも・・・?
なんか最初にそれこそ、そこをおまじないと言っているのかもしれない
けど、# coding: utf-8
みたいなの書いとけって言われるじゃない。
文字化けしないようにとか、そんな感じで。

291:デフォルトの名無しさん
17/05/28 11:55:12.07 rKaPw5GE.net
狭義的にはスクリプトファイルのエンコーディングと外部入力文字列のエンコーディングを揃えないといかん
STDINのエンコーディングをスクリプトファイルのエンコーディングに合わせるのが楽だと思う
ruby -E UTF-8 hoge.rbでスクリプト起動しろ
getsで入ってくる文字列が全部UTF-8になる

292:デフォルトの名無しさん
17/05/28 12:39:36.05 pzrDxs4u.net
>>289
ちょっとわかんなかった。
色々言っていることの推測はしたんだけど、
そんなファイルねーよ!からはじまり
そんなエンコーディングネーム知らんといわれ、ランタイムエラーといわれ
あ、コマンドプロンプトって文字コードシフトJISとかいうのだから
あかんのかな?って思って
utf-8にしてみたけど、判定がelseに行くのだった。
あははは。
わざわざありがとう。でも、私初心者だからだめみたいだぜ。
おまえなんかwhile文の勉強でもしてなさいってことだと思うわ。

293:デフォルトの名無しさん
17/05/28 12:55:41.60 cMT8Sa9/.net
コマンドプロンプトなら"chcp 65001"しないと駄目なんじゃない?
ちょっと手許にwindows機ないからわかんないけど

294:デフォルトの名無しさん
17/05/28 13:34:17.41 mQ0E20+1.net
cmd exe の chcp65001 はバグがあって使い物にならない

295:デフォルトの名無しさん
17/05/28 15:22:51.06 aUadI2mt.net
VSCode使っている人いない?
デバッグモードでのgetsのって値入力処理はどうすればいいのか分からなくて困っている。

296:デフォルトの名無しさん
17/05/28 16:49:16.07 rKaPw5GE.net
STDIN/STDOUTのねじ曲げは現行のIDEでVSCode「でだけ」できない
素のRubyではできるのにね
require 'stringio' if $DEBUG
$stdin = StringIO.open("にゃーん".encode("Windows-31J")) if $DEBUG
puts "You are a cat" if gets.chomp == "にゃーん".encode("Windows-31J")

297:デフォルトの名無しさん
17/05/28 17:18:28.96 5PeSitGp.net
pythonのやつをパクるしかない

298:デフォルトの名無しさん
17/05/28 17:40:48.08 MqtJ47ff.net
極薄view用意して、そこだけ手動でテストすればいいよ

299:デフォルトの名無しさん
17/05/28 18:57:58.47 QwjzxVOm.net
コマンドプロンプトは、Windows-31J, CP932 か
PowerShell, PowerShell_ise は、UTF-8 じゃないの?

300:デフォルトの名無しさん
17/05/28 22:05:31.04 OcOYN7N8.net
windowsで真面目にRuby使うならコマンドプロンプトのままじゃ辛い
コンソールエミュで良さそうなの探して入れると良いよ

301:デフォルトの名無しさん
17/05/29 00:55:58.04 +B2zTCTS.net
いやVirtualBoxの上のLinuxにSSHクライアントで接続した方がいいよ

302:デフォルトの名無しさん
17/05/29 01:06:21.43 zS+u+zXg.net
出力はワイド文字に変換してくれるのでpythonみたいにchcp 65001しなくていいから楽ちん。
入力は気を利かせてくれてないから、$stdin.set_encodingで設定したほうがいいかな
あとはARGVとかDirで取得するファイル名とかをデフォルトでUTF-8にしてくれたらうれしいな
全般的にWindowsに気を利かせてくれているけど、そのノウハウをまとめたページがないから
不親切に見えるだろうな

303:デフォルトの名無しさん
17/05/29 13:33:58.90 SjlSz+oM.net
ネットにはデマ情報がいっぱい残ってるので正しい情報をメモ
cmd で UTF-8 使える方法 (chcp 65001 について) URLリンク(nazochu.blogspot.jp)
mintty URLリンク(dogmap.jp)
mintty URLリンク(tanakh.jp)

色々紆余曲折あったけど Git インスコして GitBash 使うのが一番楽っぽい
URLリンク(git-for-windows.github.io)

304:デフォルトの名無しさん
17/05/29 13:49:40.20 lxl3zEmg.net
>>301
こういうWindows版を使ったこともなさそうな人がおせっかいで書く情報が迷惑でしかない

305:デフォルトの名無しさん
17/05/29 18:54:37.47 8MRHN7xk.net
ルビとRubyの話
なぜWordのデフォルトフォントサイズは「10.5」なのか? - ねとらぼ
URLリンク(nlab.itmedia.co.jp)

306:デフォルトの名無しさん
17/05/29 19:14:35.71 ZV+SCRde.net
今回の民法改正、ソフトウェア受託開発の場合、(検収後ではなく)バグ発見後1年瑕疵担保責任があるということで、地獄かよ、と思ったが、
元々問題が起きがちな受託案件がビジネス的に成立しなくなることで強制的に業界再編につながるなら良いことかもと思うようになった。
一部で地獄を見ても。
URLリンク(twitter.com)

307:デフォルトの名無しさん
17/05/29 19:16:13.40 ZV+SCRde.net
ニュース - 改正民法が成立、「瑕疵担保責任」などシステム開発契約に影響大:ITpro
URLリンク(b.hatena.ne.jp)

308:デフォルトの名無しさん
17/05/29 19:33:27.14 00NVazHZ.net
>>305
Ruby終了の教えらせ?

309:デフォルトの名無しさん
17/05/29 19:34:02.42 00NVazHZ.net
お知らせ

310:デフォルトの名無しさん
17/05/29 21:37:42.32 LfszU9UW.net
契約自由の原則は消えないんだよな
URLリンク(www.techvan.co.jp)
rubyとかだと小さいシステムやプロトタイプが多いだろうから
契約に漏らさず明記しておくのが大事か
5年とかもう使えないようなバージョンとか出てきて作り直しになりかねない

311:デフォルトの名無しさん
17/05/29 21:50:13.10 0c0Yo+hh.net
個々の契約のほうが優越なのだからふつうはそんなに問題は起きない
最低最悪のラインを決めただけ
いちばん騒いでるのが働いたことのない人といういろいろ縮図なやつだ

312:デフォルトの名無しさん
17/05/29 22:06:06.39 LfszU9UW.net
>>309
最低最悪ではなく、平均では?
労働基準法みたいな契約より優先されるものが最低最悪で。

313:デフォルトの名無しさん
17/05/30 09:22:17.83 hVv0NVyW.net
客が瑕疵担保責任法の法改正を知ってくると思うから、今後5年無償保証をお願いされるだろう
営業がそれでも仕事を取ってこれるか?たぶん無理だろう。無限の直していたら赤字になる。
こういう保守に弱い言語、ころころ仕様が変わる言語は仕事として発生しなくなってくる。
これは変わり目だ。お前らも早く逃げたほうがいいぞ。RubyやPHPなど動的言語は確実に廃れる。
保守に強い言語のみ生き残れる。

314:デフォルトの名無しさん
17/05/30 10:25:03.46 gxWnkgCC.net
客が瑕疵担保責任法の法改正を知ってくると思うから、今後5年無償保証をお願いされるだろう
営業がそれでも仕事を取ってこれるか?たぶん無理だろう。無限の直していたら赤字になる。
こういう保守に弱い言語、ころころ仕様が変わる言語は仕事として発生しなくなってくる。
これは変わり目だ。お前らも早く逃げたほうがいいぞ。RubyやPHPなど動的言語は確実に廃れる。
保守に強い言語のみ生き残れる。

315:デフォルトの名無しさん
17/05/30 13:25:40.32 KV35bhXw.net
保守に強いとか関係ないだろ
結局は技術力が高かろうと
エラーは出るからな

316:デフォルトの名無しさん
17/05/30 13:27:12.19 52EkKXSJ.net
>>313
これコピペ

317:デフォルトの名無しさん
17/05/31 12:38:22.60 nyiBm3r5.net
こぴぺちぱー
スレリンク(php板)

318:デフォルトの名無しさん
17/05/31 23:19:57.63 X74K7lOs.net
るびまの ePub 版ってないの?
たまに話題に出てたり個人的にやってる人はいるみたいだけど。

319:デフォルトの名無しさん
17/06/01 03:04:21.50 TLZ7U8Co.net
>>308
民法程度なら上書き可能……客の説得が面倒になる、という話だけど
ライブラリのバージョン変えても動くこと、という要件は突っぱねれば5年は持つわね
そりゃどこぞの誰かさんが書き換えてるのに同じように動くかどうかわかりませんわ
こっちが確認したのは特定のバージョン決め打ちでっせ、とね
>>312
C#とJavaは耐性強そうだ
Pythonはダメだ(2のを3でも対応する系クソゴミ改修案件をやった人の意見)、グイドは自称するほど互換性を大事にしねぇ
「もう二度とやりません」と、Cバインディングをぶっ壊したのととString-Bytesでいいやがったんで、次もやる

320:デフォルトの名無しさん
17/06/01 12:09:40.74 o/dQD8LP.net
>グイドは自称するほど互換性を大事にしねぇ
2から3の書き換えの感想でそんなこと言ってるのか
頭沸いてんな

321:デフォルトの名無しさん
17/06/01 17:59:48.16 VtNuZqDV.net
>>316
そんなことできるのね
チャレンジしようぜ

322:デフォルトの名無しさん
17/06/01 18:02:47.78 VtNuZqDV.net
あっ 勘違いしてた
「るびま」と書いてあったな
オレが関心あるのは「るりま」の方だった

323:デフォルトの名無しさん
17/06/01 18:14:59.52 n7u6yBLf.net
るりまは元が html5 になってるみたいだし、
メタ情報をちょろっと追加してパッケージングすりゃ ePub になるよ。
そんなに難しいことじゃない。

324:デフォルトの名無しさん
17/06/02 09:51:10.10 8FvNWFqN.net
>>321
教えて欲しいんだけど
例えば2.0.0のバージョンのドキュメントをまとめてダウンロードするにはどこに行けばいいんだろ?
URLリンク(www.ruby-lang.org)

325:デフォルトの名無しさん
17/06/04 07:56:22.18 4B60732N.net
書き込みできない?

326:デフォルトの名無しさん
17/06/04 07:57:07.55 4B60732N.net
322はできることなら削除したい
もうレスを確認する為にここに来ることはない

327:デフォルトの名無しさん
17/06/06 16:52:05.29 fbenvtCdR
プログラミング初心者です
rubyの基礎を学習サイトで学び始めているのですがサイト上ではなく自分のpc上でコードを書きたいと思っているのですが
windows xp で開発環境を整えることはできますか?サービス外で事実上不可能とかありますか?
質問がおかしかったらすいません

328:デフォルトの名無しさん
17/06/06 19:13:48.69 wrPFF999.net
windowsでirb使うとき何か一文字打たないと
↑キーで履歴が出ないんだけど何とかならない?
ググってreadlineとかbinに入れてみたけどダメだった

329:デフォルトの名無しさん
17/06/08 13:19:43.68 oPuedIYN.net
うちはでるよ

330:325
17/06/08 21:11:29.66 cdZWf+lt.net
マジか。>>326はActiveScriptRubyだがいろいろ試した結果(環境はWin7 32bit)
ActiveScriptRuby 出ない
+ readline.dll 出ない
RubyInstaller 出ない
+ readline.dll 出る

331:デフォルトの名無しさん
17/06/16 16:28:56.85 qOsPLqtM.net
うちのRubyInstaller2(Win8.1)ではirbやpryは大丈夫
jirb(JRubyのirb)は何か一文字打たないと↑が反応しない
あとruby -pe ""も何か一文字撃たないと駄目な模様

332:デフォルトの名無しさん
17/06/17 13:52:50.98 CkD5o1Z0.net
これからrubyをやる意味ってなにが考えられますか?

333:デフォルトの名無しさん
17/06/17 14:36:25.65 qMkdrUOQ.net
過去に一度だけプチブームになったことがあったんだけど
その原因と、そのあと下火になった理由を探求するとかかな
駄目と分かっている人は初めから駄目だよ、って言ってたんだけど
残念ながら世の中の全員が賢明というわけではなかったから
やはり、一過性のブームとか、時代でとか、そういうのはあ


334:るもので 今から追体験したければRubyはよい選択だと思うよ ただ、さっきも書いたけど、全員が間違ったわけじゃないんだよ 半数以上かそれ以上の人はダメって初めから言ってたんだよ あとはMarzの勉強かな あの人、頭の弱い人を騙すことに関してはものすごい技術を持ってるから そういうのに興味があればって感じ 具体的には「モノ」を中心に考えさせて、大事なものを見えなくさせたり 一見効率的に見えて実は遠回りっていう「局所解」に追い込んだりするその手法 おもしろいのはRuby3.0をどうするのか、なぜか今本人も困ってるところ 人を呪わば穴二つって言うように、他人を追い込むツールを作ってるつもりで 自分自身もまた追い込まれるってのは在るみたいね



335:デフォルトの名無しさん
17/06/17 15:18:40.82 KrWMylVm.net
具体論がまったくないところがすごいなw

336:デフォルトの名無しさん
17/06/17 16:22:03.43 b4+zDofQ.net
>>330
日本人の場合
あらゆる言語の中で一番易しいプログラミング言語
(子供用のおもちゃを除く)

337:デフォルトの名無しさん
17/06/17 16:52:41.05 CkD5o1Z0.net
そうですか
GUIはどれを使えばいいですか?

338:デフォルトの名無しさん
17/06/17 17:23:28.18 RyxkXkzJ.net
どうしてもやりたいならjruby+jrubyfx楽よ

339:デフォルトの名無しさん
17/06/17 17:39:53.37 ZEU2lDOZ.net
この時点で、rubyだめってヒシヒシ伝わる。

340:デフォルトの名無しさん
17/06/17 18:11:55.35 n14YEU6w.net
>>331
初見のコピペ

341:デフォルトの名無しさん
17/06/17 18:16:55.55 n14YEU6w.net
>>334
rubyでは向いてないからGUIやめとけ
pythonでGUIやるといいよ

342:デフォルトの名無しさん
17/06/17 19:44:55.62 KrWMylVm.net
>>331 の文章とか論理展開とか見てて何かに似てるなーと思っててずっと思い出せなかったが
やっと思い出した
これって、「ゲンダイ」の論調に似てるんだ!w

343:デフォルトの名無しさん
17/06/17 19:46:39.93 KgLuH5ks.net
まつもと氏は合理主義のようだけどGUIにはそういうのは及んでないんですか?

344:デフォルトの名無しさん
17/06/17 20:05:28.72 x959dLvJ.net
>>340
まつもと氏の行動原理は「IT土建屋死ね」
だからWinでのGUI開発でRubyが広く使われるようなことはあってはならない

345:デフォルトの名無しさん
17/06/17 21:40:11.74 83r52Wsn.net
>>330
普通にメジャー言語だから
そのメリットはあると思うけど
他のメジャー言語でも別にいいが
日本語情報が豊富なのが良い

346:デフォルトの名無しさん
17/06/17 21:41:18.42 83r52Wsn.net
>>334
Tkが(旧)標準
見た目が簡素だが覚えやすいので
最初はこれがオススメ

347:デフォルトの名無しさん
17/06/17 21:42:43.07 83r52Wsn.net
>>331
何がダメでどうすればいいのか言わないなら
たんなる代替なき批判に見える
あとMarzってなんだよ!

348:デフォルトの名無しさん
17/06/17 21:44:31.17 83r52Wsn.net
>>340
Tkを標準にしたのは合理的だと思うけど?
もしPythonに移ってもTkは使えるからね

349:デフォルトの名無しさん
17/06/17 22:00:59.26 qMkdrUOQ.net
あぁごめんな
ただあの人のインタビューとか読めばわかるけど
逆張り逆張り言ってる
あの人自身もRubyの筋が良いとかメインストリーム的な思想であるとは
考えてないんだよ
ただ、自分の人生の中で逆張りした場合にうまくいくことが多かったので
逆張りし続けているんだとか
だからRuby3.0でも逆張りの一種として
静的型の機能は導入しない方向を検討しているんだろうな
ただそう何度も逆張りが上手くいくとは思わないし
逆張りはしょせん逆張りだろ?あだ花というかなんというか
そういうこともあって結局Rubyはプチブームで終わった現状があるわけだし
変なことして注目を集めることはあってもそれは一過性だよ、芸人じゃあるまいし
しかも逆張りしたときに自分にとって都合がよいことが多かったってだけで
使い手のことは別に考慮されてないんだよなー

350:デフォルトの名無しさん
17/06/17 22:03:22.44 KrWMylVm.net
>>346
あいかわらす週刊誌レベルの根拠ない批判しかできないんだなー

351:デフォルトの名無しさん
17/06/17 22:07:45.91 qMkdrUOQ.net
普通に考えたら静的型を導入しない理由は全くないんだよ
ただ、あえて理由を挙げるとしたら、最初Rubyは動的型で出発したから
いまさら静的型の機能を入れ込むのは非常に難しいってことなんだよ
過去との互換性もあるし、そういうコミュニティーになっちゃってるしな
もちろんこれは動的型に「逆張り」した結果なんだろうけど
あとあと苦しいわなー

352:デフォルトの名無しさん
17/06/17 22:10:52.30 KrWMylVm.net
>>348
もうちょっと言語について勉強してから長文で語ってくれないかなー
正直今のレベルではゲンダイにも載せてもらえないレベルのただの妄言だしさ

353:デフォルトの名無しさん
17/06/17 22:22:53.33 qMkdrUOQ.net
ただここまで静的型が「ハマる」とは俺も想像してなかったし
Matzも想像できなかったんじゃろな
何だか知らないが、静的型はすべてにおいて丁度よい感じになってるんだよな
神がかった偶然がいくつも重なってるかんじで、最適解になってる
この牙城はなかなか崩せないよ、一つや二つのメリットじゃないからね
なんでこんなに上手くいったんだろうね

354:デフォルトの名無しさん
17/06/17 22:26:25.66 83r52Wsn.net
>>348
>普通に考えたら静的型を導入しない理由は全くない
そんなことない
Python、JavaScriptなど
メジャーな言語が導入してるんだから

355:デフォルトの名無しさん
17/06/17 22:31:07.35 KrWMylVm.net
URLリンク(hissi.org)
てかこいつ変な人間だったわ
相手しちゃいけないタイプ

356:デフォルトの名無しさん
17/06/17 22:59:47.96 qMkdrUOQ.net
まず動的型の根本的な慢性的ともいえる文法上の悩みの種は
どうにかして変数宣言をなくしたい欲求にかられるって点にある
動的型であるから変数宣言に型を書く必要がないので
なんとかして変数宣言自体をなくしたいっていう
まぁ分からなくもない
しかしながら変数宣言には変数の型を決める役割があるのとは別に
「変数のスコープを決める」という役割もあったわけで
安易に変数宣言を削除してしまったRubyやPythonのような言語は
大体において変数のスコープが奇妙なことになっているのじゃ
例えばRubyにおいては「@」であったり、ブロックローカル変数であったり
Pythonであればnonlocalであったり、なにか場当たり的だし
実質的な変数宣言の一種のような気もする
あと、if文や繰り返し文の後ろに続くブロックなどでスコープを持てなくなって
しまったりもな、なんせ、文法上、宣言を代入で代用しているから
代入と宣言の区別がつかないような状態で、かゆいところに手が届かない
だから結局、実は変数宣言は有ったほうが良いんじゃね?ってなって
ならついでに型も書けばってなって、今はさらにこれに加えて
型を書きたくなければ型推論使えば?ってことにまでなっちゃってる
型推論使えば変数宣言をする手間はほぼなくなるし
スコープを細かく制御できるようになるんだから
もう変数宣言が無いことはメリットにならなくなってしまった
まぁこんなのは氷山の一角でジャブだ
コンパイラによる型チェック云々言いたくなるところだがそれ以外にも
文法上の問題としてこういうのもあるということ
その他にも実行性能であったり、ドキュメントの自動生成であったり
リファクタリングの容易さであったり
IDEの入力補完etcのサポートのしやすさであったり
人間も型があったほうが読みやすいんじゃないかとか
結局コメントで型を書いてるんじゃね?とか
色々あるわな
なんか複合的なんだよ
動的型がここまでケチョンケチョンになるとは流石に想像できなかったわ

357:デフォルトの名無しさん
17/06/17 23:00:37.97 KrWMylVm.net
URLリンク(hissi.org)
はいはい、もう君の素性はバレてるよ

358:デフォルトの名無しさん
17/06/17 23:04:50.91 qMkdrUOQ.net
ただ動的型にも良い点があって
「処理系の実装が楽」
しかしこれも実用性を考えて突き詰めていけばJSのV8エンジンのように
加速度的にむしろ大変なことになるというね
とにかく旨みが無い

359:デフォルトの名無しさん
17/06/17 23:05:43.09 KrWMylVm.net
URLリンク(hissi.org)
はいはい、もう君の素性はバレてるよ

360:デフォルトの名無しさん
17/06/18 00:20:30.41 lJ0QohrH.net
LISPみたいに動的型でも宣言ある言語の方がスコープが分かりやすい

361:デフォルトの名無しさん
17/06/18 02:54:31.67 MwiRGqjx.net
動的型付けでダックタイピングみたいに
組みやすくなってるメリットがあるから
実際Ruby以外にもPerl、Python、PHPの
P言語はみんな動的型付けになってる
小規模Webサービスのサーバサイド言語
としての用途には動的型が合ってる

362:デフォルトの名無しさん
17/06/18 07:50:58.11 ppLsekVC.net
>>358
何か勘違いしてるみたいだけど、ダックタイピングっていうのはオブジェクト指向言語の実装手法の一つで、プログラマにメリットなんかないよ
特にRubyだと多態をダックタイピングに任せるのは嫌われる傾向があって
無意味でも空のメソッドを定義しておいて継承したりするし

363:デフォルトの名無しさん
17/06/18 08:09:30.26 ppLsekVC.net
ちなみに、Rubyでダックタイピングが好まれないのはドキュメントよりもコード読めという文化のせいだと思ってる
ダックタイピングだと「このパラメータにはアヒルを渡してくれ」じゃなくて
「このパラメータにはアヒルのように歩きアヒルのように鳴くものを渡してくれ」といちいちドキュメントに書かなきゃいけない
(静的型になる前の)Pythonはドキュメントを重視する文化だから実際そういうドキュメントの書き方をすることもあるんだけどね
Rubyだとそれを避けるために無意味とわかっていても空のスタブとしてアヒルクラスを定義しておいて「アヒルを渡してくれ」と書くわけ


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch