X



Ruby 初心者スレッド Part 63
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2018/04/17(火) 17:46:57.87ID:GYuBFjQi
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で

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

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

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

逆引きRuby
http://www.namaraii.com/rubytips/
0210 ◆QZaw55cn4c
垢版 |
2018/06/18(月) 01:04:27.72ID:OiAJbwiy
>>207
>定義を与えてから論を進めるのは科学的思考の基本
無定義語というのもありますが
「線」「点」はユークリッドも定義していません

>RubyもPythonも評価は低い。
「あなたの」評価が低いだけなのでは?
0211デフォルトの名無しさん
垢版 |
2018/06/18(月) 01:05:11.72ID:N12QMbNB
>>207
長文の割りに中身が少ないな

>コンピュータにとって美しい言語
>アセンブラの方がまだ親しみやすい
LISPは高水準言語だから逆だよ

大多数にとって読み書きしにくいのはそうだろうが
関数型言語の元祖なんだから
コンピュータのための記法ではない
人間のための記法だよ

逆にC/C++のポインタなんかは
アセンブラの低水準の仕組みが残ってる


>大前提として、変数の宣言と型づけができない言語は駄目
それはたんなる趣味

型推論の時代だから動的/静的型付けに
そんなにこだわる意味も薄れてきてる
0214デフォルトの名無しさん
垢版 |
2018/06/18(月) 22:30:18.55ID:wpApFxp0
>>211
処理が高水準か低水準かと、記法が人間にとって親しみやすいかとは別物。
アセンブラの名残りと言えば、CだけでなくRubyもPythonも配列の添字が
0から始まる点でそうだろ。日常生活や数学の感覚では1から始まるのが自然。
Pascalは任意の整数、BASICは0か1かを選択できる。

C#では型推論が導入されたが、プログラマの判断で場面に応じて使うことも
できるだけで、従来の型がなくなったわけではないし、従来の型の方が頻繁に使われる。
何でも丸呑みしかできないうわばみとは違う。

Pythonは構造化に関しても不完全というか履き違えたオフサイド・ルールが駄目だね。
HTMLやLaTeXなどの文書マークアップ言語の基本は、構造と書式を混同しないこと。
文書の構成要素に対して書式を直接指定するのではなく、構造を指定し構造に書式を
割り当てるのが作法。プログラミング言語の構造化も同様で、タブやスペースによる
インデントは表層的な書式に過ぎず、本質的な構造は{と}やbeginとendで囲むことにより
明示すべきもの。

Pythonによる構造と書式の混同は、不作法なだけでなく実地上の問題も生む。
例えば、5ちゃんねるにソースコードをコピペで書き込むと、タブと半角スペースが
除去されてしまい、ifなどの制御ブロックがどこまでなのか全く分からなくなってしまう。
C系やPascalならば書式が失われても構造は残るので、プログラムの動作は変わらないし、
標準的な書式を復元することもできる。

