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/
0552デフォルトの名無しさん
垢版 |
2018/08/05(日) 06:51:56.13ID:S3FmLgSz
rubyはプログラミング集中に邪魔な面倒な約束事を書くのを端折りたい人が使うもんじゃないの?
0553デフォルトの名無しさん
垢版 |
2018/08/05(日) 06:55:03.34ID:rv82PXHz
>>551
Ruby版Electronは欲しいな

Rubyと言えばRails一本槍で
WindowsとGUI軽視が
Rubyの普及を妨げたと思う
0554デフォルトの名無しさん
垢版 |
2018/08/05(日) 06:58:39.94ID:WWyVTQgE
RubyをGPL感染なしで使うのは難しいから、Rubyをアプリに組み込むような配布形態が流行ることはないよ
0555デフォルトの名無しさん
垢版 |
2018/08/05(日) 07:03:15.02ID:rv82PXHz
たしかにGPL汚染でプロプライエタリで使うのは難しくて
Linuxみたいなフリーウェア的思想の方へ
流れていったから現在があるんだろうね

Androidのネイティブアプリも軽視されてると思う
まあこれもできなくはないけど普及してはない
0557デフォルトの名無しさん
垢版 |
2018/08/05(日) 10:42:24.03ID:lge76hvQ
この知ったかしてるのってQZaw55cn4c?
0558デフォルトの名無しさん
垢版 |
2018/08/05(日) 11:07:51.33ID:6sr+WFQ9
PCやAndroidのアプリにバンドルするならmrubyだろうけど、
さすがにmruby使うのはだいぶ本末転倒だからなあ
そこまでするくらいなら普通にElentronのNode使ったほうがよっぽど生産性高い
0559デフォルトの名無しさん
垢版 |
2018/08/05(日) 14:08:26.91ID:gZzT8382
ちょっと前にmrubyを使ってみた事があるけどBignumが標準でないためFixnumとシームレスに変換されなかったりして使いにくい
速度もCRubyに劣るしPC用アプリケーションの処理系としてはあまり向いていないと思う
0560デフォルトの名無しさん
垢版 |
2018/08/05(日) 20:32:19.40ID:XPCi/u53
>>535
Expressが影響を受けたのはrailsではなくsinatra。
railsしか使ったことないのバレバレだな。
rubyとjsは全然似てない。jsの関数の万能さ、簡潔さをどうこねくりまわしてもrubyのblock proc lambdaみたいな面白仕様にはならない。
別にjsがすべてに優れてるわけでは全然無いが第一級関数の扱いについてだけは太刀打ちできないだろ。
0564デフォルトの名無しさん
垢版 |
2018/08/05(日) 21:11:54.17ID:XPCi/u53
>>561>>562
ようするに全然似てないだろ?
似てるって言ってる>>535に対する反論なのだが。
勝手にjsからの回し者認定して攻撃してこないでよね。
わざわざ優れてるわけでは全然無いとまで書いたのに。
0565デフォルトの名無しさん
垢版 |
2018/08/05(日) 21:15:30.39ID:uVIrroLR
> Rubyを学ぶと、数言語できるようになる
こればっかりは全く同意できないな
Ruby使いはRubyに固執して他の言語に手を出そうとしない傾向が他の言語使ってる人に比べて強い
性質的にはVBerに近い
0566デフォルトの名無しさん
垢版 |
2018/08/05(日) 22:02:21.04ID:zXVetSzu
JS書きやす〜〜いwwwって人もいるんだな。
オジサン驚いたわ。
0567デフォルトの名無しさん
垢版 |
2018/08/05(日) 22:10:40.23ID:aA1uZ2Py
rubyは手に馴染むけど、いろいろなライブラリを使う状況になると、
入力補完が優れた他の言語の方が効率的になっちゃうんだよなあ
0569デフォルトの名無しさん
垢版 |
2018/08/05(日) 22:58:55.54ID:AAAWmj32
ところが今はVSCodeがあるからJSクソ書きやすいんだよなあ
更に高い生産性や厳密なチェックを求めるならTypeScriptもある
VSCodeもTSも宗教的にRubyと相性最低最悪なのが悲しいところだが
0570デフォルトの名無しさん
垢版 |
2018/08/05(日) 23:13:37.38ID:5cf6E25B
>>568
昔のJSは書きにくかったんだよ。
でも今はJSが書きやすくなったから、
生き残ってるAltJSはTypeScriptだけになったよ
0571デフォルトの名無しさん
垢版 |
2018/08/06(月) 00:06:44.28ID:obJKiCah
eachによるカウンタいらずのループとかRubyの大きなアドバンテージじゃね
最近のJavaScriptはカウンタを回さなくてもすむようになったんだっけ?
0572535
垢版 |
2018/08/06(月) 00:11:55.08ID:b7eNDjo0
>>560
Node.js は、Sinatra をフルスクラッチで書くのと同じ。
Node.js + Express が、Rails と同じ

