Ruby 初心者スレッド Part 63
■ このスレッドは過去ログ倉庫に格納されています
プログラミング言語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/ >>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 に似てる >>571
forEach はだいぶ前からあるし、今は for of もある
ていうかRubyのアドバンテージとしてeachしか思いつかないってそれ他の言語知らないどころかRubyもよく分かってないだろ
あんまりRubyだけに固執しないで他のも触ったほうが結果的にRubyの理解も深まるよ >>571
for of がある
ただrubyのeachはすごいと思う
というかブロックがすごい
breakとかnextとか使えるもん
そんなん出来ひんやん普通 RubyよりJavaScriptがすごいのは
クロージャーだな。 クロージャは明らかにJSの方が優れてるでしょ
Rubyは第一級関数ではないという致命的な欠陥がある まぁいくら優れたところがあっても動的型ってだけで
過去の言語のグループに入れられちゃうんだから笑えるね >>572
あん?糖質か?
だからそのExpressが参考にしたのがSinatraだっつってんだが?Railsじゃなくて! Rubyはプロパティとメソッドの区別がないとか。何でも再定義できるとかもアドバンテージじゃね
これはJavaScriptあたりの範疇から外れるけどCライブラリとしゃべるようなケースでこの差は
めっちゃでかいと最近痛感している
>>574
忘れかけていたが・・・改めて調べてみた。for inは罠 またネガキャンしにきたのか
どんだけ自演がすきなんだ? お前らデザイン含めてフルスクラッチでアプリ作れる能力あるの? エンジニアごときがデザインできるって笑えるレベルだと思うけど 設計部にいたとき英語名刺の部署名がDesign Department になってたよ。
Designだけだと設計という意味で取られるのだろう。
日本人が一般に思い描いてる「デザイン」は英語で言うとAesthetic Design だろう。 System Designというのもあるな。日本人には意味も必要性も理解されないが Ruby界隈はWindows嫌いが多いよな。CrystalもWindows版がないしw まーた嘘ついてるのか
おまえがWindows嫌いなのはわかったってば
自演でWindows嫌い演じても、もう信じる人はおらんよ ミミ ヽヽヽヽリリノノノノ . .|
ミ ,,、,、,、,、,、,、,、、 彡 . ..|
l i''" i彡 . .| オレの新Java
| 」 ⌒' '⌒ |.. |
,r-/ <・> < ・> | . .| これで儲ける
l ノ( 、_, )ヽ | .
ー' ノ、__!!_,.、| . |
∧ ヽニニソ l /
/\ヽ / .. ̄|
/ ヽ. `ー--一' ノ/ヽ ノ7_,,, 、 ______
/ (⌒、"⌒ソ⌒ヽ─ '" `、 ( ィ⌒ -'"",う/壱 / /万:/|
~''(_)(_)(_)(_)ソ ヽノ ,イ^_.|≡≡|__|≡≡|彡|_____
ヽ/`、_, ィ/ ヽ─/ ̄//|≡≡|__|≡≡|/壱//万 :/|
/ / ) / ≡|__|≡|≡≡|__|≡≡|≡≡|__|≡≡|彡|
/ ボラクル i|≡≡|__|≡|≡≡|__|≡≡|≡≡|__|≡≡|彡|
\ ノ |≡≡|__|≡|≡≡|__|≡≡|≡≡|__|≡≡|彡|
\__ / ノ|≡≡|__|≡|≡≡|__|≡≡|≡≡|__|≡≡|/ 久々にRubyに立ち返ろうと思ってたんだけど
やっぱり今もWindowsだと環境構築は面倒っぽいな
楽になるツール作ったら需要ある? ツールで何を改善する気なんだ?
個人的な不満はWindowsとのインターフェイスに絡むキャラクタコード
以前に作ったツールはUnicode文字を含むコマンドラインオプションを受け取る方法がわからなくて
WIN32OLEを使ってWIM経由でコマンドラインオプションを取得する暴挙に・・・
コンソールのキャラクタコードはCP932だけど引数はUTF-8で外部のコマンドを実行したいときとかも
どうすればいいんだろうな 今のwindows版は環境ごと入れるので、rubyを使うためにperlやpythonまで入ってくるのが面白い たしかに文字コード面倒
ファイルやデータも古い年代モノから最近のモノまでいろいろ、コードも混在
rubyも最新版ばかりでない、マシンによってバージョンが違う 文字コードが面倒って言ってるやつは
CP932(ShiftJIS)を使おうとしてるから
UTF-8対応のエディタ(Windows 10ならメモ帳でいいんやで?)を
使ってソースコードにはUTF-8以外を一切入れない
コマンドプロンプトはchcpでUTF-8に変更するか
画面への入出力時に(Rubyではなく)nkfなどを使って変換すればいい
Rubyスクリプトへデータの入力はファイルから行って
出力もファイルに出力するなら、別にnkfでの変換もいらない
UTF-8対応のテキストエディタで見ればいい
なんで日本専用の文字コードを使おうとしているのかわからない
それだと他の国で使えないではないか。汎用的に作ったほうが
簡単になることって多いよ >>602
そういう話じゃないんだなあ
chcpなんて使い物にならないし
rubyの内部の作りの問題なんだよ
nodeやgoやrustはその辺まともに作ってある そうそう
近代的なプログラミング言語は内部エンコーディングがUnicode固定だから本当にIOのときだけエンコーディングを考慮すればいい
一方Rubyは文字列の内部表現がStringオブジェクトごとのエンコーディングに依存していて、
自分の管理外のコードからStringを受け取る場面では必ずエンコーディングを考慮せねばならない >>603
> chcpなんて使い物にならないし
使い物になってるけど?
実際WSLはchcpでUTF-8したのと同等の環境で動いている。
文字化けする?フォントがおかしい?
だからWSLでまともに使えるようにするために
全部修正したんだってばw >>602
全然判かっていないじゃないか
多くのWindows用アプリケーションはUnicodeもしくはCP932を前提に作られている。たとえコンソールのキャラクタコードを
UTF-8にできてRubyがそれに従ってくれたとしてもほかのアプリケーションとの連携で不具合が発生するのは明らかで
問題は解決しない
それにnkf使えとか1.8時代に逆戻りだろw 多くのWindows用アプリケーションはUnicodeもしくはCP932を前提に作られている
それをRubの外部でnkfなどを使って変換すればいいだけの話だって言ってる >>605
いやだから、windowsはAPIでコンソールに出力してるから、そういう話じゃないんだって 問題なのは、外部がユニコードの世界なのに、windows版のrubyは内部的にそうなってない所がまだあるのよ
内部で情報が欠落しちゃってるから、そこを変えないとまともにはならんわけ
windowsでは内部をUTF-8に決めちゃえばいいんだけどねえ >>608
APIでコンソールに出力してるから
なにがどうなの? >>610
だから、コンソールへは普通にユニコードを書き出せてるからそこに問題があるわけじゃないんだよ nkf CP932に変換するオプション
ってやれば、APIでコソンールに出力した結果が
UTF-8からCP932に変わるぞ。 >>608
APIでコンソールに出力してるから
なにがどうなの?
ruby なんたら.rb | nkf CP932に変換するオプション
ってやれば、APIでコソンールに出力した結果が
UTF-8からCP932に変わるぞ。 >>612
だから、RubyがAPIでコンソールに出力しようとしたものを
パイプで標準出力に変更して、nkfで標準入力からAPIで読み取って
nkfでSJISに変換してからAPIでコンソールに出力すればいいだけでしょ? 「windowsはAPIでコンソールに出力してるから」が
意味不明なんで意地悪してみたw ruby なんたら.rb | [nkf CP932に変換するオプション]
って書くと書き込みできないんだなー
ってあれ?できた?おかしいなw めんどくせえなあ。SJISに変換とかアホみたいなことしなくても、WriteConsoleWってAPI使ってユニコードで書き出すようになってるんだよ クソ5chの意味不明な制限で書き込めないときは
わざと5chに負荷をかけて細かく分けて書き込むことにしてる
すべては5chが悪い
>>608
APIでコンソールに出力してるから
なにがどうなの?
ruby なんたら.rb | [nkf CP932に変換するオプション]
ってやれば、APIでコソンールに出力した結果が
UTF-8からCP932に変わるぞ。 >>619
だからchcp 65001してれば、
WriteConsoleWってAPI使ってユニコードで書き出したものを
ちゃんと表示できるし、
chch 65001しなくても
WriteConsoleWってAPI使ってユニコードで書き出したものを
ruby なんたら.rb | nkf [CP932に変換するオプション]ってやれば
ちゃんと表示できるっていってるだろ
WriteConsoleWってAPI使ってユニコードで書き出した
からなんだって言うんだ? chcpする必要なんてないってことだよ
もういいかげんわかって rubyの中でCP932のデータを扱おうとするから
バカを見るんやで? rubyの外側で変換すればいい
文字コードの問題なんてなんもありゃせん >>622
あのな、
chcp 65001しないと、
日本語のWindowsではコマンドプロンプトが
互換性のためにCP932モードになってるから
WriteConsoleWってAPI使ってユニコードで書き出したものを
そのまま表示すると、UTF-8をCP932だと解釈して文字化けするんやで?
だからchcp65001しろって言ってるんだが ちなみにWindowsは内部はUnicode(UTF-16)で扱われている
これはずっと前からだ 表示できてて、そこは問題じゃないって言ってるのに、そんなに問題があることにしたいのか >>626
それはRubyのソースコードがCP932になってるから、
俺は最初からRubyをUTF-8で書けと言ってる。
いい加減CP932から離れろよ。
そんなもんRubyの外部で変換すりゃいいだけの話なんだよ
https://www.rubylife.jp/ini/japan/index5.html
> そしてプログラムを保存する時は文字コードをUTF-8に指定して保存します。
>
> 通常はこれでいいのですが、Windowsで標準出力としてコマンドプロンプトを
> 使用している場合、コマンドプロンプトの文字コードがShift_JISのため
> そのまま「print」メソッドなどで出力すると文字化けします。 RubyのせいにしたいのかWindowsのせいにしたいのか知らんが
結局文字コードについてちゃんと理解してないだけじゃねーかw これも全部文字コードが乱発されてるのが悪い
なんでこんなに増えちゃったん? アホメリケンが1ビットも惜しいとか抜かして
1文字で7ビットのASCIIコードを作ったのがそもそもの問題
最初から全世界の文字が入り切る24bitぐらいに
していればこんな問題は起きなかった 今のUnicodeの全文字数を表すには、17ビットじゃたりないんだな
18ビットあればしばらくは対応できるだろうが十分かと言われると心もとないな
最低でも20ビットぐらいほしいかな >>607
外部ツールを使うこと前提は普通対応しているとか使えるとはいわなくね?
WINEを使えばLinuxでも動くからLinux対応などとうたうWindowsアプリケーションはほとんどないし逆も同様
コードページをUTF-8にしろだのnkfをつかえだのナンセンスすぎる
Windows標準のキャラクタコードはUnicodeか日本ならCP932だし、変換もRubyで完結できるべきだ なんや?
アンチはRubyの文字環境の設定もしらんのか?
しったかばっかりしとるツケやな WindowsでRails開発してるけどcloud9使ってるからWindows環境に依存しない
そもそも環境構築すらいらん
クッソ楽だよ VSCode から、PowerShell を使えば、UTF-8 だから問題ない
ただし、Windows で、irb は日本語でバグるから使えない。
irb を使う時は、WSL から使う おいおいRubyistはVSCode使っちゃダメだぞ
VSCodeはJSをわざわざ静的型言語に魔改造したTypeScriptによって作られている
そんなものをRubyistが使うということは、静的型の勝利を認めるようなものだ そんなこと言ったらそもそもさんざんバカにしてきたjavascriptで動いてるVSCodeなんて恥ずかしくて使えないだろw >>603
chcp 65001 は糞だな
git for windows の bash 使うと utf-8 で統一出来る 故Coffeeが押されてた頃以来しばらくRails触ってないから最新の事情に疎いんだけど、今のRailsでは生JSかbabelが普通?
さすがにまさかTypeScriptは意味不明なダブスタ状態になるからありえないとは思うけど そうなんです
物凄いコンプレックスがあるんです
夜も眠れません そもそもWindowsで開発ってエンジニアとして恥ずかしいからやめな
ド素人専用OSだから そんなこと言ったら、rubyで開発とか恥ずかしいよ >>632
> 外部ツールを使うこと前提は普通対応しているとか使えるとはいわなくね?
対応して無くていいよ。Unicode(UTF-8)だけに対応していれば十分 >>640
Webpackerが基本だから好きなの使えばよろし Pythonが2018年も人気ナンバーワン言語に - Rubyは13位へ
https://www.softantenna.com/wp/software/ieee-spectrum-top-programming-languages-2018/
>日本生まれのプログラミング言語Rubyの順位は昨年の12位から13位へと一つ順位を落としています。 RubyInstallersのRuby + Devkit 2.5.1-2(x64) でインストールしたら
トロイの木馬検知したんだけど、これ大丈夫なんか…… 基本、主流のレンタルサーバではどこもRuby標準装備だろ
個人でやるならRubyしか手は無いぞ? pythonも標準装備です。
ただしどちらもかなり古いのしか入っていないです。
https://help.sakura.ad.jp/hc/ja/articles/206053142--さくらのレンタルサーバ-基本仕様
今だに1.8.7って・・・ >>650
管理者権限のないレンサバでやるとか拷問好きの変態だけだろ xxenvが使えりゃ取り敢えずなんとかなるけどな。
pathに嵌ったりするけど。 今はVPSとかHerokuとかそういうの使う方が主流だよね >>651
教祖がWindowsアンチだから仕方ない
残念だがRuby界においてWindows使いに人権はない 宗教以外で今時Herokuを選ぶ理由はないでしょ
PaaSならGCPとかAWS Lightsailとかにしとけ
HerokuとAWS/GCPじゃスキルとしての価値にも差がありすぎる いやしかし機械学習という神風でPythonがRubyを吹き飛ばしたよね
特にこれから始めようとする人で、Ruby選ぶ人って激減なんじゃないかと >>661
このお盆休みに Rails をやっているのだけれども… >>661
機械学習とWeb系は別物だからね
適材適所ということだね Rails使う奴らが他言語使いを見下しているから嫌われるんだよ 今更Railsはなあ
第2のPHPとして当分は健在だろうけど、もう美味しい時期をとっくに過ぎてRails専のエンジニアは買い叩かれてるのが現状 python用のwebフレームワークもいくつかあるけど、railsの出来には全然かなわんの?
rubyもnumpyとかあればなあ >>666
Rubyの言語仕様はイカれてるからな。
よくもわるくも。 >>666
Django が一番有名なんだろうけど、開発スピードは Rails の足元にも及ばないね >>576,577
関数型プログラミングという視点であれば、JS は良い言語だね
どちらも出発点として関数型言語をベースに設計された言語だから、当然の帰結と言える:
http://peace.5ch.net/test/read.cgi/tech/1409526637/857/
ただし、あえて「Rubyによる関数型プログラミング」に慣れると
JS にイラッと感じる(=楽しくない)のは:
・条件分岐の if/switch が(式ではなく)文であること
Ruby であれば if/switch (を含めて「あらゆるすべて」)は式だから、ML や Haskell と同様、
いちいち一時変数を持ち出さずに書ける
・匿名関数の function() は煩わしい
匿名関数が多用されるのは map/filter といった関数を引数渡しするケースだけど、
Ruby であればブロック引数という独特な構文があるから簡潔に書ける
ってことかな(あくまで個人の感想ですが)
ちなみに、これらの感想は以下の文書からの受け売りだったりします:
・Rubyによる関数型プログラミング
(*1) URL はNGワード規制によってカキコできないので、
もしも興味のある人は「Rubyによる関数型プログラミング Arnau Sanchez」でググッてください
なお、この文書で筆者は:
Rubyは基本的には命令型言語であるけれど、 関数型プログラミングへの際立った潜在能力がある
と断じています
(*1):規制されるほど、この文書はム板管理者にとってヤバイ内容が含まれているんですかねぇ?
2012年と5年も昔に公開された、今のRuby使いにとっては常識的な中身だと思うんですけど def式じゃないじゃんjsのfunctionは式だぞ ■ このスレッドは過去ログ倉庫に格納されています