[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/13 18:23 / Filesize : 307 KB / Number-of Response : 1052
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Ruby 初心者スレッド Part 66



1 名前:デフォルトの名無しさん [2020/01/04(土) 01:15:34.30 ID:X7t3Qsuc0.net]
プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ

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

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

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

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

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

Ruby コミュニティ公式
https://www.ruby-lang.org/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

183 名前:デフォルトの名無しさん (ワッチョイ d62d-qw96) [2020/02/17(月) 18:20:35 ID:9CP/4dwv0.net]
そういうことか
言語だけ先にやると変な癖がついたりもするし、演習ファーストの学習も結構いいかもな

184 名前:デフォルトの名無しさん (ワッチョイ b7d2-Htok) [2020/02/17(月) 18:45:44 ID:wxeqwMT50.net]
日本語の勉強がしたいと言ったら
舞城王太郎の小説を読めと言われた気分

185 名前:デフォルトの名無しさん (ワッチョイ 122c-LiuO) mailto:sage [2020/02/17(月) 19:30:14 ID: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) [2020/02/18(火) 12:16:06 ID:r+eOvEZJF.net]
またカタワを量産するつもりか
RailsRubyの将来は暗いな

187 名前:デフォルトの名無しさん (ワッチョイ ff2c-lQWV) [2020/02/25(火) 19:09:01 ID:Ykw6mmDG0.net]
「aabc → bc」みたいに、先頭から特定の文字が連続するとき、それを除去するには、どう書く?
正規表現を使ったものと、使っていない場合の両方

str = "aabc"

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

p str #=> "bc"

188 名前:デフォルトの名無しさん mailto:sage [2020/02/25(火) 20:42:26.89 ID:uCkT0+w20.net]
そりゃ正規表現のステートマシン通りに書くでしょ

189 名前:デフォルトの名無しさん mailto:sage [2020/02/25(火) 22:00:57.29 ID:uBU1PACqr.net]
>>182

puts str[/\Aa*\K.*/] # => bc

190 名前:デフォルトの名無しさん mailto:sage [2020/02/25(火) 22:07:44.86 ID:uBU1PACqr.net]
>>182

puts str[str.size.times.find{|i| str[i] != ?a}..] # => bc

191 名前:デフォルトの名無しさん mailto:sage [2020/02/25(火) 22:22:39.72 ID:oSeHo6cg0.net]
>>182
def remove_consecutive(string)
string.sub(/^(.)¥1{1,}(.*)$/) {|_| remove_consecutive($2)}
end

remove_consecutive("aaaabbbbbbccab") #=> “ab”
remove_consecutive("1112234") #=> "34"



192 名前:デフォルトの名無しさん mailto:sage [2020/02/25(火) 22:59:04.49 ID:/XslCVsc0.net]
本当に文字列から連続部分を除去したいのか、
連続部分の後ろが取り出せればいいのか

193 名前:182 (ワッチョイ ff2c-lQWV) mailto:sage [2020/02/25(火) 23:54:26 ID:Ykw6mmDG0.net]
元々は「0082 → 82」みたいな文字列の先頭から続く、0 を除去したかった。
先頭以外のものは、除去しなくてよい

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

レシーバーの破壊的な変更をしてもよいし、別の文字列を作って返すものでもよい

194 名前:182 (ワッチョイ ca2c-rVtL) mailto:sage [2020/02/26(水) 00:52:55 ID:TmIxTRKQ0.net]
文字列の先頭から続く、特定の文字を除去する

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

a を除去する場合

abc → bc
aaXaa → Xaa

195 名前:デフォルトの名無しさん (ワッチョイ 8a01-k1AF) mailto:sage [2020/02/26(水) 01:11:17 ID: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 mailto:sage [2020/02/26(水) 04:46:15.55 ID:TmIxTRKQ0.net]
>“0082”.to_i.to_sでよくね?

長い文字列だと、数値化できない言語もあるから、
汎用的に作れないかなと思って

198 名前:デフォルトの名無しさん mailto:sage [2020/02/26(水) 08:06:23.34 ID:PiyizPRV0.net]
だからオートマトンで作れって言ってんじゃん
ttps://image.slidesharecdn.com/1-140715084054-phpapp01/95/1-11-638.jpg

199 名前:デフォルトの名無しさん (ワッチョイ 0314-IyPa) mailto:sage [2020/02/26(水) 08:22:48 ID:kXv4PxDr0.net]
オートマトンってなんで羊なんだろう?
自動的に毛を刈って自動的に料理されるのか?

200 名前:デフォルトの名無しさん (ワッチョイ 6b01-nhpA) mailto:sage [2020/02/26(水) 08:29:53 ID:bDSWeqSr0.net]
オートマンだと思ってた
インド哲学かよ

201 名前:デフォルトの名無しさん (ワッチョイ 0314-IyPa) mailto:sage [2020/02/26(水) 08:36:52 ID:kXv4PxDr0.net]
嘔吐マトン



202 名前:デフォルトの名無しさん [2020/02/26(水) 12:11:34.52 ID:GrI3XnzJ0.net]
>>189
def ltrim(s, c)
s[/^#{c}*/] = ""
s
end
p ltrim("aaaabcaabc", 'a')

"bcaabc"

203 名前:デフォルトの名無しさん mailto:sage [2020/02/26(水) 23:09:06.75 ID:TmIxTRKQ0.net]
Ruby on Rails 6 実践ガイド、黒田努、2019/12/20

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

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

後は、山田祥寛・WINGSプロジェクトが、どうするか?

204 名前:デフォルトの名無しさん [2020/02/27(木) 15:17:58.32 ID:G6pyHvdgF.net]
掌田の本は要らん

205 名前:デフォルトの名無しさん (ワッチョイ 4aa5-SiQa) mailto:sage [2020/02/28(金) 09:49:01 ID:tB/cuWAa0.net]
掌田津耶乃って何者? (Late 2012)
https://egg.5ch.net/test/read.cgi/mac/1349360916/

巨匠か?
Mac凋落と共に仕事を失った人間、とか書かれてんぞ

206 名前:デフォルトの名無しさん (ワッチョイ 4aa5-SiQa) mailto:sage [2020/02/28(金) 09:53:35 ID:tB/cuWAa0.net]
掌田津耶乃って何者?
https://mentai.5ch.net/test/read.cgi/pc/971599471/

macの賤民思想に凝り固まった人間?
そんな物体なら要らないな

207 名前:197 (ワッチョイ ca2c-rVtL) [2020/02/28(金) 13:58:28 ID:GfVfgYuK0.net]
多言語の3強が、掌田津耶乃・山田祥寛(WINGSプロジェクト)・柴田望洋。
他に、スッキリ・やさしい・猫でも・独習など

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

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

世界的に見ても、断トツ!

208 名前:デフォルトの名無しさん mailto:sage [2020/02/28(金) 14:40:57.13 ID:LkDsYiUy0.net]
何か後ろの二人が気の毒

209 名前:デフォルトの名無しさん (ワッチョイ 9e2d-9Aak) [2020/02/28(金) 15:39:11 ID:Y4GSbUWj0.net]
Rubyはもう本で勉強するのは古い
今は迫 佑樹とかあおいとかのオンラインコースで勉強する時代だよ、

210 名前:デフォルトの名無しさん (ワッチョイ 8a01-k1AF) mailto:sage [2020/02/29(土) 02:55:28 ID:udUacP9j0.net]
山田祥寛は10年近く前C#でよくお世話になった
他言語から来た入門者に程よくわかりやすい本を書く印象

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

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

似たような浅めの入門本著者だと
クジラ飛行机のやつは実践的なやつが多くて悪くないと思う

211 名前:197 (ワッチョイ ca2c-rVtL) [2020/02/29(土) 23:32:52 ID:6IdZMwnf0.net]
なでしこの作者・クジラ飛行机は、
近年、Python から、多言語の作者として乱入してきた

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

巨匠の柴田望洋は「新・明解C言語」のイメージだけど、近年、多言語に参入した



212 名前:◆QZaw55cn4c (ワッチョイ 2aaa-9l6Y) mailto:sage [2020/02/29(土) 23:43:57 ID:c0ztbNyQ0.net]
>>204
新独習c# は旧独習ハーバートシルトと比べてどうでしょうか?
新独習Java は、旧独習が史上稀に見る惨憺たる出来だったことから、新独習はよくなるしかないと予測しています
あと、旧独習を高く評価している私としても新独習C++ については興味がありますね

213 名前:197 mailto:sage [2020/03/01(日) 00:44:56.42 ID:NSpMdQYF0.net]
さすがに日本人で、シルトと比べられる著者は、いないだろ

たいてい読み応えがあるのは、Effective シリーズなどの外人著者

214 名前:デフォルトの名無しさん [2020/03/01(日) 10:00:51.93 ID: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) mailto:sage [2020/03/01(日) 10:43:49 ID: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) mailto:sage [2020/03/01(日) 11:35:40 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/03/01(日) 12:14:22.10 ID:8hJkpeX/a.net]
元から間違っているがsumではない

218 名前:デフォルトの名無しさん mailto:sage [2020/03/01(日) 12:53:48.43 ID:JWAFHnbAM.net]
あごめんsumじゃなかったわw
みなさんどうもありがとうございました

219 名前:デフォルトの名無しさん (ワッチョイ 067d-X91k) [2020/03/01(日) 18:13:12 ID:RW98tzZT0.net]
rubyでtwitterとかyoutubeどうやって作るの?
全くイメージが沸かない
ツイートがリアルタイムで他者にも表示されるのってどういう仕組み?

220 名前:デフォルトの名無しさん (ワッチョイ cb4f-mnKr) mailto:sage [2020/03/01(日) 21:01:11 ID:QPyt1UlH0.net]
httpとブラウザの仕様の話なのでrubyは関係ない

221 名前:デフォルトの名無しさん (アウアウエー Sac2-DFeu) mailto:sage [2020/03/01(日) 21:57:35 ID:F2v5Atsqa.net]
scaffold で一発で作るという意味だろう



222 名前:デフォルトの名無しさん mailto:sage [2020/03/01(日) 22:44:11.42 ID:NSpMdQYF0.net]
0から手を動かして作るRailsチャットアプリ【チュートリアル】
ttps://www.youtube.com/watch?v=WCsgcp5dg7M

Ruby on Rails で、Web Socket を使う、とだこうきの動画

223 名前:デフォルトの名無しさん mailto:sage [2020/03/01(日) 22:47:44.78 ID:QZXNPr7ra.net]
>>213
JavaScriptでサーバー側のAPIを叩き、サーバーがそれに対して結果を返し、JavaScriptでその結果を画面に反映させる
基本はこれだけ
Rails任せじゃなくてちゃんとWebの仕組みを理解してAPIを実装しなきゃいけないし、JavaScriptもゴリゴリ書かなきゃいけない
SQSなどのAWSやGCPのマネージドサービスや、Ka

224 名前:fkaのようなデータ基盤系のOSSなど高度なバックエンド技術の活用も必要だ
Railsのチュートリアルに毛が生えたような典型的なWebとは次元が違う
[]
[ここ壊れてます]

225 名前:デフォルトの名無しさん mailto:sage [2020/03/01(日) 23:24:11.39 ID:J3IrN4Ey0.net]
クライアントがブラウザとは限らないが
いずれにしろrubyは全く関係ない

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

↑この辺りを学べばいい
単なる通知用途で生のweb socketを
ゴリゴリ書いたりはしないんじゃないかな

226 名前:デフォルトの名無しさん (ドコグロ MMea-ff41) mailto:sage [2020/03/01(日) 23:52:21 ID:H/U8nx/nM.net]
プログラミングスクールでRails勉強しました系だとプル型のアプリの作り方しか知らないだろうから、クライアントへの通知の実装方法以前に、
そもそもユーザーがツイートしたときに受信者に対して通知をキックするところの仕組みが想像できないんだろうな
そのへんはいわゆるバックエンドってやつで、ユーザー数が増えてもスケールするためには小手先のコーディングだけでなくAWSのインフラ設計まで含めた作り込みが必要
Railsできますウェーイみたいなのとは一線を画す、いい大学出たガチな連中が鎬を削ってる世界だ

227 名前:デフォルトの名無しさん (ワッチョイ ca2c-rVtL) mailto:sage [2020/03/02(月) 00:40:51 ID:8PHDRupm0.net]
Ruby による今世紀最大の起業家、Vagrant のMitchell Hashimoto(HashiCorp)も、
Go のTerraform へ行った

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

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

Spring Boot も、Rails のコピー

228 名前:デフォルトの名無しさん mailto:sage [2020/03/02(月) 01:33:56.26 ID:AuxsFe1o0.net]
>>217
>>219
おまえもウェーイ系なのに無理してレスすんな

229 名前:デフォルトの名無しさん mailto:sage [2020/03/05(木) 19:13:20.03 ID:h922Dn8C0.net]
>>204
>柴田望洋はC言語系で何冊か読んだが
>内容がすごく簡潔で短い時間でまとめ的な知識を頭に入れたり
>特定のトピックを復習したいときには有用

いかにも教科書って感じの本書くよね
オレもオススメできる著者だと思うぞ!

230 名前:デフォルトの名無しさん (ブーイモ MM7f-Pim3) mailto:sage [2020/03/05(木) 19:35:07 ID:1tYxfkRNM.net]
本屋いったらrubyの本は駆逐されてた

231 名前:デフォルトの名無しさん (ワッチョイ cbad-wzO4) mailto:sage [2020/03/05(木) 21:34:51 ID:h922Dn8C0.net]
すっかりPythonの本に置きかわったよな!
やっぱ人工知能ブームに乗れなかったのがデカイ



232 名前:デフォルトの名無しさん (ワッチョイ 9fa5-HL4i) mailto:sage [2020/03/06(金) 14:08:05 ID:gkPkCuAw0.net]
・P系言語には絶対にPを付けるべきであった
・endがある言語には終わりがある

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

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

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

他の理由としては、我々は「ぱい」と発音したい生物である、という、これまたオカルトな理由だ
特にPから始まる単語は人類にとって基本的・根源的らしい
「PyPI」とかどーすんだコレとか思っちゃうような発音の存在こそが、pythonを存続させている大きな原動力だ

233 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 16:38:00.92 ID:Z17kfdKR0.net]
なぜ差が付いたか RubyとPython
――(日本語圏の)慢心、(AI)環境の差

234 名前: []
[ここ壊れてます]

235 名前:デフォルトの名無しさん (アウアウエー Sa3f-xiWk) mailto:sage [2020/03/06(金) 20:06:25 ID:dfpAZ0dma.net]
cobol には end があるが、しぶとく生き残っている
早く絶滅してほしいものだが

236 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 21:40:53.72 ID:f8XVsIbI0.net]
Rubyの方がCOBOLより先に死滅する希ガス

237 名前:デフォルトの名無しさん [2020/03/06(金) 22:57:29.86 ID:rcgbHB5O0.net]
慢心と言うより
補助金事業になったら碌なことにならない例の一つ

238 名前:デフォルトの名無しさん (ワッチョイ cbad-wzO4) mailto:sage [2020/03/07(土) 03:49:31 ID:meF2wfp30.net]
補助金が腐らせるの
日本のあるあるだな!

239 名前:デフォルトの名無しさん (ワッチョイ ef8c-NYnE) [2020/03/07(土) 12:58:20 ID:Q0oLpIzl0.net]
>>226
コメントアウトの仕方

240 名前:デフォルトの名無しさん (ワッチョイ 2ba5-Inmc) mailto:sage [2020/03/07(土) 13:58:54 ID:H7f33zo10.net]
Rubyは日本の言語ではなくて
日本発だけど
日本からアメリカのユタ州に税金を抜かれるだけの言語だ

241 名前:デフォルトの名無しさん [2020/03/07(土) 16:10:40.97 ID:ZoK+qwRc0.net]
補助金で食える人数も限られてるから、余計に閉鎖的になってく



242 名前:デフォルトの名無しさん mailto:sage [2020/03/07(土) 19:42:14.60 ID:meF2wfp30.net]
補助金で喰える上級Ruby国民は安泰だけど
下級Ruby国民はPythonに逃げ出してる現状

243 名前:デフォルトの名無しさん (ワッチョイ 4b2d-hds7) [2020/03/10(火) 16:47:55 ID:rx4TAX460.net]
Rubyの高額教材屋も増えまくってたり、こんなの国が金を出して支援するもんじゃないよもう

244 名前:デフォルトの名無しさん (ワッチョイ ab01-xzLc) mailto:sage [2020/03/10(火) 21:55:43 ID:uPXabSQ00.net]
perlの保守性の低さについて何も学ばなかったから。

245 名前:デフォルトの名無しさん mailto:sage [2020/03/15(日) 06:29:59.66 ID:d7tE7oy90.net]
リファレンスマニュアルの正規表現の一覧に
(<=pat) 肯定後読み
となってるけど正しくは (?<=pat) ですよね

246 名前:デフォルトの名無しさん mailto:sage [2020/03/15(日) 07:01:08.84 ID:fxB2xu91r.net]
せやね

247 名前:デフォルトの名無しさん (ワッチョイ 698f-tF/6) mailto:sage [2020/03/17(火) 10:26:17 ID:55EeZ8o40.net]
AI環境の差は大きいっすねー
保守性とかどうでもいいしrubyの文法は好きだけど、今から勉強する人にはphthon勧めざるを得ない

248 名前:デフォルトの名無しさん (ワッチョイ a1ad-M7Q/) mailto:sage [2020/03/17(火) 11:47:19 ID:xPTEZvMY0.net]
PythonはAIライブラリそろってるからな

249 名前:デフォルトの名無しさん mailto:sage [2020/03/17(火) 18:17:35.92 ID:Np3/43wU0.net]
機械学習や統計処理のために
プログラミングできるようになりたいというひとは
迷わずPythonから初めればいいけど
明確な目的がない場合はRubyから初めさせたほうが
プログラミング自体の習熟が断然早い

1ヶ月程度でプログラミングの基礎を身につけたら
後は好きなやつやればいいと思う
新卒で2~3言語学ばせるABテストとかやってみたいね

250 名前:デフォルトの名無しさん mailto:sage [2020/03/17(火) 18:19:24.38 ID:ybHHyXnP0.net]
ABテストやってないのになんでRubyからの方がいいって分かるの

251 名前:デフォルトの名無しさん (ドコグロ MM95-Syvm) mailto:sage [2020/03/17(火) 18:38:35 ID:7aCFf3OgM.net]
明確な目的のない奴にRails専用スクリプト(別名Ruby)を勧めるのはさすがにどうかと



252 名前:デフォルトの名無しさん mailto:sage [2020/03/17(火) 19:08:20.64 ID:55EeZ8o40.net]
別にrailsなんかなくたってperlよりモダンな汎用スクリプト言語ではあるやろ

253 名前:デフォルトの名無しさん mailto:sage [2020/03/17(火) 19:19:47.39 ID:7aCFf3OgM.net]
>>244
Windowsでまともに使い物にならないのは汎用スクリプトとしては致命的
ぶっちゃけPythonがビッグデータやAIで持て囃されてるのもWindowsと相性いいからだよ
ビッグデータやAIはエンタープライズで金になるテーマだからWindowsと相性悪いのは論外

254 名前:sage (ワッチョイ a265-aX25) [2020/03/17(火) 22:30:48 ID:Zy9Qhkko0.net]
つまり、わざわざRubyスレまで乱入してしまうほど、
Python信者にはRubyへのコンプレックスが強いってことね

255 名前:デフォルトの名無しさん (ワッチョイ d233-YfnF) mailto:sage [2020/03/17(火) 22:32:51 ID:Ai6ps0PO0.net]
じゃあPowerShellで!

256 名前:デフォルトの名無しさん (ワッチョイ c201-Ruah) mailto:sage [2020/03/17(火) 23:16:01 ID:Np3/43wU0.net]
>>242
C#, JS, Python, Ruby他で初心者教えた経験から来る個人の感想
逆になんでABテストやらないと分からないと思うの?

257 名前:デフォルトの名無しさん (ワッチョイ 02a5-5LgE) mailto:sage [2020/03/17(火) 23:40:22 ID:ybHHyXnP0.net]
そりゃ教師そのものがRubyが得意でRuby贔屓ならRubyを教えるのが上手いんでしょ
だから生徒はRubyの習熟が早くなる
だから本人ですら「ABテストは必要」って思ってるんでしょ

要するに生徒の言語取得速度は教師の得意言語の習熟度合いに比例する

258 名前:sage (ワッチョイ a265-aX25) [2020/03/17(火) 23:45:23 ID:Zy9Qhkko0.net]
ぶっちゃけ、Rubyに慣れると、Pythonでコレクションを使うことが苦痛になるんだよな


「コレクションが最高にイケてる言語を作ろう(dat落ち)」から引用
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
> でもねぇ、世の中にはコレクション操作が使いづらい
> 退化した最悪な言語が存在する
>
> 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))))

