Rubyの設計上の欠点とは何か?

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2014/10/12(日) 20:39:59.49ID:Km5KyqRm
Rubyの設計上の欠点を修正した新しい言語「Roovy(仮)」を考えるスレッドです。

【英語圏に優しくない】
使っている単語がそもそもおかしい。stripって何よ、いやらしい。trimだろ。

【C言語ユーザーに優しくない】
論理値の解釈が異常(if 0)。カッコの対応が分かりにくい。

【数値計算のスピードが遅い】
行列演算が遅い。何やってるんだ。

【コンパイルできない】
特異メソッドなど、コンパイルを困難にする言語のため、コンパイルが容易でない。

【デバッグが困難】
assertが無いのはおかしい。デバッグツールが充実していない。
2014/10/12(日) 20:47:55.48ID:MyToBo/B
まーたアホが思いつきでスレを立てやがって
2014/10/12(日) 20:51:05.39ID:Km5KyqRm
>>3
PHPやHipHopみたいにすると、シェルスクリプトの#!との整合性が失われるのでは?
2014/10/12(日) 20:52:20.61ID:uoArxlQJ
> シェルスクリプトの#!との整合性

それは重要ではないことだ。
2014/10/12(日) 20:54:52.65ID:Km5KyqRm
>>4
英語圏でRubyの支持が下がっていることに反論をお願いします。
2014/10/12(日) 21:15:21.69ID:Km5KyqRm
【コンパイルできない】について。
PythonにはCPythonがあるのに、Perlでさえもコンパイルできるのに、Rubyはいつまで待っても
コンパイルできない。Dは、そのままスクリプト言語兼コンパイル言語として使えるのに。
なんでか?
2014/10/12(日) 21:20:05.87ID:uoArxlQJ
コンパイルすると性能が低いことがバレるから。

遅いのはコンパイルしない言語だからだ
ということにしたい。
2014/10/12(日) 21:21:30.06ID:qzYYuF4u
- Pythonにサヨナラを
http://postd.cc/saying-goodbye-to-python/

> Pythonでコーディングし始めて1万時間ほどに達したでしょうか。Pasteの教訓からライブラリ設計のヒントを得てWebObを記述しました。(略)
> しかし、なぜか私のツールで最大の成功を収めたのがvirtualenvとpipでした。(略)

> データベースを使ったWebサイトやHTTPベースの動的なWebアプリケーション、テンプレートやデプロイメントといったRESTと呼ばれる部類のものには将来性を感じられず、
> 自分が探し求めてきたものなど存在しないかのようでした。

> こうしてJavaScriptやブラウザやDOMに目を向け始めたのです。
> 私がMozillaに加わったのはPythonから離れる少し前です。
2014/10/12(日) 21:27:20.29ID:Km5KyqRm
>>6
ファイルの最初に#!があるやつを特別扱いすればいいな
2014/10/12(日) 21:31:19.23ID:uoArxlQJ
>>11
> HTML、CSSじゃないものを使ってビューを作るから。
って話をしているのに、何的はずれなこと言ってんの?
2014/10/12(日) 21:31:32.77ID:Km5KyqRm
RubyってCで書かれてるんだよね?
C++やDで書き直したら性能が向上するんじゃね?
2014/10/12(日) 21:41:29.73ID:Km5KyqRm
>>12
shebang使いたいやつだけ使えばいい。使う場合はHTML互換ではないという前提で。
2014/10/12(日) 21:43:37.43ID:Km5KyqRm
Rubyについて(アンチ専用) Part004
http://peace.2ch.net/test/read.cgi/tech/1249737531/
2014/10/12(日) 21:47:06.39ID:uoArxlQJ
>14
だからさ、今はビューの話してんの。
わからないならでてくるなよ。
2014/10/12(日) 21:59:29.71ID:UH4boMpr
Rubyで書かれたコードは負債
将来後悔することになる
2014/10/12(日) 22:07:28.95ID:Km5KyqRm
ググった。.html.erbでテンプレート書いてビューでパラメーターを用意して
レンダリングだろ?
やっぱ拡張子は別の方がいいな。
.rov
.rov.html
とかな。
2014/10/12(日) 22:15:23.87ID:Km5KyqRm
PHPとRoRを足して2で割ったものを作ればいいかな
2014/10/12(日) 22:23:36.84ID:Km5KyqRm
PHPみたいに拡張モジュールがたくさんあって関数呼べばすぐ使えるというのはいい。
ただ、PHPのオブジェクト指向は$this->を多用するから好きではない。
2014/10/12(日) 22:57:57.14ID:Km5KyqRm
ローカル変数とメソッド呼び出しが区別できないバグがある件な
2014/10/12(日) 23:00:10.92ID:lWGKgdZQ
python
2014/10/12(日) 23:00:22.72ID:lWGKgdZQ
zope
2014/10/12(日) 23:01:43.49ID:lWGKgdZQ
定番コピペ
--

・Python vs Ruby vs PHP vs Haskell プログラミング言語バトル part1

> 48 : デフォルトの名無しさん : 2011/11/13(日) 08:30:25.68

> 44
> Zopeが登場した当時、「RDB+PHPはもう古い、これからはOODB+ZopeがWebの中軸になる!」と
> さかんに宣伝され、雑誌でもZope特集が組まれていた
 
> 少なくとも自分はZopeからPythonという言語を知ったし、その時点でRubyは知らなかった
> そして、その後のORM(RDB)+Railsの出現と華々しい革新性への注目は、誰もが知っているだろう
> 今でもZopeの開発は継続されてはいるが、結果的に当初の期待が大きく裏切られたという事実は動かしがたい
 
> djangoとCakePHPについては実際に触っていないので憶測になるが、おそらく技術水準ではRailsと同等だろう
> しかしRailsはRailsでコミュニティの活動が活発だし、その進化は異常に早い
 
> Railsに何か致命的なトラブルが発生して開発が停滞する、あるいはdjangoやCakePHPから
> 何かのイノベーションが提示されでもされない限り、後発のdjangoやCakePHPがRailsに追いつくのは無理
> Railsは決して技術的に完璧なWebフレームワークではないんだけどね....(たとえばSeaSideのような.... )
 
> だからこそ「もしもZopeが....だったなら」という「たら・れば」感はPythonコミュニティの潜在認識になっている
2014/10/12(日) 23:07:53.82ID:Km5KyqRm
新言語Rovyではメソッド呼び出しに必ず!か?を付ける。
!は破壊的で?は非破壊的。
?はC++のconstメソッドと同じ。
2014/10/12(日) 23:09:46.65ID:eWldTq31
zopeとは何だったのか
いや、それ以上にzopeへリソースを使った人達は何だったのか
2014/10/12(日) 23:13:27.43ID:Km5KyqRm
Rovyでは、インスタンス変数に@ではなく.をつける。
2014/10/12(日) 23:14:19.37ID:uoArxlQJ
なんでそんなに記号が好きなのか?
記号がなくても成り立ってる言語があるのにな。
2924
垢版 |
2014/10/12(日) 23:15:09.82ID:lWGKgdZQ
以下の URL が NG ワードとして規制されているらしい
よほど >>1 にとっては >>24 の定番コピペが嫌みたいだね
スレタイでググルとネットでも人気の記事らしい

http://a n o n d.h a t e l a b o.jp/2012 0118 2202 04

# URL 文字列中の半角空白を取り除くと、ソース(コピペ元)を参照できる
# あるいはスレタイでググルと先頭にでる
2014/10/12(日) 23:30:47.53ID:eWldTq31
>>1で挙げられてる問題?ってどうでも良くね?
2014/10/12(日) 23:30:55.15ID:Km5KyqRm
Rovyでは変数は、キーワードvarを使って宣言できる。
explicit var文により、varの使用を強制できる。
Rovyでは変数にはキーワードasを使って型ヒントを書くことができる。
explicit type文により、型ヒントを強制できる。
2014/10/12(日) 23:32:56.92ID:Km5KyqRm
s/explicit/strict/

strictとtypeはRovyのキーワード。
2014/10/12(日) 23:37:49.70ID:Km5KyqRm
Rovyでは、ブロックのまとまりはC言語と同様に{}を使う。

# 破壊的メソッドf!。
def f! a,b {
.a = a
.b = b
}
# 非破壊的メソッドg?
def g? {
.a = 0 #エラー
}
2014/10/12(日) 23:42:21.99ID:Km5KyqRm
var .a as int
var .b

def f! a as int, b {
.a = a
.b = b
return 0
}

asとdefとreturnはRovyのキーワード。
2014/10/12(日) 23:50:53.28ID:uoArxlQJ
>>29
めんどくせーよ。スペース入れるなら一箇所だけにしろや

http://anond.hate labo.jp/20120118220204
2014/10/12(日) 23:53:24.92ID:Yjp86TAr
>デバッグツールが充実していない。
rubyってどんなデバッグツールがあるのか知りたい
リモートデバッグ・エディットコンティニュ・ダンプ出力・解析とか普通に出来るの?
2014/10/12(日) 23:56:17.23ID:Km5KyqRm
Rovyでは、行がカンマで終わった場合は次の行をつなげて解釈する。
2014/10/13(月) 00:28:02.58ID:N0C6z9Ad
Rovyは、
try {...} catch {...}
try {...} catch my_exception {...}
try {...} catch my_exception as MyException {...}
のいずれかで、例外を捕捉できる。tryとcatchはRovyのキーワード。
2014/10/13(月) 00:34:20.05ID:N0C6z9Ad
C++のswitch-caseに相当するRovyの制御構造は、case-by-caseであり、次のような構文である。

case by n {
case 0:
...
thru
case 1,2,3:
...
default:
...
}

case,thru,by,defaultはRovyのキーワード。
2014/10/13(月) 00:46:41.92ID:N0C6z9Ad
s/def/fn/

Rovyは任意のブロック内部に
catch:
catch my_exception:
catch my_exception as MyException:
を書くことができる。
2014/10/13(月) 00:55:25.26ID:N0C6z9Ad
s/as/@/
2014/10/13(月) 01:25:19.93ID:3SkqDiWm
・Rubyを知らないと読めないガラパゴし言語。pとputsとprintと種類がありすぎ。
・ブロックの締めがendなのでたくさんendが書いてあるだけで読みづらい。
2014/10/13(月) 02:08:57.33ID:ln8h/C8p
>>36
リモートデバグ:ruby-debug-ide + 適当なIDEで
エディットコンティニュ:これは知らない
ダンプ出力:まあLinux環境ならRubyに限らず普通にcore吐けば何のプログラムでもできるかと。
Ruby処理系自体かCで書かれた拡張ライブラリのバグ解析に使うという話になるけど
解析:動的解析であればDTraceサポートしてるので使えばいいし、
静的解析は決定版はないけど最近の流行だとrubocopかな

まあ商用の処理系に比べると弱いのは確か。
2014/10/13(月) 02:48:22.27ID:N0C6z9Ad
Enterprise Rubyは分裂工作
2014/10/13(月) 03:12:27.85ID:N0C6z9Ad
Luaの可読性を高めた言語を作ればRuby要らない希ガス
2014/10/13(月) 04:20:24.71ID:EQBky7p/
>>1のあげている欠点がそもそもRubyの捨ててる部分なだけで、Cにメタプログラミングの文法追加しろって言ってるようなもんじゃん

設計思想にある意味特化して、その他取捨選択することで有用な道具を作れるんじゃないですかね

現状、>>1の考えた最強言語なんてつくっても、誰も使わない気しか...

というわけで、糞スレです本当にありがとうございました
2014/10/13(月) 04:51:43.36ID:yJLU3TGp
>>46
満足したらもう来ないでね。
あなた無しで進行するからw
2014/10/13(月) 05:20:31.09ID:N0C6z9Ad
$/って何だ、と思ったときに検索しても出てこないというのは致命的。
やっぱちゃんとした名前付けるべきかと。
2014/10/13(月) 05:28:27.85ID:N0C6z9Ad
Rubyのcase-whenは最悪。ただ、ifやunlessやuntilなどが文の後ろに付けられるのは便利だって思った
2014/10/13(月) 05:52:07.74ID:N0C6z9Ad
SQLのバグは解決したのか?
Ajaxとの親和性は?
2014/10/13(月) 07:44:36.57ID:kbya5BRd
右に寄ってる
2014/10/13(月) 11:43:53.18ID:N0C6z9Ad
switch {
case if (a<0):
//何らかの処理
break;
case if (a==0):
//
...
}
みたいな文法が追加されないものか。

http://peace.2ch.net/test/read.cgi/tech/1412495628/54
2014/10/13(月) 12:00:37.68ID:T0FQSr2w
ruby-debug-ideってもう2.1で動くようになったんだっけ?
まあ普通はvimでコード書いて、ブレークしたくなるたびにbinding.pryをソースに書き込んで開発してんだろうな。2014年の今でも。
2014/10/13(月) 20:16:49.05ID:rP8n9z06
>>1
>RubyやVisual Basic .NET、Object Pascalは一時的に人気を獲得したが、死んでいくプログラミング言語リストの上位を占めている

VBは死なないだろ、Windowsがある限り。
2014/10/13(月) 22:16:09.66ID:RG0JLjLR
Rubyを使って書いたコードは
将来泣きながら他の言語で書き直す羽目になるだろう
2014/10/14(火) 12:58:58.70ID:i8Ho2kQi
>>48
English ってライブラリがある
2014/10/14(火) 14:48:48.02ID:ehQP27NF
>>55 そういうのは出来て3年とかいう言語に対して言うんだよw
20年も経っている言語に対してそんなこと言ってる奴はただのゴミ。
2014/10/14(火) 15:50:56.78ID:UgzSPjWh
twitterのプログラマ泣きながら修正していたぞ
2014/10/14(火) 18:19:48.77ID:yI2xaj4J
>>57
D
2014/10/14(火) 18:59:04.05ID:eeLofpk2
Rubyも最近のC++みたいに、メタプログラミングが高尚みたいな雰囲気があるから
そういうノリで作られた奴は後年は参考にするのも困難だろうな
2014/10/14(火) 20:01:42.98ID:ehQP27NF
ねーよ。
メタプログラミングは最後の手段だ(使うな、という意味ではないが)。
2014/10/14(火) 23:32:30.03ID:GNga+EHP
Rails含めて互換性の無さが酷いからな
2014/10/15(水) 07:51:01.76ID:caHw/4to
メタプログラミング用の言語を別に作って
そのメタコードがから ruby や python や C++ のコードを吐けばいい
2014/10/15(水) 08:05:12.69ID:9r2s3BnI
Pythonには、同じことをやる方法は一個だけ用意するみたいな風習があるんだっけ
Rubyはcollectとmapみたいなエイリアスが組み込み時点でいろいろあって
Railsに至ってはcountとsizeとlengthが全部あって、しかも内部動作が全く違うカオスが出来てたりするからそういうのはうらやましい
2014/10/15(水) 10:36:26.88ID:caHw/4to
>Pythonには、同じことをやる方法は一個だけ用意するみたいな風習があるんだっけ

それ都市伝説
lambda が不完全なのの言い訳
2014/10/15(水) 11:30:17.23ID:hrBmyTxM
これだろ ttps://wiki.python.org/moin/TOOWTDI

Ruby業界で言う「驚き最小」みたいなものか?
2014/10/15(水) 17:10:58.87ID:5vlaZL8F
実際使ってみると Ruby も驚きの連続な訳で
2014/10/15(水) 23:49:15.29ID:uGEsYtFz
Ruby がダメなら COBOL を使えばいいじゃない
69デフォルトの名無しさん
垢版 |
2014/10/16(木) 10:26:06.54ID:qnIoh31O
馬鹿には無理
2014/10/16(木) 15:43:30.25ID:7O3aHiya
ゴミ言語の改良は不可能だと思う。
2014/10/16(木) 20:59:42.39ID:3D8y7BnQ
a.out を手当たり次第 strip した思い出
2014/10/17(金) 01:43:16.40ID:2dsrxbSJ
mruby

アプリケーションの組み込み言語で
ホストアプリの側がC++の場合、
組み込み言語の側でもC++でコンパイルできないと
ホスト側とデータの受け渡しや整合性に問題がでてくる。

ホスト側でSTLやboostの正規表現マッチつかってて、
組み込み言語の側で別の動作してるとかだといやだなあ。