JavaScript 第6版、2012、David Flanagan
これは、サイの表紙で有名な、JSのバイブル「サイ本」。
Flanagan は、Rubyの本も出している

プログラミングElixir、2016、Dave Thomas
この人も『プログラミングRuby』という本を書いている

たいてい、有名な言語学者は、Rubyの影響を受けている

Groovy は、Rubyに似てる。
Rubyを静的にすれば、Haxe, Kotlin に似てる
0574デフォルトの名無しさん
垢版 |
2018/08/06(月) 00:35:02.13ID:6IatVkYN
>>571
forEach はだいぶ前からあるし、今は for of もある
ていうかRubyのアドバンテージとしてeachしか思いつかないってそれ他の言語知らないどころかRubyもよく分かってないだろ
あんまりRubyだけに固執しないで他のも触ったほうが結果的にRubyの理解も深まるよ
0575デフォルトの名無しさん
垢版 |
2018/08/06(月) 00:35:08.07ID:ECWvwsc9
>>571
for of がある
ただrubyのeachはすごいと思う
というかブロックがすごい
breakとかnextとか使えるもん
そんなん出来ひんやん普通
0577デフォルトの名無しさん
垢版 |
2018/08/06(月) 00:43:13.56ID:6IatVkYN
クロージャは明らかにJSの方が優れてるでしょ
Rubyは第一級関数ではないという致命的な欠陥がある
0578デフォルトの名無しさん
垢版 |
2018/08/06(月) 00:52:57.65ID:kftvtlvL
まぁいくら優れたところがあっても動的型ってだけで
過去の言語のグループに入れられちゃうんだから笑えるね
0579デフォルトの名無しさん
垢版 |
2018/08/06(月) 01:04:23.62ID:wLyI8nBX
>>572
あん?糖質か?
だからそのExpressが参考にしたのがSinatraだっつってんだが?Railsじゃなくて!
0580デフォルトの名無しさん
垢版 |
2018/08/06(月) 01:41:40.93ID:obJKiCah
Rubyはプロパティとメソッドの区別がないとか。何でも再定義できるとかもアドバンテージじゃね
これはJavaScriptあたりの範疇から外れるけどCライブラリとしゃべるようなケースでこの差は
めっちゃでかいと最近痛感している

>>574
忘れかけていたが・・・改めて調べてみた。for inは罠
0581デフォルトの名無しさん
垢版 |
2018/08/06(月) 11:41:48.43ID:xyu7L6lN
またネガキャンしにきたのか
どんだけ自演がすきなんだ?
0587デフォルトの名無しさん
垢版 |
2018/08/06(月) 17:22:06.71ID:bv191ZQE
設計部にいたとき英語名刺の部署名がDesign Department になってたよ。
Designだけだと設計という意味で取られるのだろう。
日本人が一般に思い描いてる「デザイン」は英語で言うとAesthetic Design だろう。
0591デフォルトの名無しさん
垢版 |
2018/08/08(水) 02:41:46.57ID:TPD1PiP/
まーた嘘ついてるのか
おまえがWindows嫌いなのはわかったってば

