Ruby 初心者スレッド Part 66

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 2a2c-RM0q)
垢版 |
2020/01/04(土) 01:15:34.30ID:X7t3Qsuc0
プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ

質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。
Ruby on Rails については、WEBプログラミング板で

前スレ
Ruby 初心者スレッド Part 65
https://mevius.5ch.net/test/read.cgi/tech/1545421414/

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

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

逆引きRuby
http://www.namaraii.com/rubytips/

Ruby コミュニティ公式
https://www.ruby-lang.org/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2020/02/12(水) 00:01:32.50ID:39kCYFWR0
>>152
keywordやsymbolそれ自体が式なわけないだろ?
それと同じことを主張してたの理解できたのかな?

制御構造のif式だって`if 式; end`全体で式として評価されるわけで
ifだけやendだけが式になるわけじゃない

if修飾子は`式 if 式`全体で式として評価されるわけで
後置の`if 式`だけで式になるわけじゃない

でその一部を取り出して
「その実現のためだけにRubyが「全てが式」ではなくなっているという極めて特殊な構文」
って言っちゃうのがどれだけ的外れかって話な
154デフォルトの名無しさん (ワッチョイ a701-9iBN)
垢版 |
2020/02/12(水) 01:40:12.18ID:3IloEGU30
電卓の構文解析器を作ったことがあれば、だいぶご意見が変わるはず。
155デフォルトの名無しさん (ワッチョイ ef1d-sg8N)
垢版 |
2020/02/12(水) 01:51:46.06ID:CB9IiDBv0
実務経験1年で月収80万稼げるエンジニアになった理由
https://www.youtube.com/watch?v=DrbbyGsHQic
意識が低いエンジニアこそフリーランスになれ
https://www.youtube.com/watch?v=nSEaAJlgjbQ
フリーランスエンジニアの週3労働ってどんな感じ?
https://www.youtube.com/watch?v=8yjoDCdbzMc
ぼくがスキルのない社畜ならこうやって脱する
https://www.youtube.com/watch?v=aae8xxbUlMM
初めて人を雇ったらもう二度とサラリーマンをやりたくないと思った話
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
2020/02/12(水) 02:31:04.61ID:zXn0/Xf90
>>153
もう黙ったほうがええで。
アホが漏れとる。
157150および151 (ワッチョイ 7274-XNsy)
垢版 |
2020/02/12(水) 03:15:58.26ID:1hwSKrXM0
>>153
>でその一部を取り出して
>「その実現のためだけにRubyが「全てが式」ではなくなっているという極めて特殊な構文」
>って言っちゃうのがどれだけ的外れかって話な

自分は>>141ではないが、いったいぜんたい何を話したいのか訳がわからんよ
2020/02/12(水) 06:32:46.81ID:m8mhjAm70
>>155
グロ
2020/02/12(水) 09:42:28.21ID:gfctBwevM
「Rubyでは全てが式だ」というとき、ステートメント(文)と式の区別がないことを意味するのが普通だ
言語によってはメソッドやクラスの定義も普通の式だったりするが、Rubyでそう思っている奴はいないだろう
しかしRubyではステートメントと式の区別がないというのは厳密には正しくない
文法定義のソースを見れば明らかだが、それが後置構文の存在のためであるのは事実
2020/02/12(水) 22:16:17.93ID:Pa88PYmd0
def foo(arg)
arg + 1
end(99) #=> 100
動かない
2020/02/13(木) 10:51:24.11ID:6MxuLkX50
p send(def foo(a); a + 1;end, 99) # => 100
2020/02/13(木) 21:55:21.77ID:i9bfivOD0
お、うーむ...なるほど
2020/02/13(木) 22:02:31.32ID:TNGg/IHkr
p def foo(a)
  a + 1
end.then{|s| method(s)[99]}

# => 100
2020/02/13(木) 23:08:11.62ID:0ZbbVgVA0
つまり、扱いは同じではない、ということかな?w
2020/02/13(木) 23:20:32.77ID:oR70BErs0
foo = -> (arg) {
arg + 1
}.( 99 ) #=> 100
166デフォルトの名無しさん (ワッチョイ 122c-LiuO)
垢版 |
2020/02/14(金) 12:22:11.03ID:+9NDg3r60
( ) で囲んで式にすれば、
JavaScript のIIFE (Immediately Invoked Function Expression; 即時実行関数式)みたいに、無名関数にできた!