あと、長いスクリプトを組むという運用がされなければ
組み込み言語の文法が高機能かどうかって重要じゃないし。
2014/10/17(金) 04:32:03.22ID:lMkb3UyL
OSのカーネルや言語処理系は最もコード密度が高い分野。一度もソース読んだ事の無い人にとっては
理解不能な世界。組み込み用のmrubyやJavaScriptですら公開されてるソース読んですぐ理解出来る代物ではない。
だれがどのように保守するかは大きな問題。カーネルや開発者の高齢化問題も発生する。
経済が破綻すればオープンソースは資金調達や人員の確保問題で保守がどうなるか不明なところがある。
そうなると伝統的プロプライエタリなOSや言語が長期的には有利かもしれない。
2014/10/17(金) 09:38:34.76ID:miHSXPj2
確かにそうなんだろうな
2014/10/17(金) 22:28:05.19ID:XChAiDPe
Rubyは他言語を理解できないバカ専用の言語だろ?
76デフォルトの名無しさん
垢版 |
2014/10/20(月) 08:17:20.63ID:eWr20XAi
WindowsのExplorerで「やり直し」と「元に戻す」の機能がありますが
その具体的な内容が判らないので「何をやり直すのか」「何が元に戻るのか」が判りません
XPのときはSP3あたりから編集メニュー上にマウスカーソルを持っていくとステータスバーに内容が表示されていました
Windows7も編集メニューの方ではなくファイル一覧の何もないところで右クリックでコンテキストメニューを出すと
「やり直し」と「元に戻す」があってそこにカーソルを持っていくとステータスバーに出て来るようになりました
Windows8になるとまたエクスプローラーが先祖返りしてステータスバーに何も表示されません
なんでこんな糞設計のまま放置プレイなんでしょうか?
2014/10/20(月) 12:44:15.82ID:4QGk34Ml
>>76
スレ違いだけど、クイックアクセスツールバーに
戻るを追加すれば見れるように鳴るよ。
2014/10/20(月) 15:02:42.05ID:kHEfqDq0
すぐばれる嘘をつくなよ
ばかだろお前
79デフォルトの名無しさん
垢版 |
2014/10/24(金) 13:31:22.94ID:ev6RGN2+
黒魔術推奨なところ
2014/10/25(土) 17:07:58.20ID:8tQAYsJt
小さな組織が大企業を超越するという明確な意志を持たない者にRubyを使うのは難しい
81デフォルトの名無しさん
垢版 |
2014/10/25(土) 17:37:20.53ID:R7tms6/j
Ruby++になれない
2014/10/25(土) 19:42:36.61ID:8tQAYsJt
>>73
もしそうなったら、本末転倒のジョークだよね
プロプライエタリだと資金的に開発不可能になったソフトウェアであっても、
OSSならコードが公開されてるから継続的に開発できるってのがメリットなのに
2014/10/25(土) 19:57:29.94ID:mw3xL49H
ユーザなんて無能だからユーザやってるわけで
開発者が放棄したものを引き継げるわけなんかないんだよ
前提がおかしい
2014/10/25(土) 22:47:56.60ID:8tQAYsJt
別にソフトウェアのユーザがエンドユーザとは限らないんだけど
2014/10/26(日) 11:49:11.71ID:e3VIJFo+
ソフトがたタダからって
開発者がタダで開発してくれるとは
限らないんだよな。
2014/10/26(日) 13:16:20.62ID:N8Eo4pDc
そうとは限らないだけで、必要ならやってくれるんだよ
2014/10/27(月) 08:44:02.98ID:52HwiArl
最近 OpenSSL の vulnerability が次々に Open になってるのを見ると
OpenSource であることが必ずしもメリットばかりでないことは良く判る
2014/10/27(月) 10:38:02.77ID:LftTpzNV
たまたまオープンソースなだけで、そうじゃなくても同じような事になってんじゃないかな。
2014/10/27(月) 10:52:53.13ID:pOuq9Cgi
リバースエンジニアリングで穴見つけるのと、
ソース見て穴見つけるのとだと、
後者の方が捗る気がする。
2014/10/27(月) 10:56:27.81ID:LftTpzNV
それは穴を塞ぎたい人にとっても同じだよね。
2014/10/27(月) 12:52:35.79ID:pOuq9Cgi
エントロピー増大ですね。わかります。
2014/10/27(月) 22:16:22.99ID:rk7NPw+1
OpenSSLは読む気がなくなるレベルでクソなコードだったために
オープンソースでありながらクローズドな性質を持っていた
2014/10/29(水) 11:36:03.19ID:VOgtiztz
なるほど
一理ある
2014/10/29(水) 21:08:00.12ID:eAgEZIuE
脆弱性を探すみたいな作業って、地味だし、みんなやりたがらないんじゃないかな
2014/10/29(水) 21:15:24.34ID:LJBpagLw
Googleみたいに金と人あまってるところが
研究と称して穴ほじくってる感じ
2014/10/30(木) 08:44:34.09ID:vMEU4AOF
でもオープンソースの宣伝文句的には、コードがいつも衆目にさらされるから
クソコードはすぐ是正されるんじゃなかったっけ?
2014/10/30(木) 09:19:20.44ID:XUDk5/xR
昔はそうだったかも知れないが
最近はクレクレばっかりだよ
いつからこんな風になってしまったのか
2014/10/30(木) 10:36:03.10ID:PuHOpT7h
ライブラリやソフトウェアを便利に共有できるようになった弊害かもな
車輪の再発明による経験と知見の獲得の機会が減り
アリモノを利用する以上の技術を持つ奴の割合も減る
2014/10/30(木) 11:03:08.10ID:PuHOpT7h
×利用するOSSにバグがあったら報告して修正コードを送る
◯OSSにバグがあったら諦めてググった方法で迂回する

こんなイメージ
2014/10/30(木) 11:09:58.64ID:JyGsGO1i
バグを報告して修正コードを送っても老害が立ち塞がって却下するしw
2014/10/30(木) 11:39:53.86ID:XUDk5/xR
>>99 その通り
ググって違うもの探して終わりとか
文句は言っても自分で治すという発想はない
2014/10/30(木) 14:43:58.61ID:rRDOZC/7
却下される理由は別にあったりしてね
2014/11/01(土) 21:55:34.13ID:OtA6KIlR
ujとかそんな名前のクソコテ居たけどあいつどうしてるんだろうな。
自慢のrubyがこんなになっちまってw
死んだのかな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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