Ruby 初心者スレッド Part 61 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/08/25(金) 15:59:11.22ID:HsL9LVKJ
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で

前スレ
Ruby 初心者スレッド Part 60
https://mevius.2ch.net/test/read.cgi/tech/1493398918/

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

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

逆引きRuby
http://www.namaraii.com/rubytips/
2017/10/31(火) 11:41:18.35ID:f3HKFkZK
Rubyはクラス定義自体が動的で、それを悪用したメタプログラミング(笑)とかいうハックが横行しているから静的解析でなんとかするのは無理がある
Rails界隈も含めて現実的にまともに役立つものにするにはTypeScriptみたいな後付け方式しかないだろうけど、
「型書きたくないでござる」(笑)に真っ向から反するのであり得ないだろうね
2017/10/31(火) 11:46:12.10ID:23Zr0FFS
>>580
俺が言ってるわけじゃなくて、Ruby界隈の人が言ってるんだよ
君の文章も借りて平たく言うと
Rubyは実行速度が遅くて、静的型が無くて、並列実行が無くて
(何十年かは知らないが) 遅れてるから
Ruby3.0で上記3つをなんとかしたい
って事でしょ
いや実際問題ないんだったら、Ruby3.0の目玉になんかするかね
2017/10/31(火) 12:02:14.47ID:qfHwvl41
Javascriptみたいに
strictって文頭につければ厳しくチェックできるように
typeって文頭につければ型をつけれるようにとか出来ればいいな
2017/10/31(火) 12:37:58.97ID:f3HKFkZK
>>584
付けるならソースファイルじゃなくてクラスに対してだと思う
Rubyの場合、型付けをどうするかよりも、そもそも型というものをどう定義するかが問題
Rubyのクラス定義ってクラスの静的な構造を表してるんじゃなくて、メモリ上にクラスを定義する手続きなんだよ
実行してみないとどんなクラスになるかが分かんないの
2017/10/31(火) 15:23:54.17ID:CDGz4c1c
ここは初心者スレなので初心者に役立つ会話をしようね
リアルで話し相手がいないレス乞食が常駐してるとうざいよ
2017/10/31(火) 18:39:39.63ID:HaPb6HyZ
Rubyのバージョンを上げるんじゃなくて、別の言語をまた作るべきだな

何か言語を使っていると、こうだったらもっと楽なのにというネタがいろいろ溜まってきて、
それを解決した言語が現れる
それを使っているとまたネタが溜まってくる、というサイクルで進化していくもので、
それはバージョンアップで対応できるような内容ではないのが普通
2017/10/31(火) 21:16:56.30ID:23Zr0FFS
まぁはっきり言ってそれは無理だね
言語のシェアみりゃ分かるが、昔からある言語が未だに強い
その言語を使うしかない(他にない)、ってぐらい追い込まないと
新規の言語が広まるのは無理(Swiftとか)

特にRubyの場合は今の一般的な常識でまともな言語に作り直したら
C#やJavaとそう変わりない物が出来上がるだけで、だったらC#やJava使えば?ってなる
これはちょうど、新たに希望の党を作って民進党のリベラルを排除して
自民党と何が違うのかよくわからなくなって、だったら実績のある自民党で良いじゃん、な
希望の党みたいなもの

逆に今のRubyをどんどん改良していけばよいかと言われると、これも民進党と同じでジリ貧
C#みたいに互換性を維持しつつ新しい機能を取り入れまくって進化している言語もあるが
Rubyがそうなれなかったのは、最初の一歩が既におかしかったから
今頃、静的型がどうのこうの言ってるのは最初に犯した過ちを今まで引きづってて
2020年のオリンピックまでにはRuby3.0で云々言ってるわけだが
逆に間違えたからこそ、一部の狂信者に支持されてここまで来たわけで
マトモにしたらJava、C#、C++などのメジャー言語とガチンコになるし、狂信者も付かない
押すも引くも、結局どうにもならんということ
2017/10/31(火) 21:36:49.59ID:7Ixc7xPG
もちろん新規言語がそう簡単に広まるわけないが
Rubyが登場したときにも昔の言語はあったわけで