( -> (arg) {
puts arg + 1
} ).( 99 ) #=> 100
2020/02/14(金) 12:36:32.48ID:+9NDg3r60
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 でも使うのかな?
2020/02/14(金) 17:39:20.53ID:EOtBZfN80
>>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自身に名前がつくわけではない
2020/02/15(土) 13:46:02.32ID:BIOI8zPQ0
>>167
ENV['PATH'].split(";")が失敗するってmsys2関係なくなかなかレアな環境だと思うが
環境変数をクリアしたりしてるのかい?
170167 (ワッチョイ 122c-LiuO)
垢版 |
2020/02/15(土) 17:09:24.91ID:8drC8DpT0
msys2 を入れずに、Ruby を使っているから、
コンパイルできないし、Windows 10 のネイティブDLL を使えない

Ruby 2.5 で、SQLite も使えなくなったw

WEBrick は、Rubyで実装されているから、msys2 無しでも動くと思ったけど、
WEBrick::HTTPServlet::CGIHandler で、ネイティブDLLを使っているのだろう

rubyist magazine を冒頭から読み始めたが、読み応えある!
2020/02/16(日) 02:30:58.30ID:A+9IORaN0
>>170
msys2_installation.rb:63にmsys2関係ないって
https://github.com/oneclick/rubyinstaller2/blob/rubyinstaller-2.5.0-1/lib/ruby_installer/build/msys2_installation.rb#L63
これが失敗するのは環境変数がおかしいか、上書きしているか
それともENVを再定義しているくらいしか思いつかない
172167 (ワッチョイ 122c-LiuO)
垢版 |
2020/02/16(日) 19:14:49.59ID:5EL9p8ON0
漏れは、Windows 10,Ruby 2.5 で、
Run ‘ridk install’ to install MSYS2 and development toolchain. も、チェックしていないし、
MSYS2 の開発ツールと、MINGW のコンパイラもインストールしていないから

Rubyの環境構築(Windows10編)
https://www.kenschool.jp/blog/?p=3898

エラーログ

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
2020/02/17(月) 01:04:16.59ID:gpbv7rcq0
あー、WebrickのCGIHandlerはCGIPathEnvの関係でENV["PATH"]がnilになりうるのか
WEBrick::HTTPServer.newに渡すハッシュにCGIPathEnv: ""を加えとけばいいはず
2020/02/17(月) 01:35:30.73ID:A9t7x7q20
ありがとう。
オプションに、:CGIPathEnv => '' を加えたら、正常に動いた!

すごい実力じゃん!
ソースコードを追っていったの?

opts = { :CGIInterpreter => "C:/Ruby25-x64/bin/ruby.exe",
:CGIPathEnv => '', # msys2 のエラーを避けるために、必要!
:DocumentRoot => './', # この指定が必要!
:BindAddress => '127.0.0.1', :Port => 20080 }

srv = WEBrick::HTTPServer.new( opts )
2020/02/17(月) 05:37:18.50ID:SykEsoD4r
なんかムカつく
176デフォルトの名無しさん (ワッチョイ d62d-qw96)
垢版 |
2020/02/17(月) 15:17:53.59ID:9CP/4dwv0
新しくて安い本が出たので、頭の体操にRubyの勉強を始めたところなんだけどさあ
よくネット上に、「Railsの本をやってからRubyの勉強をした」みたいな人がいるのはどういうことなの?
RailsってRubyが出来ないと何も出来ない訳でもないの???
2020/02/17(月) 15:33:27.23ID:qj5C8HtX0
普通にプログラミングできる人にとっては言語の違いなんて些細なもので
いちから作るのならともかく、そこいらにあるRailsのコードや自動生成されたものを
見ればそこからRubyという言語を推測で理解できるんだよ。
このコードがクラス定義だな。Rubyではこう書くんだなって
わからなければそこだけググればいい

Railsはやり方というものがあるので、それに合わせるように
Railsの本を見て流れを把握する必要がある。