この点では、endを使うRubyはPythonと違ってまともだな。
0216 ◆QZaw55cn4c
垢版 |
2018/06/18(月) 23:08:00.86ID:OiAJbwiy
>>214
>数学の感覚では1から始まるのが自然
日常の感覚はともかく、数学では自然数が必ず 1 から始まるとは限らない、これは一々確認しないといけないもの
0218デフォルトの名無しさん
垢版 |
2018/06/19(火) 02:30:49.14ID:zx5ttZfc
>>214
うっかり混同したんじゃなくて故意にそう設計してるんだから混同じゃなく同一視と言うべき。
0219デフォルトの名無しさん
垢版 |
2018/06/19(火) 09:03:02.03ID:9hRUW1Ne
LISPが複雑怪奇で読みにくいってコイツマジで言ってんのかよ
あれだけ直観的な表記なのに
0220デフォルトの名無しさん
垢版 |
2018/06/20(水) 14:14:42.86ID:lDwnd3LP
ルールは少ないが決して直感的ではない
ネストが深くなれば単純に読みづらいし
特殊形式やマクロがあるから意味も取りづらい
0223デフォルトの名無しさん
垢版 |
2018/06/21(木) 07:08:05.87ID:TIqdN2sL
Openglのgemいれて遊んでるけどやっぱり見本になるようなコード付きruby本が欲しい
バッファ操作やシェーダー言語といった基本じゃなくてHDRレンダとかBSP木の実装とか特に
0224デフォルトの名無しさん
垢版 |
2018/06/21(木) 08:49:19.42ID:y5k3a+mj
戦争法ω反対ωω
0226デフォルトの名無しさん
垢版 |
2018/06/23(土) 16:15:21.51ID:SdhvexJI
後半は同意
Vue.jsとか使うんだったらサーバーをRailsで書く旨味はほとんど無いから、
サーバーサイドはNodeのようなよりライトウェイトなものか、信頼性重視でJava/C#/Goあたりが鉄板だよ
中途半端なRubyは役割を失ってしまった
0228デフォルトの名無しさん
垢版 |
2018/06/23(土) 16:44:43.58ID:SSNlEBNF
TypeScriptの流行もRubyにとっては逆風になったよな
あのせいでCoffee推しだったRailsに急に負け組のイメージが付いてしまったし、
TypeScriptに興味があってもサーバーサイドは「型書きたくないでござる」なのに
クライアントでは「The power of typing」という頭のおかしい状況になってしまうからRubyを使ってる限り絶対に手を出せないわけだし
0229デフォルトの名無しさん
垢版 |
2018/06/24(日) 15:39:18.64ID:mk6WJRaX
chunkメソッドなのですが、
hash = {}
(1..99).to_a.chunk{|a|a % 10}.each {|k,v| hash[k]=v}
これで期待した値は
{1=>[1,11,21,31,..91],2=>[2,12,22,32..93],3=>..}
だったのですが、
結果は
{1=>[91],2=>[92],3=>[93]...}

これは90台の値でhashの値が上書きされるということでいいんですよね。

hash = {}
(1..99).to_a.chunk{|a|a / 10}.each {|k,v|hash[k]=v}
p hash
こっちだけど綺麗に
{0=>[1,2,3,4,5,6,7,8,9],1=>[10,11,12,13,14,15,16,17,18,19],2=>...}
と纏めてくれるんだけど。
0230229
垢版 |
2018/06/24(日) 16:08:41.21ID:mk6WJRaX
hash = {}
(0..9).each { |a| hash[a] = [] }
(1..99).to_a.chunk { |a| a % 10 }.each { |k, v| hash[k] = hash[k] + v }
p hash

これでいいのか。
でも、これだとchunkを使う意味がないんだろうな。
0231デフォルトの名無しさん
垢版 |
2018/06/24(日) 18:43:42.85ID:BpQN/QJ/
rubiniusってどうなん?
2018.5.28に3.105がリリースされて、まだ活動しているけれど、使っている人っているのかな?
0232デフォルトの名無しさん
垢版 |
2018/06/24(日) 20:50:57.20ID:WqNjZLae
rubiniusはSqueak/Pharo(Smalltalk)やpypy(Python)ではできてるVMのセルフホスティングを断念して
その存在価値をほぼ失って久しいという印象

今のウリは何なの?
0233デフォルトの名無しさん
垢版 |
2018/06/24(日) 23:29:40.97ID:chBT6m1a
>>229-230
a / 10 では、0〜9 が連続した同じグループだろ

a % 10 では、0〜9 は、すべて異なるグループじゃん。
0, 1, 2... と、グループが切り替わっていく