自由に選択できても広まったし
今でも囲い込みされてるSwiftより
言語ランキングで上位だったりする

政治の比喩を持ち出して印象操作してるけど
ScalaとかGoとか新言語どんどん出てきて
JavaやC#ほどじゃないけどそれなりに使われてるから
むしろ昔より新言語が使われてる位だと思う
2017/10/31(火) 21:41:41.86ID:kBfCDZdZ
LLスレから追い出された連中が相手してもらえると思って来てるからな
彼らは別にRubyを使えるわけじゃないから厄介だ
2017/10/31(火) 21:49:47.48ID:23Zr0FFS
>自由に選択できても広まったし
>今でも囲い込みされてるSwiftより
>言語ランキングで上位だったりする

どうでもよいことだが、それは昔からある言語の方が
新規の言語より強いという裏付けにしかなってないのでは?
新たに言語を作れば今のRubyのポジションは捨てて0からなわけで
今の時代に何の後ろ盾もない状態で新たに言語作ったって
2017/10/31(火) 22:02:16.15ID:HaPb6HyZ
どんな時代なんだ?
2017/10/31(火) 22:04:27.90ID:7Ixc7xPG
>>591
>昔からある言語の方が
>新規の言語より強いという
>裏付けにしかなってないのでは?

「昔からある言語」も昔は
「新規の言語」だったんだよ

もし常に昔の言語の方が強かったら
永久に世代交代しないで
FortranとかLispがずっと主流になってるはずだろ?
2017/10/31(火) 22:23:05.12ID:23Zr0FFS
時代背景を全く考慮しなければそうなるね
2017/10/31(火) 22:39:42.30ID:HaPb6HyZ
だから、かつては受け入れられた新しい言語が今は受け入れられない時代背景を説明しろ
2017/10/31(火) 22:55:05.06ID:kGPpeMmk
>>594
時代背景を考えると、今の言語なんて
まだまだ未発達なので、今の言語は新しい言語に
追い抜かれる運命だよ

そりゃそうだね。建築なんて何千年前からあるんだって話だから
597デフォルトの名無しさん
垢版 |
2017/11/01(水) 01:37:44.29ID:nt6bNFBd
やっほー
discordrbについて聞きたいんだけどこのスレでいいんかな
2017/11/01(水) 02:02:23.05ID:kQ1wt9JW
>>597
>>1を見てみ?
質問・要望・雑談・頃しの以来までなんでもゑるかむだよ
俺はもう練るけど那!
2017/11/01(水) 02:19:40.62ID:Z130aY0S
>>596
それは今の主流言語がさらに進化するだけ
いくつが理由がありそうだけど、みんなそんなに言語に飢えてないし
(おおむね満足している、というか供給過多)
光るアイデアを持った新たな言語が生まれても
メジャー言語がパクれば終わりだし、皆がそれを望んでる
何か光るものを見出しても
それだけでその言語を使おうということにはならない

仮に新しい言語を作るにも、今時は求められるものが高すぎるので
個人では手に負えないし、そもそも個人で作った言語など
昔から存在していて実績があるとかでもない限り、誰も使わん

他、既存の言語の資産が、C言語が登場した当時と比べて
というか比べられないほど凄いことになってる
世界中のプログラマがひたすら書きまくったから

一例としてLinuxのカーネルのソースコードの行数の推移