検索は断片を見つけるのはキーワードから簡単に見つけられるが
流れはそうはいかない。だいたいの本はページの最初から流れを
そのまま書いてあるから、本でざっと勉強するのが最初のうちは手っ取り早い
178デフォルトの名無しさん (ワッチョイ d62d-qw96)
垢版 |
2020/02/17(月) 18:20:35.95ID:9CP/4dwv0
そういうことか
言語だけ先にやると変な癖がついたりもするし、演習ファーストの学習も結構いいかもな
179デフォルトの名無しさん (ワッチョイ b7d2-Htok)
垢版 |
2020/02/17(月) 18:45:44.78ID:wxeqwMT50
日本語の勉強がしたいと言ったら
舞城王太郎の小説を読めと言われた気分
2020/02/17(月) 19:30:14.53ID:A9t7x7q20
たぶん、すでに多言語を知ってる人だろう

入門書の次のレベルの、新しい本が出た!
Ruby on Rails 6 実践ガイド、黒田努、2019/12/20

実践Ruby on Rails 4: 現場のプロから学ぶ本格Webプログラミング、黒田努、2014
この本を書き換えたもの

無料のRails チュートリアルよりは簡単

Windows プロ版のDocker が不安定だから、Virtual Box, Ubuntu 18.04 でやってる!
181デフォルトの名無しさん (ワイーワ2 FF6a-BDVY)
垢版 |
2020/02/18(火) 12:16:06.30ID:r+eOvEZJF
またカタワを量産するつもりか
RailsRubyの将来は暗いな
182デフォルトの名無しさん (ワッチョイ ff2c-lQWV)
垢版 |
2020/02/25(火) 19:09:01.56ID:Ykw6mmDG0
「aabc → bc」みたいに、先頭から特定の文字が連続するとき、それを除去するには、どう書く?
正規表現を使ったものと、使っていない場合の両方

str = "aabc"

# 先頭から続く、a を除去する
while str.start_with? "a" # 先頭文字が、a なら
str.slice! 0 # 先頭文字を削除する
end

p str #=> "bc"
2020/02/25(火) 20:42:26.89ID:uCkT0+w20
そりゃ正規表現のステートマシン通りに書くでしょ
2020/02/25(火) 22:00:57.29ID:uBU1PACqr
>>182

puts str[/\Aa*\K.*/] # => bc
2020/02/25(火) 22:07:44.86ID:uBU1PACqr
>>182

puts str[str.size.times.find{|i| str[i] != ?a}..] # => bc
2020/02/25(火) 22:22:39.72ID:oSeHo6cg0
>>182
def remove_consecutive(string)
string.sub(/^(.)¥1{1,}(.*)$/) {|_| remove_consecutive($2)}
end

remove_consecutive("aaaabbbbbbccab") #=> “ab”
remove_consecutive("1112234") #=> "34"
2020/02/25(火) 22:59:04.49ID:/XslCVsc0
本当に文字列から連続部分を除去したいのか、
連続部分の後ろが取り出せればいいのか
2020/02/25(火) 23:54:26.45ID:Ykw6mmDG0
元々は「0082 → 82」みたいな文字列の先頭から続く、0 を除去したかった。
先頭以外のものは、除去しなくてよい

こういうメソッドが無いか、探してみたけど見つからなかった

レシーバーの破壊的な変更をしてもよいし、別の文字列を作って返すものでもよい
2020/02/26(水) 00:52:55.60ID:TmIxTRKQ0
文字列の先頭から続く、特定の文字を除去する

1文字でも除去するし、連続するかぎり除去するが、
先頭以外のものは、除去しなくてよい

a を除去する場合

abc → bc
aaXaa → Xaa
2020/02/26(水) 01:11:17.25ID:sMj0eedP0
>>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”) #=> "Xaa"
2020/02/26(水) 04:46:15.55ID:TmIxTRKQ0
>“0082”.to_i.to_sでよくね?