259 名前:sage (ワッチョイ 5365-f0Va) [2020/03/18(水) 00:02:08 ID: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) mailto:sage [2020/03/18(水) 00:49:04 ID: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) mailto:sage [2020/03/18(水) 04:59:33 ID:/KOWoh670.net]
>>244
それな
RailsなくてもRuby単体でも十分快適

ただWindows環境とデスクトップでのGUIが
どっちもイマイチだからWeb専用言語
みたいな扱いになってるんだろうか?

263 名前:デフォルトの名無しさん (ワッチョイ d9ad-NT4g) mailto:sage [2020/03/18(水) 05:02:26 ID:/KOWoh670.net]
>>250
Rubyは文法がシンプルで書きやすいんだよな
書きやすさだけで言ったら
Ruby > Python >>> JavaScript

JavaScriptは変なクセと
ローカルルールが多すぎる

264 名前:デフォルトの名無しさん (ワッチョイ 29d2-CgSh) [2020/03/18(水) 08:17:19 ID:r6r+WwC90.net]
>>250
Rubyのjoinなら事前の文字列化は不要なので
a.sort.reverse.join('-')

265 名前:デフォルトの名無しさん [2020/03/18(水) 13:14:11.40 ID:fwLKdVFoF.net]
語順に拘る必要は無いと思う
a = [3,5,1,2,4]
'-'.join(pd.Series(a).sort_values(ascending=False).apply(str))

