20/01/04 01:17:09.19 X7t3Qsuc0.net
Rubyの絵本、2008
たのしいRuby 第5版、2016
3ステップでしっかり学ぶ Ruby入門、2018
かんたん Ruby (プログラミングの教科書)、2018
プロを目指す人のためのRuby入門、2017
改訂2版 パーフェクトRuby、2017
改訂2版 Ruby逆引きハンドブック、2018 (中級者向け)
Effective Ruby、2015 (中級者向け)
メタプログラミング Ruby 第2版、2015 (中級者向け)
リファクタリング:Rubyエディション、2010 (中級者向け)
RubyでつくるRuby ゼロから学びなおすプログラミング言語入門、2017 (中級者向け)
Rubyのしくみ、2014 (中級者向け)
改訂4版 基礎 Ruby on Rails、2018
パーフェクト Ruby on Rails、2014
Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例、2014
オブジェクト指向設計実践ガイド Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方、2016
Seleniumデザインパターン&ベストプラクティス、2015
3:デフォルトの名無しさん
20/01/04 01:17:57.47 X7t3Qsuc0.net
開発環境
RDE
Windows用IDE
URLリンク(ja.osdn.net)
以下、RDEの使用説明
URLリンク(rubyde.sourceforge.net)
RDEのデバッグ機能を使う場合、設定においてデバッグオプションを「-r debug2」から「-r debug」と書き換えて、
ruby付属のdebug.rbを使うようにすること。
RDE付属のdebug2.rbは、ruby1.8用のスクリプトのため、現在のrubyのversionには使えません
サクラエディタ
Windows用高機能エディタ
URLリンク(ja.osdn.net)
以下、ruby用設定の説明
URLリンク(supportdoc.net)
Emacs
GNUの高機能エディタ
Vim
Emacsと同じぐらい有名なCUIベースのエディタ
VSCode
マルチOSに対応したマイクロソフト社製のソースコードエディタ
URLリンク(code.visualstudio.com)
4:デフォルトの名無しさん
20/01/04 01:58:51.41 HyaapUw60.net
乙です
前スレの「メソッドはオブジェクトか?」に関連してなんですが
RubyのUnboundMethodやMethodのインスタンスたるメソッドオブジェクトって
既存のメソッドと等価な複製が作れるってだけで
元のメソッドをオブジェクトにしたものってわけじゃないですよね?
たとえば、特異クラスなんかだと普段はオブジェクトじゃないけれど
class << self; self end みたいなイディオムや Object#singleton_class メソッドでオブジェクトとして取り出せるし
ブロックも &b のような仮引数を付すことでやはりオブジェクトとして取り出せるわけですが
これらとはメソッドとは話が違う
つまり「Rubyのメソッドはオブジェクトではない(~としては扱えない)」と考えるのが妥当だと思うのですが
この理解で合っていますか?
5:デフォルトの名無しさん
20/01/04 12:04:30.94 trUJS7QSF.net
今北だが
前スレの終わり方が酷過ぎてワロス
もう新スレなんだしそれ以上言うな
6:デフォルトの名無しさん
20/01/04 12:53:40.81 I8dHRpysa.net
これか
996 デフォルトの名無しさん (ワッチョイ 6265-oRfB) sage 2020/01/03(金) 21:03:06.07 ID:e4Snrs1J0
>>993
間違っているという指摘、そのものが誤りだということ
モダンな関数型言語において、すべての値(object)は第一級市民であるが
値と値との関係である適用は値ではない
したがって、そもそも値ではない適用を第一級市民ではないと否定する主張が誤りである
そんなの当たり前だよね
同様に、純粋オブジェクト指向言語において、すべてはオブジェクトであるが、
オブジェクトとオブジェクトとの間の関係であるメソッドはオブジェクトではない
したがって、そもそもオブジェクトではないメソッドを、あえて否定する>>991が誤りではないかと
たとえば、>>986 とそれにに対する反論である>>987 を改ざんして:
986 rubyって全てがオブジェクトなところがいいですよね
(ただしメソッドがオブジェクトなのは常識ですから、あえて言及しませんけど)
987 コメントはオブジェクトじゃないぞ
だったとして、それでもなお>>987を擁護する?
7:デフォルトの名無しさん
20/01/04 15:14:00.74 I8dHRpysa.net
これはメッセージとメソッドの区別が付いていない
よくあるパターン?
8:デフォルトの名無しさん
20/01/04 23:46:45.39 X7t3Qsuc0.net
Ruby には関数スコープ内に、ブロックスコープがある
関数は、外側の変数を通さない。
一方、ブロックは通す。つまり、クロージャ
C と同じの、強固な2段階スコープ!
一方、JavaScript はクロージャしかない。
関数もクロージャだから、第一級関数
その欠点は、外側の変数を通してしまうから、バグが増える。
だから、Ruby は、2段階スコープを採用したのだろう
処理を持ち運ぶ場合だけ、オブジェクトに変換すればよい
9:デフォルトの名無しさん
20/01/05 01:29:02.13 +qhlN9cW0.net
つまりRubyではメソッドそれ自体はオブジェクトではない
ということでしょうか?
10:デフォルトの名無しさん
20/01/05 01:51:26.84 CSAIgDGG0.net
>>9
メソッド自体を、独立したオブジェクトのように扱えるか?
扱えないならそういうこと。
ただ、ちょっと工夫すれば、似たようなことはだいたい実現できるから、その区別にはそれほど意味がない。
11:デフォルトの名無しさん
20/01/05 15:36:12.39 NzdiaSgk0.net
「The Ruby Programming Language」David Flanagan and Yukihiro Matsumoto
6.7 Method Objects
Ruby’s methods and blocks are executable language constructs, but they are not objects.
Procs and lambdas are object versions of blocks; they can be executed and also manipulated as data.
Ruby has powerful metaprogramming (or reflection) capabilities, and methods can actually be represented as instances of the Method class.
12:デフォルトの名無しさん
20/01/05 22:47:41.92 BPHXVrhY0.net
JavaScript 第6版、2012、David Flanagan
彼は、JS のバイブル、表紙がサイの絵の、いわゆるサイ本も書いてる!
Google などのエンジニアの机に、必ず置いてある
13:デフォルトの名無しさん
20/01/05 22:55:53.02 UM8RYdV+0.net
サイフォン?
14:デフォルトの名無しさん
20/01/05 23:56:52.37 DQgvXjWRa.net
同じ純粋オブジェクト指向言語のSmalltalkと比べてみた
Rubyのメソッドオブジェクトは要求される度に作っているみたいで持ち出し専用
Smalltalkのメソッドオブジェクトはそのものでその気になれば中身も弄れる
class Object; def foo; "bar" end end
um1 = Object.instance_method(:foo)
um2 = Object.instance_method(:foo)
um3 = um1.clone
p [um1, um2, um3].map{ |m| m.object_id }
#=> [60, 80, 100]
obj = Object.new
bm1 = obj.method(:foo)
bm2 = obj.method(:foo)
bm3 = bm1.clone
p [bm1, bm2, bm3].map{ |m| m.object_id }
#=> [120, 140, 160]
--
"Pharo Smalltalk"
Object compile: 'foo ^''bar'''.
cm1 := Object compiledMethodAt: #foo.
cm2 := Object compiledMethodAt: #foo.
cm3 := cm1 copy.
{cm1. cm2. cm3} collect: [:cm | cm identityHash].
"=>#(832658944 832658944 425444352) "
self foo. "=> 'bar' "
(cm1 literalAt: 1) at: 3 put: $z.
self foo. "=> 'baz' "
15:デフォルトの名無しさん
20/01/06 00:28:28.35 bN5NBzFy0.net
C#も、メソッドをランタイムにビルドできるんやで!
16:デフォルトの名無しさん
20/01/06 01:11:00.75 Bux8XPhea.net
いやここでのポイントはメソッドがオブジェクトなのかどうかであって
ランライムにメソッドをビルドできるかは関係ないしむしろ出来て当前
17:デフォルトの名無しさん
20/01/06 09:04:50.20 0zhzHQ2W0.net
>>14
> その気になれば中身も弄れる
それが良いことだと思わないんだけどなw
そんなことやるか?やらない。できる必要あるか?ない
アセンブラであれば、中身だろうがなんでもできる
言語というのは成長するにつれてより制限されるもの
制限といえば聞こえは悪いが、ある機能に特化することで
ミスを防ぎ、コードを書いた人のより正確に表すことができる
18:デフォルトの名無しさん
20/01/06 09:05:20.36 0zhzHQ2W0.net
、コードを書いた人の意図をより正確に表すことができる
19:デフォルトの名無しさん
20/01/06 09:24:31.96 9LVBkQo0a.net
Rubyは自分の足を撃とうと思えばそれが出来る(自由がある)のがLisp譲りの
言語持つのパワーでありある種のウリなんだけど初心者だから知らないのかな…
20:デフォルトの名無しさん
20/01/06 09:35:32.06 0zhzHQ2W0.net
> Rubyは自分の足を撃とうと思えばそれが出来る
それがいいことだと思い込んでるのがおかしい
常識に囚われ思考を放棄してる
21:デフォルトの名無しさん
20/01/06 09:35:53.64 N9H2b+k8a.net
Smalltalkの最後の例はメソッドオブジェクトがRubyのモドキと違って
現物だと端的に示すための例であって流石に普段はやらないと思うぞ!
22:デフォルトの名無しさん
20/01/06 09:40:05.07 x7xAEFKOa.net
>>20
おやおやそんなナイーブな考えじゃRailsみたいなのは永久に作れないよ?
23:デフォルトの名無しさん
20/01/06 09:48:15.44 0zhzHQ2W0.net
>>22
何も根拠がないねw
24:デフォルトの名無しさん
20/01/06 09:49:47.24 0zhzHQ2W0.net
Railsみたいなフレームワークはたくさんあるね
Rubyの機能なんて不要だったってことさ
25:デフォルトの名無しさん
20/01/06 10:00:05.37 x7xAEFKOa.net
んRailsがなければRubyが今の地位はないし
Railsの実装はRubyの黒魔術が効果的に活用されているというのは
説明不要の有名な話だと思っていたが?
やっぱり初心者だから知らないのか…
26:デフォルトの名無しさん
20/01/06 10:01:33.21 x7xAEFKOa.net
>>24
語るに落ちているよ…(´・ω・`)
27:デフォルトの名無しさん
20/01/06 10:03:22.46 ymuirMBT0.net
初心者だから「メソッドはオブジェクトじゃない」という発言に対して見当はずれな頭の悪い反論をしてたんだな
28:デフォルトの名無しさん
20/01/06 10:16:33.06 x7xAEFKOa.net
どうやら>>7のセンも濃厚っぽいな…
29:デフォルトの名無しさん
20/01/06 10:21:29.07 0zhzHQ2W0.net
>>25
Railsの実装はRubyの黒魔術が使われてる・・・事実
同等のものはRubyの黒魔術を使わなくても作れる・・・事実
30:デフォルトの名無しさん
20/01/06 10:27:39.91 x7xAEFKOa.net
>>29
他言語のRailsモドキはRailsと同等な機能もあるがすべてが等価ではない・・・事実
Railsの覇権はRailsモドキとの差異によってもたらされている・・・事実
31:デフォルトの名無しさん
20/01/06 10:30:38.61 MCXR7U+mr.net
どうやらガチで頭の残念な子みたいだねw
作れるかどうかなんて、入出力さえ十分にできればほぼすべての言語で作れるっつーのw
32:デフォルトの名無しさん
20/01/06 10:52:42.23 0zhzHQ2W0.net
作れるかどうかの話はしてないよ。
どれだけ簡単に作れるか
Railsの開発速度が際立って高いわけではない
むしろ後から追いつかれてる
33:デフォルトの名無しさん
20/01/06 11:12:38.64 x7xAEFKOa.net
>>32
アンチ隔離スレに行け!
34:デフォルトの名無しさん
20/01/06 14:44:11.25 DmV1IuhC0.net
現在使用してる教材でテストツールとしてminitest、test-unit、RSpecが紹介されてたんですが
実際のところどれを使えばいいんでしょうか?
35:デフォルトの名無しさん
20/01/06 16:19:52.25 78RinjQr0.net
>>34
Spec形式が好みならRSpec
xUnit形式が好みならminitest
よく分からないなら標準ライブラリに入ってるminitestから
36:デフォルトの名無しさん
20/01/06 18:44:57.86 DmV1IuhC0.net
ご回答ありがとうございます
とりあえずminitestでやってみて何か不都合があれば他も試してみる方針でやってみます
37:デフォルトの名無しさん
20/01/06 19:25:48.00 6twfZFtd0.net
で、最終的にはrspecになるんやろ?
もしくはrspecを横目にminitestはminitestで
これもありなんだって言い訳しながら使うw
38:デフォルトの名無しさん
20/01/07 00:37:14.85 ueOqy5pf0.net
BDD(behavior driven development) では、RSpec が標準!
宮下剛輔が作った、サーバー構築テストのServerspec も、RSpec。
JavaScript(JS) のMocha も、RSpecのコピー
基本的に、Rubyで流行ったものは、すぐに、JS, Kotlin へ移植される
39:デフォルトの名無しさん (ワッチョイ c214-DsOW)
20/01/07 03:12:30 tLIimsUP0.net
RSpecのJS, Kotlin移植版ってどれのこと?
BDDってそんなに流行ってるの?
まああるかもしれないけどxUnitの方が主流だと思うな。JUnitとか
40:デフォルトの名無しさん
20/01/07 07:26:57.50 ueOqy5pf0.net
Windows で、Ruby 2.4 から、2.5へ変えたら、
selenium webdriver を使うのに、ffi が必要になった!
でも、コードはそのまま動く
41:デフォルトの名無しさん (ワッチョイ 9233-YCNF)
20/01/07 20:57:12 9/TsdlFE0.net
必須でないモジュールが分離されていってんのやろ。
42:デフォルトの名無しさん (ワッチョイ 7fad-n+mb)
20/01/09 16:02:09 sfRV4jRV0.net
irbで(整数).object_id と入力すると(整数)*2 - 1 が帰ってくるんですが、そういう仕様なんですか?
43:デフォルトの名無しさん (ワッチョイ 7fad-n+mb)
20/01/09 16:08:04 sfRV4jRV0.net
訂正
× (整数)*2 - 1
○ (整数)*2 + 1
44:デフォルトの名無しさん
20/01/09 17:47:10.30 H5szYUtEM.net
>>39
BDDというかテストコードを自然言語に似せようとする系は、Goの台頭に伴ってすっかり廃れちゃったね
自動テストの最大の意義は入出力のスナップショットとして予期せぬ挙動の変化を検出できることにあるので、
細かい仕様をテストコードで表現しようとするよりも単純に入出力を並べた方が手っ取り早いし効果も高いんだよな
一方BDDは、網羅性や変化検出性能が不十分でも最低限大半のコードを通ってれば無いよりは遥かにマシだ、
それだけでもスペルミスのような初歩的なバグの大半は潰せるだろう、という手抜き欲求が根底にある
ところが最近は静的型が主流になっちゃってスペルミスみたいなのは起きなくなったから、BDDのようなとりあえず通すだけのテスト手法にはあまり意味がなくなってしまった
45:デフォルトの名無しさん
20/01/09 17:51:07.91 Mk2U0HaP0.net
>>44
goでテストって何使ってるの?
46:デフォルトの名無しさん
20/01/09 17:53:19.45 Mk2U0HaP0.net
これ?
Ginkgo is a BDD-style Go testing framework
URLリンク(onsi.github.io)
47:デフォルトの名無しさん
20/01/09 17:59:47.69 zp680iXY0.net
1234567890123456789.object_id
#=> 2469135780246913579
12345678901234567890.object_id
#=> 21368380
大きい整数は、無関係なID になる
たしか、整数は最適化して、オブジェクトを作っていないのじゃなかった?
どこかに、値だけを収めているのじゃ?
48:デフォルトの名無しさん
20/01/09 18:13:24.04 VxfXfT1S0.net
>>44
書き方が違うだけでSpec形式でもxUnit形式でもテストする内容は同じだぞ
RSpecじゃなくCucumberみたいなのを使ってたテストはレイヤーが違う
んでもってGoの台頭とか関係ないし
JSで一番使われてるJEST、Mocha、Jasmineの3つともSpec形式が基本
それぞれメリット・デメリットあるからそれを理解して
言語の特性や文化も考慮してから選択すればいい
49:デフォルトの名無しさん
20/01/09 18:17:48.65 sNMr72pi0.net
JavaにもRSpecみたいなのってあるんだっけ?
言語的に無理がありそうなんだけど
50:デフォルトの名無しさん
20/01/09 19:54:43.22 nuQhSBU10.net
コンパイラがスペルチェックまでしてくれるからじゃないの
未来のことはわかりません、っていう宗教観でしょ
作った時点で未来に何が起こるか全て分かるのが静的
51:デフォルトの名無しさん
20/01/09 20:26:41.00 sfRV4jRV0.net
>>47
そうなんですか
まだRubyをどう使うか勉強中の身ですが、Rubyそのものの仕組みも面白そうですね
52:デフォルトの名無しさん
20/01/09 21:53:54.80 VxfXfT1S0.net
>>49
RSpecっぽいのはSpek
RSpecとはちょっと違うけどBDDを謳っててメジャーなのはSpock
あとCucumberはJavaにも対応してる
53:デフォルトの名無しさん
20/01/09 22:05:09.38 edJ5p5Tx0.net
>>50
スペルチェックの話はテストと全く関係ないですよ
テスト以前の問題
54:デフォルトの名無しさん
20/01/09 22:54:54.76 C+kuIm3o0.net
>>53
スクリプト系言語では意味があるんだよなあ。
55:デフォルトの名無しさん
20/01/10 00:36:36.31 hCTYsry70.net
>>54
今はgoの話ですよ?
goはスペルチェックさえすればテスト不要だとでも?
56:47
20/01/10 17:27:12.96 PkgwRlbI0.net
>>51
こんなに多くの内部実装の解説本が出てる言語は、Ruby以外にない!
まつもとゆきひろ 言語のしくみ、2016
コマンドA | コマンドB
のような、パイプに似た表記で並列処理できる、新言語「Streem」のデザイン・実装
Rubyのしくみ、2014
外人が書いた本。
Cookpad の笹田耕一が作った、Rubyの実装系、Ruby1.9のRuby仮想マシンの説明
笹田耕一は今、RubyVM の仕組みを雑誌、WEB+DB PRESS で連載中
Rubyのなかを覗いてみよう!池澤あやかが「Cookpad Ruby Hack Challenge」に参加してみた
URLリンク(next.rikunabi.com)
NHK Eテレでお馴染みの、Ruby の女神、池澤あやかによるリポート。
たしか、彼女は学生時代に、Rails 合宿に参加して学んだらしい
57:デフォルトの名無しさん
20/01/10 17:29:32.05 915LIh+yM.net
一般論として、内部実装を知らないと使えないのは作り手としては恥
58:デフォルトの名無しさん
20/01/10 17:31:43.84 YP/p9xdd0.net
真顔で「わたくしはC言語を極めました」と言える人物向け
59:デフォルトの名無しさん
20/01/10 18:18:32.14 puBSVXWRF.net
池澤あやかωωω
60:デフォルトの名無しさん
20/01/10 22:32:36.44 VhdPbdF+0.net
しゅき…
61:デフォルトの名無しさん
20/01/11 13:04:33.98 e4hNIYBE0.net
rubyイスポーラー
62:デフォルトの名無しさん
20/01/11 15:44:52.50 cvQKeu200.net
n.object_id == (2 * n + 1) が成立しなくなる条件を調べて試行錯誤した結果
2進数の区切りの良い数ではないかと当たりをつけたところビンゴ
n = 0
loop do
if (2 ** n - 1).object_id == (2 ** n - 1) * 2 + 1
n += 1
else
p n
break
end
end
#=> 63
63:デフォルトの名無しさん
20/01/11 15:48:51.00 cvQKeu200.net
(2 ** 62 - 1).object_id == (2 ** 62 - 1) * 2 + 1
#=> true
(2 ** 62 - 1).class
#=> Fixnum
(2 ** 62 ).object_id == (2 ** 62 ) * 2 + 1
#=> false
(2 ** 62 ).class
#=> Bignum
Integerに統合される前のFixnumだと n.object_id = 2 * n + 1 #=> true
Bignumだと n.object_id = 2 * n + 1 #=> false
64:デフォルトの名無しさん
20/01/11 15:48:59.14 l/QLWHKHF.net
これ読め
URLリンク(i.loveruby.net)
65:デフォルトの名無しさん
20/01/11 15:51:56.31 usOdB8FH0.net
まあ、とくにきまってるわけでもないやろし、特定してもあんまり意味ないけどな。
66:デフォルトの名無しさん
20/01/11 15:55:40.95 l/QLWHKHF.net
特にここ
URLリンク(i.loveruby.net)
67:デフォルトの名無しさん
20/01/12 00:51:50.16 Vj2aFgw8r.net
頭の悪い奴がひたすらここを自分の日記帳替わりにしてんのくっそ邪魔
そんなん試行錯誤ですらねえよ
68:デフォルトの名無しさん (アウアウウー Sa05-s5Rz)
20/01/17 09:22:39 E+lfOmbYa.net
Ruby riを使おうとしても「Nothing known about ~」と出て
repl内でdocumentationを参照できないときの対処法
How do I install the Ruby ri documentation?
URLリンク(stackoverflow.com)
69:デフォルトの名無しさん (ワッチョイ 220c-muX5)
20/01/17 14:31:01 vdDSAPn50.net
東洋経済という株の雑誌の今週号は、今年こそ始めるプログラミング
プログラムの説明は初歩の初歩の初歩レベル
学習難易度がもっとも低い、覚えやすいのがruby、最も平均年収が高いのがGoと紹介
ほんとかなあ
70:デフォルトの名無しさん (ドコグロ MMd5-mgaX)
20/01/17 15:51:59 0sb73h15M.net
Goは言語自体の難易度はRubyより低い
でもGoエンジニアってGo書けるだけじゃなくてAWSやLinuxやコンテナを使いこなすことが前提なので、
オレRoRやってますウェーイ君なんかとは比較にならないくらい高い技術力と幅広い知見が求められるんだよ
彼らは様々な言語を経験してきた末に「コードなどシステムの1要素に過ぎない」という境地に到達し、
足回りも含めた全体としての柔軟性を追求した結果として、Goという面白みもクソもない「道具」を選択しているんだ
Goだけできても仕事はない
71:デフォルトの名無しさん (ワッチョイ 022c-Sfrr)
20/01/18 01:21:19 ciDfAHTw0.net
元々、サーバー側は、Ruby の1強だった!
Vagrant, Chef, Serverspec とか
数年後、
Rubyを真似�
72:オたのが、Node.js で、 Go のDocker も出てきた 先行者利益を得るためには、ビジネスでは、Ruby 1強! だから、ハーバード大学でも、小資本のベンチャーは、Rubyを勧められる 他の言語では、数年遅れる。 DSL で作りにくいし、開発が非常にややこしく、人材を集められず、費用が膨大だから、 小資本のベンチャー・起業に向かない SASS も、Rubyで始まった!
73:デフォルトの名無しさん (ワッチョイ a914-+9Wh)
20/01/18 02:07:34 w6J1AYPB0.net
つまり、Rubyはプロトタイプ用
74:71 (ワッチョイ 022c-Sfrr)
20/01/18 02:25:10 ciDfAHTw0.net
小資本で起業して、新しいコンセプトの自社サービスを開始するのに、適した言語がRuby。
スタートアップ企業だから、サイトの速度は遅くてもよい
あくまで、ベンチャーは成功しないのが基本w
Rubyは実験用言語とも言える
ところが、たまに化物みたいなサイトを生み出すのも、Ruby
Rails で作った、このサイトの速度は尋常じゃない!
他の言語では、絶対に作れないw
URLリンク(dev.to)
Ruby on Rails Part21
スレリンク(php板:103番)
75:デフォルトの名無しさん
20/01/18 02:41:28.23 AhPxC9uwa.net
これのことか?
URLリンク(dev.to)
フロントエンドの設計が優秀なのと静的コンテンツにFastly使ってるから速いって
だけで、ほとんどRails関係ないな
76:71 (ワッチョイ 022c-Sfrr)
20/01/18 03:54:28 ciDfAHTw0.net
でも、DB は、Rails でしょ?
ちょっと考えられないぐらいに、速いw
あり得ないw
だから、Ruby からは、こういう怪物が出てくるw
実験用言語だから、とんでもない事をやりたいような、面白い香具師が集まってくるw
Cookpad でも、Rubyの実装の中身を覗いてみようという変な企画にも、百人応募してくるw
他言語の香具師も面白がってやってくるw
それがRubyの面白い所w
知的好奇心がそそられて、何か新しいことに挑戦したくなる言語
77:デフォルトの名無しさん (ワッチョイ 82a5-36M6)
20/01/18 09:12:19 6Wtj4R8r0.net
>>69
アホの東洋経済はわざと因果を逆転させてるアホ集団だから気にしない方がいい
もとから年収の高い集団が内製の新言語使いだしただけだろ
要するに、東洋経済の従業員自体の年収はそんなに高くねーモン
企業内にバカしか詰まって無いから自身が取材したノウハウの全てを使ってない
だから10億プレイヤーが東洋経済にいない
同じ理由で潰れたのがbig tomorrow
78:デフォルトの名無しさん (ワッチョイ a914-+9Wh)
20/01/18 09:30:31 w6J1AYPB0.net
いやRails遅いでしょ?何と比べて速いって言ってるのさ?
79:デフォルトの名無しさん
20/01/18 10:05:38.54 Qnj8VWpB0.net
>>75
5chを荒らすことしかしてないお前が言っても説得力ゼロだ
80:デフォルトの名無しさん (ワッチョイ 5233-j5lD)
20/01/18 17:00:27 gfH5d2Um0.net
つうかそもそも、DBはRailsってどういう意味なんや?w
81:71
20/01/19 12:09:49.13 qcodQ+dh0.net
元乃木坂46 の川後陽菜のブログ
URLリンク(kawagopro.com)
上を、下のサイトで分析したら、これも、Rails だった!
URLリンク(builtwith.com)
アイドルの会員サイトの専門の、SKIYAKI が作っているけど、どおりで速いはず!
82:デフォルトの名無しさん
20/01/19 12:14:17.68 7HHjQocqr.net
×どおりで
○どうりで(道理で)
83:デフォルトの名無しさん
20/01/19 12:40:31.29 Wel1D6/w0.net
>>81
そいつ(>>80)はいつもの荒しだから、道理がわからないのも納得だなw
84:デフォルトの名無しさん
20/01/19 13:11:12.72 AinWVopR0.net
いよいよRubyにも型チェックの機能が取り入れられる
型定義は別ファイルに書くようになっていて、文法は以下の感じ
class Foo
def foo: -> void
def to_s: -> String
(Integer) -> String
end
このようなクラス定義によく似た何かを別ファイルに用意しなければならない(面倒だね)
この際、クラス名Fooやメソッド名foo,to_sなどを細心の注意を払って間違いなく正確に記述しなければならない
もし間違えてしまうと型チェックが働かなくなる(だろう)
そして、型チェックツールはそのことを教えてくれないだろうね
何故ならRubyは型定義が無くても動くのが前提だから、名前を間違ってても「あ、型定義無いのね」って思うだけ
なんならクラス名やメソッド名を間違えていないことをチェックするテストコードを書かなければならないかもしれない
そうしないと正しく型チェックが働いたことを誰も保証できないだろう?
「ソースコードのクラス名やメソッド名を変更したけど、型定義ファイルのそれらを修正し忘れる」
というのは普通にあり得るケース、というか一番ありがちなヒューマンエラーの類
絶対だれかヤラカス、容易に想像できる
お気づきのかたも多いだろうが、同じことを二回書かせるから間違える
これはまさに「DRYに反している」典型的事例
ところがmatzに言わせれば、ソースコード上に型を書く方が「DRYに反している」らしい
理由も意味不明 (普通に考えれば別ファイルに書く方がDRYに反している)
URLリンク(logmi.jp)
このように口を開けば事実と反対の事ばかり言うのがmatzであり
そんな人が作ったRuby自体も反対のあべこべ逆張り言語である
85:デフォルトの名無しさん (アウウィフ FF05-otum)
20/01/19 15:31:51 ehZNNwbSF.net
俺のRubyがこんなに速いわけがない
86:デフォルトの名無しさん (アウアウウー Sa05-s5Rz)
20/01/19 23:07:31 JsYzYAKPa.net
入門書に飽きてきた人におすすめ
Rubyだと実例を入手しやすいからいいね
新しいプログラミング言語の学び方 HTTPサーバーを作って学ぶ Java, Scala, Clojure
URLリンク(speakerdeck.com)
URLリンク(github.com)
87:デフォルトの名無しさん (ワッチョイ 022c-Sfrr)
20/01/19 23:44:41 qcodQ+dh0.net
実践TypeScript - BFFとNext.js&Nuxt.jsの型定義、吉井 健文、2019/6/26
この本を読んでるけど、TS も型地獄w
React(Parcel)でも、型定義ファイルがいる。
npm -i -D @types/react @types/react-dom
@types 以下に、各フレームワークの型定義ファイルを入れておく
React, Next.js, Vue.js, Nuxt.js, Express など、
各フレームワークで、TSへの型対応を進めているけど、地獄w
88:デフォルトの名無しさん
20/01/20 20:49:11.90 YZhtkMgR0.net
最近、誰でも高額が稼げるような言い方でRuby教材を売ってる人らが目立つな
89:デフォルトの名無しさん (ワッチョイ f901-otum)
20/01/21 00:25:49 dRlbVwUu0.net
稼げるからね。
90:デフォルトの名無しさん
20/01/21 00:43:52.91 98cKibZ60.net
本当に稼げるんならいいけど、100万円取られて終わりじゃないの
91:デフォルトの名無しさん
20/01/21 01:06:10.14 kOBQMwNv0.net
100万稼げるからねって意味だったんですけど。
92:デフォルトの名無しさん
20/01/21 11:25:04.38 USbDfMqQ0.net
詐欺御用達
93:デフォルトの名無しさん
20/01/21 12:15:08.17 /80lr+DT0.net
スコップを売って100万稼ぐんだろ
スコップ売りの少女から学ぶべきは一つ
スコップで穴を掘ることではなく、スコップの売り方
94:デフォルトの名無しさん
20/01/21 12:31:08.84 USbDfMqQ0.net
ruby最強ωωω
URLリンク(www.youtube.com)
95:デフォルトの名無しさん (ワッチョイ a12d-GCXE)
20/01/21 16:39:26 98cKibZ60.net
>>90
そっちか!勘違いしてたぜ
96:デフォルトの名無しさん (ワッチョイ 225c-muX5)
20/01/21 19:28:13 essSqG5l0.net
"abc".size などの . は前後に空白があってもOKだった(最近の発見)
"abc" . size
97:デフォルトの名無しさん
20/01/21 21:28:11.63 nuZnWP/f0.net
Windows 10, VSCode では、
関数の引数の( ) の有無とか、
obj.method arg_1
obj.method( arg_1 )
メソッドチェーンでのコメントの有無とか、
obj.method_1 # コメント
.method_2 # コメント
こういうので、エラーになったり・ならなかったりする、基準が分からないw
98:デフォルトの名無しさん (ワッチョイ 5233-j5lD)
20/01/21 22:49:54 YQwIan5u0.net
Rubyは、IDEと相性が悪いからな。
動的型だけじゃなくても、文の区切りがわかりにくい文法も。
しゃあない。
99:デフォルトの名無しさん (ワッチョイ 4201-73fV)
20/01/21 23:13:36 Vd2KBMmO0.net
しゃあないわけあるかw
使ってるプラグインの作りが悪いだけだろ
100:デフォルトの名無しさん (ワッチョイ 022c-Sfrr)
20/01/21 23:27:09 nuZnWP/f0.net
VSCode が中心になってから、開発者全員がVSCode を使うようになって、
すべてのエディタ・IDE で使える、言語サーバーの規格化が始まった!
Ruby も対応してくれるかな?
101:99 (ワッチョイ 022c-Sfrr)
20/01/21 23:28:44 nuZnWP/f0.net
Julia, Python, Ruby に対応してくれれば、
Jupyter Notebook でも良いけど
102:デフォルトの名無しさん
20/01/22 09:39:40.18 1i745hKir.net
メソッドチェーン中の#によるコメントは2.7.0からの新機能
103:デフォルトの名無しさん
20/01/22 09:50:31.20 mkyLzVly0.net
VSCodeの開発言語がVSCodeにとっては最重要言語でしょ
そうじゃない言語は傍流だから切られる
使えますよとしてるのはVSCodeに囲い込むための方便
ゆくゆくはそんな傍流には消えてほしい……とするのが普通の策略
104:デフォルトの名無しさん
20/01/22 10:10:14.80 uoDMOHZtM.net
MSはVSCodeをTypeScriptで書くことによって動的型に止めを刺したよね
ついでにMatzの愛するEmacsも完全にパイを奪われて死んだし、そんな因縁のエディタでRuby書くとか恥知らずもいいとこ
105:デフォルトの名無しさん
20/01/22 10:56:05.26 1i745hKir.net
Emacsが死んだとかどの世界の住人ですか
106:デフォルトの名無しさん (ワッチョイ df33-TZXF)
20/01/22 22:50:36 rp7FIzPH0.net
テキスト編集能力よりも、アプリケーション開発能力を優先すると、IDEが勝つ。
ターミナル経由だと、IDEは動作しようがないので、テキストエディタが勝つ。
107:デフォルトの名無しさん (ワッチョイ 5f2c-++Vr)
20/01/22 23:10:32 fyGKoId60.net
require 'webrick'
srv = WEBrick::HTTPServer.new( {
:BindAddress => '127.0.0.1', :Port => 20080 } )
srv.mount( '/', WEBrick::HTTPServlet::FileHandler, './' )
Signal.trap( :INT ){ srv.shutdown } # Ctrl+C で終了
srv.start
Windows 10, Ruby 2.5 で、
カ�
108:激塔gフォルダに、index.htm と画像ファイル、abc.jpq を置いて、 WEBrick のServer/Servlet を起動して、ブラウザで見ると、 HTTP 304 で画像を、ローカルPC のキャッシュから取得するので、見えない! 1-liner で、 ruby -run -e httpd . -p 20080 としても見えないが、ポート番号を10080 に変えると見える! 常に見えるようにするには、どうすればよい?
109:デフォルトの名無しさん (オッペケ Sr7b-3C30)
20/01/22 23:15:37 1i745hKir.net
jpqだからじゃねえの
110:106
20/01/23 00:02:00.95 31WWjqFP0.net
>>106
タイプミスを修正します!
>abc.jpq
abc.jpg
111:デフォルトの名無しさん
20/01/23 00:38:32.32 9sgUs0f40.net
304が返される状態にもかかわらず
画像が見えないなら基本的にはクライアント側の問題
まずはHTTPリクエストを確認しろ
112:106
20/01/23 00:49:20.77 31WWjqFP0.net
Windows 10 のローカルPC は、アクセス権限が厳しいから、
サーバーを立てても、ブラウザのローカルキャッシュを見れないのかも?
113:デフォルトの名無しさん
20/01/23 05:02:20.43 DWwoifTV0.net
Web開発でRubyが下火になってきてるらしいけど、一体何に移ってるの?
node.js + Reactみたいに単純な構造のものを組み合わせるのが流行ってるわけ?
114:デフォルトの名無しさん (アウアウエー Sa1f-9ipO)
20/01/23 08:38:09 WRgaKbBya.net
>>111
そうだよ
nodeやgoへ移ってる
115:デフォルトの名無しさん (アウアウエー Sa1f-9ipO)
20/01/23 08:54:27 WRgaKbBya.net
途中書き込み失礼
ちなみにRubyの需要が減ってるかというとそんなことはなくて、むしろ伸びてる。
じゃあなんでnodeやgoへ移ってるように見えるかというと、移行してるのは情報発信に積極的な意識高い層が中心だから。
彼らは主に(例えばCookpadのような)自社サービスで働いていて、事例としても目立ちやすいというわけ。
Rubyはプログラミングスクールで人気があるため低スキルエンジニアが供給過剰状態で、PHPの代替として低単価案件での採用が増えている。
それに伴い、意識の高い人は値下げ競争から離脱しつつあるの。
116:106
20/01/23 09:48:33.02 31WWjqFP0.net
VSCode の拡張機能、Live Server で見たら、画像も見れる!
WEBrick のServer/Servlet と何が違うのかな?
117:デフォルトの名無しさん (オイコラミネオ MMdb-TZXF)
20/01/23 19:32:54 vOsDgWR6M.net
キャッシュコントロールヘッダじゃないの?
知らんけど。
118:106 (ワッチョイ 5f2c-++Vr)
20/01/24 03:55:37 L98ica9l0.net
ブラウザのF12 開発者ツールで指定できる!
Chrome の開発者ツールのDisable cache で、画像が表示された!
Edge では、開発者ツールのネットワークの、
常にサーバーから更新するとか、キャッシュのクリアとかかな?
HTTP リクエスト/レスポンスのCache-Control ヘッダーも、関係ありそう
119:デフォルトの名無しさん
20/01/24 12:41:39.57 yedZaC1h0.net
プライベートブラウジング使え
ブラウザ閉じればキャッシュやクッキーが消えて便利だぞ
120:デフォルトの名無しさん
20/01/24 12:43:50.75 2IgFvbdV0.net
HTTPリクエストを確認すればわかること
頼むからHTTPの基礎くらいは学んでくれ
121:106
20/01/25 00:10:52.07 mLh1vP4R0.net
Windows 10 のローカルPC 上の、WEBrick のServer/Servlet で、
ブラウザでキャッシュ有りの時、画像が表示されないのは、なぜなのか?
結局、その理由が分からないまま
出来れば、キャッシュ有りで、画像が表示されてほしい
122:デフォルトの名無しさん (ワッチョイ a7b0-Gc13)
20/01/25 03:58:37 PRJ1sUmm0.net
死ねばいい
123:デフォルトの名無しさん (ワッチョイ a763-gk0v)
20/01/25 15:52:45 WZ3Oswhu0.net
rubyXLでエクセルいじってるが
印刷範囲を設定したいときは、どのようにすればよいのでしょうか?
いろいろ探しても見当たらず・・
124:デフォルトの名無しさん (ワッチョイ 5fa5-V1vN)
20/01/27 17:12:09 PTqFE7Wm0.net
ruby.hに#define memcpy(p1,p2,n) ruby_nonempty_memcpy(p1, p2, n)ってあるけど、
c++でstd::memcpyって使ってたらおかしなことにならんか?
125:デフォルトの名無しさん (ワイーワ2 FF1f-FkkX)
20/01/27 17:24:08 Xu7tzl7qF.net
srcとdstの範囲が重なってるんじゃね
126:デフォルトの名無しさん (ワッチョイ 5fa5-V1vN)
20/01/27 18:36:35 PTqFE7Wm0.net
ちょっと試したらおかしなことにならんかった
127:デフォルトの名無しさん (ワッチョイ 7fda-LQfQ)
20/01/28 12:37:06 2llLtotp0.net
Rubyってイベントハンドラを複数登録するタイプのクラスってどう書くのが一般的な流儀ですか?
クラス継承したり特異メソッド使ったりといった書き方もありますが
あまり異端過ぎなければlambdaを使うのが楽そうかなと思ってます
# ディレクトリを巡回してファイルを探すクラス
finder = FileFinder.new
finder.on_dir_enter = lambda{|folder| puts "entered: #{folder}" }
finder.on_dir_leave = lambda{|folder| puts "left: #{folder}" }
finder.on_file_found = lambda{|file| puts "found: #{file}" }
finder.start("./")
128:デフォルトの名無しさん (ワッチョイ 5fd7-hH+D)
20/01/28 16:48:55 viNuqCMy0.net
>>125
finder.on_dir_enter {|folder| puts "entered: #{folder}" }
finder.on_dir_leave {|folder| puts "left: #{folder}" }
finder.on_file_found {|file| puts "found: #{file}" }
または
finder.add_handlers(
:dir_enter => proc { |folder| puts "entered: #{folder}" },
:dir_leave => proc {|folder| puts "left: #{folder}" },
:file_found => proc {|file| puts "found: #{file}" }
)
イベントハンドラ系のAPI設計に関しては、
Ruby/Tk や Ruby-GNOME 等の GUI ツールキットを参考に
129:デフォルトの名無しさん
20/01/28 17:18:24.30 nzUBCcWX0.net
特に理由がなければブロック渡しが一般的
簡単なEvent Emitterを自作するかライブラリ使うか
finder.on(:dir_enter) {|folder| puts "entered: #{folder}" }
ライブラリでメジャーなのはwisperかActiveSupport::Notifications
URLリンク(github.com)
130:デフォルトの名無しさん (ワッチョイ ea2c-KoMo)
20/01/29 09:22:00 AYOCyHQA0.net
>>121
rubyXL での印刷範囲の設定など
URLリンク(qiita.com)
「rubyxl 印刷」で検索!
131:デフォルトの名無しさん (ワッチョイ ea2c-KoMo)
20/01/29 13:41:46 AYOCyHQA0.net
Windows で、Ruby 2.5 にバージョンアップしたら、
SQLite3 のコンパイルが必要になった!
でも漏れは、1, 2GB とサイズが大きい、MSYS2 を入れていないから、
win32ole モジュールで、ADODB でアクセス出来そうです。
ADODBは、Microsoft 製のドライバーなのか。
わざわざ、SQLite3用のドライバーも作ったのか?w
win32oleは、Rubyの標準モジュールかw
COM の種類が多い
ruby -rwin32ole -e 'puts WIN32OLE_TYPE.progids.length'
#=> 2521
132:129 (ワッチョイ ea2c-KoMo)
20/01/29 14:03:59 AYOCyHQA0.net
>>129
訂正
>ADODBは、Microsoft 製のドライバーなのか。
>わざわざ、SQLite3用のドライバーも作ったのか?
SQLite3 などのODBC ドライバーは、Microsoft 製じゃない。
誰かが作ったものです
133:デフォルトの名無しさん (ワッチョイ 7f05-QQjh)
20/02/07 23:21:28 t9uaVZtz0.net
RubyのOcraについて質問です。
無限ループの中でタイマーカウント満了の度に処理を行って待ちに入るという動作のプログラムって実はEXE化できないという制約があったりしますでしょうか?
また、その場合の解消方法とかをご存じの方、よろしくお願い申し上げます。
134:デフォルトの名無しさん (オッペケ Sr0b-Hkqy)
20/02/08 10:32:17 hHzEGlOhr.net
>>131
ない
何故ならevalするだけの簡単なコードですらexe化できるから
135:デフォルトの名無しさん
20/02/08 13:28:21.15 9Nn74D/R0.net
OCRA の代わりに、Neri と言うのもあるみたい
Neri
URLリンク(github.com)
136:デフォルトの名無しさん (ワッチョイ 9f7c-YOmB)
20/02/10 17:54:32 nkCUteta0.net
下記のコードでifの位置ってここでいいの。rubyの本の記述なんだけど。
2行目だけどifの方が左なんじゃないの?右でも行けるって事かな?
def greeting(country)
return 'countryを入力してください' if country.nil?
if country == 'japan'
'こんにちは’
else
'hello'
end
end
greeting(nil)
greeting('japan')
137:デフォルトの名無しさん (ワイーワ2 FFdf-VM48)
20/02/10 17:55:54 JljXo4cdF.net
後置
138:デフォルトの名無しさん
20/02/10 18:40:17.86 nkCUteta0.net
>>135
そうなの?
理由も聞きたい
そういう仕様?って事?
139:デフォルトの名無しさん
20/02/10 20:46:54.23 cKG4UD690.net
わからない時はまずリファレンス
URLリンク(docs.ruby-lang.org)
ifは前置でも後置でもいける仕様
後置ifは正式にはif修飾子(if modifier)
140:デフォルトの名無しさん
20/02/10 21:36:49.68 cuubi2Q/0.net
しかし、何がしたいのかはわからんコード。
文字列を返してるだけ?
141:デフォルトの名無しさん (ワッチョイ 9f2c-ndoi)
20/02/10 23:17:58 8D13KkA50.net
そりゃ、ユーザーからの入力値チェックは、必要
まあ、デフォルト値は、nil の代わりに、空文字列にしておく手もある
142:デフォルトの名無しさん (ワッチョイ 3714-A9K6)
20/02/11 00:09:12 dIRIcC/n0.net
>>136
英語勉強しろよ
I don't know if it will rain tomorrow.
(明日雨が降るかどうかわからない)
143:デフォルトの名無しさん (アウアウウー Sa9b-YLe+)
20/02/11 07:38:12 jcgFHncna.net
後起きifはRubyの文法的にはかなり無理があって、その実現のためだけにRubyが「全てが式」ではなくなっているという極めて特殊な構文
Matz的によほどの拘りがあるんだろうけど、違和感を感じる>>134のセンスはとても正しい
144:デフォルトの名無しさん
20/02/11 09:49:56.57 GpQNLMm40.net
perl後継としては外せない
145:デフォルトの名無しさん
20/02/11 10:04:30.75 Nq1ZGiCx0.net
perlなら当然でしょ
rubyはそこを汲んでる
146:デフォルトの名無しさん
20/02/11 10:14:08.59 dIRIcC/n0.net
Perlに不満ってあるの?
どれだけある?
147:デフォルトの名無しさん
20/02/11 12:56:14.55 KtXysiBKF.net
>>141
Rubyのあちこちで見受けられるPerlの悪い所をわざわざパクったアホな例の一つだな
148:デフォルトの名無しさん
20/02/11 13:01:20.53 v/oRLdRM0.net
>>141
>その実現のためだけにRubyが「全てが式」ではなくなっているという極めて特殊な構文
「全てが式」ってのはstatementとexpressionに明確な区別のある言語との対比で
Rubyの特徴をわかりやすく説明するために使われてるだけ
式の一部どれをとっても全てが式になってるまともな言語があるわけない
Rubyには後置以外の修飾子だってあるしstatementもある
中途半端な知識で勘違いしてドヤるのはやめよう
149:デフォルトの名無しさん
20/02/11 13:17:51.03 D5vn67vCa.net
perl に
150:比べて ruby の優っているところは?
151:デフォルトの名無しさん
20/02/11 13:22:48.99 XWZwag4pr.net
if/unless, while/until, rescue
152:デフォルトの名無しさん
20/02/11 13:27:43.83 eT6ZDI7H0.net
>>147
Perlにはオブジェクト指向ようの構文が後付で原始的なものしか搭載されてない。
アセンブラを駆使すれば何でもできるように、原始的な機能でも頑張れば
高度なオブジェクト指向機能を作ることは可能だが、
そのせいでいくつもの実装が生まれライブラリごとに使ってる
仕組みが異なり統一ができずに破綻してしまった。
Rubyは最初からオブジェクト指向
153:デフォルトの名無しさん
20/02/11 14:28:51.94 R1PPlg5z0.net
>>146
>式の一部どれをとっても全てが式になってるまともな言語があるわけない
LISP, Haskell, ML, …etc
>中途半端な知識で勘違いしてドヤるのはやめよう
この記事の原著者も「中途半端な知識で勘違いしてドヤ」ってるのかなぁ
・Rubyによる関数型プログラミング
URLリンク(xtmlab.com)
なお、手続き型言語の大半が文と式を明確に分けている中で、
Ruby の「すべてが式」という思想はユニークであるが、
次世代言語 Rust でも同様な思想が採用された
以下は書籍「プログラミングRust」からの引用
> Rustはいわゆる式言語(expression language)の一つだ。
> つまり、Lispにまで遡る古い伝統に従い、すべてを式で行う。
中途半端な知識で勘違いしてドヤると恥をかくだけだよ
154:デフォルトの名無しさん (ワッチョイ 9f01-OQuQ)
20/02/11 18:41:16 v/oRLdRM0.net
>>150
>LISP, Haskell, ML, …etc
おまえアホやろ
Lispの閉じ括弧は式なのか? シングルクウォートは式なのか?Haskellのコロンは式なのか?
if修飾子が式じゃない極めて特殊()な構文って主張はそれと同じレベルなんだけど
>この記事の原著者も「中途半端な知識で勘違いしてドヤ」ってるのかなぁ
「あらゆるすべてが式である」のすべてに何が含まれて何が含まれないのか理解してるかどうかだよ
原著者が理解してるかどうかは知らないけどお前は間違いなく理解してない
ついでに言っておくとRubyの「全ては式」が広まったのはDavid Flanaganが「The Ruby Programming Language」で他言語出身者にわかりやすく理解させるためにそれっぽいことを書いたのが理由
155:デフォルトの名無しさん
20/02/11 22:59:40.20 R1PPlg5z0.net
>>151
文節「すべてが式」に対する君の認識が、世間の一般常識から乖離していることを理解した
156:デフォルトの名無しさん
20/02/12 00:01:32.50 39kCYFWR0.net
>>152
keywordやsymbolそれ自体が式なわけないだろ?
それと同じことを主張してたの理解できたのかな?
制御構造のif式だって`if 式; end`全体で式として評価されるわけで
ifだけやendだけが式になるわけじゃない
if修飾子は`式 if 式`全体で式として評価されるわけで
後置の`if 式`だけで式になるわけじゃない
でその一部を取り出して
「その実現のためだけにRubyが「全てが式」ではなくなっているという極めて特殊な構文」
って言っちゃうのがどれだけ的外れかって話な
157:デフォルトの名無しさん (ワッチョイ a701-9iBN)
20/02/12 01:40:12 3IloEGU30.net
電卓の構文解析器を作ったことがあれば、だいぶご意見が変わるはず。
158:デフォルトの名無しさん (ワッチョイ ef1d-sg8N)
20/02/12 01:51:46 CB9IiDBv0.net
実務経験1年で月収80万稼げるエンジニアになった理由
URLリンク(www.youtube.com)
意識が低いエンジニアこそフリーランスになれ
URLリンク(www.youtube.com)
フリーランスエンジニアの週3労働ってどんな感じ?
URLリンク(www.youtube.com)
ぼくがスキルのない社畜ならこうやって脱する
URLリンク(www.youtube.com)
159: 初めて人を雇ったらもう二度とサラリーマンをやりたくないと思った話 https://www.youtube.com/watch?v=U0OCGRVLFsM プログラミングは文系でも余裕で出来ます!理由を現役プログラマーが解説 https://www.youtube.com/watch?v=iBOeiSKBIW8 貧乏人こそ社会不適合者 https://www.youtube.com/watch?v=O3BT72BIBJI 元ド貧乏が教える】貧乏を抜け出すための2つの考え方 https://www.youtube.com/watch?v=IRrCgTy3ckc より良いオファー貰ってるのに転職しないとか何考えてるの? https://www.youtube.com/watch?v=i0J6uRhlj7o
160:デフォルトの名無しさん
20/02/12 02:31:04.61 zXn0/Xf90.net
>>153
もう黙ったほうがええで。
アホが漏れとる。
161:150および151 (ワッチョイ 7274-XNsy)
20/02/12 03:15:58 1hwSKrXM0.net
>>153
>でその一部を取り出して
>「その実現のためだけにRubyが「全てが式」ではなくなっているという極めて特殊な構文」
>って言っちゃうのがどれだけ的外れかって話な
自分は>>141ではないが、いったいぜんたい何を話したいのか訳がわからんよ
162:デフォルトの名無しさん
20/02/12 06:32:46.81 m8mhjAm70.net
>>155
グロ
163:デフォルトの名無しさん
20/02/12 09:42:28.21 gfctBwevM.net
「Rubyでは全てが式だ」というとき、ステートメント(文)と式の区別がないことを意味するのが普通だ
言語によってはメソッドやクラスの定義も普通の式だったりするが、Rubyでそう思っている奴はいないだろう
しかしRubyではステートメントと式の区別がないというのは厳密には正しくない
文法定義のソースを見れば明らかだが、それが後置構文の存在のためであるのは事実
164:デフォルトの名無しさん
20/02/12 22:16:17.93 Pa88PYmd0.net
def foo(arg)
arg + 1
end(99) #=> 100
動かない
165:デフォルトの名無しさん
20/02/13 10:51:24.11 6MxuLkX50.net
p send(def foo(a); a + 1;end, 99) # => 100
166:デフォルトの名無しさん
20/02/13 21:55:21.77 i9bfivOD0.net
お、うーむ...なるほど
167:デフォルトの名無しさん
20/02/13 22:02:31.32 TNGg/IHkr.net
p def foo(a)
a + 1
end.then{|s| method(s)[99]}
# => 100
168:デフォルトの名無しさん
20/02/13 23:08:11.62 0ZbbVgVA0.net
つまり、扱いは同じではない、ということかな?w
169:デフォルトの名無しさん
20/02/13 23:20:32.77 oR70BErs0.net
foo = -> (arg) {
arg + 1
}.( 99 ) #=> 100
170:デフォルトの名無しさん
20/02/14 12:22:11.03 +9NDg3r60.net
( ) で囲んで式にすれば、
JavaScript のIIFE (Immediately Invoked Function Expression; 即時実行関数式)みたいに、無名関数にできた!
( -> (arg) {
puts arg + 1
} ).( 99 ) #=> 100
171:デフォルトの名無しさん
20/02/14 12:36:32.48 +9NDg3r60.net
msys2 無しのWindows 10, Ruby 2.5 で、
WEBrick::HTTPServlet::CGIHandler は使えない!
ERROR CGIHandler:
C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/msys2_installation.rb:63:in `iterate_msys_paths':
undefined method `split' for nil:NilClass (NoMethodError)
エラーログに、enable_dll_search_paths とあるから、dll でも使うのかな?
172:デフォルトの名無しさん
20/02/14 17:39:20.53 EOtBZfN80.net
>>166
>( ) で囲んで式にすれば、
括弧なくても定義したlambdaが返される
.()でそのlambdaのcallメソッドを呼び出してるだけ
-> (arg) { arg + 1 }.(99) でも
-> (arg) { arg + 1 }[99] でも
-> (arg) { arg + 1 }.call 99 でも同じ
ちなみにJSのvar foo = (x)=> x+1 みたいなのは関数に名前はついてないので無名関数だぞ
rubyで foo = -> (arg) { arg + 1 } と書いても
無名のlambdaをfooという変数に入れてるだけで
lambda自身に名前がつくわけではない
173:デフォルトの名無しさん
20/02/15 13:46:02.32 BIOI8zPQ0.net
>>167
ENV['PATH'].split(";")が失敗するってmsys2関係なくなかなかレアな環境だと思うが
環境変数をクリアしたりしてるのかい?
174:167
20/02/15 17:09:24.91 8drC8DpT0.net
msys2 を入れずに、Ruby を使っているから、
コンパイルできないし、Windows 10 のネイティブDLL を使えない
Ruby 2.5 で、SQLite も使えなくなったw
WEBrick は、Rubyで実装されているから、msys2 無しでも動くと思ったけど、
WEBrick::HTTPServlet::CGIHandler で、ネイティブDLLを使っているのだろう
rubyist magazine を冒頭から読み始めたが、読み応えある!
175:デフォルトの名無しさん (ワッチョイ 335f-JhxJ)
20/02/16 02:30:58 A+9IORaN0.net
>>170
msys2_installation.rb:63にmsys2関係ないって
URLリンク(github.com)
これが失敗するのは環境変数がおかしいか、上書きしているか
それともENVを再定義しているくらいしか思いつかない
176:167
20/02/16 19:14:49.59 5EL9p8ON0.net
漏れは、Windows 10,Ruby 2.5 で、
Run ‘ridk install’ to install MSYS2 and development toolchain. も、チェックしていないし、
MSYS2 の開発ツールと、MINGW のコンパイラもインストールしていないから
Rubyの環境構築(Windows10編)
URLリンク(www.kenschool.jp)
エラーログ
C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/msys2_installation.rb:63:in `iterate_msys_paths': undefined method `split' for nil:NilClass (NoMethodError)\r\n\t
from C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/msys2_installation.rb:76:in `msys_path'\r\n\t
from C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/msys2_installation.rb:89:in `mingw_bin_path'\r\n\t
from C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/msys2_installation.rb:99:in `enable_dll_search_paths'\r\n\t
from C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/singleton.rb:27:in `enable_dll_search_paths'\r\n\t
from C:/Ruby25-x64/lib/ruby/2.5.0/rubygems/defaults/operating_system.rb:3:in `<top (required)>'\r\n\t
from C:/Ruby25-x64/lib/ruby/2.5.0/rubygems.rb:1383:in `require'\r\n\t
from C:/Ruby25-x64/lib/ruby/2.5.0/rubygems.rb:1383:in `<top (required)>'\r\n\t
from <internal:gem_prelude>:2:in `require'\r\n\t
from <internal:gem_prelude>:2:in `<internal:gem_prelude>'\r\n
177:デフォルトの名無しさん
20/02/17 01:04:16.59 gpbv7rcq0.net
あー、WebrickのCGIHandlerはCGIPathEnvの関係でENV["PATH"]がnilになりうるのか
WEBrick::HTTPServer.newに渡すハッシュにCGIPathEnv: ""を加えとけばいいはず
178:167
20/02/17 01:35:30.73 A9t7x7q20.net
ありがとう。
オプションに、:CGIPathEnv => '' を加えたら、正常に動いた!
すごい実力じゃん!
ソースコードを追っていったの?
opts = { :CGIInterpreter => "C:/Ruby25-x64/bin/ruby.exe",
:CGIPathEnv => '', # msys2 のエラーを避けるために、必要!
:DocumentRoot => './', # この指定が必要!
:BindAddress => '127.0.0.1', :Port => 20080 }
srv = WEBrick::HTTPServer.new( opts )
179:デフォルトの名無しさん
20/02/17 05:37:18.50 SykEsoD4r.net
なんかムカつく
180:デフォルトの名無しさん (ワッチョイ d62d-qw96)
20/02/17 15:17:53 9CP/4dwv0.net
新しくて安い本が出たので、頭の体操にRubyの勉強を始めたところなんだけどさあ
よくネット上に、「Railsの本をやってからRubyの勉強をした」みたいな人がいるのはどういうことなの?
RailsってRubyが出来ないと何も出来ない訳でもないの???
181:デフォルトの名無しさん
20/02/17 15:33:27.23 qj5C8HtX0.net
普通にプログラミングできる人にとっては言語の違いなんて些細なもので
いちから作るのならともかく、そこいらにあるRailsのコードや自動生成されたものを
見ればそこからRubyという言語を推測で理解できるんだよ。
このコードがクラス定義だな。Rubyではこう書くんだなって
わからなければそこだけググればいい
Railsはやり方というものがあるので、それに合わせるように
Railsの本を見て流れを把握する必要がある。
検索は断片を見つけるのはキーワードから簡単に見つけられるが
流れはそうはいかない。
182:だいたいの本はページの最初から流れを そのまま書いてあるから、本でざっと勉強するのが最初のうちは手っ取り早い
183:デフォルトの名無しさん (ワッチョイ d62d-qw96)
20/02/17 18:20:35 9CP/4dwv0.net
そういうことか
言語だけ先にやると変な癖がついたりもするし、演習ファーストの学習も結構いいかもな
184:デフォルトの名無しさん (ワッチョイ b7d2-Htok)
20/02/17 18:45:44 wxeqwMT50.net
日本語の勉強がしたいと言ったら
舞城王太郎の小説を読めと言われた気分
185:デフォルトの名無しさん (ワッチョイ 122c-LiuO)
20/02/17 19:30:14 A9t7x7q20.net
たぶん、すでに多言語を知ってる人だろう
入門書の次のレベルの、新しい本が出た!
Ruby on Rails 6 実践ガイド、黒田努、2019/12/20
実践Ruby on Rails 4: 現場のプロから学ぶ本格Webプログラミング、黒田努、2014
この本を書き換えたもの
無料のRails チュートリアルよりは簡単
Windows プロ版のDocker が不安定だから、Virtual Box, Ubuntu 18.04 でやってる!
186:デフォルトの名無しさん (ワイーワ2 FF6a-BDVY)
20/02/18 12:16:06 r+eOvEZJF.net
またカタワを量産するつもりか
RailsRubyの将来は暗いな
187:デフォルトの名無しさん (ワッチョイ ff2c-lQWV)
20/02/25 19:09:01 Ykw6mmDG0.net
「aabc → bc」みたいに、先頭から特定の文字が連続するとき、それを除去するには、どう書く?
正規表現を使ったものと、使っていない場合の両方
str = "aabc"
# 先頭から続く、a を除去する
while str.start_with? "a" # 先頭文字が、a なら
str.slice! 0 # 先頭文字を削除する
end
p str #=> "bc"
188:デフォルトの名無しさん
20/02/25 20:42:26.89 uCkT0+w20.net
そりゃ正規表現のステートマシン通りに書くでしょ
189:デフォルトの名無しさん
20/02/25 22:00:57.29 uBU1PACqr.net
>>182
puts str[/\Aa*\K.*/] # => bc
190:デフォルトの名無しさん
20/02/25 22:07:44.86 uBU1PACqr.net
>>182
puts str[str.size.times.find{|i| str[i] != ?a}..] # => bc
191:デフォルトの名無しさん
20/02/25 22:22:39.72 oSeHo6cg0.net
>>182
def remove_consecutive(string)
string.sub(/^(.)¥1{1,}(.*)$/) {|_| remove_consecutive($2)}
end
remove_consecutive("aaaabbbbbbccab") #=> “ab”
remove_consecutive("1112234") #=> "34"
192:デフォルトの名無しさん
20/02/25 22:59:04.49 /XslCVsc0.net
本当に文字列から連続部分を除去したいのか、
連続部分の後ろが取り出せればいいのか
193:182 (ワッチョイ ff2c-lQWV)
20/02/25 23:54:26 Ykw6mmDG0.net
元々は「0082 → 82」みたいな文字列の先頭から続く、0 を除去したかった。
先頭以外のものは、除去しなくてよい
こういうメソッドが無いか、探してみたけど見つからなかった
レシーバーの破壊的な変更をしてもよいし、別の文字列を作って返すものでもよい
194:182 (ワッチョイ ca2c-rVtL)
20/02/26 00:52:55 TmIxTRKQ0.net
文字列の先頭から続く、特定の文字を除去する
1文字でも除去するし、連続するかぎり除去するが、
先頭以外のものは、除去しなくてよい
a を除去する場合
abc → bc
aaXaa → Xaa
195:デフォルトの名無しさん (ワッチョイ 8a01-k1AF)
20/02/26 01:11:17 sMj0eedP0.net
>>188
>元々は「0082 → 82」みたいな文字列の先頭から続く、0 を除去したかった。
“0082”.to_i.to_sでよくね?
なんかこのパターン数ヶ月前にも見たような気がするな
>>189
def remove_leading_chars(string, char)
string.each_char.drop_while{|c| c == char}.join
end
remove_leading_chars(“0000123", “0”) #=> "123"
remove_leading_chars(“abc", “a”) #=> "bc"
remove_leading_chars(“aaXaa", “a”) #=> "
196:Xaa"
197:182
20/02/26 04:46:15.55 TmIxTRKQ0.net
>“0082”.to_i.to_sでよくね?
長い文字列だと、数値化できない言語もあるから、
汎用的に作れないかなと思って
198:デフォルトの名無しさん
20/02/26 08:06:23.34 PiyizPRV0.net
だからオートマトンで作れって言ってんじゃん
URLリンク(image.slidesharecdn.com)
199:デフォルトの名無しさん (ワッチョイ 0314-IyPa)
20/02/26 08:22:48 kXv4PxDr0.net
オートマトンってなんで羊なんだろう?
自動的に毛を刈って自動的に料理されるのか?
200:デフォルトの名無しさん (ワッチョイ 6b01-nhpA)
20/02/26 08:29:53 bDSWeqSr0.net
オートマンだと思ってた
インド哲学かよ
201:デフォルトの名無しさん (ワッチョイ 0314-IyPa)
20/02/26 08:36:52 kXv4PxDr0.net
嘔吐マトン
202:デフォルトの名無しさん
20/02/26 12:11:34.52 GrI3XnzJ0.net
>>189
def ltrim(s, c)
s[/^#{c}*/] = ""
s
end
p ltrim("aaaabcaabc", 'a')
"bcaabc"
203:デフォルトの名無しさん
20/02/26 23:09:06.75 TmIxTRKQ0.net
Ruby on Rails 6 実践ガイド、黒田努、2019/12/20
Ruby on Rails 6 超入門、掌田津耶乃、2020/2/21
巨匠・掌田も、Rails 6 に参戦!
後は、山田祥寛・WINGSプロジェクトが、どうするか?
204:デフォルトの名無しさん
20/02/27 15:17:58.32 G6pyHvdgF.net
掌田の本は要らん
205:デフォルトの名無しさん (ワッチョイ 4aa5-SiQa)
20/02/28 09:49:01 tB/cuWAa0.net
掌田津耶乃って何者? (Late 2012)
スレリンク(mac板)
巨匠か?
Mac凋落と共に仕事を失った人間、とか書かれてんぞ
206:デフォルトの名無しさん (ワッチョイ 4aa5-SiQa)
20/02/28 09:53:35 tB/cuWAa0.net
掌田津耶乃って何者?
スレリンク(pc板)
macの賤民思想に凝り固まった人間?
そんな物体なら要らないな
207:197 (ワッチョイ ca2c-rVtL)
20/02/28 13:58:28 GfVfgYuK0.net
多言語の3強が、掌田津耶乃・山田祥寛(WINGSプロジェクト)・柴田望洋。
他に、スッキリ・やさしい・猫でも・独習など
掌田は、その中でも断トツ!
多言語の入門書・フレームワーク・ゲームエンジンなど、
ここ数年で、20冊とかある
世界的に見ても、断トツ!
208:デフォルトの名無しさん
20/02/28 14:40:57.13 LkDsYiUy0.net
何か後ろの二人が気の毒
209:デフォルトの名無しさん (ワッチョイ 9e2d-9Aak)
20/02/28 15:39:11 Y4GSbUWj0.net
Rubyはもう本で勉強するのは古い
今は迫 佑樹とかあおいとかのオンラインコースで勉強する時代だよ、
210:デフォルトの名無しさん (ワッチョイ 8a01-k1AF)
20/02/29 02:55:28 udUacP9j0.net
山田祥寛は10年近く前C#でよくお世話になった
他言語から来た入門者に程よくわかりやすい本を書く印象
柴田望洋はC言語系で何冊か読んだが
内容がすごく簡潔で短い時間でまとめ的な知識を頭に入れたり
特定のトピックを復習したいときには有用
(ただ今ならWebサイトで代用可能)
掌田津耶乃・・・
本屋で間違って手にしてもパラっと読めば速攻本棚に戻すやつ
似たような浅めの入門本著者だと
クジラ飛行机のやつは実践的なやつが多くて悪くないと思う
211:197 (ワッチョイ ca2c-rVtL)
20/02/29 23:32:52 6IdZMwnf0.net
なでしこの作者・クジラ飛行机は、
近年、Python から、多言語の作者として乱入してきた
なでしこだけでは食えないし、やむを得ない方向転換w
巨匠の柴田望洋は「新・明解C言語」のイメージだけど、近年、多言語に参入した
212:◆QZaw55cn4c (ワッチョイ 2aaa-9l6Y)
20/02/29 23:43:57 c0ztbNyQ0.net
>>204
新独習c# は旧独習ハーバートシルトと比べてどうでしょうか?
新独習Java は、旧独習が史上稀に見る惨憺たる出来だったことから、新独習はよくなるしかないと予測しています
あと、旧独習を高く評価している私としても新独習C++ については興味がありますね
213:197
20/03/01 00:44:56.42 NSpMdQYF0.net
さすがに日本人で、シルトと比べられる著者は、いないだろ
たいてい読み応えがあるのは、Effective シリーズなどの外人著者
214:デフォルトの名無しさん
20/03/01 10:00:51.93 JWAFHnbAM.net
しつもんです
haskellだったら
[(x,y,z) | x <- [1..9], y <- [1..9], z <- [1..9], x * y * z == 24]
こう書けるものはrubyではせいぜい
p [*1..9].repeated_permutation(3).select {|a| a.sum == 24}
こう書くしかありませんか?簡潔に表現したいです
さらにhaskellでは
[(x,y,z) | x <- [1..9], y <- [1..8], z <- [1..7], x * y * z == 24]
などと書けるので柔軟ですがその場合rubyなら
p (1..9).map {|x| (1..8).map {|y| (1..7).map {|z| [x,y,z]}}}.flatten(2).select {|a| a.sum == 24}
こう書くしかありませんか?簡潔に表現したいです
215:デフォルトの名無しさん (ワッチョイ 0314-IyPa)
20/03/01 10:43:49 n6wzTSL90.net
> haskellだったら
> [(x,y,z) | x <- [1..9], y <- [1..9], z <- [1..9], x * y * z == 24]
> こう書けるものは
haskell: 66文字
> rubyではせいぜい
> p [*1..9].repeated_permutation(3).select {|a| a.sum == 24}
> こう書くしかありませんか?簡潔に表現したいです
ruby: 58文字
Rubyの方が簡潔です
216:デフォルトの名無しさん (ワッチョイ 6f5f-jGfF)
20/03/01 11:35:40 qmcGlirD0.net
> p (1..9).map {|x| (1..8).map {|y| (1..7).map {|z| [x,y,z]}}}.flatten(2).select {|a| a.sum == 24}
p [[*1..9], [*1..8], [*1..7]].then{|x, *a| x.product(*a)}.select{|a| a.sum == 24}
p [*1..9].product([*1..8],[*1..7]).select{|a| a.sum == 24}
好きな方を
ところで、そのHaskellコードにはp相当が無いように見えますが
Haskellってprintしなくていいんですか?
217:デフォルトの名無しさん
20/03/01 12:14:22.10 8hJkpeX/a.net
元から間違っているがsumではない
218:デフォルトの名無しさん
20/03/01 12:53:48.43 JWAFHnbAM.net
あごめんsumじゃなかったわw
みなさんどうもありがとうございました
219:デフォルトの名無しさん (ワッチョイ 067d-X91k)
20/03/01 18:13:12 RW98tzZT0.net
rubyでtwitterとかyoutubeどうやって作るの?
全くイメージが沸かない
ツイートがリアルタイムで他者にも表示されるのってどういう仕組み?
220:デフォルトの名無しさん (ワッチョイ cb4f-mnKr)
20/03/01 21:01:11 QPyt1UlH0.net
httpとブラウザの仕様の話なのでrubyは関係ない
221:デフォルトの名無しさん (アウアウエー Sac2-DFeu)
20/03/01 21:57:35 F2v5Atsqa.net
scaffold で一発で作るという意味だろう
222:デフォルトの名無しさん
20/03/01 22:44:11.42 NSpMdQYF0.net
0から手を動かして作るRailsチャットアプリ【チュートリアル】
URLリンク(www.youtube.com)
Ruby on Rails で、Web Socket を使う、とだこうきの動画
223:デフォルトの名無しさん
20/03/01 22:47:44.78 QZXNPr7ra.net
>>213
JavaScriptでサーバー側のAPIを叩き、サーバーがそれに対して結果を返し、JavaScriptでその結果を画面に反映させる
基本はこれだけ
Rails任せじゃなくてちゃんとWebの仕組みを理解してAPIを実装しなきゃいけないし、JavaScriptもゴリゴリ書かなきゃいけない
SQSなどのAWSやGCPのマネージドサービスや、Ka
224:fkaのようなデータ基盤系のOSSなど高度なバックエンド技術の活用も必要だ Railsのチュートリアルに毛が生えたような典型的なWebとは次元が違う
225:デフォルトの名無しさん
20/03/01 23:24:11.39 J3IrN4Ey0.net
クライアントがブラウザとは限らないが
いずれにしろrubyは全く関係ない
web push
server-sent events
push notification service (e.g. APNs)
↑この辺りを学べばいい
単なる通知用途で生のweb socketを
ゴリゴリ書いたりはしないんじゃないかな
226:デフォルトの名無しさん (ドコグロ MMea-ff41)
20/03/01 23:52:21 H/U8nx/nM.net
プログラミングスクールでRails勉強しました系だとプル型のアプリの作り方しか知らないだろうから、クライアントへの通知の実装方法以前に、
そもそもユーザーがツイートしたときに受信者に対して通知をキックするところの仕組みが想像できないんだろうな
そのへんはいわゆるバックエンドってやつで、ユーザー数が増えてもスケールするためには小手先のコーディングだけでなくAWSのインフラ設計まで含めた作り込みが必要
Railsできますウェーイみたいなのとは一線を画す、いい大学出たガチな連中が鎬を削ってる世界だ
227:デフォルトの名無しさん (ワッチョイ ca2c-rVtL)
20/03/02 00:40:51 8PHDRupm0.net
Ruby による今世紀最大の起業家、Vagrant のMitchell Hashimoto(HashiCorp)も、
Go のTerraform へ行った
今や主戦場は、Docker, Kubernetes になった
でも、サーバーの基本は、Ruby。
Node.js も、Rubyのコピーだから
Spring Boot も、Rails のコピー
228:デフォルトの名無しさん
20/03/02 01:33:56.26 AuxsFe1o0.net
>>217
>>219
おまえもウェーイ系なのに無理してレスすんな
229:デフォルトの名無しさん
20/03/05 19:13:20.03 h922Dn8C0.net
>>204
>柴田望洋はC言語系で何冊か読んだが
>内容がすごく簡潔で短い時間でまとめ的な知識を頭に入れたり
>特定のトピックを復習したいときには有用
いかにも教科書って感じの本書くよね
オレもオススメできる著者だと思うぞ!
230:デフォルトの名無しさん (ブーイモ MM7f-Pim3)
20/03/05 19:35:07 1tYxfkRNM.net
本屋いったらrubyの本は駆逐されてた
231:デフォルトの名無しさん (ワッチョイ cbad-wzO4)
20/03/05 21:34:51 h922Dn8C0.net
すっかりPythonの本に置きかわったよな!
やっぱ人工知能ブームに乗れなかったのがデカイ
232:デフォルトの名無しさん (ワッチョイ 9fa5-HL4i)
20/03/06 14:08:05 gkPkCuAw0.net
・P系言語には絶対にPを付けるべきであった
・endがある言語には終わりがある
オカルト方面の理由だとこのようになる
「pascalは終わった」とは業界の定型句だが終わったのはendがあるからだ
なので「end」という文字の視覚的影響は思いの他大きいのではなかろうか
代わりにpythonはselfを見続けることになる
他の理由としては、我々は「ぱい」と発音したい生物である、という、これまたオカルトな理由だ
特にPから始まる単語は人類にとって基本的・根源的らしい
「PyPI」とかどーすんだコレとか思っちゃうような発音の存在こそが、pythonを存続させている大きな原動力だ
233:デフォルトの名無しさん
20/03/06 16:38:00.92 Z17kfdKR0.net
なぜ差が付いたか RubyとPython
―(日本語圏の)慢心、(AI)環境の差
234:!
235:デフォルトの名無しさん (アウアウエー Sa3f-xiWk)
20/03/06 20:06:25 dfpAZ0dma.net
cobol には end があるが、しぶとく生き残っている
早く絶滅してほしいものだが
236:デフォルトの名無しさん
20/03/06 21:40:53.72 f8XVsIbI0.net
Rubyの方がCOBOLより先に死滅する希ガス
237:デフォルトの名無しさん
20/03/06 22:57:29.86 rcgbHB5O0.net
慢心と言うより
補助金事業になったら碌なことにならない例の一つ
238:デフォルトの名無しさん (ワッチョイ cbad-wzO4)
20/03/07 03:49:31 meF2wfp30.net
補助金が腐らせるの
日本のあるあるだな!
239:デフォルトの名無しさん (ワッチョイ ef8c-NYnE)
20/03/07 12:58:20 Q0oLpIzl0.net
>>226
コメントアウトの仕方
240:デフォルトの名無しさん (ワッチョイ 2ba5-Inmc)
20/03/07 13:58:54 H7f33zo10.net
Rubyは日本の言語ではなくて
日本発だけど
日本からアメリカのユタ州に税金を抜かれるだけの言語だ
241:デフォルトの名無しさん
20/03/07 16:10:40.97 ZoK+qwRc0.net
補助金で食える人数も限られてるから、余計に閉鎖的になってく
242:デフォルトの名無しさん
20/03/07 19:42:14.60 meF2wfp30.net
補助金で喰える上級Ruby国民は安泰だけど
下級Ruby国民はPythonに逃げ出してる現状
243:デフォルトの名無しさん (ワッチョイ 4b2d-hds7)
20/03/10 16:47:55 rx4TAX460.net
Rubyの高額教材屋も増えまくってたり、こんなの国が金を出して支援するもんじゃないよもう
244:デフォルトの名無しさん (ワッチョイ ab01-xzLc)
20/03/10 21:55:43 uPXabSQ00.net
perlの保守性の低さについて何も学ばなかったから。
245:デフォルトの名無しさん
20/03/15 06:29:59.66 d7tE7oy90.net
リファレンスマニュアルの正規表現の一覧に
(<=pat) 肯定後読み
となってるけど正しくは (?<=pat) ですよね
246:デフォルトの名無しさん
20/03/15 07:01:08.84 fxB2xu91r.net
せやね
247:デフォルトの名無しさん (ワッチョイ 698f-tF/6)
20/03/17 10:26:17 55EeZ8o40.net
AI環境の差は大きいっすねー
保守性とかどうでもいいしrubyの文法は好きだけど、今から勉強する人にはphthon勧めざるを得ない
248:デフォルトの名無しさん (ワッチョイ a1ad-M7Q/)
20/03/17 11:47:19 xPTEZvMY0.net
PythonはAIライブラリそろってるからな
249:デフォルトの名無しさん
20/03/17 18:17:35.92 Np3/43wU0.net
機械学習や統計処理のために
プログラミングできるようになりたいというひとは
迷わずPythonから初めればいいけど
明確な目的がない場合はRubyから初めさせたほうが
プログラミング自体の習熟が断然早い
1ヶ月程度でプログラミングの基礎を身につけたら
後は好きなやつやればいいと思う
新卒で2~3言語学ばせるABテストとかやってみたいね
250:デフォルトの名無しさん
20/03/17 18:19:24.38 ybHHyXnP0.net
ABテストやってないのになんでRubyからの方がいいって分かるの
251:デフォルトの名無しさん (ドコグロ MM95-Syvm)
20/03/17 18:38:35 7aCFf3OgM.net
明確な目的のない奴にRails専用スクリプト(別名Ruby)を勧めるのはさすがにどうかと
252:デフォルトの名無しさん
20/03/17 19:08:20.64 55EeZ8o40.net
別にrailsなんかなくたってperlよりモダンな汎用スクリプト言語ではあるやろ
253:デフォルトの名無しさん
20/03/17 19:19:47.39 7aCFf3OgM.net
>>244
Windowsでまともに使い物にならないのは汎用スクリプトとしては致命的
ぶっちゃけPythonがビッグデータやAIで持て囃されてるのもWindowsと相性いいからだよ
ビッグデータやAIはエンタープライズで金になるテーマだからWindowsと相性悪いのは論外
254:sage (ワッチョイ a265-aX25)
20/03/17 22:30:48 Zy9Qhkko0.net
つまり、わざわざRubyスレまで乱入してしまうほど、
Python信者にはRubyへのコンプレックスが強いってことね
255:デフォルトの名無しさん (ワッチョイ d233-YfnF)
20/03/17 22:32:51 Ai6ps0PO0.net
じゃあPowerShellで!
256:デフォルトの名無しさん (ワッチョイ c201-Ruah)
20/03/17 23:16:01 Np3/43wU0.net
>>242
C#, JS, Python, Ruby他で初心者教えた経験から来る個人の感想
逆になんでABテストやらないと分からないと思うの?
257:デフォルトの名無しさん (ワッチョイ 02a5-5LgE)
20/03/17 23:40:22 ybHHyXnP0.net
そりゃ教師そのものがRubyが得意でRuby贔屓ならRubyを教えるのが上手いんでしょ
だから生徒はRubyの習熟が早くなる
だから本人ですら「ABテストは必要」って思ってるんでしょ
要するに生徒の言語取得速度は教師の得意言語の習熟度合いに比例する
258:sage (ワッチョイ a265-aX25)
20/03/17 23:45:23 Zy9Qhkko0.net
ぶっちゃけ、Rubyに慣れると、Pythonでコレクションを使うことが苦痛になるんだよな
「コレクションが最高にイケてる言語を作ろう(dat落ち)」から引用
スレリンク(tech板:43-45番)
> 43 1 名前:デフォルトの名無しさん Mail: 投稿日:2017/05/05(金) 18:00:36.59 ID:oGFFYBoD
> コレクション使ってて使いづらいと思うことも最近は減ってきたよな
> 昔より言語が進歩してるんだろか
>
> 44 名前:デフォルトの名無しさん Mail: 投稿日:2017/05/05(金) 21:23:00.44 ID:Qc8J8Hpx
> >>43
> でもねぇ、世の中にはコレクション操作が使いづらい
> 退化した最悪な言語が存在する
>
> URLリンク(d.hatena.ne.jp)
>
> 元々は手続き型として設計された簡潔な言語だったけど、
> オブジェクト指向やら関数型やらを行き当たりばったりに増築し続けたおかげで、
> コレクション操作に関する「一貫性」という設計哲学が破綻してしまった例だね
>
> 45 名前:デフォルトの名無しさん Mail: 投稿日:2017/05/05(金) 21:52:01.71 ID:Qc8J8Hpx
> [Ruby]
> a.sort().reverse().map{|x| x.to_s}.join('-')
>
> [JavaScript]
> a.sort().reverse().map(function(x) { return x.toString() }).join(“-“)
>
> [Python]
> '-'.join(map(lambda x: str(x), reversed(sorted(a))))
259:sage (ワッチョイ 5365-f0Va)
20/03/18 00:02:08 NlFyVHMs0.net
>>250 のコレクション操作を例にすると、Rubyならメソッドチェーンが
左から右へ自然と流れるから、ヒストリー機能を利用して
対話的なプログラミングが楽々と実践できる
$ irb
irb(main):001:0> a = [1,4,3,2]
irb(main):002:0> a.sort
=> [1, 2, 3, 4]
irb(main):003:0> a.sort.reverse
=> [4, 3, 2, 1]
irb(main):004:0> a.sort.reverse.map(&:to_s)
=> ["4", "3", "2", "1"]
irb(main):005:0> a.sort.reverse.map(&:to_s).join('-')
=> "4-3-2-1"
irb(main):006:0>
Ruby利用者にとっては特別でもなんでもない当たり前の常識だけど、
Pythonの対話環境じゃ無理なのが、いやはやなんとも
260:デフォルトの名無しさん (ワッチョイ 292c-cvBQ)
20/03/18 00:49:04 LQtyodHE0.net
元々、Ruby/Groovy は似てる。
JavaScript, Kotlin も、Ruby/Groovy に似せてきてる
>>241
有名な雑食系エンジニア・KENTA も、YouTube で言ってるけど、
将来的に、機械学習・AI をやりたいからと言って、Python から始めるのは間違いです!
初心者は、Ruby でプログラミング自体を学ぶべき
Ruby on Rails を一通りやると、アプリ製作の全工程を学べる。
後はそれを他言語へ置き換えるだけ
それと、多くの学校が、Ruby を勧めるのは、就職率が高いから。
261:Python の場合は、web系の仕事が、1/10 しかない 機械学習・AI は、大学院・英検準一級などの高学歴が必要だから、 高卒などのプログラミング初心者を雇わない 高卒web系プログラマーは、Ruby。 高学歴総合職は、Python この内、学校で教えられるのは、Ruby。 Pythonを教えても、就職できないから詐欺になってしまう
262:デフォルトの名無しさん (ワッチョイ d9ad-NT4g)
20/03/18 04:59:33 /KOWoh670.net
>>244
それな
RailsなくてもRuby単体でも十分快適
ただWindows環境とデスクトップでのGUIが
どっちもイマイチだからWeb専用言語
みたいな扱いになってるんだろうか?
263:デフォルトの名無しさん (ワッチョイ d9ad-NT4g)
20/03/18 05:02:26 /KOWoh670.net
>>250
Rubyは文法がシンプルで書きやすいんだよな
書きやすさだけで言ったら
Ruby > Python >>> JavaScript
JavaScriptは変なクセと
ローカルルールが多すぎる
264:デフォルトの名無しさん (ワッチョイ 29d2-CgSh)
20/03/18 08:17:19 r6r+WwC90.net
>>250
Rubyのjoinなら事前の文字列化は不要なので
a.sort.reverse.join('-')
265:デフォルトの名無しさん
20/03/18 13:14:11.40 fwLKdVFoF.net
語順に拘る必要は無いと思う
a = [3,5,1,2,4]
'-'.join(pd.Series(a).sort_values(ascending=False).apply(str))
266:デフォルトの名無しさん (ワッチョイ 9301-lXNI)
20/03/18 14:43:54 mQYnVt2r0.net
>>249
違うよ
教えるコアな要素は共通にもかかわらず
初心者がつまづく内容や頻度だったりそれを自己解決できる割合が言語によってかなり違う
それが習熟速度に影響を与える一番の要因
ABテストやってみたいねと書いたのは複数言語を学習する順番が
プログラミング習熟度に与える影響の調査をペーパー書けるくらいフォーマルにやってみたいねって話
3言語なら最低6グループ必要になるわけで
統計的に意味ある人数集めてそんなテストするの普通の会社では無理だからね
Aグループ: Ruby -> Python -> JavaScript
Bグループ: Python -> JavaScript -> Ruby
…
267:デフォルトの名無しさん (ワッチョイ 9301-lXNI)
20/03/18 14:56:08 mQYnVt2r0.net
>>256
思考の順序とコードで表現する順序が近ければ近いほど
思考ノイズが少なくて初心者に限らず人間には理解しやすい
単にできればいいってもんじゃない
結局Pythonでわかりやすく読みやすいコードを書くには
自然な思考順序と異なる部分をラップした関数を独自に定義していくか
Pythonで表現できる順序に自分の思考順序を合わせていくしかなく
一般に読みやすいと思えるコードを書く労力がRubyに比べると段違いで多い
少し前にPythonスレで質問があったflattenがいい例
268:デフォルトの名無しさん
20/03/19 04:20:21.38 JDU05jIv0.net
Ruby の偽は、nil, false の2つだけだが、
JavaScript, Python では、各型に偽があるので、10個ぐらいある
こういう書き方ができてしまうのが危険!
整数の0 は偽
昔のC でも、MISRA-C などのコーディング規則で禁止していたもの。
条件式に、bool 値とみなされるもの以外を、
例えば、単純な整数などを使ってはならない
let ary = [ ]
let message = ""
if ( ary.length ) {
message = "真"
} else {
message = "偽"
}
console.log( message ) //=> 偽
269:デフォルトの名無しさん
20/03/19 07:34:00.79 Twc2892j0.net
>>258
Rubyの文法は自然だと思う
>>259
ゼロを偽に使うのは筋悪だね
270:デフォルトの名無しさん
20/03/19 09:26:18.85 YUAN2W2v0.net
コマンドが正常に終了した時は0を返すもんですよ
271:デフォルトの名無しさん
20/03/19 12:39:59.01 Xi+VoJGEd.net
Rubyが理解できれば、JavaScriptもだいたい理解できるってまじっすか?
272:デフォルトの名無しさん (ワッチョイ 292c-cvBQ)
20/03/19 13:04:35 JDU05jIv0.net
Ruby・Groovy は似てる。
JavaScript, jQuery, Kotlin は、メソッドチェーン中心で、Rubyに似せてきてる
サーバー側のNode.js は、Rubyのコピー。
npm(node package manager), yarn は、Bundler のコピー
CakePHP, Spring Boot は、Rails のコピー。
だから、流行った
Rails がサーバー側の標準。
だから、RubyからLinux とか、サーバー側へ進む人が多い
273:デフォルトの名無しさん (ドコグロ MM95-u5rl)
20/03/19 13:10:40 TVS3Wm7/M.net
>>262
RubyはRails Scriptとして使うだけならさほど難しくはないが純粋に言語としては極めて複雑な部類で、
Rubyを理解した、と自信を持って言えるレベルならJavaScriptなどもはや楽勝
274:デフォルトの名無しさん
20/03/19 13:16:56.47 Twc2892j0.net
>>262
Rubyを覚えれば
Pythonはだいたい理解できる
JavaScriptはちょっと理解できる
クセがある部分が多いから
まあ2015でクラス構文が入って
だいぶマシになったけど
275:デフォルトの名無しさん (ワッチョイ 13a5-TOPM)
20/03/19 13:49:34 PJNEdIzn0.net
クラスが入っただけでマシになった、ってことか?
276:デフォルトの名無しさん (ワッチョイ 292c-cvBQ)
20/03/19 14:07:04 JDU05jIv0.net
JavaScript のクラス構文
class Card {
constructor( number ) { this.number = number }
}
let cards = [ ]
for ( let count = 1; count <= 5; count++ ) {
cards.push( new Card( count ) )
}
console.log( cards.map( x => x.number ) ) //=> [ 1, 2, 3, 4, 5 ]
277:デフォルトの名無しさん (オッペケ Sr85-NT4g)
20/03/19 16:59:22 88pUuzIXr.net
JavaScriptはクラス定数すら定義できないからな
最近のはしらんが
278:デフォルトの名無しさん
20/03/19 17:00:49.00 DXn00lXA0.net
Pythonはうんこだが、Rubyのメソッドチェーンも今となってはゴミの部類で
パイプライン演算子こそが正解
279:デフォルトの名無しさん
20/03/19 17:26:29.02 yS5RdDEsF.net
URLリンク(codepad.org)
URLリンク(codepad.org)
280:デフォルトの名無しさん (ワッチョイ 1161-44a/)
20/03/20 00:53:19 405ti7Ej0.net
>>264
JS は、promise, then, async, waitUntil, ServiceWorker(PWA)などの部分がかなり難しく感じる。
event の bubbling phase, capture phase, target phase と絡んで
cancelBubble, stopPropagation, preventDefault
の話も正確に理解するのはなかなか難しい。
281:デフォルトの名無しさん (ワッチョイ 1161-44a/)
20/03/20 00:56:41 405ti7Ej0.net
event.waitUntil()
event.respondWith()
はいまだにちゃんと理解できてない。
ServiceWorkerのWorker Lifecycleも物凄く理解が難しい。
282:デフォルトの名無しさん
20/03/20 01:05:01.24 405ti7Ej0.net
さらに、Blob の概念も独特で難しい気がする。
283:デフォルトの名無しさん
20/03/20 01:07:27.55 405ti7Ej0.net
これも理解できない。
誰かに教えてほしい。
addEventListener('fetch', event => {
// Prevent the default, and handle the request ourselves.
event.respondWith(async function() {
// Try to get the response from a cache.
const cachedResponse = await caches.match(event.request);
// Return it if we found one.
if (cachedResponse) return cachedResponse;
// If we didn't find a match in the cache, use the network.
return fetch(event.request);
}());
});
284:デフォルトの名無しさん
20/03/20 01:51:15.32 b2ihZgLg0.net
>>271
その中で言語の要素はpromise/then/async�
285:フ3つだけ それも全部Promise 言語とフレームワーク/APIは分けて捉えないと RubyとRailsを混同してるのと同じ
286:デフォルトの名無しさん
20/03/20 01:54:59.68 405ti7Ej0.net
>>275
でも今のJSでPromiseを避けて済ますことは難しい。
特にPWAのHelloWorld的なプログラムで>>274のように、
Promise, async, await, respondWith などの難しいが概念が同時に出てきてしまい、挫折してしまう可能性が高い。
やりたいことは単に、ウェブアプリのアイコンをホーム画面に出したいだけだと言うのに。
287:デフォルトの名無しさん
20/03/20 09:01:29.50 CQQp7Y750.net
jQuery でも基本は、Promise。
成功・失敗時の処理を書けばよい
async/await は、非同期を同期的に書ける。
内側にネストしないように書ける
288:デフォルトの名無しさん
20/03/20 10:07:25.86 IqcuAu3DM.net
>>276
>でも今のJSでPromiseを避けて済ますことは難しい。
言語が提供する機能とそれ以外を区別しろって言われてこれかよw
Promiseが理解できないのも納得
289:デフォルトの名無しさん
20/03/20 10:14:58.61 u1wBzCgK0.net
>>276
× でも今のJSでPromiseを避けて済ますことは難しい。
○ 非同期プログラミングをするならどの言語でも一緒
GUI関連は大抵の言語で非同期処理をする
要するに画面の描画をブロックしてはいけないからだ。
RubyはそもそもGUIとかでてこないから
使わないだけ
290:デフォルトの名無しさん
20/03/20 11:04:22.80 405ti7Ej0.net
>>279
例えば、Win32APIなど非同期処理もMSDNを読めばちゃんと理解できる。
ところが、Promiseは公式サイトが何を言っているのか分からないので
99%の人が理解できない。
291:デフォルトの名無しさん
20/03/20 11:30:29.28 nAHhYb7gF.net
馬鹿除けにちょうど良い機能やん
292:デフォルトの名無しさん
20/03/23 10:55:32.08 mWzqBLYF0.net
jsは伝統的にコールバックをやってきたというのを知っていないと理解は難しいかもね
promiseはコールバック地獄の救世主だからそれなしでは語れない
イベント系はもともとクリックされたらみたいなこととこから始まってるのを知ってないとイメージがつかめないだろうな
293:デフォルトの名無しさん
20/03/23 10:59:24.89 7lDoSnDw0.net
Cをみりゃ分かる
コールバック地獄の救世主なんていない
まやかしだ
294:デフォルトの名無しさん
20/03/24 12:55:54.95 n56XI6Ab0.net
Windows 10, WSL, Ubuntu 18.04 を起動して、ユーザーのホームディレクトリで、
Ruby のバージョンマネージャーのrbenv-installer を実行したけど、
rbenv / rbenv-installer
URLリンク(github.com)
これの34行目
rbenv="$(command -v rbenv ~/.rbenv/bin/rbenv | head -1)"
rbenv は、初回は空文字列だが、インストール後には、rbenv となる
38行目
cd "${rbenv%/*}"
これは、cd rbenv するが、rbenv というディレクトリは存在しないのでエラーになる!
.rbenv なら存在するけど
51行目
git pull --tags origin master
なので、git pull されない
この38行目は、バグなのかな?
295:284
20/03/24 13:30:12.20 n56XI6Ab0.net
rbenv-installer の間違いの訳ないよな。
漏れの手順・環境がおかしいのか
初回はホームディレクトリで実行して、
インストール後はホームディレクトリではなく、~/.rbenv ディレクトリで、実行するのかな?
eval "$(rbenv init -)"
してるけど、まだどのバージョンも入れていないから、
rbenv というディレクトリは存在しないのかも?
バージョンを入れたら、rbenv というディレクトリが作られるのかも?
296:デフォルトの名無しさん
20/03/24 13:32:10.90 WT9cP8p50.net
文句言う前に
VMでも何でも良いから
素の生インスコ環境造って
他の影響を排除してみ
297:デフォルトの名無しさん (ワッチョイ 8b14-9KJh)
20/03/24 15:16:18 fj9Tix3R0.net
>>284
知らんけどさぁ。そのコードだけ見て判断するなら
> rbenv="$(command -v rbenv ~/.rbenv/bin/rbenv | head -1)"
まずrbenvには普通はコマンドのフルパスが入る。
二番目の~/.rbenv/bin/rbenvはわかりやすく、そこにrbenvコマンドがあればそのパス
一番目は、rbenvコマンドをPATHから検索して見つかったものが入る。だから本来はフルパス
38行目の cd "${rbenv%/*}" からもフルパスが入ってるという前提で
rbenvコマンドがある前提でそのディレクトリに移動しようとしている。
もし本当に rbenv変数に rbenv という文字列が入るとしたら
おそらく rbenvがシェル関数の場合だろう。
rbenvというシェル関数は、実は rbenv を使用していると作られる。
正確には eval "$(rbenv init -)" の実行時に定義されている。
しかし rbenv-installer は別コマンドだ、現在のシェルで定義しているシェル関数の rbenv が
呼び出したrbenv-installerという子プロセスから見つかるはずがない。
この前提が崩れるとしたら、
1. rbenv-installer を . コマンド (または source コマンド)で呼び出している。
意図的にやらない限り、そうはならないし、やってるのだから気づくだろう。
そしてもう一つ。
2. rbenvシェル関数がexport -fされている場合だ。通常exportできるのは変数だけなのだが
bashの変な機能で関数もexportできて、それを子プロセス(当然bashに限る)から参照できてしまう。
envコマンドで環境変数一覧を表示してみれば、BASH_FUNC_rbenvという特殊な名前で
rbenvシェル関数のコードが環境変数に設定されてるのが見えないか?だとしたらそれが原因だ。
普通は関数をexportしてるはずがないんだが、どこかでなにかのついで全シェル関数をexportとかやってないか?
3. もしくはBASH_ENV環境変数を使ってないか?これはbash起動時に自動的に
シェルスクリプトを実行するための変数だ、そこでrbenvシェル関数を定義していたりしないか?
298:デフォルトの名無しさん
20/03/24 15:26:44.36 fj9Tix3R0.net
まあバグとまでは言わんけど、対応漏れとして / で始まらないものは
シェル関数として省くとかすれば対応は可能かもしれんなぁ。
それ周りの解決法は調べた事ないので、どうするのがベストなのかしらんけど
299:284
20/03/24 17:01:58.24 n56XI6Ab0.net
rbenv のトップページを参考にして、実行した
URLリンク(github.com)
Basic GitHub Checkout の所で、rbenv-installer を使った。
すると、git clone で、~/.rbenv の下に、ローカルリポジトリが出来た
次に、~/.bashrc (漏れは、~/.bash_aliases)に、下の2行を追加したので、
常に、bash 起動時には、eval "$(rbenv init -)" が実行される
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
>>287
1. rbenv-installer は、1回やっただけです。
2. BASH_FUNC_rbenv は無いです。
3. BASH_ENV という環境変数も無いです
which rbenv とすると、環境変数PATH に、~/.rbenv/bin を追加しているから、
~/.rbenv/bin/rbenv
確かに、38行目の、cd "${rbenv%/*}" は、rbenv 変数の、最初の/ 以下を削除するから、
パスが入っている事を想定しているのかも?
ただ、2回目以降に、rbenv-installerを実行した場合に、
51行目のgit pull --tags origin master で、
リモートリポジトリから最新を取得するように書いてあるから、
38行目の、cd "${rbenv%/*}" で、エラーになると、51行目へたどり着けないかなと思って
まあ、まだどのバージョンも入れていないから、
バージョンを入れたら、rbenv 変数にパスが入ってくるのかも知れない。
こんなに有名なアプリに、こんな単純なバグがあるとは思えないし、漏れの勘違いでしょう
300:デフォルトの名無しさん (ワッチョイ 0dad-OG1y)
20/03/28 22:49:31 413BE/qa0.net
たのしいRuby第5版の古本買ったのでRuby入門します(^_^)/
301:デフォルトの名無しさん
20/03/28 23:25:45.38 lv
302:HGCPQW0.net
303:デフォルトの名無しさん
20/04/01 03:54:14.10 PTOn+beS0.net
VScodeでRuby実行環境作ったけど楽しいは!
サクサク動かして試せる!
304:デフォルトの名無しさん
20/04/01 05:08:16.41 T/a2Vy7O0.net
Windows 10, WSL, Ubuntu 18.04 で、
rbenv で、Ruby 2.6.5 をインストールできた!
VSCode のRemote WSL もあるから、改行コードさえ気を付ければ、
Windows側のVSCodeで、Linux側のRubyを動かせる
今までは、WSL のUbuntu アプリを起動して、vim を使ったり、
コマンドプロンプト・PowerShell で、wsl と入力していたけど
RubyInstaller for Windows, MSYS2/MINGW も、いらなくなるかも
305:デフォルトの名無しさん
20/04/01 05:23:37.67 d9NDYWBE0.net
インスタンスがどれで変数の型がどれでオブジェクトはどれってごっちゃになってわからないのですが
class A=new A() インスタンスはこの行全てを指すのですか?
306:デフォルトの名無しさん (オッペケ Sr01-KN+/)
20/04/01 07:10:14 uldFLeaHr.net
まず日本語の勉強から始めろ
307:sage
20/04/01 08:45:05.94 Y4BtYbUm0.net
まず、そもそも class A=new A() は Ruby の文法として完全に誤りだ
Ruby では、クラス A を定義するなら、class A; … ; end と書く
同様に、クラス A からインスタンスを生成して変数 a に代入するには a = A.new と書く
プログラミングが初めてであればオブジェクト指向の概念がゴッチャになるのは
しかたないとはいえ、それ以前にプログラミングの基本から学んだほうが良いと思うよ
308:デフォルトの名無しさん
20/04/01 09:07:03.23 T/a2Vy7O0.net
ひとまずこれで、クラスA を定義して、その設計書に基づき、
インスタンス・実体a・b を作った
クラス内に、変数・関数を定義していけば、より本格的なクラスになっていく
class A
end
a = A.new
b = A.new
309:デフォルトの名無しさん
20/04/01 11:18:53.70 5VJq6KKKF.net
a = (class A; end).new
とかあるんだっけ