長い文字列だと、数値化できない言語もあるから、
汎用的に作れないかなと思って
2020/02/26(水) 08:06:23.34ID:PiyizPRV0
だからオートマトンで作れって言ってんじゃん
ttps://image.slidesharecdn.com/1-140715084054-phpapp01/95/1-11-638.jpg
2020/02/26(水) 08:22:48.67ID:kXv4PxDr0
オートマトンってなんで羊なんだろう?
自動的に毛を刈って自動的に料理されるのか?
2020/02/26(水) 08:29:53.13ID:bDSWeqSr0
オートマンだと思ってた
インド哲学かよ
2020/02/26(水) 08:36:52.65ID:kXv4PxDr0
嘔吐マトン
196デフォルトの名無しさん (ワッチョイ 03d2-Cv5o)
垢版 |
2020/02/26(水) 12:11:34.52ID:GrI3XnzJ0
>>189
def ltrim(s, c)
s[/^#{c}*/] = ""
s
end
p ltrim("aaaabcaabc", 'a')

"bcaabc"
2020/02/26(水) 23:09:06.75ID:TmIxTRKQ0
Ruby on Rails 6 実践ガイド、黒田努、2019/12/20

Ruby on Rails 6 超入門、掌田津耶乃、2020/2/21

巨匠・掌田も、Rails 6 に参戦!

後は、山田祥寛・WINGSプロジェクトが、どうするか?
198デフォルトの名無しさん (ワイーワ2 FF82-7qQN)
垢版 |
2020/02/27(木) 15:17:58.32ID:G6pyHvdgF
掌田の本は要らん
2020/02/28(金) 09:49:01.76ID:tB/cuWAa0
掌田津耶乃って何者? (Late 2012)
https://egg.5ch.net/test/read.cgi/mac/1349360916/

巨匠か?
Mac凋落と共に仕事を失った人間、とか書かれてんぞ
2020/02/28(金) 09:53:35.23ID:tB/cuWAa0
掌田津耶乃って何者?
https://mentai.5ch.net/test/read.cgi/pc/971599471/

macの賤民思想に凝り固まった人間?
そんな物体なら要らないな
201197 (ワッチョイ ca2c-rVtL)
垢版 |
2020/02/28(金) 13:58:28.72ID:GfVfgYuK0
多言語の3強が、掌田津耶乃・山田祥寛(WINGSプロジェクト)・柴田望洋。
他に、スッキリ・やさしい・猫でも・独習など

掌田は、その中でも断トツ!

多言語の入門書・フレームワーク・ゲームエンジンなど、
ここ数年で、20冊とかある

世界的に見ても、断トツ!
2020/02/28(金) 14:40:57.13ID:LkDsYiUy0
何か後ろの二人が気の毒
203デフォルトの名無しさん (ワッチョイ 9e2d-9Aak)
垢版 |
2020/02/28(金) 15:39:11.30ID:Y4GSbUWj0
Rubyはもう本で勉強するのは古い
今は迫 佑樹とかあおいとかのオンラインコースで勉強する時代だよ、
2020/02/29(土) 02:55:28.33ID:udUacP9j0
山田祥寛は10年近く前C#でよくお世話になった
他言語から来た入門者に程よくわかりやすい本を書く印象

柴田望洋はC言語系で何冊か読んだが
内容がすごく簡潔で短い時間でまとめ的な知識を頭に入れたり
特定のトピックを復習したいときには有用
(ただ今ならWebサイトで代用可能)

掌田津耶乃・・・
本屋で間違って手にしてもパラっと読めば速攻本棚に戻すやつ

似たような浅めの入門本著者だと
クジラ飛行机のやつは実践的なやつが多くて悪くないと思う
205197 (ワッチョイ ca2c-rVtL)
垢版 |
2020/02/29(土) 23:32:52.49ID:6IdZMwnf0
なでしこの作者・クジラ飛行机は、
近年、Python から、多言語の作者として乱入してきた

なでしこだけでは食えないし、やむを得ない方向転換w

巨匠の柴田望洋は「新・明解C言語」のイメージだけど、近年、多言語に参入した
2020/02/29(土) 23:43:57.15ID:c0ztbNyQ0
>>204
新独習c# は旧独習ハーバートシルトと比べてどうでしょうか?
新独習Java は、旧独習が史上稀に見る惨憺たる出来だったことから、新独習はよくなるしかないと予測しています
あと、旧独習を高く評価している私としても新独習C++ については興味がありますね
2020/03/01(日) 00:44:56.42ID:NSpMdQYF0
さすがに日本人で、シルトと比べられる著者は、いないだろ

たいてい読み応えがあるのは、Effective シリーズなどの外人著者
208デフォルトの名無しさん (ワイモマー MMea-W44n)
垢版 |
2020/03/01(日) 10:00:51.93ID:JWAFHnbAM
しつもんです
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}
こう書くしかありませんか?簡潔に表現したいです
2020/03/01(日) 10:43:49.36ID:n6wzTSL90
> 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の方が簡潔です
2020/03/01(日) 11:35:40.57ID:qmcGlirD0
> 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しなくていいんですか?
2020/03/01(日) 12:14:22.10ID:8hJkpeX/a
元から間違っているがsumではない
2020/03/01(日) 12:53:48.43ID:JWAFHnbAM
あごめんsumじゃなかったわw
みなさんどうもありがとうございました
213デフォルトの名無しさん (ワッチョイ 067d-X91k)
垢版 |
2020/03/01(日) 18:13:12.70ID:RW98tzZT0
rubyでtwitterとかyoutubeどうやって作るの?
全くイメージが沸かない
ツイートがリアルタイムで他者にも表示されるのってどういう仕組み?
2020/03/01(日) 21:01:11.61ID:QPyt1UlH0
httpとブラウザの仕様の話なのでrubyは関係ない
2020/03/01(日) 21:57:35.00ID:F2v5Atsqa
scaffold で一発で作るという意味だろう
2020/03/01(日) 22:44:11.42ID:NSpMdQYF0
0から手を動かして作るRailsチャットアプリ【チュートリアル】
ttps://www.youtube.com/watch?v=WCsgcp5dg7M

