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/ Rubyの次のverはどうなるかな
parse.yを書いてる環境も公開してくれたら良いな Rubyのyaccソースを書いてるツールとか言語開発している環境とかの本出して欲しいな Matzは普通にEmacsオンリーだぞ
20年前から何一つ変わってない それ、エディター話だろ
たしかyaccソースは複雑になりすぎて内製のツールつかってるんじゃなかったか?
どこかにそういう記事あったよな確か >>541
gitのコミットログ見たらすぐわかるけど、普通に手で編集してるよ ヒエ……あれ直に書いてるのか
まあそこがrubyの肝でもあるが いやいや、気になるならgithubにコミットログくらい見に行くだろう普通に考えて
そんなだからruby使いがいつまでも馬鹿にされるんだぞ だから自分で確かめろよw
仮に変なツール使ってたとしても、手でやっても全くの手間変わらないような修正が並んでるよ 普段から型すら書きたくないって言ってるのに
コミットログなんか見るわけないじゃん
それが必要なことであってもだ QZaw55cn4cがまたあばれてんのか
ほんと懲りないな スタンドアロンで使えるActiveScriptRubyみたいなのが欲しいな
今風に言えばRubyをくっつけたElectronみたいな奴 rubyはプログラミング集中に邪魔な面倒な約束事を書くのを端折りたい人が使うもんじゃないの? >>551
Ruby版Electronは欲しいな
Rubyと言えばRails一本槍で
WindowsとGUI軽視が
Rubyの普及を妨げたと思う RubyをGPL感染なしで使うのは難しいから、Rubyをアプリに組み込むような配布形態が流行ることはないよ たしかにGPL汚染でプロプライエタリで使うのは難しくて
Linuxみたいなフリーウェア的思想の方へ
流れていったから現在があるんだろうね
Androidのネイティブアプリも軽視されてると思う
まあこれもできなくはないけど普及してはない PCやAndroidのアプリにバンドルするならmrubyだろうけど、
さすがにmruby使うのはだいぶ本末転倒だからなあ
そこまでするくらいなら普通にElentronのNode使ったほうがよっぽど生産性高い ちょっと前にmrubyを使ってみた事があるけどBignumが標準でないためFixnumとシームレスに変換されなかったりして使いにくい
速度もCRubyに劣るしPC用アプリケーションの処理系としてはあまり向いていないと思う >>535
Expressが影響を受けたのはrailsではなくsinatra。
railsしか使ったことないのバレバレだな。
rubyとjsは全然似てない。jsの関数の万能さ、簡潔さをどうこねくりまわしてもrubyのblock proc lambdaみたいな面白仕様にはならない。
別にjsがすべてに優れてるわけでは全然無いが第一級関数の扱いについてだけは太刀打ちできないだろ。 >>560
JSよりRubyの方が書きやすいんだが OOPするならクラス定数すら定義できないJSは問題外やわ みんなtypescriptで書いてるから気にしてない >>561>>562
ようするに全然似てないだろ?
似てるって言ってる>>535に対する反論なのだが。
勝手にjsからの回し者認定して攻撃してこないでよね。
わざわざ優れてるわけでは全然無いとまで書いたのに。 > Rubyを学ぶと、数言語できるようになる
こればっかりは全く同意できないな
Ruby使いはRubyに固執して他の言語に手を出そうとしない傾向が他の言語使ってる人に比べて強い
性質的にはVBerに近い JS書きやす〜〜いwwwって人もいるんだな。
オジサン驚いたわ。 rubyは手に馴染むけど、いろいろなライブラリを使う状況になると、
入力補完が優れた他の言語の方が効率的になっちゃうんだよなあ JSが書きやすかったら
AltJS言語があんなに出ないはず ところが今はVSCodeがあるからJSクソ書きやすいんだよなあ
更に高い生産性や厳密なチェックを求めるならTypeScriptもある
VSCodeもTSも宗教的にRubyと相性最低最悪なのが悲しいところだが >>568
昔のJSは書きにくかったんだよ。
でも今はJSが書きやすくなったから、
生き残ってるAltJSはTypeScriptだけになったよ eachによるカウンタいらずのループとかRubyの大きなアドバンテージじゃね
最近のJavaScriptはカウンタを回さなくてもすむようになったんだっけ? >>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 から使う ■ このスレッドは過去ログ倉庫に格納されています