266 名前:デフォルトの名無しさん (ワッチョイ 9301-lXNI) mailto:sage [2020/03/18(水) 14:43:54 ID:mQYnVt2r0.net]
>>249
違うよ
教えるコアな要素は共通にもかかわらず
初心者がつまづく内容や頻度だったりそれを自己解決できる割合が言語によってかなり違う
それが習熟速度に影響を与える一番の要因

ABテストやってみたいねと書いたのは複数言語を学習する順番が
プログラミング習熟度に与える影響の調査をペーパー書けるくらいフォーマルにやってみたいねって話
3言語なら最低6グループ必要になるわけで
統計的に意味ある人数集めてそんなテストするの普通の会社では無理だからね
Aグループ: Ruby -> Python -> JavaScript
Bグループ: Python -> JavaScript -> Ruby


267 名前:デフォルトの名無しさん (ワッチョイ 9301-lXNI) mailto:sage [2020/03/18(水) 14:56:08 ID:mQYnVt2r0.net]
>>256
思考の順序とコードで表現する順序が近ければ近いほど
思考ノイズが少なくて初心者に限らず人間には理解しやすい
単にできればいいってもんじゃない

結局Pythonでわかりやすく読みやすいコードを書くには
自然な思考順序と異なる部分をラップした関数を独自に定義していくか
Pythonで表現できる順序に自分の思考順序を合わせていくしかなく
一般に読みやすいと思えるコードを書く労力がRubyに比べると段違いで多い