1991年 0.01 約 10,000 ユーザー数1人(開発者)
1992年 0.96 約 40,000
1994年3月14日 1.0.0 176,250
1995年3月 1.2.0 310,950
1996年6月9日 2.0.0 N/A
1997年 2.1.0 約 800,000
1999年1月25日 2.2.0 1,800,847
2001年1月4日 2.4.0 3,377,902
2003年12月17日 2.6.0 5,929,913
2008年 2.6.x 約 10,000,000
2011年7月21日 3.0 14,646,952
2012年1月 3.x 約 15,000,000
2015年8月 4.2 約 20,000,000
2017/11/01(水) 02:42:46.97ID:Z130aY0S
建築がどうのこうの言ったって建築に互換性は関係ないしな
セキスイだろうがダイワだろうが、基本的にどうでもよい
車もそうだし、というか、ほとんどの物は自由競争の名のもとに
メーカー間の互換性を気にしなくてもよいようになってるんだが
(ハードウェア業界はわりと規格をきっちりやる)
ソフトウェアだけは互換性の壁が異常
この辺、なにか
フォトショップのデータを山のように持ってればフォトショップを使い続けるしかないし
MSOfficeのデータを山のように持ってればMSOfficeを使い続けるしかない
値段は大手企業の良心にかかってるというか、不当に値段を吊り上げられても、割と買うしかない
パチもんもあるけど、互換性が完璧ではないしな
まさかRubyでPythonのコードが走るわけないし
2017/11/01(水) 07:50:12.58ID:uQFQAfJE
説得力が全くない
602デフォルトの名無しさん
垢版 |
2017/11/01(水) 17:44:59.02ID:gYykKPjL
3DCG目的で、答えが同じになる浮動小数点を含んだ別々の計算で、
結果にズレのない同じ数値になるようにするにはどうしたらいいの?
2017/11/01(水) 17:46:43.92ID:K6DgRYf4
>別々の計算

式が違うって意味なら結果が変わっても仕方ない
何桁まで使うかを自分で決める
2017/11/01(水) 17:48:34.39ID:K6DgRYf4
あと

>浮動小数点を含んだ

ここもちょっとあいまいだな
BCDとかを除外するのか使ってもいいのか
いまいちどっちともとれなくもないこともない
605デフォルトの名無しさん
垢版 |
2017/11/01(水) 19:13:42.89ID:kQ1wt9JW
>>602
浮動小数点数の計算誤差なんて、値と式によっていくらでも蓄積されるから、割り切りが必要だぞ
極端な例をCで言うけど、floatの精度で一致させるつもりでdoubleを使っても一致しないことも出てくる

rubyだと標準ライブラリに含まれるbigdecimalライブラリがあるけど、
これも無理数だと計算誤差が出てくるわけだし
https://docs.ruby-lang.org/ja/latest/library/bigdecimal.html
2017/11/01(水) 20:07:42.50ID:uQFQAfJE
Rationalクラスなら誤差出ない
2017/11/01(水) 20:47:39.78ID:kQ1wt9JW
>>606
えっ、まじで?
3DCGって言ってるから座標計算とかじゃないの?
sin cos sqrt使うとRationalってFloatになるんじゃ
2017/11/01(水) 20:53:14.66ID:uQFQAfJE
マクローリン展開で
2017/11/01(水) 21:13:10.79ID:mbpKs61j
マクローリン展開でどうやって誤差なしで計算するのw
2017/11/01(水) 21:16:19.51ID:uQFQAfJE
真の値である必要は無い
二通りの計算が同じになって欲しいんでしょ

どんなコンピュータ持ってきても円の面積すら誤差なしで計算できないぞ
2017/11/01(水) 23:37:46.94ID:Oby+I+5u
宇宙船でも、円周率の誤差のせいで、目的地にたどりつけないから、double 型を使ってる

float だと精度が足りないから
2017/11/02(木) 00:32:00.52ID:iVcltcyL
>>610
次の命題Pが真であるといっているんだよね?

命題P
任意のマクローリン展開可能な関数f:R -> Rに対して
適当な次元で切り上げたものをgとすると、
任意のr, r' ∈ Q に対して
g(r) = g(r') => f(r) = f(r')