自演でWindows嫌い演じても、もう信じる人はおらんよ
0592デフォルトの名無しさん
垢版 |
2018/08/08(水) 03:28:06.97ID:4BWTfzpI
     ミミ ヽヽヽヽリリノノノノ  . .|
    ミ   ,,、,、,、,、,、,、,、、 彡 . ..|
     l  i''"        i彡 . .|  オレの新Java
     | 」  ⌒' '⌒  |..   |
    ,r-/  <・> < ・> |  .  .|     これで儲ける
    l       ノ( 、_, )ヽ |  .
    ー'    ノ、__!!_,.、|  .  |
     ∧     ヽニニソ  l    /
   /\ヽ         /   .. ̄|
 /     ヽ.  `ー--一' ノ/ヽ    ノ7_,,, 、    ______
/   (⌒、"⌒ソ⌒ヽ─ '"   `、  ( ィ⌒ -'"",う/壱 / /万:/|
    ~''(_)(_)(_)(_)ソ       ヽノ   ,イ^_.|≡≡|__|≡≡|彡|_____
    ヽ/`、_, ィ/           ヽ─/ ̄//|≡≡|__|≡≡|/壱//万 :/|
   /     /           ) / ≡|__|≡|≡≡|__|≡≡|≡≡|__|≡≡|彡|
         /   ボラクル    i|≡≡|__|≡|≡≡|__|≡≡|≡≡|__|≡≡|彡|
\      ノ             |≡≡|__|≡|≡≡|__|≡≡|≡≡|__|≡≡|彡|
  \__ /             ノ|≡≡|__|≡|≡≡|__|≡≡|≡≡|__|≡≡|/
0593デフォルトの名無しさん
垢版 |
2018/08/08(水) 04:34:19.88ID:XhOfYtOw
>>590
ほんそれ
意固地
0595デフォルトの名無しさん
垢版 |
2018/08/08(水) 23:57:17.94ID:+Ro3I41Z
久々にRubyに立ち返ろうと思ってたんだけど
やっぱり今もWindowsだと環境構築は面倒っぽいな
楽になるツール作ったら需要ある?
0597デフォルトの名無しさん
垢版 |
2018/08/09(木) 00:13:57.81ID:ro52D2nE
ツールで何を改善する気なんだ?
個人的な不満はWindowsとのインターフェイスに絡むキャラクタコード
以前に作ったツールはUnicode文字を含むコマンドラインオプションを受け取る方法がわからなくて
WIN32OLEを使ってWIM経由でコマンドラインオプションを取得する暴挙に・・・

コンソールのキャラクタコードはCP932だけど引数はUTF-8で外部のコマンドを実行したいときとかも
どうすればいいんだろうな
0599デフォルトの名無しさん
垢版 |
2018/08/09(木) 00:36:42.77ID:fUyWPXJG
今のwindows版は環境ごと入れるので、rubyを使うためにperlやpythonまで入ってくるのが面白い
0600デフォルトの名無しさん
垢版 |
2018/08/09(木) 00:39:25.77ID:riLnUYwW
たしかに文字コード面倒
ファイルやデータも古い年代モノから最近のモノまでいろいろ、コードも混在
rubyも最新版ばかりでない、マシンによってバージョンが違う
0602デフォルトの名無しさん
垢版 |
2018/08/09(木) 00:53:24.63ID:bbq6MBnq
文字コードが面倒って言ってるやつは
CP932(ShiftJIS)を使おうとしてるから

UTF-8対応のエディタ(Windows 10ならメモ帳でいいんやで?)を
使ってソースコードにはUTF-8以外を一切入れない

コマンドプロンプトはchcpでUTF-8に変更するか
画面への入出力時に(Rubyではなく)nkfなどを使って変換すればいい

Rubyスクリプトへデータの入力はファイルから行って
出力もファイルに出力するなら、別にnkfでの変換もいらない
UTF-8対応のテキストエディタで見ればいい

なんで日本専用の文字コードを使おうとしているのかわからない
それだと他の国で使えないではないか。汎用的に作ったほうが
簡単になることって多いよ
0603デフォルトの名無しさん
垢版 |
2018/08/09(木) 01:00:18.00ID:fUyWPXJG
>>602
そういう話じゃないんだなあ
chcpなんて使い物にならないし
rubyの内部の作りの問題なんだよ
nodeやgoやrustはその辺まともに作ってある
0604デフォルトの名無しさん
垢版 |
2018/08/09(木) 01:09:23.83ID:0kLiomIS
そうそう
近代的なプログラミング言語は内部エンコーディングがUnicode固定だから本当にIOのときだけエンコーディングを考慮すればいい
一方Rubyは文字列の内部表現がStringオブジェクトごとのエンコーディングに依存していて、
自分の管理外のコードからStringを受け取る場面では必ずエンコーディングを考慮せねばならない
0605デフォルトの名無しさん
垢版 |
2018/08/09(木) 01:14:23.18ID:bbq6MBnq
>>603
> chcpなんて使い物にならないし

使い物になってるけど?
実際WSLはchcpでUTF-8したのと同等の環境で動いている。

文字化けする?フォントがおかしい?
だからWSLでまともに使えるようにするために
全部修正したんだってばw
0606デフォルトの名無しさん
垢版 |
2018/08/09(木) 01:18:39.80ID:ro52D2nE
>>602
全然判かっていないじゃないか
多くのWindows用アプリケーションはUnicodeもしくはCP932を前提に作られている。たとえコンソールのキャラクタコードを
UTF-8にできてRubyがそれに従ってくれたとしてもほかのアプリケーションとの連携で不具合が発生するのは明らかで
問題は解決しない

それにnkf使えとか1.8時代に逆戻りだろw
0607デフォルトの名無しさん
垢版 |
2018/08/09(木) 01:21:35.03ID:bbq6MBnq
多くのWindows用アプリケーションはUnicodeもしくはCP932を前提に作られている
それをRubの外部でnkfなどを使って変換すればいいだけの話だって言ってる
0609デフォルトの名無しさん
垢版 |
2018/08/09(木) 01:26:42.15ID:fUyWPXJG
問題なのは、外部がユニコードの世界なのに、windows版のrubyは内部的にそうなってない所がまだあるのよ
内部で情報が欠落しちゃってるから、そこを変えないとまともにはならんわけ
windowsでは内部をUTF-8に決めちゃえばいいんだけどねえ
0611610の続き
垢版 |
2018/08/09(木) 01:29:50.60ID:bbq6MBnq
ruby なんたら.rb
0612デフォルトの名無しさん
垢版 |
2018/08/09(木) 01:30:27.46ID:fUyWPXJG
>>610
だから、コンソールへは普通にユニコードを書き出せてるからそこに問題があるわけじゃないんだよ
0614デフォルトの名無しさん
垢版 |
2018/08/09(木) 01:31:25.52ID:bbq6MBnq
nkf CP932に変換するオプション

ってやれば、APIでコソンールに出力した結果が
UTF-8からCP932に変わるぞ。
0615クソ5chのせいで書き込みテストしてた
垢版 |
2018/08/09(木) 01:32:23.81ID:bbq6MBnq
>>608
APIでコンソールに出力してるから
なにがどうなの?

ruby なんたら.rb | nkf CP932に変換するオプション

ってやれば、APIでコソンールに出力した結果が
UTF-8からCP932に変わるぞ。
0616デフォルトの名無しさん
垢版 |
2018/08/09(木) 01:35:28.21ID:bbq6MBnq
>>612
だから、RubyがAPIでコンソールに出力しようとしたものを
パイプで標準出力に変更して、nkfで標準入力からAPIで読み取って
nkfでSJISに変換してからAPIでコンソールに出力すればいいだけでしょ?
0617デフォルトの名無しさん
垢版 |
2018/08/09(木) 01:36:28.36ID:bbq6MBnq
「windowsはAPIでコンソールに出力してるから」が
意味不明なんで意地悪してみたw
0618デフォルトの名無しさん
垢版 |
2018/08/09(木) 01:38:12.71ID:bbq6MBnq
ruby なんたら.rb | [nkf CP932に変換するオプション]

って書くと書き込みできないんだなー
ってあれ?できた?おかしいなw
0619デフォルトの名無しさん
垢版 |
2018/08/09(木) 01:39:04.01ID:fUyWPXJG
めんどくせえなあ。SJISに変換とかアホみたいなことしなくても、WriteConsoleWってAPI使ってユニコードで書き出すようになってるんだよ
0620デフォルトの名無しさん
垢版 |
2018/08/09(木) 01:39:15.49ID:bbq6MBnq
クソ5chの意味不明な制限で書き込めないときは
わざと5chに負荷をかけて細かく分けて書き込むことにしてる
すべては5chが悪い

>>608
APIでコンソールに出力してるから
なにがどうなの?

ruby なんたら.rb | [nkf CP932に変換するオプション]

ってやれば、APIでコソンールに出力した結果が
UTF-8からCP932に変わるぞ。
0621デフォルトの名無しさん
垢版 |
2018/08/09(木) 01:41:07.24ID:bbq6MBnq
>>619
だからchcp 65001してれば、
WriteConsoleWってAPI使ってユニコードで書き出したものを
ちゃんと表示できるし、

chch 65001しなくても
WriteConsoleWってAPI使ってユニコードで書き出したものを
ruby なんたら.rb | nkf [CP932に変換するオプション]ってやれば
ちゃんと表示できるっていってるだろ

WriteConsoleWってAPI使ってユニコードで書き出した
からなんだって言うんだ?
0623デフォルトの名無しさん
垢版 |
2018/08/09(木) 01:42:47.80ID:bbq6MBnq
rubyの中でCP932のデータを扱おうとするから
バカを見るんやで? rubyの外側で変換すればいい
文字コードの問題なんてなんもありゃせん
0624デフォルトの名無しさん
垢版 |
2018/08/09(木) 01:44:29.76ID:bbq6MBnq
>>622
あのな、

chcp 65001しないと、
日本語のWindowsではコマンドプロンプトが
互換性のためにCP932モードになってるから

WriteConsoleWってAPI使ってユニコードで書き出したものを
そのまま表示すると、UTF-8をCP932だと解釈して文字化けするんやで?

だからchcp65001しろって言ってるんだが
0626デフォルトの名無しさん
垢版 |
2018/08/09(木) 01:47:15.18ID:fUyWPXJG
表示できてて、そこは問題じゃないって言ってるのに、そんなに問題があることにしたいのか
0627デフォルトの名無しさん
垢版 |
2018/08/09(木) 01:49:18.61ID:bbq6MBnq
>>626
それはRubyのソースコードがCP932になってるから、
俺は最初からRubyをUTF-8で書けと言ってる。

いい加減CP932から離れろよ。
そんなもんRubyの外部で変換すりゃいいだけの話なんだよ

https://www.rubylife.jp/ini/japan/index5.html
> そしてプログラムを保存する時は文字コードをUTF-8に指定して保存します。
>
> 通常はこれでいいのですが、Windowsで標準出力としてコマンドプロンプトを
> 使用している場合、コマンドプロンプトの文字コードがShift_JISのため
> そのまま「print」メソッドなどで出力すると文字化けします。
0628デフォルトの名無しさん
垢版 |
2018/08/09(木) 01:50:52.45ID:bbq6MBnq
RubyのせいにしたいのかWindowsのせいにしたいのか知らんが
結局文字コードについてちゃんと理解してないだけじゃねーかw
0629デフォルトの名無しさん
垢版 |
2018/08/09(木) 01:56:15.25ID:p715oxsr
これも全部文字コードが乱発されてるのが悪い
なんでこんなに増えちゃったん?
0630デフォルトの名無しさん
垢版 |
2018/08/09(木) 01:59:58.57ID:bbq6MBnq
アホメリケンが1ビットも惜しいとか抜かして
1文字で7ビットのASCIIコードを作ったのがそもそもの問題

最初から全世界の文字が入り切る24bitぐらいに
していればこんな問題は起きなかった
0631デフォルトの名無しさん
垢版 |
2018/08/09(木) 02:03:35.96ID:bbq6MBnq
今のUnicodeの全文字数を表すには、17ビットじゃたりないんだな
18ビットあればしばらくは対応できるだろうが十分かと言われると心もとないな
最低でも20ビットぐらいほしいかな
0632デフォルトの名無しさん
垢版 |
2018/08/09(木) 02:38:39.80ID:ro52D2nE
>>607
外部ツールを使うこと前提は普通対応しているとか使えるとはいわなくね?
WINEを使えばLinuxでも動くからLinux対応などとうたうWindowsアプリケーションはほとんどないし逆も同様
コードページをUTF-8にしろだのnkfをつかえだのナンセンスすぎる
Windows標準のキャラクタコードはUnicodeか日本ならCP932だし、変換もRubyで完結できるべきだ
0633デフォルトの名無しさん
垢版 |
2018/08/09(木) 04:43:02.02ID:V297VUOg
なんや?
アンチはRubyの文字環境の設定もしらんのか?

しったかばっかりしとるツケやな
0634デフォルトの名無しさん
垢版 |
2018/08/09(木) 06:35:40.44ID:DDec2yNS
WindowsでRails開発してるけどcloud9使ってるからWindows環境に依存しない
そもそも環境構築すらいらん
クッソ楽だよ
0635デフォルトの名無しさん
垢版 |
2018/08/09(木) 07:06:07.44ID:xHgFHFx+
VSCode から、PowerShell を使えば、UTF-8 だから問題ない

ただし、Windows で、irb は日本語でバグるから使えない。
irb を使う時は、WSL から使う
0636デフォルトの名無しさん
垢版 |
2018/08/09(木) 07:30:43.69ID:0kLiomIS
おいおいRubyistはVSCode使っちゃダメだぞ
VSCodeはJSをわざわざ静的型言語に魔改造したTypeScriptによって作られている
そんなものをRubyistが使うということは、静的型の勝利を認めるようなものだ
0638デフォルトの名無しさん
垢版 |
2018/08/09(木) 10:40:37.59ID:9RYWVA0H
そんなこと言ったらそもそもさんざんバカにしてきたjavascriptで動いてるVSCodeなんて恥ずかしくて使えないだろw
0639デフォルトの名無しさん
垢版 |
2018/08/09(木) 11:09:39.07ID:NXkdt6vr
>>603
chcp 65001 は糞だな
git for windows の bash 使うと utf-8 で統一出来る
0640デフォルトの名無しさん
垢版 |
2018/08/09(木) 11:25:09.25ID:hJgBQsKI
故Coffeeが押されてた頃以来しばらくRails触ってないから最新の事情に疎いんだけど、今のRailsでは生JSかbabelが普通?
さすがにまさかTypeScriptは意味不明なダブスタ状態になるからありえないとは思うけど
0643デフォルトの名無しさん
垢版 |
2018/08/09(木) 14:22:48.49ID:ohdBTUS2
そもそもWindowsで開発ってエンジニアとして恥ずかしいからやめな
ド素人専用OSだから
0645デフォルトの名無しさん
垢版 |
2018/08/09(木) 15:54:50.43ID:cj+buD3F
>>632
> 外部ツールを使うこと前提は普通対応しているとか使えるとはいわなくね?

対応して無くていいよ。Unicode(UTF-8)だけに対応していれば十分
0649デフォルトの名無しさん
垢版 |
2018/08/10(金) 00:57:10.05ID:brZGYtP0
RubyInstallersのRuby + Devkit 2.5.1-2(x64) でインストールしたら
トロイの木馬検知したんだけど、これ大丈夫なんか……
0650デフォルトの名無しさん
垢版 |
2018/08/10(金) 09:30:05.88ID:YB7aDEkK
基本、主流のレンタルサーバではどこもRuby標準装備だろ
個人でやるならRubyしか手は無いぞ?
■ このスレッドは過去ログ倉庫に格納されています

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