Ruby on Rails で、Web Socket を使う、とだこうきの動画
2020/03/01(日) 22:47:44.78ID:QZXNPr7ra
>>213
JavaScriptでサーバー側のAPIを叩き、サーバーがそれに対して結果を返し、JavaScriptでその結果を画面に反映させる
基本はこれだけ
Rails任せじゃなくてちゃんとWebの仕組みを理解してAPIを実装しなきゃいけないし、JavaScriptもゴリゴリ書かなきゃいけない
SQSなどのAWSやGCPのマネージドサービスや、Kafkaのようなデータ基盤系のOSSなど高度なバックエンド技術の活用も必要だ
Railsのチュートリアルに毛が生えたような典型的なWebとは次元が違う
2020/03/01(日) 23:24:11.39ID:J3IrN4Ey0
クライアントがブラウザとは限らないが
いずれにしろrubyは全く関係ない

web push
server-sent events
push notification service (e.g. APNs)

↑この辺りを学べばいい
単なる通知用途で生のweb socketを
ゴリゴリ書いたりはしないんじゃないかな
2020/03/01(日) 23:52:21.24ID:H/U8nx/nM
プログラミングスクールでRails勉強しました系だとプル型のアプリの作り方しか知らないだろうから、クライアントへの通知の実装方法以前に、
そもそもユーザーがツイートしたときに受信者に対して通知をキックするところの仕組みが想像できないんだろうな
そのへんはいわゆるバックエンドってやつで、ユーザー数が増えてもスケールするためには小手先のコーディングだけでなくAWSのインフラ設計まで含めた作り込みが必要
Railsできますウェーイみたいなのとは一線を画す、いい大学出たガチな連中が鎬を削ってる世界だ
2020/03/02(月) 00:40:51.77ID:8PHDRupm0
Ruby による今世紀最大の起業家、Vagrant のMitchell Hashimoto(HashiCorp)も、
Go のTerraform へ行った

今や主戦場は、Docker, Kubernetes になった

でも、サーバーの基本は、Ruby。
Node.js も、Rubyのコピーだから

Spring Boot も、Rails のコピー
2020/03/02(月) 01:33:56.26ID:AuxsFe1o0
>>217
>>219
おまえもウェーイ系なのに無理してレスすんな
2020/03/05(木) 19:13:20.03ID:h922Dn8C0
>>204
>柴田望洋はC言語系で何冊か読んだが
>内容がすごく簡潔で短い時間でまとめ的な知識を頭に入れたり
>特定のトピックを復習したいときには有用