少し前にPythonスレで質問があったflattenがいい例

268 名前:デフォルトの名無しさん mailto:sage [2020/03/19(木) 04:20:21.38 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/03/19(木) 07:34:00.79 ID:Twc2892j0.net]
>>258
Rubyの文法は自然だと思う

>>259
ゼロを偽に使うのは筋悪だね

270 名前:デフォルトの名無しさん mailto:sage [2020/03/19(木) 09:26:18.85 ID:YUAN2W2v0.net]
コマンドが正常に終了した時は0を返すもんですよ

271 名前:デフォルトの名無しさん [2020/03/19(木) 12:39:59.01 ID:Xi+VoJGEd.net]
Rubyが理解できれば、JavaScriptもだいたい理解できるってまじっすか?



272 名前:デフォルトの名無しさん (ワッチョイ 292c-cvBQ) mailto:sage [2020/03/19(木) 13:04:35 ID: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) mailto:sage [2020/03/19(木) 13:10:40 ID:TVS3Wm7/M.net]
>>262
RubyはRails Scriptとして使うだけならさほど難しくはないが純粋に言語としては極めて複雑な部類で、
Rubyを理解した、と自信を持って言えるレベルならJavaScriptなどもはや楽勝

274 名前:デフォルトの名無しさん mailto:sage [2020/03/19(木) 13:16:56.47 ID:Twc2892j0.net]
>>262
Rubyを覚えれば
Pythonはだいたい理解できる