chunk は、グループが切り替わる所までが、一連の同じグループ
0235デフォルトの名無しさん
垢版 |
2018/06/25(月) 16:53:20.01ID:dnPuwK4a
プログラミング教育が話題になりはじめたけど、
Ruby噛ませて補助金や助成金をもっと出させたほうが良い
0236デフォルトの名無しさん
垢版 |
2018/06/25(月) 17:53:01.58ID:o35Q9ijA
本当に日本の将来を思うのなら、Rubyは教育分野からは今後きっぱり身を引くべきだと思うけどね
日本のITはクソと言ってる人達が日本のITのガラパゴス化を増長させているという
0238デフォルトの名無しさん
垢版 |
2018/06/25(月) 21:25:37.12ID:hIvBrOlA
まだ?人気だったことあったっけ?
arduinoやmicro:bitは何でプログラミングしますか?
0239デフォルトの名無しさん
垢版 |
2018/06/25(月) 21:48:16.51ID:M/oLTPjd
mrubyは純粋に補助金稼ぎのためにやっているプロジェクトで、実際には誰も使ってないぞ
IoTとか地域の中小企業の活性化とか言って公共団体から金を引っ張ってきやすいんだよ
金の集めやすさでいえば今だとAI関連の方がいいだろうけど、役所のスネ齧ってるような連中の中にそんな高度な人材はいない
0240デフォルトの名無しさん
垢版 |
2018/06/25(月) 22:17:26.05ID:633Q5XzL
日本ってどれだけ税金にたかれるかで
組織が成功できるか決まるからな
仕様がないね
0242デフォルトの名無しさん
垢版 |
2018/06/26(火) 01:48:24.75ID:dX6kXz8Z
やっぱり粘着しとるな
0243デフォルトの名無しさん
垢版 |
2018/06/26(火) 19:05:17.48ID:ZJbD0Mnn
>>239
ほんそれ
0244デフォルトの名無しさん
垢版 |
2018/06/26(火) 22:51:30.68ID:dX6kXz8Z
なんかひろゆきの元に戻るらしいね
荒らしも処刑宣告されてたしこれでひとまず一件落着なのかな
0247デフォルトの名無しさん
垢版 |
2018/06/29(金) 21:19:45.40ID:74QnzxIm
Rubyで型を扱うライブラリ・・・いくつがあるようだが
本来このような言語の肝となる機能は言語側が用意すべきなのにな
だって統一しとかなきゃ厳しいでしょ
なのに教祖様が、絶対に型は書きたくないでござる!だから安心して見てられるわ
まぁ今のRubyの状態で型を導入したらそれこそ寿命を縮めるだけかもしらんし
その意味では正しい判断だが、周りからの要求もあるし、こういうライブラリ作る連中もいるし
止められない流れなんだろうな、グズグズになって腐る感じ

改めて初めから静的型にしておけばよかったのにな
型を書くのがそんなに面倒か?型推論もあるし
型関係のライブラリが乱立するよりよっぽどマシだろうよ
別に後出しジャンケンじゃないぞ
昔から宣言や型を書かない言語は糞って言ってる人たちはいっぱいいたからな
0250デフォルトの名無しさん
垢版 |
2018/06/30(土) 20:29:47.54ID:2e1/6RZt
RubyやPythonはPerlの代替のお手軽スクリプト言語だから、変数宣言と型はない方が
都合が良いだろ。最もお手軽なコマンドラインに与えるワンライナーでもそんなものを
いちいち書かされるのは不便。スクリプト言語の守備範囲を超えた使い方をしようと
する人がいるから叩かれるだけ。本格的なプログラミングにはC系かPascal系を素直に
使えば良い。
0251デフォルトの名無しさん
垢版 |
2018/06/30(土) 20:48:41.99ID:oxrLiD+S
OpenCVもTensorFlowも公式がガン無視の空気言語Rubyが!
OpenCVもTensorFlowも公式が第一級のサポートを提供しているPythonに申し上げる!!
RubyやPythonはPerlの代替のお手軽スクリプト言語だから、変数宣言と型はない方が
都合が良いだろ。最もお手軽なコマンドラインに与えるワンライナーでもそんなものを
いちいち書かされるのは不便。スクリプト言語の守備範囲を超えた使い方をしようと
する人がいるから叩かれるだけ。本格的なプログラミングにはC系かPascal系を素直に
使えば良い。
0252デフォルトの名無しさん
垢版 |
2018/06/30(土) 21:04:14.51ID:z7Yn6z20
型が欲しかったらC#でもJavaでもScalaでも
静的型言語がたくさんあるんだから
それ使えばいいだろうに

Ruby3での文字列の不変化くらいであれだけ揉めてたのに
静的型にしたらRubyの良さがかなり死ぬと思う
0254デフォルトの名無しさん
垢版 |
2018/06/30(土) 22:31:49.44ID:1DUVGupI
>>253
動画配信サイトってこと?
インフラ技術の方が重要だからAWSを学ぶべき
RubyやPHPでフロントと簡単なCRUDサーバー作れるだけの技術者なんか掃いて捨てるほどいるから、あえて君がレッドオーシャンに乗り込む必要はない
0255デフォルトの名無しさん
垢版 |
2018/07/01(日) 00:06:44.00ID:+TAM62F7
掲示板+動画みたいなサイト作って一儲けしたい
構想はある
0256デフォルトの名無しさん
垢版 |
2018/07/01(日) 01:49:25.70ID:YZ+qvhoO
Ruby は基本。そこから、Elixir。
Rust もやってる

C++ の標準化委員会の江添亮もいるし、HDL など、
ニコニコはすべての言語をやってる

「たのしいRuby 第5版、2016」を読めば、
ファイル操作・テキスト処理など、一通りできるようになる

無料のRails チュートリアルもやれば、MVC の基本がわかる
0257デフォルトの名無しさん
垢版 |
2018/07/01(日) 02:51:31.23ID:cI0QDxC9
>>253
>>255
動画サイトは通信料がものすごい負担だから
大企業じゃないとまず勝負にならないと思うよ

個人運営の動画配信サイトなんてあんま見たことないでしょ?
ユーチューブのまとめとかじゃなくて自前配信では
0261デフォルトの名無しさん
垢版 |
2018/07/01(日) 21:53:00.05ID:4BWRO6SX
Rubyを採用するシステムは今後増えるの?
0262デフォルトの名無しさん
垢版 |
2018/07/01(日) 22:10:32.82ID:InQHnS3f
>>261
センスないやつだな減ってってんだよ
0265デフォルトの名無しさん
垢版 |
2018/07/02(月) 01:15:45.91ID:v1kLQBFZ
>>264
それRailsはまだ死んでないと言ってるだけで、Rubyの採用が減っている説に対する反証にはなってないよね
以前に比べて減っていないor増えている証拠を提示しないと
0266デフォルトの名無しさん
垢版 |
2018/07/02(月) 01:18:33.48ID:G4Zx9Hgj
>>265
ごめんな、それはただの詭弁なんだわ
減ってない根拠が出されてたんだから、次は減ってると主張する方が根拠出さなきゃ嘘がどんどん
明らかになっていくよ
0268デフォルトの名無しさん
垢版 |
2018/07/02(月) 01:21:20.88ID:G4Zx9Hgj
>>267
ごめんな、減ってると主張する側の論拠がないんだわ
そこがない以上、話がかみあわんと思うわけさ
0270デフォルトの名無しさん
垢版 |
2018/07/02(月) 01:37:58.55ID:G4Zx9Hgj
>>269
The more a language tutorial is searched, the more popular the language is assumed to be.
ちゃんと訳した上で言ってるのかな?
0271デフォルトの名無しさん
垢版 |
2018/07/02(月) 01:39:37.89ID:v1kLQBFZ
英語読めない人のために補足しとくと、
>>269の下ではRubyは驚くべき速度で人気を失っており避けるべき言語の筆頭とされている
0273デフォルトの名無しさん
垢版 |
2018/07/02(月) 01:58:30.86ID:G4Zx9Hgj
まぁ、引用できるわけないんだけどね。一切そんなこと書かれてないから

ついに捏造までやるようになったんだねー
書かれてない英文を翻訳したかのように書き込むと
0274デフォルトの名無しさん
垢版 |
2018/07/02(月) 02:36:31.45ID:IqIVlqOF
smalltalkやlispやprolog、algol、cobolが死んでないようにrubyも死んでへんで!!!
0275デフォルトの名無しさん
垢版 |
2018/07/02(月) 02:47:20.79ID:9wGdj7CA
クックパッドは、Rails で最大のサイト。
RubyVM の作者・笹田耕一も入社した

大規模サイト以外では、やっぱり、Rails

Python Django 超入門、掌田津耶乃、2018