しかしr'の任意の近傍Dに対して
g(r) = g(r') => f(r) = f(r') (r ∈ D)
は、自明なfを除き明らかに成り立たない。
よってその論理はおかしいよ。
613デフォルトの名無しさん
垢版 |
2017/11/02(木) 00:50:02.65ID:c5hpxlFZ
>>594
具体的な提案持たずにこき下ろしたいだけの奴はつまらん。
単なる背乗りダネ。
614デフォルトの名無しさん
垢版 |
2017/11/02(木) 04:58:30.09ID:S5CQdMtg
誤差のあるPC1
誤差のあるPC2
PC1とPC2で同じ結果になったら合格です!!!
615デフォルトの名無しさん
垢版 |
2017/11/02(木) 06:00:37.83ID:RnqR+Yur
10.0 , 10.0 , 0.0 の座標にある頂点に、
Z軸を軸とした45度の回転を正負どちらの方向に加えても、きっちりX軸やY軸にのってくれなくて、
頂点が同じ座標に重なるはずの別々のポリゴンの計算でも、ずれる可能性がある

これってライブラリ使うだけで解決できそう?
それともライブラリ+αで自分で何か実装しないといけないの?
2017/11/02(木) 07:10:11.88ID:nD35tXd7
>>612
じゃあ、sin xをx - x^3/6で近似して、
有理数演算した結果を比較してみれ
2017/11/02(木) 07:34:22.72ID:0ATVgqBG
>>615
浮動小数点計算の同値判定は差の絶対値が微小値未満かどうかでやれ、というのが
よく言われることかな
もちろん計算誤差の蓄積の問題もあるけどこれ以上は計算機科学でも勉強しないと
いけないかもしれない

というか浮動小数点の話はスレ違いかと
2017/11/02(木) 07:50:56.95ID:vQ98pS2c
Ruby遅い

速いと言われるPythonやLuaに手を出す

言われるほど速くならない

Ruby(+ネイティブコードの拡張ライブラリ)に戻ってくる ←イマココ
2017/11/02(木) 09:47:21.54ID:XIufFp9a
なんでPython?
いまならGoだろ
2017/11/02(木) 10:19:56.68ID:iVcltcyL
>>616
だからそれじゃ意味ないでしょ
結局それはsinの引数xが等しいかを比較してるのと殆ど同じなんだよ
x' = x + ε (|ε| << |x|) の時、その方法では正しく比較できないことは自明だし
更にsin(π/3) と sin(2π/3) などの比較も同様
2017/11/02(木) 19:25:21.94ID:vQ98pS2c
唐突にコンパイラ言語が出てくるのはなぜなのか
2017/11/02(木) 20:37:04.48ID:rd1E1A0+
まあ速度でRubyからPythonに変えようとするのは無知としか言いようがない
623デフォルトの名無しさん
垢版 |
2017/11/03(金) 01:16:26.72ID:zxns9zZh
>>602
rational使え。
2017/11/03(金) 01:22:01.48ID:GsNSAeOV
>>速いと言われるPythonやLuaに手を出す

なんでPython?
いまならGoだろ

>>唐突にコンパイラ言語が出てくるのはなぜなのか

速さを求めているのに、
逆にコンパイラ言語と突っ込むほうが なぜなのか? だわ

Pythonに手を出すほうもほうだけどな
2017/11/03(金) 01:47:41.25ID:Xm/a3Zyv
浮動小数の話は、他のスレで聞くか、検索して

誤差があるから、同値比較はできないので、
自分で誤差を決めて、範囲内かどうかをチェックする

値 - 誤差 < 値 < 値 + 誤差
2017/11/03(金) 06:47:30.50ID:q7n+YR5K
それはもう工夫とかじゃなくて、
プログラムを作る時の当たり前の話だな
どんな言語でもそう

いるんだよ
ループ変数に平気で実数使うのが
2017/11/03(金) 06:57:52.19ID:Xm/a3Zyv
浮動小数点は、情報処理試験の基本。
プログラミング以前の問題