JavaScriptはちょっと理解できる
クセがある部分が多いから

まあ2015でクラス構文が入って
だいぶマシになったけど

275 名前:デフォルトの名無しさん (ワッチョイ 13a5-TOPM) mailto:sage [2020/03/19(木) 13:49:34 ID:PJNEdIzn0.net]
クラスが入っただけでマシになった、ってことか?

276 名前:デフォルトの名無しさん (ワッチョイ 292c-cvBQ) mailto:sage [2020/03/19(木) 14:07:04 ID: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) mailto:sage [2020/03/19(木) 16:59:22 ID:88pUuzIXr.net]
JavaScriptはクラス定数すら定義できないからな
最近のはしらんが

278 名前:デフォルトの名無しさん mailto:sage [2020/03/19(木) 17:00:49.00 ID:DXn00lXA0.net]
Pythonはうんこだが、Rubyのメソッドチェーンも今となってはゴミの部類で
パイプライン演算子こそが正解

279 名前:デフォルトの名無しさん [2020/03/19(木) 17:26:29.02 ID:yS5RdDEsF.net]
codepad.org/DO0Yq0CS
codepad.org/jmDGu9SR

280 名前:デフォルトの名無しさん (ワッチョイ 1161-44a/) mailto:sage [2020/03/20(金) 00:53:19 ID:405ti7Ej0.net]
>>264
JS は、promise, then, async, waitUntil, ServiceWorker(PWA)などの部分がかなり難しく感じる。
event の bubbling phase, capture phase, target phase と絡んで
cancelBubble, stopPropagation, preventDefault
の話も正確に理解するのはなかなか難しい。

281 名前:デフォルトの名無しさん (ワッチョイ 1161-44a/) mailto:sage [2020/03/20(金) 00:56:41 ID:405ti7Ej0.net]
event.waitUntil()
event.respondWith()
はいまだにちゃんと理解できてない。
ServiceWorkerのWorker Lifecycleも物凄く理解が難しい。



282 名前:デフォルトの名無しさん mailto:sage [2020/03/20(金) 01:05:01.24 ID:405ti7Ej0.net]
さらに、Blob の概念も独特で難しい気がする。

283 名前:デフォルトの名無しさん mailto:sage [2020/03/20(金) 01:07:27.55 ID: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);
}());
});






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<307KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef