Rubyの設計上の欠点とは何か?
■ このスレッドは過去ログ倉庫に格納されています
Rubyの設計上の欠点を修正した新しい言語「Roovy(仮)」を考えるスレッドです。
【英語圏に優しくない】
使っている単語がそもそもおかしい。stripって何よ、いやらしい。trimだろ。
【C言語ユーザーに優しくない】
論理値の解釈が異常(if 0)。カッコの対応が分かりにくい。
【数値計算のスピードが遅い】
行列演算が遅い。何やってるんだ。
【コンパイルできない】
特異メソッドなど、コンパイルを困難にする言語のため、コンパイルが容易でない。
【デバッグが困難】
assertが無いのはおかしい。デバッグツールが充実していない。 なんでそんなに記号が好きなのか?
記号がなくても成り立ってる言語があるのにな。 以下の URL が NG ワードとして規制されているらしい
よほど >>1 にとっては >>24 の定番コピペが嫌みたいだね
スレタイでググルとネットでも人気の記事らしい
http://a n o n d.h a t e l a b o.jp/2012 0118 2202 04
# URL 文字列中の半角空白を取り除くと、ソース(コピペ元)を参照できる
# あるいはスレタイでググルと先頭にでる Rovyでは変数は、キーワードvarを使って宣言できる。
explicit var文により、varの使用を強制できる。
Rovyでは変数にはキーワードasを使って型ヒントを書くことができる。
explicit type文により、型ヒントを強制できる。 s/explicit/strict/
strictとtypeはRovyのキーワード。 Rovyでは、ブロックのまとまりはC言語と同様に{}を使う。
# 破壊的メソッドf!。
def f! a,b {
.a = a
.b = b
}
# 非破壊的メソッドg?
def g? {
.a = 0 #エラー
} var .a as int
var .b
def f! a as int, b {
.a = a
.b = b
return 0
}
asとdefとreturnはRovyのキーワード。 >>29
めんどくせーよ。スペース入れるなら一箇所だけにしろや
http://anond.hate labo.jp/20120118220204 >デバッグツールが充実していない。
rubyってどんなデバッグツールがあるのか知りたい
リモートデバッグ・エディットコンティニュ・ダンプ出力・解析とか普通に出来るの? Rovyでは、行がカンマで終わった場合は次の行をつなげて解釈する。 Rovyは、
try {...} catch {...}
try {...} catch my_exception {...}
try {...} catch my_exception as MyException {...}
のいずれかで、例外を捕捉できる。tryとcatchはRovyのキーワード。 C++のswitch-caseに相当するRovyの制御構造は、case-by-caseであり、次のような構文である。
case by n {
case 0:
...
thru
case 1,2,3:
...
default:
...
}
case,thru,by,defaultはRovyのキーワード。 s/def/fn/
Rovyは任意のブロック内部に
catch:
catch my_exception:
catch my_exception as MyException:
を書くことができる。 ・Rubyを知らないと読めないガラパゴし言語。pとputsとprintと種類がありすぎ。
・ブロックの締めがendなのでたくさんendが書いてあるだけで読みづらい。 >>36
リモートデバグ:ruby-debug-ide + 適当なIDEで
エディットコンティニュ:これは知らない
ダンプ出力:まあLinux環境ならRubyに限らず普通にcore吐けば何のプログラムでもできるかと。
Ruby処理系自体かCで書かれた拡張ライブラリのバグ解析に使うという話になるけど
解析:動的解析であればDTraceサポートしてるので使えばいいし、
静的解析は決定版はないけど最近の流行だとrubocopかな
まあ商用の処理系に比べると弱いのは確か。 Luaの可読性を高めた言語を作ればRuby要らない希ガス >>1のあげている欠点がそもそもRubyの捨ててる部分なだけで、Cにメタプログラミングの文法追加しろって言ってるようなもんじゃん
設計思想にある意味特化して、その他取捨選択することで有用な道具を作れるんじゃないですかね
現状、>>1の考えた最強言語なんてつくっても、誰も使わない気しか...
というわけで、糞スレです本当にありがとうございました >>46
満足したらもう来ないでね。
あなた無しで進行するからw $/って何だ、と思ったときに検索しても出てこないというのは致命的。
やっぱちゃんとした名前付けるべきかと。 Rubyのcase-whenは最悪。ただ、ifやunlessやuntilなどが文の後ろに付けられるのは便利だって思った SQLのバグは解決したのか?
Ajaxとの親和性は? switch {
case if (a<0):
//何らかの処理
break;
case if (a==0):
//
...
}
みたいな文法が追加されないものか。
http://peace.2ch.net/test/read.cgi/tech/1412495628/54 ruby-debug-ideってもう2.1で動くようになったんだっけ?
まあ普通はvimでコード書いて、ブレークしたくなるたびにbinding.pryをソースに書き込んで開発してんだろうな。2014年の今でも。 >>1
>RubyやVisual Basic .NET、Object Pascalは一時的に人気を獲得したが、死んでいくプログラミング言語リストの上位を占めている
VBは死なないだろ、Windowsがある限り。 Rubyを使って書いたコードは
将来泣きながら他の言語で書き直す羽目になるだろう >>55 そういうのは出来て3年とかいう言語に対して言うんだよw
20年も経っている言語に対してそんなこと言ってる奴はただのゴミ。 twitterのプログラマ泣きながら修正していたぞ Rubyも最近のC++みたいに、メタプログラミングが高尚みたいな雰囲気があるから
そういうノリで作られた奴は後年は参考にするのも困難だろうな ねーよ。
メタプログラミングは最後の手段だ(使うな、という意味ではないが)。 メタプログラミング用の言語を別に作って
そのメタコードがから ruby や python や C++ のコードを吐けばいい Pythonには、同じことをやる方法は一個だけ用意するみたいな風習があるんだっけ
Rubyはcollectとmapみたいなエイリアスが組み込み時点でいろいろあって
Railsに至ってはcountとsizeとlengthが全部あって、しかも内部動作が全く違うカオスが出来てたりするからそういうのはうらやましい >Pythonには、同じことをやる方法は一個だけ用意するみたいな風習があるんだっけ
それ都市伝説
lambda が不完全なのの言い訳 これだろ ttps://wiki.python.org/moin/TOOWTDI
Ruby業界で言う「驚き最小」みたいなものか? Ruby がダメなら COBOL を使えばいいじゃない a.out を手当たり次第 strip した思い出 mruby
アプリケーションの組み込み言語で
ホストアプリの側がC++の場合、
組み込み言語の側でもC++でコンパイルできないと
ホスト側とデータの受け渡しや整合性に問題がでてくる。
ホスト側でSTLやboostの正規表現マッチつかってて、
組み込み言語の側で別の動作してるとかだといやだなあ。
あと、長いスクリプトを組むという運用がされなければ
組み込み言語の文法が高機能かどうかって重要じゃないし。 OSのカーネルや言語処理系は最もコード密度が高い分野。一度もソース読んだ事の無い人にとっては
理解不能な世界。組み込み用のmrubyやJavaScriptですら公開されてるソース読んですぐ理解出来る代物ではない。
だれがどのように保守するかは大きな問題。カーネルや開発者の高齢化問題も発生する。
経済が破綻すればオープンソースは資金調達や人員の確保問題で保守がどうなるか不明なところがある。
そうなると伝統的プロプライエタリなOSや言語が長期的には有利かもしれない。 Rubyは他言語を理解できないバカ専用の言語だろ? WindowsのExplorerで「やり直し」と「元に戻す」の機能がありますが
その具体的な内容が判らないので「何をやり直すのか」「何が元に戻るのか」が判りません
XPのときはSP3あたりから編集メニュー上にマウスカーソルを持っていくとステータスバーに内容が表示されていました
Windows7も編集メニューの方ではなくファイル一覧の何もないところで右クリックでコンテキストメニューを出すと
「やり直し」と「元に戻す」があってそこにカーソルを持っていくとステータスバーに出て来るようになりました
Windows8になるとまたエクスプローラーが先祖返りしてステータスバーに何も表示されません
なんでこんな糞設計のまま放置プレイなんでしょうか? >>76
スレ違いだけど、クイックアクセスツールバーに
戻るを追加すれば見れるように鳴るよ。 小さな組織が大企業を超越するという明確な意志を持たない者にRubyを使うのは難しい >>73
もしそうなったら、本末転倒のジョークだよね
プロプライエタリだと資金的に開発不可能になったソフトウェアであっても、
OSSならコードが公開されてるから継続的に開発できるってのがメリットなのに ユーザなんて無能だからユーザやってるわけで
開発者が放棄したものを引き継げるわけなんかないんだよ
前提がおかしい 別にソフトウェアのユーザがエンドユーザとは限らないんだけど ソフトがたタダからって
開発者がタダで開発してくれるとは
限らないんだよな。 そうとは限らないだけで、必要ならやってくれるんだよ 最近 OpenSSL の vulnerability が次々に Open になってるのを見ると
OpenSource であることが必ずしもメリットばかりでないことは良く判る たまたまオープンソースなだけで、そうじゃなくても同じような事になってんじゃないかな。 リバースエンジニアリングで穴見つけるのと、
ソース見て穴見つけるのとだと、
後者の方が捗る気がする。 OpenSSLは読む気がなくなるレベルでクソなコードだったために
オープンソースでありながらクローズドな性質を持っていた 脆弱性を探すみたいな作業って、地味だし、みんなやりたがらないんじゃないかな Googleみたいに金と人あまってるところが
研究と称して穴ほじくってる感じ でもオープンソースの宣伝文句的には、コードがいつも衆目にさらされるから
クソコードはすぐ是正されるんじゃなかったっけ? 昔はそうだったかも知れないが
最近はクレクレばっかりだよ
いつからこんな風になってしまったのか ライブラリやソフトウェアを便利に共有できるようになった弊害かもな
車輪の再発明による経験と知見の獲得の機会が減り
アリモノを利用する以上の技術を持つ奴の割合も減る ×利用するOSSにバグがあったら報告して修正コードを送る
◯OSSにバグがあったら諦めてググった方法で迂回する
こんなイメージ バグを報告して修正コードを送っても老害が立ち塞がって却下するしw >>99 その通り
ググって違うもの探して終わりとか
文句は言っても自分で治すという発想はない ujとかそんな名前のクソコテ居たけどあいつどうしてるんだろうな。
自慢のrubyがこんなになっちまってw
死んだのかな 918: 11/02(日)10:26 ID:gwsCz/b5(1) AAS
pythonに勝ちたいなら、さっさとscirubyの開発進めて欲しい。言語としてrubyが好きでも、pythonに移らざるを得ない >>103
ああ、あの、ID がついた直後に連日トップ当選の勢いで活動していた奴か‥
あの情熱的な文章はなかなか書けるものじゃない、今一度読みたいものだ‥ >>103
ha?
今は芸術活動で忙しい
プログラミング言語なんて、大多数の人間が使いやすいちょうど真ん中辺りを通った言語がメジャーになるだけだろ
人は同じことをやってれば慣れて行くわけで
同じ記法はどんどん煩わしくなっていく
ずっと触ってても煩わしくならないのは変幻自在になるアナログアルゴリズムだけだ
六年前、あの時rubyが最も使いやすいと思った俺は、もういない
自分のプログラミング行為こそを主体で考えた時に、自作言語を作る以外に最高効率はない
自作アナログ言語で最高効率を出す >>105
多分だけど、ID付随直後にアク禁レベルの連投してたのは俺だよ 【ネット】「靖国問題を書いたら炎上。700以上のコメント、IPを調べたらたった4人だった」…ネットで炎上を煽るノイジーマイノリティ
http://daily.2ch.net/test/read.cgi/newsplus/1415758196/ プログラマはゴミなのは変わりないけど
世界的に見たらマシな部類だと最近、ちょっとお前らの相対評価が俺の中で上がったよ
俺は世界を作りたいわけで、
プログラマのように少なからず、宇宙の真理だとか、無茶な完璧主義が入った人間の得意分野が
かろうじて俺の知識量とタメはれる程度だから
そういう場所で、突っ張らないで最初から「世界なんて作れるわけないじゃん」とか「恥ずかしい発言したくない」等々で
小さく縮こまって無難な選択しかしなくなった連中は、もはや関わる利点を感じられない
一部キチガイプログラマのように偉大な夢を持ったバカでないと、
"""発言や、プライドの高さに力が追いついてない"""って状況 なんだよ
人を成長させるのは
ここで最初っからプライドが存在しないとか、無難な発言しかしない人間は一見、大人に見えて
それは間違った大人、成長が完全に停止した大人だ、学習することを放棄した大人だ
なぜ自分の発言を先行させてでもやる気を引き出して自分がそこに追いつこうとしないのか
ああ、仕事でできもしないのにできます言うゴミは死すべきだけど
仕事以外の世界においては「できます」が万が一出来なくても大きなリスクにはならないのに
その度胸さえ失ってしまったら、何が残るのだろうか?
小さく縮こまって無難な選択しかしなくなったら、その時点で詰み
お前らはなんなん? 人間か? 俺はもう人ではない。
この立場になってわかるもの、 俺の世界において、「人間」とはプチ強い生命体ってだけで、他の虫や動物と、何ら変わりは無いし
人間はプチ強いっていう要素にさえ気をつけておけば、虫や動物や魚と、同じように人間を扱ってても、大丈夫だということ
ちょっと人外になったつもりで、この世界の人間を観察してみてはどうか?これはきっと、お前らが次へ行くためのステップとなる 【主な敗因】
1.SEO戦略の間違い。
2.Ruby Enterprise Editionの分断工作に負けた。
3.英語圏の勢力を取り入れることが出来なかった。 ダイナミックロードしようとプログラム書いてると、rubyのヘッダファイルが糞なのが良く分かる ruby自信を他のアプリに組み込みにくいって事なのかな?よく知らんけど。 d = File.open('hage', &:read) Rubyのコード、滅茶苦茶寿命が短い
ネットで調べたサンプルコードが動かない
ダメよ〜ダメダメ JSの"use strict"、VBSの"option explicit"のように、
変数宣言を強制してほしい
また、Global,Local変数なども区別してほしい
変数があっても、それが宣言なのか、
以前から存在する変数なのかが、わからない >>125
ネットで調べたサンプルコード:
>>> print "Hello world"
Hello world
では、試してみよう:
>>> print "Hello world"
File "<stdin>", line 1
print "Hello"
^
SyntaxError: invalid syntax
たしかに動かないね >>124
ちゃんとオブジェクト志向してればそんなの気にする必要無いはず オブジェクト指向してるとインスタンス変数とローカル変数が同じレベルに来るから余計たちわるくねえ? ■ このスレッドは過去ログ倉庫に格納されています