いかにも教科書って感じの本書くよね
オレもオススメできる著者だと思うぞ!
2020/03/05(木) 19:35:07.49ID:1tYxfkRNM
本屋いったらrubyの本は駆逐されてた
2020/03/05(木) 21:34:51.52ID:h922Dn8C0
すっかりPythonの本に置きかわったよな!
やっぱ人工知能ブームに乗れなかったのがデカイ
2020/03/06(金) 14:08:05.02ID:gkPkCuAw0
・P系言語には絶対にPを付けるべきであった
・endがある言語には終わりがある

オカルト方面の理由だとこのようになる

「pascalは終わった」とは業界の定型句だが終わったのはendがあるからだ
なので「end」という文字の視覚的影響は思いの他大きいのではなかろうか

代わりにpythonはselfを見続けることになる

他の理由としては、我々は「ぱい」と発音したい生物である、という、これまたオカルトな理由だ
特にPから始まる単語は人類にとって基本的・根源的らしい
「PyPI」とかどーすんだコレとか思っちゃうような発音の存在こそが、pythonを存続させている大きな原動力だ
2020/03/06(金) 16:38:00.92ID:Z17kfdKR0
なぜ差が付いたか RubyとPython
――(日本語圏の)慢心、(AI)環境の差!
2020/03/06(金) 20:06:25.61ID:dfpAZ0dma
cobol には end があるが、しぶとく生き残っている
早く絶滅してほしいものだが
2020/03/06(金) 21:40:53.72ID:f8XVsIbI0
Rubyの方がCOBOLより先に死滅する希ガス
229デフォルトの名無しさん (ワッチョイ ab57-g6LZ)
垢版 |
2020/03/06(金) 22:57:29.86ID:rcgbHB5O0
慢心と言うより
補助金事業になったら碌なことにならない例の一つ
2020/03/07(土) 03:49:31.31ID:meF2wfp30
補助金が腐らせるの
日本のあるあるだな!
231デフォルトの名無しさん (ワッチョイ ef8c-NYnE)
垢版 |
2020/03/07(土) 12:58:20.56ID:Q0oLpIzl0
>>226
コメントアウトの仕方
2020/03/07(土) 13:58:54.14ID:H7f33zo10
Rubyは日本の言語ではなくて
日本発だけど
日本からアメリカのユタ州に税金を抜かれるだけの言語だ
233デフォルトの名無しさん (ワッチョイ 4b2d-hds7)
垢版 |
2020/03/07(土) 16:10:40.97ID:ZoK+qwRc0
補助金で食える人数も限られてるから、余計に閉鎖的になってく
2020/03/07(土) 19:42:14.60ID:meF2wfp30
補助金で喰える上級Ruby国民は安泰だけど
下級Ruby国民はPythonに逃げ出してる現状
235デフォルトの名無しさん (ワッチョイ 4b2d-hds7)
垢版 |
2020/03/10(火) 16:47:55.38ID:rx4TAX460
Rubyの高額教材屋も増えまくってたり、こんなの国が金を出して支援するもんじゃないよもう
2020/03/10(火) 21:55:43.55ID:uPXabSQ00
perlの保守性の低さについて何も学ばなかったから。
2020/03/15(日) 06:29:59.66ID:d7tE7oy90
リファレンスマニュアルの正規表現の一覧に
(<=pat) 肯定後読み
となってるけど正しくは (?<=pat) ですよね
2020/03/15(日) 07:01:08.84ID:fxB2xu91r
せやね
2020/03/17(火) 10:26:17.82ID:55EeZ8o40
AI環境の差は大きいっすねー
保守性とかどうでもいいしrubyの文法は好きだけど、今から勉強する人にはphthon勧めざるを得ない
2020/03/17(火) 11:47:19.04ID:xPTEZvMY0
PythonはAIライブラリそろってるからな
2020/03/17(火) 18:17:35.92ID:Np3/43wU0
機械学習や統計処理のために
プログラミングできるようになりたいというひとは
迷わずPythonから初めればいいけど
明確な目的がない場合はRubyから初めさせたほうが
プログラミング自体の習熟が断然早い

