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
2 名前:デフォルトの名無しさん [2020/01/04(土) 01:17:09.19 ID: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 名前:デフォルトの名無しさん [2020/01/04(土) 01:17:57.47 ID:X7t3Qsuc0.net] 開発環境 RDE Windows用IDE https://ja.osdn.net/projects/sfnet_rubyde/ 以下、RDEの使用説明 rubyde.sourceforge.net/hiki/ja/FrontPage.html RDEのデバッグ機能を使う場合、設定においてデバッグオプションを「-r debug2」から「-r debug」と書き換えて、 ruby付属のdebug.rbを使うようにすること。 RDE付属のdebug2.rbは、ruby1.8用のスクリプトのため、現在のrubyのversionには使えません サクラエディタ Windows用高機能エディタ https://ja.osdn.net/projects/sfnet_sakura-editor/ 以下、ruby用設定の説明 supportdoc.net/support-sakura/ruby.html Emacs GNUの高機能エディタ Vim Emacsと同じぐらい有名なCUIベースのエディタ VSCode マルチOSに対応したマイクロソフト社製のソースコードエディタ https://code.visualstudio.com/download
4 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 01:58:51.41 ID:HyaapUw60.net] 乙です 前スレの「メソッドはオブジェクトか?」に関連してなんですが RubyのUnboundMethodやMethodのインスタンスたるメソッドオブジェクトって 既存のメソッドと等価な複製が作れるってだけで 元のメソッドをオブジェクトにしたものってわけじゃないですよね? たとえば、特異クラスなんかだと普段はオブジェクトじゃないけれど class << self; self end みたいなイディオムや Object#singleton_class メソッドでオブジェクトとして取り出せるし ブロックも &b のような仮引数を付すことでやはりオブジェクトとして取り出せるわけですが これらとはメソッドとは話が違う つまり「Rubyのメソッドはオブジェクトではない(〜としては扱えない)」と考えるのが妥当だと思うのですが この理解で合っていますか?
5 名前:デフォルトの名無しさん [2020/01/04(土) 12:04:30.94 ID:trUJS7QSF.net] 今北だが 前スレの終わり方が酷過ぎてワロス もう新スレなんだしそれ以上言うな
6 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 12:53:40.81 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 15:14:00.74 ID:I8dHRpysa.net] これはメッセージとメソッドの区別が付いていない よくあるパターン?
8 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 23:46:45.39 ID:X7t3Qsuc0.net] Ruby には関数スコープ内に、ブロックスコープがある 関数は、外側の変数を通さない。 一方、ブロックは通す。つまり、クロージャ C と同じの、強固な2段階スコープ! 一方、JavaScript はクロージャしかない。 関数もクロージャだから、第一級関数 その欠点は、外側の変数を通してしまうから、バグが増える。 だから、Ruby は、2段階スコープを採用したのだろう 処理を持ち運ぶ場合だけ、オブジェクトに変換すればよい
9 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 01:29:02.13 ID:+qhlN9cW0.net] つまりRubyではメソッドそれ自体はオブジェクトではない ということでしょうか?
10 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 01:51:26.84 ID:CSAIgDGG0.net] >>9 メソッド自体を、独立したオブジェクトのように扱えるか? 扱えないならそういうこと。 ただ、ちょっと工夫すれば、似たようなことはだいたい実現できるから、その区別にはそれほど意味がない。
11 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 15:36:12.39 ID: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 名前:デフォルトの名無しさん [2020/01/05(日) 22:47:41.92 ID:BPHXVrhY0.net] JavaScript 第6版、2012、David Flanagan 彼は、JS のバイブル、表紙がサイの絵の、いわゆるサイ本も書いてる! Google などのエンジニアの机に、必ず置いてある
13 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 22:55:53.02 ID:UM8RYdV+0.net] サイフォン?
14 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 23:56:52.37 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 00:28:28.35 ID:bN5NBzFy0.net] C#も、メソッドをランタイムにビルドできるんやで!
16 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 01:11:00.75 ID:Bux8XPhea.net] いやここでのポイントはメソッドがオブジェクトなのかどうかであって ランライムにメソッドをビルドできるかは関係ないしむしろ出来て当前
17 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 09:04:50.20 ID:0zhzHQ2W0.net] >>14 > その気になれば中身も弄れる それが良いことだと思わないんだけどなw そんなことやるか?やらない。できる必要あるか?ない アセンブラであれば、中身だろうがなんでもできる 言語というのは成長するにつれてより制限されるもの 制限といえば聞こえは悪いが、ある機能に特化することで ミスを防ぎ、コードを書いた人のより正確に表すことができる
18 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 09:05:20.36 ID:0zhzHQ2W0.net] 、コードを書いた人の意図をより正確に表すことができる
19 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 09:24:31.96 ID:9LVBkQo0a.net] Rubyは自分の足を撃とうと思えばそれが出来る(自由がある)のがLisp譲りの 言語持つのパワーでありある種のウリなんだけど初心者だから知らないのかな…
20 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 09:35:32.06 ID:0zhzHQ2W0.net] > Rubyは自分の足を撃とうと思えばそれが出来る それがいいことだと思い込んでるのがおかしい 常識に囚われ思考を放棄してる
21 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 09:35:53.64 ID:N9H2b+k8a.net] Smalltalkの最後の例はメソッドオブジェクトがRubyのモドキと違って 現物だと端的に示すための例であって流石に普段はやらないと思うぞ!
22 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 09:40:05.07 ID:x7xAEFKOa.net] >>20 おやおやそんなナイーブな考えじゃRailsみたいなのは永久に作れないよ?
23 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 09:48:15.44 ID:0zhzHQ2W0.net] >>22 何も根拠がないねw
24 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 09:49:47.24 ID:0zhzHQ2W0.net] Railsみたいなフレームワークはたくさんあるね Rubyの機能なんて不要だったってことさ
25 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 10:00:05.37 ID:x7xAEFKOa.net] んRailsがなければRubyが今の地位はないし Railsの実装はRubyの黒魔術が効果的に活用されているというのは 説明不要の有名な話だと思っていたが? やっぱり初心者だから知らないのか…
26 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 10:01:33.21 ID:x7xAEFKOa.net] >>24 語るに落ちているよ…(´・ω・`)
27 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 10:03:22.46 ID:ymuirMBT0.net] 初心者だから「メソッドはオブジェクトじゃない」という発言に対して見当はずれな頭の悪い反論をしてたんだな
28 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 10:16:33.06 ID:x7xAEFKOa.net] どうやら>>7 のセンも濃厚っぽいな…
29 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 10:21:29.07 ID:0zhzHQ2W0.net] >>25 Railsの実装はRubyの黒魔術が使われてる・・・事実 同等のものはRubyの黒魔術を使わなくても作れる・・・事実
30 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 10:27:39.91 ID:x7xAEFKOa.net] >>29 他言語のRailsモドキはRailsと同等な機能もあるがすべてが等価ではない・・・事実 Railsの覇権はRailsモドキとの差異によってもたらされている・・・事実
31 名前:デフォルトの名無しさん [2020/01/06(月) 10:30:38.61 ID:MCXR7U+mr.net] どうやらガチで頭の残念な子みたいだねw 作れるかどうかなんて、入出力さえ十分にできればほぼすべての言語で作れるっつーのw
32 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 10:52:42.23 ID:0zhzHQ2W0.net] 作れるかどうかの話はしてないよ。 どれだけ簡単に作れるか Railsの開発速度が際立って高いわけではない むしろ後から追いつかれてる
33 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 11:12:38.64 ID:x7xAEFKOa.net] >>32 アンチ隔離スレに行け!
34 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 14:44:11.25 ID:DmV1IuhC0.net] 現在使用してる教材でテストツールとしてminitest、test-unit、RSpecが紹介されてたんですが 実際のところどれを使えばいいんでしょうか?
35 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 16:19:52.25 ID:78RinjQr0.net] >>34 Spec形式が好みならRSpec xUnit形式が好みならminitest よく分からないなら標準ライブラリに入ってるminitestから
36 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 18:44:57.86 ID:DmV1IuhC0.net] ご回答ありがとうございます とりあえずminitestでやってみて何か不都合があれば他も試してみる方針でやってみます
37 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 19:25:48.00 ID:6twfZFtd0.net] で、最終的にはrspecになるんやろ? もしくはrspecを横目にminitestはminitestで これもありなんだって言い訳しながら使うw
38 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 00:37:14.85 ID:ueOqy5pf0.net] BDD(behavior driven development) では、RSpec が標準! 宮下剛輔が作った、サーバー構築テストのServerspec も、RSpec。 JavaScript(JS) のMocha も、RSpecのコピー 基本的に、Rubyで流行ったものは、すぐに、JS, Kotlin へ移植される
39 名前:デフォルトの名無しさん (ワッチョイ c214-DsOW) mailto:sage [2020/01/07(火) 03:12:30 ID:tLIimsUP0.net] RSpecのJS, Kotlin移植版ってどれのこと? BDDってそんなに流行ってるの? まああるかもしれないけどxUnitの方が主流だと思うな。JUnitとか
40 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 07:26:57.50 ID:ueOqy5pf0.net] Windows で、Ruby 2.4 から、2.5へ変えたら、 selenium webdriver を使うのに、ffi が必要になった! でも、コードはそのまま動く
41 名前:デフォルトの名無しさん (ワッチョイ 9233-YCNF) mailto:sage [2020/01/07(火) 20:57:12 ID:9/TsdlFE0.net] 必須でないモジュールが分離されていってんのやろ。
42 名前:デフォルトの名無しさん (ワッチョイ 7fad-n+mb) mailto:sage [2020/01/09(木) 16:02:09 ID:sfRV4jRV0.net] irbで(整数).object_id と入力すると(整数)*2 - 1 が帰ってくるんですが、そういう仕様なんですか?
43 名前:デフォルトの名無しさん (ワッチョイ 7fad-n+mb) mailto:sage [2020/01/09(木) 16:08:04 ID:sfRV4jRV0.net] 訂正 × (整数)*2 - 1 ○ (整数)*2 + 1
44 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 17:47:10.30 ID:H5szYUtEM.net] >>39 BDDというかテストコードを自然言語に似せようとする系は、Goの台頭に伴ってすっかり廃れちゃったね 自動テストの最大の意義は入出力のスナップショットとして予期せぬ挙動の変化を検出できることにあるので、 細かい仕様をテストコードで表現しようとするよりも単純に入出力を並べた方が手っ取り早いし効果も高いんだよな 一方BDDは、網羅性や変化検出性能が不十分でも最低限大半のコードを通ってれば無いよりは遥かにマシだ、 それだけでもスペルミスのような初歩的なバグの大半は潰せるだろう、という手抜き欲求が根底にある ところが最近は静的型が主流になっちゃってスペルミスみたいなのは起きなくなったから、BDDのようなとりあえず通すだけのテスト手法にはあまり意味がなくなってしまった
45 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 17:51:07.91 ID:Mk2U0HaP0.net] >>44 goでテストって何使ってるの?
46 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 17:53:19.45 ID:Mk2U0HaP0.net] これ? Ginkgo is a BDD-style Go testing framework onsi.github.io/ginkgo/
47 名前:デフォルトの名無しさん [2020/01/09(木) 17:59:47.69 ID:zp680iXY0.net] 1234567890123456789.object_id #=> 2469135780246913579 12345678901234567890.object_id #=> 21368380 大きい整数は、無関係なID になる たしか、整数は最適化して、オブジェクトを作っていないのじゃなかった? どこかに、値だけを収めているのじゃ?
48 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 18:13:24.04 ID:VxfXfT1S0.net] >>44 書き方が違うだけでSpec形式でもxUnit形式でもテストする内容は同じだぞ RSpecじゃなくCucumberみたいなのを使ってたテストはレイヤーが違う んでもってGoの台頭とか関係ないし JSで一番使われてるJEST、Mocha、Jasmineの3つともSpec形式が基本 それぞれメリット・デメリットあるからそれを理解して 言語の特性や文化も考慮してから選択すればいい
49 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 18:17:48.65 ID:sNMr72pi0.net] JavaにもRSpecみたいなのってあるんだっけ? 言語的に無理がありそうなんだけど
50 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 19:54:43.22 ID:nuQhSBU10.net] コンパイラがスペルチェックまでしてくれるからじゃないの 未来のことはわかりません、っていう宗教観でしょ 作った時点で未来に何が起こるか全て分かるのが静的
51 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 20:26:41.00 ID:sfRV4jRV0.net] >>47 そうなんですか まだRubyをどう使うか勉強中の身ですが、Rubyそのものの仕組みも面白そうですね
52 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 21:53:54.80 ID:VxfXfT1S0.net] >>49 RSpecっぽいのはSpek RSpecとはちょっと違うけどBDDを謳っててメジャーなのはSpock あとCucumberはJavaにも対応してる
53 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 22:05:09.38 ID:edJ5p5Tx0.net] >>50 スペルチェックの話はテストと全く関係ないですよ テスト以前の問題
54 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 22:54:54.76 ID:C+kuIm3o0.net] >>53 スクリプト系言語では意味があるんだよなあ。
55 名前:デフォルトの名無しさん mailto:sage [2020/01/10(金) 00:36:36.31 ID:hCTYsry70.net] >>54 今はgoの話ですよ? goはスペルチェックさえすればテスト不要だとでも?
56 名前:47 [2020/01/10(金) 17:27:12.96 ID:PkgwRlbI0.net] >>51 こんなに多くの内部実装の解説本が出てる言語は、Ruby以外にない! まつもとゆきひろ 言語のしくみ、2016 コマンドA | コマンドB のような、パイプに似た表記で並列処理できる、新言語「Streem」のデザイン・実装 Rubyのしくみ、2014 外人が書いた本。 Cookpad の笹田耕一が作った、Rubyの実装系、Ruby1.9のRuby仮想マシンの説明 笹田耕一は今、RubyVM の仕組みを雑誌、WEB+DB PRESS で連載中 Rubyのなかを覗いてみよう!池澤あやかが「Cookpad Ruby Hack Challenge」に参加してみた https://next.rikunabi.com/journal/20180601_c11/ NHK Eテレでお馴染みの、Ruby の女神、池澤あやかによるリポート。 たしか、彼女は学生時代に、Rails 合宿に参加して学んだらしい
57 名前:デフォルトの名無しさん mailto:sage [2020/01/10(金) 17:29:32.05 ID:915LIh+yM.net] 一般論として、内部実装を知らないと使えないのは作り手としては恥
58 名前:デフォルトの名無しさん mailto:sage [2020/01/10(金) 17:31:43.84 ID:YP/p9xdd0.net] 真顔で「わたくしはC言語を極めました」と言える人物向け
59 名前:デフォルトの名無しさん [2020/01/10(金) 18:18:32.14 ID:puBSVXWRF.net] 池澤あやかωωω
60 名前:デフォルトの名無しさん mailto:sage [2020/01/10(金) 22:32:36.44 ID:VhdPbdF+0.net] しゅき…
61 名前:デフォルトの名無しさん [2020/01/11(土) 13:04:33.98 ID:e4hNIYBE0.net] rubyイスポーラー
62 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 15:44:52.50 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 15:48:51.00 ID: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 名前:デフォルトの名無しさん [2020/01/11(土) 15:48:59.14 ID:l/QLWHKHF.net] これ読め i.loveruby.net/ja/rhg/
65 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 15:51:56.31 ID:usOdB8FH0.net] まあ、とくにきまってるわけでもないやろし、特定してもあんまり意味ないけどな。
66 名前:デフォルトの名無しさん [2020/01/11(土) 15:55:40.95 ID:l/QLWHKHF.net] 特にここ i.loveruby.net/ja/rhg/book/object.html
67 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 00:51:50.16 ID:Vj2aFgw8r.net] 頭の悪い奴がひたすらここを自分の日記帳替わりにしてんのくっそ邪魔 そんなん試行錯誤ですらねえよ
68 名前:デフォルトの名無しさん (アウアウウー Sa05-s5Rz) mailto:sage [2020/01/17(金) 09:22:39 ID:E+lfOmbYa.net] Ruby riを使おうとしても「Nothing known about 〜」と出て repl内でdocumentationを参照できないときの対処法 How do I install the Ruby ri documentation? https://stackoverflow.com/questions/3178900/how-do-i-install-the-ruby-ri-documentation
69 名前:デフォルトの名無しさん (ワッチョイ 220c-muX5) mailto:sage [2020/01/17(金) 14:31:01 ID:vdDSAPn50.net] 東洋経済という株の雑誌の今週号は、今年こそ始めるプログラミング プログラムの説明は初歩の初歩の初歩レベル 学習難易度がもっとも低い、覚えやすいのがruby、最も平均年収が高いのがGoと紹介 ほんとかなあ
70 名前:デフォルトの名無しさん (ドコグロ MMd5-mgaX) mailto:sage [2020/01/17(金) 15:51:59 ID:0sb73h15M.net] Goは言語自体の難易度はRubyより低い でもGoエンジニアってGo書けるだけじゃなくてAWSやLinuxやコンテナを使いこなすことが前提なので、 オレRoRやってますウェーイ君なんかとは比較にならないくらい高い技術力と幅広い知見が求められるんだよ 彼らは様々な言語を経験してきた末に「コードなどシステムの1要素に過ぎない」という境地に到達し、 足回りも含めた全体としての柔軟性を追求した結果として、Goという面白みもクソもない「道具」を選択しているんだ Goだけできても仕事はない
71 名前:デフォルトの名無しさん (ワッチョイ 022c-Sfrr) [2020/01/18(土) 01:21:19 ID:ciDfAHTw0.net] 元々、サーバー側は、Ruby の1強だった! Vagrant, Chef, Serverspec とか 数年後、 Rubyを真似
72 名前:オたのが、Node.js で、 Go のDocker も出てきた 先行者利益を得るためには、ビジネスでは、Ruby 1強! だから、ハーバード大学でも、小資本のベンチャーは、Rubyを勧められる 他の言語では、数年遅れる。 DSL で作りにくいし、開発が非常にややこしく、人材を集められず、費用が膨大だから、 小資本のベンチャー・起業に向かない SASS も、Rubyで始まった! [] [ここ壊れてます]
73 名前:デフォルトの名無しさん (ワッチョイ a914-+9Wh) mailto:sage [2020/01/18(土) 02:07:34 ID:w6J1AYPB0.net] つまり、Rubyはプロトタイプ用
74 名前:71 (ワッチョイ 022c-Sfrr) mailto:sage [2020/01/18(土) 02:25:10 ID:ciDfAHTw0.net] 小資本で起業して、新しいコンセプトの自社サービスを開始するのに、適した言語がRuby。 スタートアップ企業だから、サイトの速度は遅くてもよい あくまで、ベンチャーは成功しないのが基本w Rubyは実験用言語とも言える ところが、たまに化物みたいなサイトを生み出すのも、Ruby Rails で作った、このサイトの速度は尋常じゃない! 他の言語では、絶対に作れないw https://dev.to/ Ruby on Rails Part21 https://medaka.5ch.net/test/read.cgi/php/1545146635/103
75 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 02:41:28.23 ID:AhPxC9uwa.net] これのことか? https://dev.to/ben/making-devto-insanely-fast フロントエンドの設計が優秀なのと静的コンテンツにFastly使ってるから速いって だけで、ほとんどRails関係ないな
76 名前:71 (ワッチョイ 022c-Sfrr) mailto:sage [2020/01/18(土) 03:54:28 ID:ciDfAHTw0.net] でも、DB は、Rails でしょ? ちょっと考えられないぐらいに、速いw あり得ないw だから、Ruby からは、こういう怪物が出てくるw 実験用言語だから、とんでもない事をやりたいような、面白い香具師が集まってくるw Cookpad でも、Rubyの実装の中身を覗いてみようという変な企画にも、百人応募してくるw 他言語の香具師も面白がってやってくるw それがRubyの面白い所w 知的好奇心がそそられて、何か新しいことに挑戦したくなる言語
77 名前:デフォルトの名無しさん (ワッチョイ 82a5-36M6) mailto:sage [2020/01/18(土) 09:12:19 ID:6Wtj4R8r0.net] >>69 アホの東洋経済はわざと因果を逆転させてるアホ集団だから気にしない方がいい もとから年収の高い集団が内製の新言語使いだしただけだろ 要するに、東洋経済の従業員自体の年収はそんなに高くねーモン 企業内にバカしか詰まって無いから自身が取材したノウハウの全てを使ってない だから10億プレイヤーが東洋経済にいない 同じ理由で潰れたのがbig tomorrow
78 名前:デフォルトの名無しさん (ワッチョイ a914-+9Wh) mailto:sage [2020/01/18(土) 09:30:31 ID:w6J1AYPB0.net] いやRails遅いでしょ?何と比べて速いって言ってるのさ?
79 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 10:05:38.54 ID:Qnj8VWpB0.net] >>75 5chを荒らすことしかしてないお前が言っても説得力ゼロだ
80 名前:デフォルトの名無しさん (ワッチョイ 5233-j5lD) mailto:sage [2020/01/18(土) 17:00:27 ID:gfH5d2Um0.net] つうかそもそも、DBはRailsってどういう意味なんや?w
81 名前:71 [2020/01/19(日) 12:09:49.13 ID:qcodQ+dh0.net] 元乃木坂46 の川後陽菜のブログ https://kawagopro.com/ 上を、下のサイトで分析したら、これも、Rails だった! https://builtwith.com/ アイドルの会員サイトの専門の、SKIYAKI が作っているけど、どおりで速いはず!
82 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 12:14:17.68 ID:7HHjQocqr.net] ×どおりで ○どうりで(道理で)
83 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 12:40:31.29 ID:Wel1D6/w0.net] >>81 そいつ(>>80 )はいつもの荒しだから、道理がわからないのも納得だなw
84 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 13:11:12.72 ID:AinWVopR0.net] いよいよRubyにも型チェックの機能が取り入れられる 型定義は別ファイルに書くようになっていて、文法は以下の感じ class Foo def foo: -> void def to_s: -> String (Integer) -> String end このようなクラス定義によく似た何かを別ファイルに用意しなければならない(面倒だね) この際、クラス名Fooやメソッド名foo,to_sなどを細心の注意を払って間違いなく正確に記述しなければならない もし間違えてしまうと型チェックが働かなくなる(だろう) そして、型チェックツールはそのことを教えてくれないだろうね 何故ならRubyは型定義が無くても動くのが前提だから、名前を間違ってても「あ、型定義無いのね」って思うだけ なんならクラス名やメソッド名を間違えていないことをチェックするテストコードを書かなければならないかもしれない そうしないと正しく型チェックが働いたことを誰も保証できないだろう? 「ソースコードのクラス名やメソッド名を変更したけど、型定義ファイルのそれらを修正し忘れる」 というのは普通にあり得るケース、というか一番ありがちなヒューマンエラーの類 絶対だれかヤラカス、容易に想像できる お気づきのかたも多いだろうが、同じことを二回書かせるから間違える これはまさに「DRYに反している」典型的事例 ところがmatzに言わせれば、ソースコード上に型を書く方が「DRYに反している」らしい 理由も意味不明 (普通に考えれば別ファイルに書く方がDRYに反している) ttps://logmi.jp/tech/articles/321280 このように口を開けば事実と反対の事ばかり言うのがmatzであり そんな人が作ったRuby自体も反対のあべこべ逆張り言語である
85 名前:デフォルトの名無しさん (アウウィフ FF05-otum) [2020/01/19(日) 15:31:51 ID:ehZNNwbSF.net] 俺のRubyがこんなに速いわけがない
86 名前:デフォルトの名無しさん (アウアウウー Sa05-s5Rz) mailto:sage [2020/01/19(日) 23:07:31 ID:JsYzYAKPa.net] 入門書に飽きてきた人におすすめ Rubyだと実例を入手しやすいからいいね 新しいプログラミング言語の学び方 HTTPサーバーを作って学ぶ Java, Scala, Clojure https://speakerdeck.com/todokr/xin-siihurokuraminkuyan-yu-falsexue-hifang-httpsahawozuo-tutexue-hu-java-scala-clojure https://github.com/todokr/simple-http-server
87 名前:デフォルトの名無しさん (ワッチョイ 022c-Sfrr) [2020/01/19(日) 23:44:41 ID: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 名前:デフォルトの名無しさん [2020/01/20(月) 20:49:11.90 ID:YZhtkMgR0.net] 最近、誰でも高額が稼げるような言い方でRuby教材を売ってる人らが目立つな
89 名前:デフォルトの名無しさん (ワッチョイ f901-otum) [2020/01/21(火) 00:25:49 ID:dRlbVwUu0.net] 稼げるからね。
90 名前:デフォルトの名無しさん [2020/01/21(火) 00:43:52.91 ID:98cKibZ60.net] 本当に稼げるんならいいけど、100万円取られて終わりじゃないの
91 名前:デフォルトの名無しさん [2020/01/21(火) 01:06:10.14 ID:kOBQMwNv0.net] 100万稼げるからねって意味だったんですけど。
92 名前:デフォルトの名無しさん [2020/01/21(火) 11:25:04.38 ID:USbDfMqQ0.net] 詐欺御用達
93 名前:デフォルトの名無しさん mailto:sage [2020/01/21(火) 12:15:08.17 ID:/80lr+DT0.net] スコップを売って100万稼ぐんだろ スコップ売りの少女から学ぶべきは一つ スコップで穴を掘ることではなく、スコップの売り方
94 名前:デフォルトの名無しさん [2020/01/21(火) 12:31:08.84 ID:USbDfMqQ0.net] ruby最強ωωω https://www.youtube.com/watch?v=7VH-N-dsq3Y
95 名前:デフォルトの名無しさん (ワッチョイ a12d-GCXE) [2020/01/21(火) 16:39:26 ID:98cKibZ60.net] >>90 そっちか!勘違いしてたぜ
96 名前:デフォルトの名無しさん (ワッチョイ 225c-muX5) mailto:sage [2020/01/21(火) 19:28:13 ID:essSqG5l0.net] "abc".size などの . は前後に空白があってもOKだった(最近の発見) "abc" . size
97 名前:デフォルトの名無しさん mailto:sage [2020/01/21(火) 21:28:11.63 ID:nuZnWP/f0.net] Windows 10, VSCode では、 関数の引数の( ) の有無とか、 obj.method arg_1 obj.method( arg_1 ) メソッドチェーンでのコメントの有無とか、 obj.method_1 # コメント .method_2 # コメント こういうので、エラーになったり・ならなかったりする、基準が分からないw
98 名前:デフォルトの名無しさん (ワッチョイ 5233-j5lD) mailto:sage [2020/01/21(火) 22:49:54 ID:YQwIan5u0.net] Rubyは、IDEと相性が悪いからな。 動的型だけじゃなくても、文の区切りがわかりにくい文法も。 しゃあない。
99 名前:デフォルトの名無しさん (ワッチョイ 4201-73fV) mailto:sage [2020/01/21(火) 23:13:36 ID:Vd2KBMmO0.net] しゃあないわけあるかw 使ってるプラグインの作りが悪いだけだろ
100 名前:デフォルトの名無しさん (ワッチョイ 022c-Sfrr) mailto:sage [2020/01/21(火) 23:27:09 ID:nuZnWP/f0.net] VSCode が中心になってから、開発者全員がVSCode を使うようになって、 すべてのエディタ・IDE で使える、言語サーバーの規格化が始まった! Ruby も対応してくれるかな?