Rails の本は何十冊もあるけど、Django の本は、初めて出た。
Django は、ようやくスタート地点に立った所
0276デフォルトの名無しさん
垢版 |
2018/07/02(月) 09:27:20.76ID:BmG8Ktfn
Railsは下火かもしれんが
このフレームワークは最大のコミュニティを持っているので
困ったときに質問すれば他の誰かがだいたい答えを持っているのが大きい。
英語読み書きできるとこのアドバンテージはデカイ。
0277デフォルトの名無しさん
垢版 |
2018/07/02(月) 11:49:58.89ID:BcUDQh/y
Rubyが下火という話であって誰もRails下火とは言ってない。
Rails以外のRubyの応用用途が減ってって既にRails専用のDSLに落ちぶれている。
Rails使いたいから仕方なくRails以外に使いようがないクソ言語を覚えなければならない状況。
そんな感じなので最近はむしろRubyのせいでRailsが忌避されてる。
Railsは被害者。
0279デフォルトの名無しさん
垢版 |
2018/07/02(月) 14:11:25.05ID:1MsCi84i
Web系のスタートアップ企業はRuby使ってるとこ多いからRubyは今後増えるよ
0281デフォルトの名無しさん
垢版 |
2018/07/02(月) 17:00:46.05ID:53959ojp
あれだけ炎上騒ぎをおこしたrailsをまだ使うとかにわかには信じがたいな
Rubyびいき筋以外のフラットな立ち位置からの情報はないの?
0282デフォルトの名無しさん
垢版 |
2018/07/02(月) 19:48:05.70ID:HxZ/kndY
ruby(rails)は自分でもなんとか扱えるから、外注や人を雇う必要ない。
じゃないの?
0284デフォルトの名無しさん
垢版 |
2018/07/03(火) 01:37:17.55ID:dVWXwhE2
>>229
まだ観てるかしらんけど
(1..99).group_by{|e| e % 10}
=> {1=>[1, 11, 21, 31, 41, 51, 61, 71, 81, 91],
2=>[2, 12, 22, 32, 42, 52, 62, 72, 82, 92],
3=>[3, 13, 23, 33, 43, 53, 63, 73, 83, 93],
0285デフォルトの名無しさん
垢版 |
2018/07/04(水) 21:57:05.42ID:gFgZc5FG
0EE
0287デフォルトの名無しさん
垢版 |
2018/07/05(木) 11:44:02.79ID:ggCUEqXy
RubyとPythonではどちらが有望と思う?
0290デフォルトの名無しさん
垢版 |
2018/07/05(木) 12:40:16.97ID:HxzHDfUH
今後はウェブアプリでもPythonの方が良さそう?
どっち勉強するか迷う
0293デフォルトの名無しさん
垢版 |
2018/07/05(木) 13:14:56.34ID:Mlujh05Y
いつまで自演でネガキャンしとんねん
いい加減、板荒らすのやめろやボケ
0294デフォルトの名無しさん
垢版 |
2018/07/05(木) 13:21:36.70ID:r0ar2IDe
作りたいウェブアプリの性質による
ページ遷移だけのクラシックな業務システムっぽいアプリならRailsは最強
クライアントに寄せてモダンな画面をグリグリ動かしたいんだったら最近はNode.jsとTypeScriptかな
0295デフォルトの名無しさん
垢版 |
2018/07/05(木) 23:59:32.75ID:28cP6wKp
Pythonにしかできないことは結構あるけど
Rubyにしかできないことはまったくない
0296デフォルトの名無しさん
垢版 |
2018/07/06(金) 01:36:51.46ID:sgP3sBfE
Python Django 超入門、掌田津耶乃、2018

Django の本は、フレームワークの巨匠・掌田が初めて出したばかり。
一方、Rails の本は、何十冊も出ている

Ubuntu 18.04 で、snap というパッケージマネージャーができたので、
Rails の動く環境一式丸ごと、配布できるようになったので、
Redmine みたいなRailsアプリが、たくさん配布されるはず

snap は、依存も含めて、アプリの仮想環境丸ごと含む
0298デフォルトの名無しさん
垢版 |
2018/07/06(金) 04:21:46.00ID:F9o4Pz4O
> フレームワークの巨匠・掌田

笑わせんなw 掌田って初心者本しか書けないやつじゃねーかw
0304デフォルトの名無しさん
垢版 |
2018/07/06(金) 10:35:38.66ID:F9o4Pz4O
× インデントでブロックを表現するとかじゃね?
○ ブロックを表現するのにインデントを使うしかない
0307デフォルトの名無しさん
垢版 |
2018/07/06(金) 11:31:52.50ID:sgP3sBfE
Selenium Webdriver・Nokogiri を使って、5ch のスレを読み込んでいますが、
5ch は、JavaScript(JS) で動的にHTML を作っているため、
同時に、Selenium Webdriverも使っています

driver.navigate.to "5ch のスレのURL"

doc = Nokogiri::HTML(driver.page_source)
elements = doc.css("div.post") # すべての投稿

これだけで、JS読み込み後のHTML を取得できていますが、
この書き方で、常に取得できるのでしょうか?
それとも、たまたま取得できただけですか?
■ このスレッドは過去ログ倉庫に格納されています

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