1ヶ月程度でプログラミングの基礎を身につけたら
後は好きなやつやればいいと思う
新卒で2~3言語学ばせるABテストとかやってみたいね
2020/03/17(火) 18:19:24.38ID:ybHHyXnP0
ABテストやってないのになんでRubyからの方がいいって分かるの
2020/03/17(火) 18:38:35.80ID:7aCFf3OgM
明確な目的のない奴にRails専用スクリプト(別名Ruby)を勧めるのはさすがにどうかと
2020/03/17(火) 19:08:20.64ID:55EeZ8o40
別にrailsなんかなくたってperlよりモダンな汎用スクリプト言語ではあるやろ
2020/03/17(火) 19:19:47.39ID:7aCFf3OgM
>>244
Windowsでまともに使い物にならないのは汎用スクリプトとしては致命的
ぶっちゃけPythonがビッグデータやAIで持て囃されてるのもWindowsと相性いいからだよ
ビッグデータやAIはエンタープライズで金になるテーマだからWindowsと相性悪いのは論外
246sage (ワッチョイ a265-aX25)
垢版 |
2020/03/17(火) 22:30:48.07ID:Zy9Qhkko0
つまり、わざわざRubyスレまで乱入してしまうほど、
Python信者にはRubyへのコンプレックスが強いってことね
2020/03/17(火) 22:32:51.78ID:Ai6ps0PO0
じゃあPowerShellで!
2020/03/17(火) 23:16:01.71ID:Np3/43wU0
>>242
C#, JS, Python, Ruby他で初心者教えた経験から来る個人の感想
逆になんでABテストやらないと分からないと思うの?
2020/03/17(火) 23:40:22.57ID:ybHHyXnP0
そりゃ教師そのものがRubyが得意でRuby贔屓ならRubyを教えるのが上手いんでしょ
だから生徒はRubyの習熟が早くなる
だから本人ですら「ABテストは必要」って思ってるんでしょ

要するに生徒の言語取得速度は教師の得意言語の習熟度合いに比例する
250sage (ワッチョイ a265-aX25)
垢版 |
2020/03/17(火) 23:45:23.49ID:Zy9Qhkko0
ぶっちゃけ、Rubyに慣れると、Pythonでコレクションを使うことが苦痛になるんだよな


「コレクションが最高にイケてる言語を作ろう(dat落ち)」から引用
http://mevius.2ch.net/test/read.cgi/tech/1491491123/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
> でもねぇ、世の中にはコレクション操作が使いづらい
> 退化した最悪な言語が存在する
>
> http://d.hatena.ne.jp/edvakf/20090405/1238885788
>
> 元々は手続き型として設計された簡潔な言語だったけど、
> オブジェクト指向やら関数型やらを行き当たりばったりに増築し続けたおかげで、
> コレクション操作に関する「一貫性」という設計哲学が破綻してしまった例だね
>
> 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))))
251sage (ワッチョイ 5365-f0Va)
垢版 |
2020/03/18(水) 00:02:08.49ID:NlFyVHMs0
>>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の対話環境じゃ無理なのが、いやはやなんとも
2020/03/18(水) 00:49:04.35ID:LQtyodHE0
元々、Ruby/Groovy は似てる。
JavaScript, Kotlin も、Ruby/Groovy に似せてきてる

>>241
有名な雑食系エンジニア・KENTA も、YouTube で言ってるけど、
将来的に、機械学習・AI をやりたいからと言って、Python から始めるのは間違いです!
初心者は、Ruby でプログラミング自体を学ぶべき

Ruby on Rails を一通りやると、アプリ製作の全工程を学べる。
後はそれを他言語へ置き換えるだけ

それと、多くの学校が、Ruby を勧めるのは、就職率が高いから。
Python の場合は、web系の仕事が、1/10 しかない

機械学習・AI は、大学院・英検準一級などの高学歴が必要だから、
高卒などのプログラミング初心者を雇わない

高卒web系プログラマーは、Ruby。
高学歴総合職は、Python

この内、学校で教えられるのは、Ruby。
Pythonを教えても、就職できないから詐欺になってしまう
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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