float に、ずっと、1を足していくと、どうなるでしょう? とか
628デフォルトの名無しさん
垢版 |
2017/11/03(金) 08:32:22.48ID:+RrAZtoT
Rubyにおいての浮動小数点のライブラリの話とかはこのスレの範疇だからどんどん質問していいぞ

スレ違いとか言ってるのは、ただのスレ進行の妨害したい奴だから無視していい
以前もこのスレには自演で荒らそうとする奴が出没してるんだ
2017/11/03(金) 10:51:06.92ID:11xKh3l5
Rubyに関する話なんてほとんど出てないだろこのスレ
どこに目をつけてるんだ
2017/11/03(金) 11:09:16.39ID:BJmK7MtV
落ち目だから目移りするのは仕方ない
いくらRubyが好きでも、今の状況でRubyしか見てないとしたらむしろエンジニアとしての資質に欠ける
2017/11/03(金) 12:30:06.18ID:yrerCLlf
まだいるのかコイツ
自演してる暇あったらくたばれ屑
632デフォルトの名無しさん
垢版 |
2017/11/03(金) 19:33:46.87ID:GjY9johE
https://japan.zdnet.com/article/35109803/
なかなか嫌われてるねーw
PerlとかObjectiveCとかCoffeeとタメ張るくらい立派なオワコン言語だわ。
2017/11/03(金) 19:55:07.78ID:9CXEo34m
JavaScriptの方がよっぽど嫌なんだが
罠みたいな奇妙な仕様が多いし
2017/11/03(金) 20:06:52.11ID:r8BoLq9w
>>633
それはおまえがJavaScriptに詳しくて
他の言語に疎いからだな。
他の言語にも罠はたくさんある
2017/11/03(金) 20:08:31.78ID:9CXEo34m
>>634
Rubyの方が詳しいが
Rubyは罠が少ないから良い
2017/11/03(金) 20:14:54.76ID:r8BoLq9w
Rubyは0が真という罠がある
2017/11/03(金) 20:15:29.96ID:r8BoLq9w
なんかぐぐったらたくさん出てきたw

Rubyの落とし穴
http://www.stg.co.jp/documents/ruby/Ruby-y83cxdub9377icosa.html
2017/11/03(金) 20:26:11.63ID:CfVklZAP
>>636
むしろ0が偽の方が嫌だわ
ある変数がnullかどうかだけ知りたいのに0が偽だと==nullとか書かないといけないし
2017/11/03(金) 20:35:25.56ID:9CXEo34m
求める答えが0の場合ってけっこうあるし
1,0を真偽に使う言語仕様だと
数値化されてグダグダになることがよくあるから
0とfalse,nilを分けるRubyの方がスッキリしてて良い
2017/11/03(金) 20:41:44.90ID:r8BoLq9w
言い訳www
2017/11/03(金) 20:53:45.43ID:hlowM2W8
>>637
随分古い資料だね
2017/11/03(金) 20:56:32.85ID:JBf6zZHQ
javascriptはTypeScriptに救われたが、rubyは誰が救ってくれるのか
2017/11/03(金) 21:20:51.03ID:q7n+YR5K
数字の0とか文字列の""は、大抵はfalseになってくれた方がシンプルに書ける
でも、たまーに落とし穴にはまる

perl だと "0" という名前のファイルだけ処理できなかったりしてた
そういう痛い経験があるから、敢えてなんだろうな
2017/11/04(土) 00:39:28.17ID:FdHKGPou
JavaScript では、偽が何種類もあるから、

!!変数
みたいに変数を否定して、ブール値に直してから、
さらに否定するなど、大変
2017/11/04(土) 00:42:39.26ID:hKqH3C3y
0という1文字だけが書かれたファイルはPerlが誤作動するというのは大昔からの定番ネタだからな
2017/11/04(土) 02:36:36.21ID:57ycABKa
TypeScriptの何がいいのかさっぱりわからん
CoffeeScriptと何が違うのか?
2017/11/04(土) 02:42:32.09ID:die+TITB
2017/11/04(土) 04:04:59.69ID:mUpZK5PE
開発力
CoffeeScriptは所詮個人のプロジェクト
一人がやめたら頓挫するレベル
2017/11/04(土) 06:31:30.70ID:juOwH5Ai
Rails使いは宗教上の理由で絶対にTypeScriptに手を出せないのが悲しいよね
バックエンドよりフロントエンドのほうが厳格な言語で書かれてるとかさすがにキチガイ
650デフォルトの名無しさん
垢版 |
2017/11/04(土) 09:11:23.50ID:D9DL6WlM
>>638,649
分かれてはいるけど、肝心のifではnilは偽と同じ扱いになる。
はじめから、boolしか受け付けない、であれば0が真とか悩む必要なかった。
一見よく考えられているようで、実は大失敗だったと。
651デフォルトの名無しさん
垢版 |
2017/11/04(土) 09:22:28.68ID:v7stxdd6
>>649
プログラミングで宗教とか言い出すのがキモい。
何でも強制連行!みたいな。
2017/11/04(土) 09:48:16.91ID:xcEGHyeH
>>646
コード補完やリファクタリング
騙されたと思ってVSCodeでTypeScript書いてみたらいい
なぜ手間をかけてでも型を書くのか理解できる
型書きたくないでござるを否定するわけじゃないが、
ちゃんと両方の短所長所を理解した上でどちらが優れているか自分の頭で判断することが大切
それを放棄して一方の信者の言うことを鵜呑みにするのはそれこそ宗教だ
2017/11/04(土) 11:32:17.49ID:llWWFdXR
「とにかく楽をして速く書きたい」
というのと、
「売り物なんだから万に一つの間違いも無いようにガチガチに作りたい」
という、二つの相反するパラダイムがあって、
それを同じ言語に負わせるのは無理がある

awkとかperlとかrubyとかは前者を志向してるので、
それに逆らった使い方をして使いにくいとごねられても困る
2017/11/04(土) 11:57:41.85ID:/qI+U4k3
>>653
前者は「好きなエディタで」または「書捨ての単純なものを」が抜けてる
メンバ補完がバリバリ効く環境ならAPIリファレンスを見る時間が節約できて、ある程度まとまった規模なら型を書く手間は余裕でペイする
Matzクラスになると慣れたEmacs以外のエディタを使うコストが大きいからまた違うんだろうけど
2017/11/04(土) 12:05:39.20ID:NciV8/1n
型推論でvarで済むようになると、型を書く煩わしさがほとんど無くなって
さらに一般的に使われるエディタがIDE化した現在では
型があるメリットのほうが遥かに大きい

しかし動的言語に直接型を導入するのは無理があるので
TypeScriptみたいなのが最良の方式になるわけだが、
あんな完成度の高いものを作るのはもっと無理な話だろうな
2017/11/04(土) 12:06:26.13ID:mUpZK5PE
>>653
そんなに速く書きたいのかな?
それよりも速く読めるほうが重要じゃね?

型を書くのは面倒だけど、読む方は型が書いてあるから
コードの理解が速くなる。

書くのはタイピング速度を上げればいいだけの話だし
2017/11/04(土) 12:23:37.40ID:gvMVqdNY
バックエンドで安全性最優先ならコンパイラ言語だがRustじゃね。まだ発展途上だが
658デフォルトの名無しさん
垢版 |
2017/11/04(土) 13:33:25.21ID:afxny8Pa
このスレ見てたらruby嫌いになるわ
割とマジで
2017/11/04(土) 13:58:55.15ID:xcEGHyeH
斜陽なのは事実だから仕方ないね
全盛期に粗製乱造されたRailsアプリが負債化して、品質も大事だという方へ揺り戻しが来てるのが今
660デフォルトの名無しさん
垢版 |
2017/11/04(土) 14:32:18.79ID:afxny8Pa
リプレイス案件で次は別の言語使いましょうですね判ります
2017/11/04(土) 14:46:58.00ID:57ycABKa
早くシンプルに作る時代から
安定して長期的な傾向になったんだから
時代に合わなくなってきているのは分かる。
でもスタートアップとかにならまだまだ現役
2017/11/04(土) 14:49:21.40ID:gvMVqdNY
日本って本来の意味のシステムエンジニアリングは壊滅的にダメだからなぁ
品質を管理できる体制作りとか絶望的に期待できない。ガバガバ管理でゴミが
乱造されても現場に押しつけて終わりだし
2017/11/04(土) 15:08:41.19ID:mUpZK5PE
RubyやRailsや最先端だと誤解されていた時期もあったけど
実は全てJavaが十数年前に通った道・・・のすぐとなりの
けもの道を歩いているに過ぎない
2017/11/04(土) 15:25:41.52ID:llWWFdXR
JavaもRubyも出来たのは同じ頃
2017/11/04(土) 15:41:04.71ID:mUpZK5PE
>>664
その差は大企業の力と一個人の力だろうね

一方は整備しつつも巨大な力であっという間に
先に進んでしまう。

けもの道はできるのも遅い
2017/11/04(土) 16:18:08.99ID:zO59KQfY
Javaが「先」だと?w
2017/11/04(土) 16:21:05.85ID:e6S1BAQ6
小型船の製造を得意としていたルビー造船所だったが、
大型船の製造を頼まれてこなし、持て囃されてしまったのがケチの付き始め。
挙句の果に「ルビー造船所は豪華客船を作るのに向いてない!」
と言いだすお馬鹿さんまで出てきてしまった。
2017/11/04(土) 17:43:36.41ID:O0AU1SEY
船の大きさの問題じゃなくて作業員の質の問題
2017/11/04(土) 18:13:54.51ID:xZyYrbxC
Rubyのような動的型言語は手軽に気楽に素早く、
だが長期的にみればむしろコストがかさむかもしれない
↑っていうイメージがそもそも嘘っつーか
これは言語開発者が言語を作る場合においては確かに成り立つ
マトモな実用的な言語を作るのは大変なわけだが、それでも
動的型言語をを作るのは静的型言語を作るのに比べればかなり楽、最初は楽
ただし、発展していって、実行速度とかコード補完とか、本当の意味での使いやすさとか
そういう次元の話になってくると、むしろ難しいというか行き詰まる

だから、手軽に素早く作れるが、後で困るかも、というのは
Rubyの言語生命の話であって、そこからくるイメージは有るが
実際には俺らには関係が無い
利用者には単に手抜き言語であることのディメリットしかない

もしくは言語開発者自身がそういう思想に基づいて言語を作ったことから派生する
負の連鎖のようなものが起こっているかもしれないが
670デフォルトの名無しさん
垢版 |
2017/11/04(土) 18:33:51.52ID:v7stxdd6
>>669
むしろ、作った後困ってない言語って何よ?
671デフォルトの名無しさん
垢版 |
2017/11/04(土) 18:39:23.17ID:uQ9Lq+uS
未踏に参加して金が絡んできてからおかしくなった気がする
2017/11/04(土) 19:15:21.01ID:die+TITB
「Rubyは言語の宝石箱や〜」(金銭的な意味で)
2017/11/04(土) 19:59:05.55ID:xZyYrbxC
冷静になって考えてみると>>659の言い方もおかしいよな
揺り戻しっつっても、全盛期ですら静的型言語に勝ってたことは一度もないし、ニッチもニッチ
一部の人がはしゃいでただけだからなぁ、揺り戻しもなにもなー
殆どの人は支持も何もしてなかったし(むしろ冷ややかか?)
既定路線っつーかなんつーか、大人と子供みたいな感じかね
民主党みたいに一時期でも与党だったってわけでもないし
揺り戻しっていうのかね、これ
2017/11/04(土) 20:17:22.74ID:die+TITB
Rubyがニッチっていうのは違和感がある
D言語とかもっとニッチなのがあるからね

言語ランキングの十位台位に常にいるんだから
そこそこメジャーって言ってもいいと思う
2017/11/04(土) 20:17:36.86ID:iK5iZLmc
コーディング仕様と言語仕様の区別が付いていない人がいるな
2017/11/04(土) 20:49:10.69ID:KrLu9mes
>>674
D言語は競プロには便利だぞ
C++よりは書きやすいし、競プロならライブラリが揃ってるかどうかは関係ないしな

それはともかく、Rubyは10位前後をずっと保ってるわけだからニッチではないわな
完全にメジャー言語だと思う

メジャー言語なんだからそりゃアンチもいるわ
たまたま粘着度の高いアンチがいるとこういう状態になるのも2chならよくある話
粘着度が高いのはキモいけどね、個人的には
2017/11/04(土) 21:13:30.27ID:e6S1BAQ6
rubyにアンチが多いっていうのはrails伝説に夢見て飛び込んで
勝手に挫折や絶望を味わった連中が暴れているからだろ。
rails絡みの要望をそのまま受け入れ続ければrubyは死ぬな。
2017/11/04(土) 21:51:45.01ID:3Qk/5QRn
何を今更
今のRubyのコミットはほとんどRails絡みでしょ
とっくにRails専用スクリプトになってるんだよ
2017/11/04(土) 22:00:15.04ID:llWWFdXR
もともとperlの進化系として便利に使ってただけの人にとっては、
いろいろ環境が充実して有り難い限りだ
680デフォルトの名無しさん
垢版 |
2017/11/04(土) 22:38:20.83ID:t9DikZno
世界の中でプログラマーは1%も居ない。
更にその中で複数の計算モデルの違う言語を使いこなして、本当の意味の比較が出来る者など極一部。
つまり、殆どの者は自分の好き嫌い・得手不得手を言語の良し悪しに摩り替えて喋ってる。
そういう俺も、Javaは許せん!w
681デフォルトの名無しさん
垢版 |
2017/11/04(土) 23:08:22.96ID:kIiPx95D
珍しくスレ数が伸びているからと覗いてみたけど、
エンジニア視点によるRuby固有の問題点は何一つ話題になっていないのね
2017/11/04(土) 23:44:23.98ID:xZyYrbxC
何か問題があったとして
それがRubyだけの固有の問題かどうかは、割とどうでもよい
ざっくりというと、動的型言語はどれも同じような問題にぶち当たってる

元々は多少マシンのリソースを食ってもプログラマが楽できた方が良い
とかいうユルフワな考えもあったんだろうけど
実際にはプログラマは楽できないし、マシンに負荷がかかるだけだった
動的型で楽できたのは言語を開発する側だけ
(それも自分たちは静的型言語で静的型の恩恵を受けながら言語を開発してるという)
しかも、パフォーマンスとかコード補完とかマトモなことをやり始めると
むしろ静的型より難易度が上がるという
結局、言語開発者にも利用者にも機械にも、おおよそ誰にも優しくないのが動的型で
非常に筋の悪い、行き詰まった方式と言える

また、文法の面からみても、変数宣言が無いから変数スコープがぐちゃぐちゃになるし
( もし変数スコープを明確にするために変数宣言を導入するんなら
(オプションかどうかは置いておいて)型がかけても良いんじゃね?という発想に至る←通常は )
元々変数宣言が無い言語に後からオプションで型宣言を入れるなら
これは本当にダサくて、それをやっても、後付け故に変数スコープはグチャグチャのままで
だったら初めから変数宣言導入しとけって感じ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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