トップページ⇒tech
1001コメント366KB

【Python】スクリプト バトルロワイヤル47【pl,rb,php,js】 [転載禁止]©5ch.io

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2014/11/30(日) 16:37:06.44ID:5uzk+wAi
なんで誰も建てないんだよ




前スレ
【Python】スクリプト バトルロワイヤル46【pl,rb,php,js】
http://peace.2ch.net/test/read.cgi/tech/1409066255/
0002デフォルトの名無しさん2014/11/30(日) 21:51:45.85ID:bNeO5hsT
>>1 乙
0003デフォルトの名無しさん2014/12/02(火) 19:11:18.94ID:/6Huup+y
http://i.imgur.com/SduT7qR.jpg
http://i.imgur.com/2f8fP3F.jpg
http://i.imgur.com/u0ymg8c.jpg
http://i.imgur.com/LruEssT.png
http://i.imgur.com/AeSQqRT.jpg
http://cisburger.com/up/bnf/6016.jpg
http://up.pangya.tv/src/www_pangya_tv18594.jpg
0004デフォルトの名無しさん2014/12/08(月) 15:14:29.15ID:GWthvr5S
>>1
なんで必要だと思ったの?
0005デフォルトの名無しさん2014/12/08(月) 20:46:43.66ID:udv9S2ph
>>1
乙

こんなに過疎ってるということは、結論が出たということでいいのか?
結局どのスクリプトが一番になったんだ?
0006デフォルトの名無しさん2014/12/08(月) 23:05:10.80ID:G3zxmRse
>>4
このスレは隔離スレ。
他のスレが荒れるから立てる。
そういうものだ。
0007デフォルトの名無しさん2014/12/10(水) 16:16:58.93ID:q/v86HhL
ここで注意しなければいけない点が一つある。
現在メジャーな言語と 違ってRubyのブロックローカル変数はshadowingをしないのだ。
ブロックの内側でiに代入しても外側に同じ名前があればそれを使う。
だから内側でiに代入すれば外側のiの値が変わる。
この点に関しては何度も何度も「間違いやすいからshadowingしてくれ」
という文句が出てそのたびにフレーム寸前になるのだが、 いまだに結論は出ていない。
0008デフォルトの名無しさん2014/12/10(水) 19:53:50.50ID:veDvxwge
>>7
> いまだに結論は出ていない。

10年以上も前(2002年)に書かれた RHG(Ruby Hacking Guide)を引用して、
いったい何を主張したいのだろうか???(困惑)

・第8章 Ruby言語の詳細(節「ブロックローカル変数」を参照)
 http://i.loveruby.net/ja/rhg/book/spec.html
 
すでに結論は出て、Ruby 1.9 では仕様が追加されている
まったくいつものことながら、アンチ Ruby はレベルが低い
0009デフォルトの名無しさん2014/12/10(水) 22:55:56.25ID:ALqE/ik/
いやだからみんなを納得させるほどの「結論」じゃないってことでしょ
アタマ悪いなあw
0010デフォルトの名無しさん2014/12/11(木) 20:36:27.72ID:GpAyUabF
>>9
何を言いたいのかよく分からんが、>>7 で指摘されてた Ruby 1.8 の
問題(バグ)は結論が出て対策を終えている
・Ruby 2.0 ブロックローカル変数 -- Matzにっき(2005-03-09)
 http://www.rubyist.net/~matz/20050309.html#p03
この記事では 2.0 となっているが、実際には 1.9 で対策を終えた
・ブロックパラメータ(仮引数)に関する変更 -- 第3回 Ruby1.9の新機能ひとめぐり(中編)
 http://gihyo.jp/dev/serial/01/ruby/0003

Ruby 1.9 以降でブロックローカル変数に関する話題は記憶にないんだけど、
 > みんなを納得させるほどの「結論」じゃない
と主張する根拠(ソース)は何よ?
0011デフォルトの名無しさん2014/12/13(土) 00:32:10.76ID:cDWMVZ6e
Ruby1.9ってほぼ7年前だよな…
アンチはそんな前の話を引っ張りだすのか…
0012名無しさん@そうだ選挙に行こう2014/12/13(土) 20:23:50.61ID:gzcIElev
>>9
まだソースを探しているのかな?いつまで待てばいいのかな?

とりあえず「みんなを納得させるほどの「結論」じゃない」にふさわしい、
過去の状況をクロージャのスレで発掘してみたから、コピペしとくね
 http://peace.2ch.net/test/read.cgi/tech/1415419907/197
アタマ悪い自分でも、たいへん分かりやすかったです

--
調べてみると、Python のラムダ式で任意の文が書けないという問題(>>189)は、
過去に何度もネット上で話題になっていたようだね:
・Is it possible to have multiple statements in a python lambda expression? - Stack Overflow (May 14 '09)
 http://stackoverflow.com/questions/862412/is-it-possible-to-have-multiple-statements-in-a-python-lambda-expression
・syntax - No Multiline Lambda in Python: Why not? - Stack Overflow (Aug 5 '09)
 http://stackoverflow.com/questions/1233448/no-multiline-lambda-in-python-why-not
・Why doesn't Python allow multi-line lambdas? - Programmers Stack Exchange (Aug 7 '11)
 http://programmers.stackexchange.com/questions/99243/why-doesnt-python-allow-multi-line-lambdas

そして、この問題を解決すべく数多くの提案が出された:
・AlternateLambdaSyntax - Python Wiki
 https://wiki.python.org/moin/AlternateLambdaSyntax

それら提案の中には、Ruby のブロックを真似しよう(similar to Ruby's blocks)、というものまであった
・[Python-ideas] Proposal for function expressions - Grokbase
 http://grokbase.com/t/python/python-ideas/097ccjz2c3/proposal-for-function-expressions

しかし残念ながら、これ以上続けても収束しそうもないから議論は打ち切り、とGuido氏が宣言(強権発動?)して終わった
・[Python-Dev] Let's just *keep* lambda
 https://mail.python.org/pipermail/python-dev/2006-February/060415.html
この顛末をGuido氏は「複数行のラムダは解けないパズル(unsolvable puzzle)」と語っている
・Language Design Is Not Just Solving Puzzles
 http://www.artima.com/weblogs/viewpost.jsp?thread=147358
0013名無しさん@そうだ選挙に行こう2014/12/13(土) 21:52:29.24ID:mun2L3Ud
キモい
0014デフォルトの名無しさん2014/12/16(火) 16:14:56.43ID:1En3+I8i
Rubyは良い言語だが、インデントが2半角スペースという慣習があるのは好きじゃないなぁ
大クラス主義もあいまって横に短く縦に長いコードが出来上がって読みにくい

Ruby使いが_アンダースコアを_使って_長いメソッド名に_したり、
ブロックまでワンライナーにするのは右の広大なスペースを埋めたい意識からくるものとみた
0015デフォルトの名無しさん2014/12/16(火) 23:21:02.38ID:z7aLkit8
>>14
大クラス主義は標準クラスがそうなってるだけで、実際に組む人は好きにしてええんやで
0016デフォルトの名無しさん2014/12/17(水) 20:47:23.70ID:+9Ck4qiZ
PythonってAPIが基本的にプル型で綺麗に統一されてるから複数行ラムダの必要性は感じないな
Rubyみたいにコールバックまみれになるくらいなら複数行ラムダなんて要らない
思想の違いはともかく、Rubyは逆に単一式のラムダがクソだよなあ
0017デフォルトの名無しさん2014/12/17(水) 21:04:42.40ID:1SvlGPIf
Pythonに慣れた状態でRubyみたいにブロック的な書き方すると妙に楽しい感覚がある

けどあまり読みやすくないんだよね
デバッグもしにくいし...

Rubyは本人の書きやすさ、Pythonは読みやすさを重視してるようには感じるな
0018デフォルトの名無しさん2014/12/18(木) 01:43:19.85ID:yEo6hhGd
  ∧,,,∧ 
 (  ・∀・) ほー それで
  (  : ) 
  し─J
0019デフォルトの名無しさん2014/12/18(木) 07:07:53.65ID:dhoATteh
Rubyはコールバックの多用でどんどんネストが深くなるからインデント幅2だと画面に収まらなくなる
Pythonはネストが増えると非常に読みづらくなるのとブロック引数も無いのとで、
自然に呼び出し側主導のフラットなインターフェースになる
そのへんが、Pythonがバッチ処理などスタンドアロンな処理向きで
Rubyが受動的なDSLっぽい使い方に向いてると言われる違いに繋がるんだろうな
0020デフォルトの名無しさん2014/12/18(木) 21:45:53.18ID:T9e6uGP2
思想的にはRubyに賛成(多様性は善とか)
だけどPythonを使ってしまう
0021デフォルトの名無しさん2014/12/18(木) 23:49:34.96ID:Q3s7ZOJ1
Intelのガリレオやエジソン上ではrubyが普通に動くからmrubyの役目は薄くなったな。
組み込み系とデータ分析ではpythonは意欲的だしこの世界は面白い分野なんだけどrubyはWeb系に迎合し過ぎた結果出遅れてマイナスモデレートな印象はある。
(Ruby+Web系)=信者というマイナスダウなーパターンだな。本当はスクリプトは汎用的でないといけない。
rubyマニュアルも完成度は不十分だし昔のほうが理解しやすいのも痛いな。どうなってるんだろうか。

perlも含めてスクリプト言語はみな似たようなもんだから流行り廃れは差はないと思うけど
市民権を得ているが故にJavaScriptなどは廃れるときは一気に廃れるみたいな印象はあるな。かってのBASICのように。
0022デフォルトの名無しさん2014/12/19(金) 06:45:37.83ID:PUmTLpsp
PythonとRails Scriptが同格だと思ってるのは日本人だけだろ
すっかりWebの雑な文化に染まっちゃったし話題の中心も海外に移ってしまって
昔みたいにとっつきやすくて丁寧な言語というRubyのイメージは見る影もないね
0023デフォルトの名無しさん2014/12/19(金) 07:09:07.97ID:HhVLGmY7
>>22
それは外から見る人の話であって、Ruby自体は昔から基本的に変わってないんだけどね
0024デフォルトの名無しさん2014/12/19(金) 09:40:36.86ID:DKkZHFaw
Rails前提でRuby見る人間が増えただけだよなあ
0025デフォルトの名無しさん2014/12/19(金) 21:13:21.85ID:HPHvdUjT
Railsって落ち目なイメージあったんだけど、違うのか
俺はRuby派ではないが、Rubyは生き残るとは思う
0026デフォルトの名無しさん2014/12/19(金) 21:31:21.31ID:DoBbPk69
Rubyは死んでStreemにうまれかわるよ
0027デフォルトの名無しさん2014/12/19(金) 23:51:04.05ID:WpPXZLSV
Railsが落ち目なら上がり目なフレームワークがそもそもあるのか…

↓明らかにRailsより落ち目

Node.js関連…トップフレームワークが開発終了どころか、遂にNode.js本体が内ゲバで崩壊wwwww
Django…今となっては「Rails並に優れていたフレームワークのひとつ」
PHP…毎年のようによく分からんフレームワークが出てきては消えていく。Wordpressは残りそうだけど。
Java関連…言語自体がRubyに劣らず落ち目だし、フレームワークも分散気味 そもそも幾らシェアが有ろうがJavaを書いてる時点で負け組


↓明るいといえるのはこれぐらいか

Play!…意識高い()Java使いと希少種のScala使いがどれだけ増えるかによる
ASP.NET…公式がやや乱立させているがLinux対応もはじまったし流行りそう
0028デフォルトの名無しさん2014/12/20(土) 02:39:03.10ID:UrvdWPDN
Railsはいまだに新バージョンを精力的にリリースし続けてるからね
Rail3が出た時の衝撃はもうなさそうだけど
0029デフォルトの名無しさん2014/12/20(土) 08:19:39.91ID:SYn/VWgo
>>27
ttps://www.google.co.jp/trends/explore#q=%2Fm%2F0505cl%2C%20%2Fm%2F06y_qx&cmpt=q
0030デフォルトの名無しさん2014/12/20(土) 22:09:40.02ID:Hte/4WZE
Railsで捌ける程度のショボいWeb開発が需要無くなって落ち目なんだよね
フレームワークの問題じゃないでこれ
0031デフォルトの名無しさん2014/12/20(土) 22:56:08.07ID:odgp3zye
GitHubや2008年前後のTwitterよりアクセスの多いサイトって世の中にどれだけあるのか

加えて最大の負荷対策はインスタンス復数作ってロードバランサーでセッション持ち越して切り分けたりSSDにすることなんだけど、
言語やフレームワークなんてそれに比べたらゴミみたいなものだよ
0032デフォルトの名無しさん2014/12/21(日) 08:13:39.35ID:KrmABo99
Rails止めてJavaかScalaにするだけで
サーバ台数が1/2以下になるって本当ですか?
0033デフォルトの名無しさん2014/12/21(日) 08:30:21.21ID:CX1bA/sH
オープンソース系の(小規模、お金ない)ほとんどの人が"ショボイWeb開発"の方で間に合うと思うけど、
ブームは終わって淘汰される時期が来てるんだろう

ttp://www.google.co.jp/trends/explore#q=%2Fm%2F0505cl%2C%20%2Fm%2F06y_qx%2C%20%2Fm%2F02vtpl%2C%20%2Fm%2F02_qnn%2C%20%2Fm%2F0dhx5b&cmpt=q

Wordpress以外はどうなるか予見できないけど、今更PHPはねー...

俺はsinatra、bottle.pyみたいな軽量お手軽ものにシフトしておく
0034デフォルトの名無しさん2014/12/21(日) 13:07:03.85ID:1u8zO5/f
時代はPHPかJavascript
0035デフォルトの名無しさん2014/12/21(日) 19:59:28.76ID:Lo0IyhhH
>>32
嘘でーす
0036デフォルトの名無しさん2014/12/21(日) 21:56:13.75ID:DX6UP5Bm
大規模数値計算なんかだとRuby1000台動かしてもJavaには勝てないだろうな
0037デフォルトの名無しさん2014/12/21(日) 22:02:35.32ID:psTz6Rig
>>36
Rubyはそんな分野なんかハナから勝負しようなんて思ってないだろうし、別にいいんじゃね?
Javaも数値計算に向いてるとはいえないけど
0038デフォルトの名無しさん2014/12/21(日) 22:07:43.28ID:DX6UP5Bm
単純な数値計算ならJava速いよ
オブジェクト作らないように書かなきゃいけないから記述性でC++に劣るけど
0039デフォルトの名無しさん2014/12/21(日) 22:38:28.19ID:Lo0IyhhH
それでもC/C++より遅いし、C#と同じぐらいだし
Numpyより遅いベンチマークすらなかったけ
0040デフォルトの名無しさん2014/12/21(日) 22:45:36.40ID:1u8zO5/f
ところでCGI+PerlとPHPでは、どっちがつおいの??
0041デフォルトの名無しさん2014/12/21(日) 23:58:49.11ID:YWufr8fT
>>37
>Rubyはそんな分野なんかハナから勝負しようなんて思ってないだろうし、別にいいんじゃね?

ところがぎっちょん、HPC Ruby というプロジェクトがある:
  http://toro.2ch.net/test/read.cgi/tech/1382307475/347
この URL にアクセスすると人大杉らしいので、ログを貼っておく

--
347 名前: デフォルトの名無しさん Mail: sage 投稿日: 2014/01/26(日) 21:42:45.23
>>336-341
バイナリを吐き出す訳ではなくて(Rubiniusと同様に)
Rubyソースを内部でネイティブコードへコンパイルする方式であれば、
HPC Ruby(High Performance Computing Ruby)というプロジェクトがある
・ベンチマークによればJavaを越えGCCに匹敵する性能を叩き出し、
 これまでのRuby1.9(YARV)やRubinius(LLVM)と比較すれば100倍以上の圧倒的な性能
・実現技術としてはソースを静的解析して型推論で確定できた部分だけをコンパイルするもので、
 既存の高速スクリプトエンジンであれば(PyPy(JIT)というよりも)asm.js が近いと思われる
・当然、(PyPyとは異なり)フルセットのRuby仕様をサポートする一方で、
 (asm.jsと同様に)あらゆるコードが高速化する訳ではない
・作者様は日本人なので、「HPC Ruby」でググると複数の日本語情報を発見できる。たとえば:
  ・HPC Ruby: 静的解析に基づく Ruby の高度最適化コンパイラ
    http://ci.nii.ac.jp/naid/110008583419
・あまりの衝撃故か、Rubyコミュニティですら話題になることは殆どない
 この技術が本家Rubyツリーへマージされる日は、はたしてやってくるのだろうか....?
0042デフォルトの名無しさん2014/12/22(月) 00:23:34.77ID:VRBNRD9f
>>40
そこはPHPと言っておかないと暴れ出す馬鹿が居るし
Perl使ってる人間でも今CGIとして使ってる人間は少ないからもうPHPってことでいいよ
0043デフォルトの名無しさん2014/12/22(月) 07:20:59.39ID:+y3wtk/E
>>41
プロジェクトっつーか、論文な
実装もない現状でプロジェクトとは言わん
0044デフォルトの名無しさん2014/12/22(月) 07:35:56.91ID:JbUWZTgk
学生の妄想は置いといて、HPCだとノード間の同期の速さも重要だよな
Rubyだと1マシン内で複数のプロセスを走らせなきゃコアを使いきれないからその時点で極めて不利
0045デフォルトの名無しさん2014/12/22(月) 11:15:55.14ID:vmBo1gPk
シングルプロセス限る、というアングルをわざわざ設定してプロレスをやればそうだね
0046デフォルトの名無しさん2014/12/22(月) 11:59:25.70ID:yqQU7aar
えっ、PerlってもうCGIでは使われてないの?
0047デフォルトの名無しさん2014/12/22(月) 15:05:18.07ID:znWxxxfY
>>45
同期コストの話をしてるんだよ
プロセス跨ると同期コストが増える
HPCだと、ノードを跨った並列化はMPIでやるけどノード内ではOpenMP使ったりする
0048デフォルトの名無しさん2014/12/22(月) 15:37:18.34ID:VRBNRD9f
>>46
Web言語としては流石に下火な上に、毎回プロセス生成はないだろもう
0049デフォルトの名無しさん2014/12/22(月) 16:16:22.72ID:RwUgfAkQ
>>46
今はPSGIを挟んで使う。
http://ja.wikipedia.org/wiki/PSGI
0050デフォルトの名無しさん2014/12/22(月) 17:39:50.22ID:vmBo1gPk
今時のHPCでそんなにノード内にこだわるのか
0051デフォルトの名無しさん2014/12/22(月) 18:37:02.06ID:JbUWZTgk
今時もクソもHPCなんか未だにFortranがバリバリ現役で動いてるような超保守的な世界だよ
0052デフォルトの名無しさん2014/12/22(月) 20:53:33.26ID:vmBo1gPk
と頑張ったところで、1ノードのスパコンなんていう化石をいまだに運用してるほど保守的な所は無いしな
0053デフォルトの名無しさん2014/12/22(月) 23:21:11.30ID:FwtQf1Dq
Pythonって文字列に変数埋め込めないの?
ルビーとかPHPみたいに
"$a"みたいなやつ
C#のstring.Format的なのは見つかったけどさ。イライラしないの??
0054デフォルトの名無しさん2014/12/22(月) 23:49:20.40ID:vmBo1gPk
PHPのはそもそも謎仕様過ぎるし、Ruby のは "foo#{expr}bar" の expr になんでも書けるので
パーサが大変なことになってる。Python は % 演算子でだいたいの用は足りると思うが。
0055デフォルトの名無しさん2014/12/23(火) 00:08:02.46ID:VeD/Sus8
'{a}'.format(**locals())
0056デフォルトの名無しさん2014/12/23(火) 12:17:08.86ID:c9ex9EMG
>>46
ギャグで言ってるのか?w
perl大好きな初めてのperlみたいなラクダ本でも、
CGIのCの字も出てこないぞ。

phpはwordpress専用のDSL言語(キリッ)
0057デフォルトの名無しさん2014/12/23(火) 12:43:43.43ID:pWRQK/2A
DSL言語って、RAS症候群だな
0058デフォルトの名無しさん2014/12/23(火) 16:20:24.86ID:BQHHJ9UZ
>>56
ラクダ本は初めてのperl的な本ではなくね?w
0059デフォルトの名無しさん2014/12/23(火) 18:11:03.07ID:c9ex9EMG
>>58
リャマ本だったw
ラクダ本はラリーが書いたプログラミングperlだったわ。

>>57
DSLだったわ。

2つも間違えるとは、これは恥ずかしいw
0060デフォルトの名無しさん2014/12/27(土) 08:45:58.92ID:XBIQMIzH
python3とruby2の速度比較記事ってどこかに無いですか?
0061デフォルトの名無しさん2014/12/27(土) 09:04:29.03ID:kjN3kdaX
そんなもん無意味だろ
スクリプトがボトルネックになる時点で負け、無能、ゴミ設計
0062デフォルトの名無しさん2014/12/27(土) 22:51:03.24ID:dSw+At/c
速度が無意味だとは思わんが。。。

模範的な回答をすると、

ググる → 見つからないなら自分で計測する → 公開する
0063デフォルトの名無しさん2014/12/27(土) 23:03:01.67ID:randw1SU
C/C++で書かれたライブラリの使用は禁止とか言い出して
良く分かんなくなる予感
0064デフォルトの名無しさん2014/12/28(日) 04:38:18.21ID:eItugvHw
基本的にスクリプトの速度は

v8 > pypy > PHP > Ruby

という認識でいいと思う


どちらにしろJavaC#に比べたら10倍は遅いし、C/C++に比べたら100倍は遅いんだけどね
0065デフォルトの名無しさん2014/12/28(日) 08:40:51.28ID:fKzSeI49
>>62
スクリプトの実用性は
「アプリケーションコードの実行コストはIOに比べて無視できる」
という大前提に基づいており、それを覆したベンチマークは無意味
そして、インタプリタが少々速くなったところでその前提の適用範囲はほとんど広がらない
0066デフォルトの名無しさん2014/12/28(日) 08:53:32.86ID:fKzSeI49
あと、スクリプト言語が実用的なもう一つのケースとして
「運用コストに比べてスクリプトを書く手間が無視できない」というのもあるね
ちょっとしたバッチ処理がこれに当てはまるけど、そういうのはPythonやPerlが圧倒的に多く使われてるからRubyと比べるまでもない
0067デフォルトの名無しさん2014/12/28(日) 10:32:10.58ID:Qp+wk5Fp
>>64
pypyじゃなかった場合、その例の中でPythonはどのあたりに位置するのですか?
0068デフォルトの名無しさん2014/12/28(日) 12:13:44.24ID:Q6eIHDpi
Cythonが最強
0069デフォルトの名無しさん2014/12/28(日) 12:29:05.81ID:lHLjVUEs
Cythonが出すコードには無駄が多過ぎるけどね…
おかげでちいとも速くならん…
0070デフォルトの名無しさん2014/12/28(日) 13:06:53.43ID:3LJw2T5C
>>67
おおむね、jruby > ruby > python だと思うお。
http://www.mk-mode.com/octopress/2014/11/21/benchmark-c-cpp-m-java-scala-ruby-python/
0071デフォルトの名無しさん2014/12/28(日) 13:17:24.60ID:fKzSeI49
こういう数値計算処理だと普通のPythonはnumpyやらscipyやら
超強力なライブラリが揃ってるから実際には圧勝だけどね
うまく行列演算に乗せられれば並のCより圧倒的に速い
0072デフォルトの名無しさん2014/12/28(日) 14:42:33.35ID:sqWp1609
>>69
低脳自慢されてもね…
0073デフォルトの名無しさん2014/12/28(日) 18:49:56.97ID:SJYHrnZm
なるほど、こっちはちゃんと無駄が多いと根拠を述べてるのに
相手を貶めれば自分が偉く見えると勘違いした厨房が一行
レスで口出しか…
冬休みとかほんと困ったもんだな…
0074デフォルトの名無しさん2014/12/28(日) 19:01:49.97ID:Eafaqxl6
型指定を1ヶ所忘れただけでビックリするぐらい遅くなるから、
-a 等で出力されるコードをチェックしないとダメだな
でも最強
0075デフォルトの名無しさん2014/12/28(日) 19:05:10.20ID:u5CfFmoy
それはもはやPythonじゃないだろ
C言語のPython風マクロ
0076デフォルトの名無しさん2014/12/28(日) 19:13:48.88ID:u5CfFmoy
MRIやCPythonもちょっと頑張れば今より速くするのは難しくないけど、
修正や機能追加が困難になるから余計な最適化はしない
現にIronPythonやらJRubyやらpypyやら速い処理系が現れても本家のバージョンアップに追いつけずに脱落していってる
JavaScriptが速いのは仕様が固まってるから
0077デフォルトの名無しさん2014/12/28(日) 22:43:36.05ID:c2NtJF+h
luaは?
0078デフォルトの名無しさん2014/12/29(月) 13:29:25.14ID:F80VhFN4
>>73
無駄が多いコードしか吐かせられない低脳乙
0079デフォルトの名無しさん2014/12/29(月) 21:46:13.59ID:UFf/JXLF
ちょっとボキャブラリーが貧困過ぎるからマジモンの厨房かもしれんな…
0080デフォルトの名無しさん2014/12/29(月) 23:45:32.05ID:JC+ZO+gQ
luaって、なんであんな速いんだ
0081デフォルトの名無しさん2014/12/30(火) 00:12:12.37ID:39ECbyHQ
>>80
スタックマシンだからかな。
forthも早い。
0082デフォルトの名無しさん2014/12/30(火) 04:03:30.52ID:8nm/692r
Python,JSには、Local,Global変数の2つしかないけど、

Rubyにはブロック変数もあるので、大規模開発によい
0083デフォルトの名無しさん2014/12/30(火) 08:01:47.52ID:EqbbI1Ly
luaのライブラリ数ってpythonとかに比べてどれくらいなんだろ

シンプルそうだしコルーチン使えるし、好みなんだけど。。。
0084デフォルトの名無しさん2014/12/30(火) 08:19:43.18ID:dxBK7ujR
>>80
実装がコンパクトになるように設計されているし、
PythonやRubyみたいに頻繁な仕様変更もないから最適化が容易
>>82
PythonもJSも関数をネストすれば同じだろ
>>93
LuaはホストアプリケーションがLuaに対してAPIを公開するもので、
いわゆるライブラリとは考え方が違うよ
ホストに組み込まれたC/C++のライブラリを使う
0085デフォルトの名無しさん2014/12/30(火) 08:56:26.89ID:2N8ukwcn
>>81
Luaはレジスタマシンだよ。 例えばローカル変数は256本のレジスタに割り当てて
スタック操作なしに直接参照できるけど、ブロックの変数は最大で256個。

>>70 のベンチを Lua にかけてみた。 すべて 64bit 版。
- C (vc2013) : 2.7560 secs.
- C++ (vc2013) : 2.7420 secs.
- Lua (5.3rc2) : 211.8460 secs.
- Ruby (2.1.5) : 311.0818 secs.

正直、関数呼び出しのウェイトが高すぎる気がする。あくまでも指標の一つだね。

---- Lua版
local os = require("os");

local function calc(s, n)
 local n1 = s.n0 + (1 - 2 * (n % 2));
 s.n0 = n;
 return n1;
end

local n = 1;
local objBench = { n0 = 0 };
local t1 = os.clock();
for i = 0,2147483647 do
 n = calc(objBench, n);
end
local t2 = os.clock();
print(("Lua\t-> %8.4f secs."):format(t2 - t1));
0086デフォルトの名無しさん2014/12/30(火) 14:05:59.39ID:CXcTj8nU
>>70 のベンチを Cython でやってみた(gcc 4.8.3, Python 3.4.2, Cython 0.21.1)
- C -> 6.1558 secs.
- Cython -> 12.8584 secs.


http://ideone.com/ltQvdF

上記リンクのコードをbenchp.pyxというファイル名でコンパイルした後、
以下のPythonスクリプトで実行

import benchp
benchp.main()
0087デフォルトの名無しさん2014/12/30(火) 18:28:45.55ID:eNQiYa8A
だからPythonさんに本気を出させるなとあれ程…
0088デフォルトの名無しさん2014/12/31(水) 00:47:24.52ID:la3HT0Od
Cythonスゲェ
なんでRubyとか真似しないの?
0089デフォルトの名無しさん2014/12/31(水) 02:06:53.48ID:A/ir56Zb
ruby はC言語の呼び出しは超簡単じゃん。もともとCythonの状態じゃないの?
ただ、jruby もあるから、ruby系言語の間で互換性がなくなる。
jruby はjavaの呼び出しが出来る。jruby はJVM言語同士で
やりとりできる。clojureとの連携はカッコイイが、clojureが分からんwww
jruby はluaよりちょっとだけ遅い程度のスピード。
ruby はなんでもruby3系でソフトタイピングだかで、静的型とは違う
型システムを導入するそうだ。
0090デフォルトの名無しさん2014/12/31(水) 02:15:55.21ID:A/ir56Zb
ruby3系でのソフトタイピング

http://gihyo.jp/news/report/01/rubykaigi2014/0002?page=2
ソフトタイピングはコードを静的に解析していき,「この式はこういう処理が
行われているため,こういう型を要求しているに違いない」と分かる範囲内
で型推論を行う技術だそうです。
0091デフォルトの名無しさん2014/12/31(水) 08:15:17.60ID:hdc5xxSi
>>89
> ruby はC言語の呼び出しは超簡単じゃん。もともとCythonの状態じゃないの?

CLも型を書いて高速化できるけど、そういうのとC言語で書いて呼び出すのは
全然違うでしょ
それにlibffiが普及して以降、RubyだけがC言語の呼び出しが得意な言語ってわけじゃ無くなったし
0092デフォルトの名無しさん2014/12/31(水) 10:23:27.44ID:HKxQ236G
>>85
Haxeを追加。 Cythonと同じくソース変換型のコンパイラ。
http://ideone.com/6IFXSG

- C (vc2013) : 2.7560 secs.
- C++ (vc2013) : 2.7420 secs.
* Haxe (cpp) : 5.8569 secs.
* Haxe (neko) : 181.2250 secs.
- Lua (5.3rc2) : 211.8460 secs.
- Ruby (2.1.5) : 311.0818 secs.

neko vm もかなり速い。 品質と周辺環境次第では良さげかも
0093デフォルトの名無しさん2014/12/31(水) 11:45:14.64ID:A/ir56Zb
>>91
基本、C言語かJava かどっちかはそこそこ出来るのは普通だからねぇ。
ただ、俺もJava はそこそこ分かるけどC よく分からんので
jruby 使うんだけど、もし部分的に Javaで書いちゃうと(それはそれは面倒だが)
ruby では使えないコードになっちゃうのでそこはやっぱり残念。
ruby とjruby 共通の高速化ツールがほしいとは思う。
今後取り入れられる予定のソフトタイピングで多少よくなってほしいが、
実はあんまり期待してない。
ruby jruby 共通で呼び出せる ruby ライクな型付スクリプト言語がほしい。
mirah を正式なrubyのツールに格上げすればいいのに。
0094デフォルトの名無しさん2014/12/31(水) 14:06:02.03ID:/vIALUin
RubyはWeb系がほとんどだから、一部JavaやC++で書いて高速化したいとなれば
サーバーごと分けてしまえという発想になるからそういうのあんまり重要視されないんだろうな
0095デフォルトの名無しさん2014/12/31(水) 15:18:04.11ID://62RoNN
>>41

Rubyは最近、大学教育用言語としての利用を視野に入れ始めて、
数値計算関係のライブラリの開発が活発になっているね。
Rubyで行列扱えるようになるとうれしい。

言語は使う人少ないと結果として発展が遅くなるから、みんなとにかく使え。
0096デフォルトの名無しさん2014/12/31(水) 16:09:16.23ID:NQSYJ4L5
Ruby は勘弁して
0097デフォルトの名無しさん2015/01/01(木) 00:53:45.80ID:H2ixpTt9
Ruby使うくらいならJulia使うわ
0098デフォルトの名無しさん2015/01/01(木) 01:24:51.23ID:uzThg612
Juliaは初動が遅いんだなぁ
0099デフォルトの名無しさん2015/01/01(木) 01:32:12.47ID:Wi9wS34I
Julia は科学計算に強いんでしょ。
それぞれ得意とする分野は違うからなぁ。
Ruby に限らないけど、スクリプト言語は文字列処理が中心だから。
といっても、html はもちろん xml や dviや pdfや svgとかも文字列だけど。
なんでも RubyからR言語を使うという本を見たら csv でやりとりしてたとか。
それも文字列だなwww
0100デフォルトの名無しさん2015/01/01(木) 10:57:00.52ID:dlaa3g2E
Rubyが文字列に強いというより、文字列くらいにしか使うところがないってことだけどな
文字列操作は性質上IOがネックになる場合が多いし、
他の言語とやりとりしやすいから構文解析とか難しいところは外に投げればいい
0101デフォルトの名無しさん2015/01/01(木) 11:48:37.74ID:X6l5zywi
juliaとpythonどっちが良い?
0102デフォルトの名無しさん2015/01/01(木) 12:13:52.64ID:Wi9wS34I
ruby かpythonの中でjulia の構文組み上げさせて、
外部コマンドで juliaに投げる方がいいかも・・・
科学技術計算しかほとんどしないってんなら juliaでいいかもだけど、
汎用機能があるっていっても、チラッと見た限り頭クラクラしそうだし、
ruby かpythonの関数の中に隠してしまいたいなぁ、俺なら。
0103デフォルトの名無しさん2015/01/01(木) 12:17:07.61ID:Wi9wS34I
>>100
最強の文字列はプログラムそのものだよね。
苦手な言語のプログラムそのものを ruby なりpythonで
組み上げさせればラクできるかもしれない。場合によっては。
0104デフォルトの名無しさん2015/01/01(木) 12:31:49.61ID:Wi9wS34I
例えばの話、Java ならヒアドキュメントさえない。
もうそれだけで死ねる。
0105デフォルトの名無しさん2015/01/01(木) 16:13:47.01ID:JiexzDrF
Juliaの構文組み立てて外部コマンドで実行するくらいなら
Cの構文組み上げてコンパイルしてリンクした方がマシ
0106デフォルトの名無しさん2015/01/02(金) 11:26:37.46ID:IoOUqeRO
>>105
つまり……
Cython!!!!
0107デフォルトの名無しさん2015/01/02(金) 20:04:48.56ID:BirRPLsl
RもJuliaもpythonがあればいらんな
0108デフォルトの名無しさん2015/01/02(金) 21:02:30.96ID:q+f+jv8M
python、文法がruby ほどエレガントじゃないじゃん。
0109デフォルトの名無しさん2015/01/02(金) 21:13:11.31ID:2SopZcG5
Rubyがエレガント? 具体的に差を示してよ
0110デフォルトの名無しさん2015/01/02(金) 21:24:22.83ID:q+f+jv8M
each からブロックとかさ。
python3系ではどうだか知らんが、俺がptython やってたころは
オブジェクト指向さえあと付け感ありありだった。
0111デフォルトの名無しさん2015/01/02(金) 21:32:56.16ID:DH7mYziM
なんで解り難くなる事をわざわざエレガントとかいう言葉で濁さなきゃならないの?
0112デフォルトの名無しさん2015/01/02(金) 21:47:44.14ID:q+f+jv8M
要するにさ、ruby で全要素から各要素をぶん回すんだけど、
そことき、each やら ブロックならでやりたい放題できる。
python は なんだっけ elem in elements みたいな感じで(書き方忘れたよ)
取り出すんだけど、そっから先になんか制約あるんだよな。
ruby のように自然にやりたい放題というわけにいかない。
python3 は知らないので、そのあたり改善されたかは知らない。
0113デフォルトの名無しさん2015/01/02(金) 22:04:20.23ID:2SopZcG5
Python の iterator, generator, list comprehension を知った上での発言なんだろうか?
コレクションに関数オブジェクト(ラムダ式、ブロック)を渡すのか、
外側のループからコレクションからの列挙子を使うのか、大きく分けて2種類のデザインがある。
Rubyは前者を、Pythonは後者を好むだけに思えるがね。
0114デフォルトの名無しさん2015/01/02(金) 22:11:39.32ID:q+f+jv8M
違う。違うんだ。
なんかねぇ、1行しか出来ないんだよ。
ruby のブロックとかと自由度が全然違う。
ラムダとかprocとかそういう話まで行く前の話。
そこまでいったら、遅延評価とかどうやるかとかの
話までいくし。ruby はここでもいろいろある。
ああ、あと python3 での話は知らない。念のため。
0115デフォルトの名無しさん2015/01/02(金) 22:22:36.26ID:q+f+jv8M
あと、ruby で各要素をぶん回しているとき、
外の変数にも中からアクセスできる。遮断することも
できる。僕がpython 触ってたのは 2.5か2.6くらいの
ときだったかな。ruby はすごい自由だなと思った。
0116デフォルトの名無しさん2015/01/02(金) 22:48:12.45ID:UoXQYS7H
Pythonはプログラマの自由を制限して画一的で可読性と保守性の高いコードを書かせるというコンセプトの言語だ
だからこそ大規模な開発でも使用される
また、Excel方眼紙に代表されるように、ジャップは論理性を無視してクソ細かいレイアウトに拘りがちだが
向こうの人は細かいことを気にせずに論理的に書いてレイアウトは機械に任せるようなやり方を好む(TeXとかWordのアウトライン)
その違いがRubyとPythonの違いにも表れてるわけだね
0117デフォルトの名無しさん2015/01/02(金) 22:50:07.68ID:DH7mYziM
で、どっちが勝ったの?
0118デフォルトの名無しさん2015/01/02(金) 23:04:39.10ID:Obk5blUL
Rubyはメソッドチェーンで補完バリバリというメリットはある
REPLやら書き捨てるようなものだと非常に重宝する
0119デフォルトの名無しさん2015/01/02(金) 23:24:47.18ID:Wdw9kQqY
俺はRubyの自由度は好きだけど、Pythonの内包表記はRubyにも欲しいなーと思ったりするよ
あれ使えるようになってくると、Pythonも案外画一的じゃないなーと思うw
0120デフォルトの名無しさん2015/01/03(土) 00:02:06.75ID:x6OMspk0
「Pythonのクロージャはキャプチャ変数を変更できないのが気に入らない」
というなら理解できる。 その代わりに
「Rubyは自由だ」
と言う表現を使われると、非情にキモチワルイ。
0121デフォルトの名無しさん2015/01/03(土) 00:13:45.12ID:ZfusUSn5
いま、RubySpec がRubinius の人がブチ切れて廃止されたと知った。
おいおい、えらいこっちゃ。
僕は Javaがそこそこ分かるから jruby 使ってるんだけど、
今後の ruby 処理系の互換性確保はどうなるんだろ。
まあ、みんなが勝手に Cruby に合わせた test作るって感じになるしかないか。
Rubinius の人、切れやすいんだよねwww
0122デフォルトの名無しさん2015/01/03(土) 00:19:41.63ID:C22WgX+v
互換性もクソもMRI以外のRubyのユーザーなんて無視しても全く問題ない程度だろ
今も昔もMRIが唯一の実装であり仕様
0123デフォルトの名無しさん2015/01/03(土) 00:27:44.53ID:ZfusUSn5
c言語はよく分からんが、Java ならそこそこ分かるから jruby を
使う俺の立場はいったい・・・
とはいえ、ruby2.2 がRubySpec 通らんのに出すなよ、ゴラァ
という話じゃないん? よく分かってない。
0124デフォルトの名無しさん2015/01/03(土) 00:41:37.97ID:ZfusUSn5
RubySpec の件、
Java の互換性テストが廃止されたようなもんだからな。
一番困るのは、Cruby の過去の動作との互換性のチェックが
なくなること。Cruby は過去の動作がどうであったかのチェックなしに
あっちふらふら、こっちふらふらの動作となる可能性高し。
まあ、いままでもそうだったが。
Java8 が Java7 と互換性ない場合、どうなるかという話。
自身の過去の動作との互換性検証が・・・、破綻。
0125デフォルトの名無しさん2015/01/03(土) 00:57:50.41ID:ZfusUSn5
なんか、RubySpec、百箇所ぐらい通ってなかったらしい。
要するに、過去の動作とそれだけ食い違ってたという話。
今後が怖い。
0126デフォルトの名無しさん2015/01/03(土) 01:00:10.48ID:ZfusUSn5
思いつきで、その場で仕様を変えてしまう。
その途端、新バージョンでは過去のコードは走らなくなるかもしれない。
困ったものだ。
0127デフォルトの名無しさん2015/01/03(土) 01:04:38.29ID:ZfusUSn5
Ruby開発者が使わないので「RubySpec」開発終了
http://www.softantenna.com/wp/unknown/ruby-spec-end/
0128デフォルトの名無しさん2015/01/03(土) 01:37:45.07ID:4e+tzVBF
>>126
どの言語でも同じだよ。
その為のバージョン表記なのでチェック入れてもらうしかない。
0129デフォルトの名無しさん2015/01/03(土) 01:43:13.85ID:ZfusUSn5
そうかなぁ。
同じ名前のメソッドは、同じ動作をするべきじゃないの?
変更しますと宣言したのでないかぎり。
たとえば、Java7 のコードは Java8の vm上で走らないなどとは
誰も思わないはず。明確に宣言された仕様変更に触れない限り。
0130デフォルトの名無しさん2015/01/03(土) 02:43:23.75ID:fziQOJOK
Rubyは前からそうじゃん
0131デフォルトの名無しさん2015/01/03(土) 03:07:56.70ID:ZfusUSn5
>>130
そうなんだよね。哀しいことに。
いまは RubySpecがあったので、どれくらい『その場の思いつき』で
過去と動作を変えてしまったかが、テスト通らないという形で
ハッキリ分かっただけで。
結果、過去のコードが動かないということに。
0132デフォルトの名無しさん2015/01/03(土) 03:54:46.18ID:4e+tzVBF
「どの言語でも同じ」ってのは言いすぎだったので撤回するけど
pythonなんかも同じでしょ
ようやく周知されたブランドを捨てて
一からやり直すってのは酷だから
メジャーアップデートで後方互換を捨てるってのはざらにあるよ
0133デフォルトの名無しさん2015/01/03(土) 08:21:54.34ID:x6OMspk0
× どの言語でも同じ
○ Rubyの品質は糞

周囲をDisって擁護するのは止めてくれ
0134デフォルトの名無しさん2015/01/03(土) 08:29:39.02ID:C22WgX+v
Rubyはそんなもんだろ
たまたま今の実装ではそのように動くというだけのこと
仕様なんかどこにもMatzの頭の中にさえ存在しないんだから
0135デフォルトの名無しさん2015/01/03(土) 08:36:55.31ID:BqvoNGde
>>132
おいおい
何も知らなすぎ 撤回しろ

Rubyだけの問題だろ
0136デフォルトの名無しさん2015/01/03(土) 08:49:40.58ID:C22WgX+v
Pythonは保守的だよね
だからこそ、破壊的変更を入れようとすれは丸ごと別言語にしてしまうしかなかった
Rubyは今や立派な一大ドカタプラットフォームなのに、MRI開発陣は昔のノリから変わってない
0137デフォルトの名無しさん2015/01/03(土) 09:22:14.99ID:GfFN59Kr
ドカタプラットフォームはRubyというかRailsの話じゃね?
0138デフォルトの名無しさん2015/01/03(土) 09:34:27.81ID:C22WgX+v
MRI以外のRubyを無視できるのであれば、Web以外のRubyの用途も十分無視していい程度だろう
0139デフォルトの名無しさん2015/01/03(土) 09:44:34.29ID:GfFN59Kr
Web以外を無視するならWebProgでどうぞ
0140デフォルトの名無しさん2015/01/03(土) 09:55:38.05ID:LTCoqF4Z
ヒューストンて難しいのか
0141デフォルトの名無しさん2015/01/03(土) 10:36:40.76ID:2FQDAXp5
CRuby開発者達の本音

「RubySpecに協力してCRuby開発者に何のメリットがあるわけ?
受益者であるJRubyやRubiniusの開発者が勝手に頑張れば?
まあ俺等は思いつきで仕様変更するけど告知はしないから頑張ってテスト直せよwww」
0142デフォルトの名無しさん2015/01/03(土) 10:40:46.71ID:ZfusUSn5
RubySpec の暴きだしたことは、他の実装と互換性のことじゃないよ。
過去のCRuby 自身との互換性のなさ。
最新のCRuby では、過去のCRuby のコードは走らないかもしれない。
明確な仕様の変更が宣言されていない部分の互換性のなさで、ということ。
0143デフォルトの名無しさん2015/01/03(土) 10:48:25.98ID:2FQDAXp5
過去のCRubyとの互換性の無さを暴かれるのも
テキトーに仕様変更かますCRuby開発者にとっては都合が悪い
RubySpec消滅は彼らにとっては嬉しいだろう
0144デフォルトの名無しさん2015/01/03(土) 11:13:27.86ID:ZfusUSn5
言語が進歩していく過程で、仕様変更は避けられない部分は
あると思います。
Java だってある程度の仕様変更をしてきたわけで。
けれども、仕様変更を明確に宣言することなく、『その場の思いつき』で
やっちゃダメですよね。
それやったら、過去に書かれたコードが走らなくなるかもしれないんだから。

そういう意味で、RubySpec はやはり貴重な存在です。
CRuby がいかにテキトーに『その場の思いつき』で仕様変更しているかを
これ以上ない形で示してくれたんだから。
なんとかして RubySpecを今後も維持していってほしいものです。
Ruby のために。
0145デフォルトの名無しさん2015/01/03(土) 12:48:55.83ID:Ugze3nnn
RubySpecが「MRIの挙動を監視する」以上の意味を持たない以上、
RubySpecを維持する(=MRIに合わせてテストを修正し続ける)のは
MRI開発陣へ「我々は容易に仕様変更に追従できる」という誤ったメッセージを与え、
MRIの勝手な仕様変更を助長することにしかならないよ
0146デフォルトの名無しさん2015/01/03(土) 12:59:45.09ID:ZfusUSn5
>>145
だからって、カオスがいいって話にはならんでしょ。
少なくとも、仕様変更の明確化にはなる。

いまの問題は、仕様変更の明確な宣言なしに思いつきで仕様を変えてしまっているってことだから。
RubySpec の変更が仕様変更の条件としておけば、それの更新履歴によって、
なにをどう変えたのか他人にも分かることになる。

なにしろいま、どこをどう変えたのか、
思いつきで変えた本人以外、誰も知らないという状態だから。
0147デフォルトの名無しさん2015/01/03(土) 13:01:52.95ID:ZfusUSn5
>>146
ああ、そうか。
だから、git に移行せよ、という話になってるわけだ。いま分かった。
0148デフォルトの名無しさん2015/01/03(土) 14:33:44.47ID:noPSPcOO
開発版がコケるテストが追加されたときに
互換性を破壊した側がテストを書いた側を責める
それがMRI開発陣クオリティ
0149デフォルトの名無しさん2015/01/03(土) 17:29:43.85ID:aK+7Exlv
>>146
だったらRubySpec開発者はバグ報告をMRIに上げればいいだけなんじゃ?
ここはこんな仕様変更が入ってるけどどういうことなんだ?と

その上で「ごめん、実装上の都合」と言われたんならいくらでもキレたらいいけど、
それもしてないのにただ「俺らがこんないいもん作ってんのに使わないとは何事だ」と
言ってるだけなら「んなもんそっちで勝手に作っておいていちゃもんつけんなよ」と
なるだけだろうに
0150デフォルトの名無しさん2015/01/03(土) 17:34:30.72ID:ZfusUSn5
>>149
過去のバーションとの動作の互換性の検証はどうすんのさ。
いま問題になってるのは、明確な変更の宣言もなしの動作の変更は
マズイでしょ、て話じゃないの?
過去に書いたコードが動かなくなるかも、という問題だからね。
RubySpec なしでは、そもそも動作の互換性の検証が出来ないでしょ?
思いつきの仕様変更は弁護出来ないと思う。
0151デフォルトの名無しさん2015/01/03(土) 17:40:20.64ID:aK+7Exlv
>>150
だから、バグ報告すりゃいいじゃん
MRIにはバグ報告の窓口があるんだからさ

RubySpecっちゅー超いいもん作ってバグ報告してあげるなんて、ボランティアベース満載で
オープンソースぽくていいじゃん
0152デフォルトの名無しさん2015/01/03(土) 17:47:04.48ID:ZfusUSn5
RubySpec の現在の位置づけがよく分からないんだよな。
(いま見たら、ホントにもう閉鎖されてたwww)
Java の互換性テストと同じ位置づけじゃなかったの?
だから、互換性テストは一つ。(であるべき。いくつもあっちゃダメ)
CRuby(MRI)、JRuby、Rubinius は(その他も)すべてこのテストを
互換性のチェックに使う。
仕様の変更は、RubySpec の変更をともなう。
というのが建前のはずだったと思うんだが・・・

現実はまったく違った。最新の公式Ruby2.2 はテストに不合格www

もともとどういう位置づけだったんだ? 公式の互換性キットじゃなかったの???
0153デフォルトの名無しさん2015/01/03(土) 17:48:46.47ID:7oFSdzeu
バグ報告して冷たくあしらわれるより、今回の様に問題提起した方が
いい加減な開発体制に由来する互換性問題が分かって
良かったと思う
0154デフォルトの名無しさん2015/01/03(土) 17:55:56.77ID:ZfusUSn5
Ruby のこの状態を考えると、
やっぱ Javaて偉大だな。信頼感が月とスッポン・・・ www
0155デフォルトの名無しさん2015/01/03(土) 18:05:28.78ID:ZfusUSn5
もうホントに RubySpec 閉鎖されてるよ。
MRI で引き取ってやるしかないんじゃないの???
でないと、ホントにそのまま廃止だよ。
Java が互換性テストなくなったら、Java はたぶん破滅する。
同じことだと思うけどな。
0156デフォルトの名無しさん2015/01/03(土) 18:21:18.88ID:aK+7Exlv
>>152
https://gist.github.com/nateberkopec/11dbcf0ee7f2c08450ea

Brianが目指したものは良かったんだけど、その手法がところどころ間違っていたり、Brian自身が
エキセントリックだったりしてRuby界には受け入れ難かった、ということろかな
0157デフォルトの名無しさん2015/01/03(土) 18:31:53.90ID:7oFSdzeu
>>156
少し流し読みしたけど、最初の方に
「Rubyに仕様が無いというのは間違い。ISO規格がある」
とか書かれてて吹いたw
あれは所詮1.8のサブセットでしょ

これ読む価値あるの?
0158デフォルトの名無しさん2015/01/03(土) 19:45:51.86ID:ZHoaygaC
>>155
JavaはIBMのJVMがAIXでバリバリ動いてたりして、ヘタすりゃ一国の経済に大きく影響するようなシステムもザラにあるわけで
それとRubyを一緒にするなよw
MRIもたいがいオモチャみたいなもんなのにその互換実装なんてほんとどうでもいい
0159デフォルトの名無しさん2015/01/03(土) 20:04:03.43ID:ZfusUSn5
てーか、なんで CRuby (MRI)のテストに
RubySpec 使わんのよ? それが分からん。
それぞれが互換性テストを勝手に作ったら、
それはもう互換性テストにならん。

互換性テストの種類が二つ = 仕様が二つ
互換性テストの種類が三つ = 仕様が三つ

互換性テストの意味がない。当たり前の話だと思うんだが。
0160デフォルトの名無しさん2015/01/03(土) 20:11:41.81ID:ZHoaygaC
いやそもそもMRIにとっては互換性テストじゃないから。
MRIの仕様を確認して、他の実装がそれを真似するためのテストだから。
MRIがそのテストに通らないってことはテストが間違ってるの。
仕様=テストであるならRubyの唯一の仕様はMRIのテスト。
互換実装を作ってる連中は文句垂れてないでMRIのテストを使用すればよい。
0161デフォルトの名無しさん2015/01/03(土) 20:24:52.31ID:ZHoaygaC
MRIはMRIのテストをパスしている
MRIがRubySpecをパスしないということは、
元々MRIのテストに含まれていない(=未定義)挙動を誤って仕様としていたか、
もしくはMRIのテストが変更されたということ
MRIのテストの変更は即ち仕様変更であり、テスト変更は実装変更とは違って誰の目にも明らかだ
どちらにせよ、「MRIが互換実装開発者の与り知らないところで勝手な仕様変更を行った」という批判には当たらない
MRIのテストが不十分であるというRubinius開発者の主張を信じるなら、責められるべきはRubuの仕様変更ポリシーではなく
テストの品質だ
0162デフォルトの名無しさん2015/01/03(土) 20:26:18.09ID:ZfusUSn5
>>160
では、その MRIのテストを改めて RubySpecと名付けなさいよ。

いずれにしても、互換性テストはJava と同じく絶対に一つじゃないといけないよ。
互換性テストが複数あったら、それは仕様が複数あるのと同じだから。
0163デフォルトの名無しさん2015/01/03(土) 20:30:58.20ID:ZfusUSn5
なんでもいい。
互換性テストは一つにしてくれ。互換性テストが複数あっちゃダメだ。
でないと、Ruby の仕様が一つにならん。

結論。 Java はなんて偉大なんだ!
0164デフォルトの名無しさん2015/01/03(土) 20:35:18.48ID:2FQDAXp5
>>161
Ruby2.2でRubySpec走らせるとSegmentation faultになるんでしょ?
MRIが仕様っていうのは良いけど、かつて動いてたコードが
落ちるような仕様変更して「仕様です」ってカッコ悪いねw
0165デフォルトの名無しさん2015/01/03(土) 22:45:56.34ID:aK+7Exlv
>>162
RubySpecはRuby公式の互換性テストを目指したけどなれなかった
それだけの話だよね

それをRubySpecを閉鎖においやったRuby開発陣はクソだというのは違うんじゃね?
RubySpecがRuby開発陣に受け入れられなかった理由について何も述べてないよね
0166デフォルトの名無しさん2015/01/03(土) 23:07:16.09ID:ZfusUSn5
>>165
当初、明らかに Rubyの公式互換性テストの扱いだったよね。
yugui氏とかが顔きかしてたころ。2009年ころかな?
なにがどうしてこうなったんだろう???

MRI のテストが新たな RubySpecでもいいけど、
セグメンテーションフォールトで落ちるの見抜けないとか、
しっかりしてほしい。

Rubiniusの人、切れやすいんだよね。
JRubyのナッターさんはCRubyともうまくいってんのに。
Rubiniusの人、CRuby のコアチームにねじこんだ方がいいじゃない?
でないと、あとで必ずもめると思うよ www
0167デフォルトの名無しさん2015/01/03(土) 23:14:49.57ID:aK+7Exlv
>>166
そういう「扱い」の時期もあったけど決して公式的にそうなってたわけじゃなかった

そして、時が経るにつれて軋轢が生じて仲違いしてしまった
別々のプロジェクトなのだからよくあること言ったら言い過ぎかもしれないが、珍しいことでもない

> セグメンテーションフォールトで落ちるの見抜けないとか、

この件もMRIのバグチケットとして登録することをBrianが拒否したとか?
で、結局別の人が登録して、MRIでは解決したとか?
てなことを俺の紹介したリンクには書いてたね

BrianはRubySpecが自動的にRuby全体のSpecとして認知されることを期待したのだが
MRI開発者としたらバグ窓口はあるんだからそっち経由でされないと管理しきれん、という
感じだったんだろうな
0168デフォルトの名無しさん2015/01/03(土) 23:49:31.32ID:2FQDAXp5
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/39138

> > I already committed tests in RubySpec, which I believe is where they
> > are the most useful.
>
> Adding tests to RubySpec is not enough.
> You should also add tests to CRuby's test-all.

MRIの日本人コア開発者という立場を利用して、こういうことを他の開発者に強制してたんだから
RubySpecが上手く行くはず無かったね
RubySpecの人もフラストレーション溜まったと思うよそりゃ
0169デフォルトの名無しさん2015/01/04(日) 00:01:15.18ID:TsLBdsfX
RubyやPythonからwin32apiやCOMを呼び出すとき、
みんなどうしているの?
変数や構造体のマーシャリングはどうしてるの?
0170デフォルトの名無しさん2015/01/04(日) 00:02:35.42ID:oAitY7sD
WinでRubyはないわ
C#ならそんなもん一発よ
0171デフォルトの名無しさん2015/01/04(日) 00:18:25.59ID:4AdveR22
>>168
RubySpecが完璧じゃなかったのは事実じゃないか
RubySpecにテストを追加したからそれで十分じゃないか、なんて言われたら、そりゃMRI開発者は
カチンとするだろうよ

RubySpecが通ればMRIテストがなくても完璧だというなら話は別だが、実際はそうじゃなかったんだし
0172デフォルトの名無しさん2015/01/04(日) 00:27:09.25ID:PafXKnQs
MRIのテストもRubySpecが見つけられたsegfaultを見つけられない程度の出来だけどなー

で、MRIのテストには追加を強制するけど、仕様変更してもRubySpecに追加するのは断固拒否w
0173デフォルトの名無しさん2015/01/04(日) 00:29:43.73ID:4AdveR22
>>172
RubySpecに追加するのは勝手にどうぞ?でしょ
だって別プロジェクトなんだから拒否する権限はMRI開発者にはないわけだから
0174デフォルトの名無しさん2015/01/04(日) 00:35:06.71ID:PafXKnQs
>>173
ああごめん、もしかしてMRIのテストを責めてると思った? いやいや全然責めてないよ
ただRubySpec哀れだなーってだけでw

だって最初から負け戦でしょ?
仕様変更できるのはMRIだけで、そのテストもMRIに書く事強制されるんだから
二重にテスト持つなんて面倒というか害悪なレベルなんだから、そりゃRubySpec死ぬでしょ
0175デフォルトの名無しさん2015/01/04(日) 00:37:37.66ID:4AdveR22
>>174
そういうの承知でRubySpec始めてるんだと思ってたよ

だってMRI独自の実装があるわけだから、MRI用のテストは必須なわけだし、MRIの修正にはMRI用のテストが
セットなのは当たり前でしょ

それを「RubySpecにテスト書いたから十分じゃーん」なんて言われたら「そんな独自テストの話なんかしらねーよ」
ってなるだけなのは、ちょっと考えたらわかる話じゃん
0176デフォルトの名無しさん2015/01/04(日) 00:44:31.98ID:PafXKnQs
まあ、もしRubySpecを始めてたのが日本人だったら
上手く行った可能性も多少あったかもね、って感じだね

日本語も話せないIRCにも来れない外国人が
Rubyの仕様をどうこうなんて何様だよってのが
MRI開発者の本音だからね
0177デフォルトの名無しさん2015/01/04(日) 00:44:58.10ID:x+sstHNq
>>175
そこまで言われたら、そりゃおかしいとなるよ。

仕様の変更は、そんな軽いもんじゃないでしょって。
Java を見ろ。明確に変更を宣言したもの以外は、動作は絶対に変えない。

仕様を変えた場合は、仕様のテストの変更を要する。
それが出来ないなら、仕様の変更はするな。

当たり前の話じゃん。

なんでCRuby はころころ仕様をお気軽に変えるわけ?
そんなに変えてるもの、ほかにある? Rails はそれ以上に気まぐれに
変えるのは知ってるけど、ほかにないよね?

Java 見習ってよ。Java はそんなこと絶対にしない。
0178デフォルトの名無しさん2015/01/04(日) 00:46:47.89ID:4AdveR22
>>177
だったらRubySpecの方からこんなバグあるよって登録すりゃよかっただけじゃん
それすら拒否したんでしょ?Brianって奴は
(結局別の人が登録したおかげで当該バグは潰せたみたいだが)

そりゃ廃れるわ
0179デフォルトの名無しさん2015/01/04(日) 00:47:13.91ID:oAitY7sD
Javaと比較するのはナンセンス
お前はRubyで書かれた銀行システムに金を預けられるか?
お前はRubyで書かれた病院システムに命を預けられるか?
0180デフォルトの名無しさん2015/01/04(日) 00:49:42.50ID:4AdveR22
>>179
それは言語の優劣に拠らない話
そのプロジェクトのテスト品質がどうかという話
0181デフォルトの名無しさん2015/01/04(日) 00:52:52.50ID:x+sstHNq
>>178
だから、仕様のテストは実装のテストと違うだろって。
実装のテストなんぞ、好きにしろっての。

仕様は動作を定義する。
俺が言ってるのは、気まぐれに動作を変えるなっての。

はっきり言えば、みんなRuby が勝手きままに動作変えるので
怒ってる。

ruby1.8 から ruby1.9 のころなんぞ、ひどいもんだった。
明確な変更を宣言したものはいいんだ。それ以外。
もうメチャクチャに近かったぞ。
0182デフォルトの名無しさん2015/01/04(日) 00:54:10.12ID:oAitY7sD
>>180
逆に、利用のされ方が言語の開発スタイルに影響を与えるのは当然だろ?
品質軽視、いい加減な自動テストさえ通ってりゃOKというWeb文化をそのまま言語に持ち込めばこうなる
0183デフォルトの名無しさん2015/01/04(日) 00:54:17.59ID:x+sstHNq
>>180
違う。君はJava が分かってない。
Java7 で書いたコードがJava8 じゃ動かないかもしれないと、
誰が心配するのか!

Rubyとは桁違いの信頼性だ。本物とおもちゃの違い。
0184デフォルトの名無しさん2015/01/04(日) 00:55:34.08ID:4AdveR22
>>181
まぁ、1.8->1.9は正直しゃーないと思うぞ
あれはメジャーバージョンアップと言ってもいい内容だったし

で、きまぐれに内容変えるなというなら、そういうのを見つけ次第バグ報告すりゃいいんだよ
それがオープンソースってもんだろう
0185デフォルトの名無しさん2015/01/04(日) 00:56:45.59ID:4AdveR22
>>182>>183
それで心配しなくてよくてまともなテストしてないというのなら、それこそ銀行や医療で
使ってはいけないシステムだと思うぞ
0186デフォルトの名無しさん2015/01/04(日) 00:59:27.86ID:x+sstHNq
>>185
君に Javaを語る資格はない。
Ruby は Javaに比べたらおもちゃにすぎん。
0187デフォルトの名無しさん2015/01/04(日) 01:00:30.25ID:PafXKnQs
>>184
いやー、そんな穴の空いたバケツ(MRI開発者)に水注ぐ(バグ報告)なんて
時間が幾らあっても足りないでしょ
安定性が欲しいなら素直に別の言語を使うべき
0188デフォルトの名無しさん2015/01/04(日) 01:03:56.53ID:4AdveR22
>>186
どんな言語にだって穴はあるさ
それも含めて埋めるのがシステムってものだろう
特に銀行とか医療とかならな
(Web系は適当でいいんだろうけど)

>>187
MRI開発者にリソースが足りてないのはMRI開発者が一番分かってる話だよ
それでも使いたいって人なら、それなりの貢献をMRIにしてくださいよって話
オープンソースってそういう文化でしょ?

それすら嫌ならJava使ってればいいじゃん
0189デフォルトの名無しさん2015/01/04(日) 01:09:01.76ID:x+sstHNq
そんなに難しい話なのかって。言ってることは、

互換性テストは一つにしろってことで。

そして、仕様をお気軽に変えれば、その時点で、過去のコードは
動かなくなるかもしれないよって話で。だから、

明確に仕様変更しますと宣言したもの以外は、
仕様は変えるなと。

たかがこれぐらいの話で、なぜにまとまらない。泣ける www
0190デフォルトの名無しさん2015/01/04(日) 01:09:05.21ID:PafXKnQs
仕様変更しました
議論もしてないしドキュメントも無く勝手に変えたけど、ChangeLogは書いときました

こんなレベルで仕様変更できるのはRubyくらいだけどね
0191デフォルトの名無しさん2015/01/04(日) 01:09:59.02ID:4AdveR22
>>189
それをRubySpecが目指したけどそうはなれませんでした
それだけのことでしょ?
0192デフォルトの名無しさん2015/01/04(日) 01:12:24.39ID:4AdveR22
>>190
ちゃいますね
それでバグったなら報告すればちゃんと直してくれるよ
0193デフォルトの名無しさん2015/01/04(日) 01:15:11.94ID:PafXKnQs
そういや昔Rubyのバグ報告で大笑いした事あったなーって
探したら見つけたw

ttps://bugs.ruby-lang.org/issues/8941


Rubyって折角バグ報告してもこんな返しされるの?www
0194デフォルトの名無しさん2015/01/04(日) 01:19:53.93ID:x+sstHNq
いい、分かった。

結局のところ、CRuby開発陣は、気ままに仕様変更できる手段を
手元に残しておきたいってことだ。

それが、互換性テストは一つにしろっていうことと、
明確に仕様変更しますと宣言したもの以外は仕様を変えるな
という要求に抵抗する理由だ。

よくも悪くも、それがRubyということ。
俺もRuby を捨てはしないが、軸足はなるべく Java などの他の言語に
置くようにする。
0195デフォルトの名無しさん2015/01/04(日) 01:22:57.74ID:cj3MqVPN
>>135
JavaやPerlならまだ分かるけどPythonだよ?
メジャー番号でちゃぶ台返しちゃうか
マイナー番号ですらちゃぶ台返しちゃうか
という違いしか無いじゃん
50歩100歩ってやつですわ
0196デフォルトの名無しさん2015/01/04(日) 01:24:58.75ID:4AdveR22
>>194
RubyにはMRI用のテストがあるわけだし、なによりMatzがバックワードコンパチビリティを
重要視していることは色々なチャネルを使って発信している

RubySpecは、単純にMRI開発と相容れなかっただけで、それだけをもってRubyの
仕様変更に対するリアクションに対する評価にするのは正しくない
0197デフォルトの名無しさん2015/01/04(日) 01:31:57.14ID:e2nwmsfX
>>195
PythonもJavaに比べりゃダメだが、3系で互換性壊すまでに20年かかってる
しかもまだ2系の保守もしてる
流石にRubyと一緒には出来んわ
0198デフォルトの名無しさん2015/01/04(日) 01:36:02.15ID:x+sstHNq
とにかく、
RubySpec は閉鎖してしまったようだから、
それが MRIのテストでもいいけど、Rubyの仕様を決める
互換性テストをきっちり一つに決めてほしい。

一つじゃないとダメです。一つの仕様には一つの互換性テスト。

言語の進歩には、仕様変更が不可欠というのは理解できます。
しかし、明確な仕様変更の宣言をしてから変更して下さい。

勝手気ままな仕様変更を繰り返せば、みんな Rubyを捨てますよ。
しっかりしてほしい。
0199デフォルトの名無しさん2015/01/04(日) 01:42:43.80ID:4AdveR22
>>198
MRIテストで足りないというなら、MRIテストをカヴァーするようなテスト体系を作り上げてくれよ
RubySpecを継承する形でもいいからさ

で、RubySpecで見つけたバグはMRI本体へバグ報告する
多分、明確な仕様変更の宣言をしてないものはバグなんだろうから、報告すれば直してくれる
そういう精神があってこそオープンソースというのはうまくいくんだからさ

さっきも言ったようにMatz自身はバックワードコンパチビリティを壊す仕様変更は基本的によしと
してないんだから、そうじゃないなら、ただのバグ
ただのバグは報告してつぶしてもらうべき
RubySpecはその「報告」という部分をサボろうとしたためにポシャっただけのプロジェクト
0200デフォルトの名無しさん2015/01/04(日) 01:49:44.29ID:x+sstHNq
>>199
そこがひっかかるんだよなぁ。
RubySpec からどうして報告が必要なんだ?
さっきから、その発想がまったく理解できない。

一つの仕様には、一つの互換性テストと言ってるじゃないの。

二つ互換性テストがあれば、それは仕様が二つということにほかならない。
RubySpec は報告しちゃダメでしょ。

報告したら、互換性テストを二つにしてしまう行為だ。
全然理解できない。

互換性テストは一つだけ。二つあったら、もうそれはどちらも互換性テストじゃない。
0201デフォルトの名無しさん2015/01/04(日) 01:51:35.47ID:PafXKnQs
これ、件のBrian氏の2.2に対するバグ報告ね

ttps://bugs.ruby-lang.org/issues/9898
ttps://bugs.ruby-lang.org/issues/10016


まあバグ報告しても直してもらえないし(>>193)、
バグ報告してもサボったことにされちゃうのがMRIってことだね
0202デフォルトの名無しさん2015/01/04(日) 01:51:46.22ID:cj3MqVPN
>>197
何年保守すれば満足なの?
5年?10年?30年?
年数の問題じゃないでしょ?
後方互換を捨てた時点で50歩100歩ですよ。
0203デフォルトの名無しさん2015/01/04(日) 01:53:05.80ID:x+sstHNq
MRI が新しい RubySpecであるというなら、
それはそれでいい。

だが、互換性テストは絶対に一つじゃないといけない。

だから、絶対にほかに互換性テストを作るような行為はしちゃいけない。
ほかへは絶対に報告するな。それは絶対条件だ。

つまり、RubySpec がそうしようとした行為を
そのようにしろということ。それは絶対に必要な行為だ。
0204デフォルトの名無しさん2015/01/04(日) 01:55:27.14ID:4AdveR22
>>200
RubySpecはMRI開発のためのテストじゃないからだよ
あくまで別のプロジェクトなんだ

RubySpecのテスト自体が間違ってるかもしれないし、MRIの方が間違ってるかもしれない
そこの切り分けをするのはMRIの開発者じゃなくて、RubySpecのメンテナであるべきだからだよ

で、RubySpecのメンテナが切り分けた結果、MRIの問題だと分かったらMRIにバグ報告する
これが別々のプロジェクトのありかただよね

RubySpecがMRIの上位にあるとオフィシャルに位置づけられたならともかくとして、さ
0205デフォルトの名無しさん2015/01/04(日) 01:57:38.22ID:4AdveR22
>>201
両方とも、「Applied in changeset ...」 って書かれてるけど…
直されてないの?
0206デフォルトの名無しさん2015/01/04(日) 01:59:58.68ID:bZBwgO8F
まあ簡単に言えば自分のプロジェクトをかまってもらえなかった人が、普通に
プロジェクトやめればいいだけのことにエキセントリックな反応しただけだよね。
そりゃ関わりたくないのわかるわ・・・
0207デフォルトの名無しさん2015/01/04(日) 02:00:09.41ID:k+m5c6UW
>>202
Perlも4と5で後方互換なんて無いじゃん
50歩100歩ですよ
0208デフォルトの名無しさん2015/01/04(日) 02:01:26.85ID:PafXKnQs
>>205
違うよ>>193の方だよ
スルーするなよ傑作なんだから
0209デフォルトの名無しさん2015/01/04(日) 02:04:39.30ID:4AdveR22
>>208
いや、君はBrianが報告したバグがさも放置されたかのように言ってたからさ
Biranが報告したバグはきっちり直されてるけどね

ちなみに>>193の方はPythonの挙動に合わせる必要はない、って却下しただけだけど
0210デフォルトの名無しさん2015/01/04(日) 02:14:33.71ID:G1a4c7Jj
>>199 MRIテストで足りないというなら、MRIテストをカヴァーするようなテスト体系を作り上げてくれよ

それでテスト体系を作ったら、せっせとバグ報告を繰り返せよ。バグ報告に対処するか否
かはこっちの勝手だがな。

こんなことを言われたら、テスト体系を作った本人はぶち切れるわ。

なんで MRI の連中は RubySpec を取り込むように動かないのか。その価値がないのな
ら、早い段階で そのように宣言しておくべきだろう。二つのテスト体系が並存するのを
放置していたのか。そんな村社会のような open community なのか。
0211デフォルトの名無しさん2015/01/04(日) 02:15:01.25ID:PafXKnQs
>>209

# %Y - Year with century (can be negative, 4 digits at least)
# -0001, 0000, 1995, 2009, 14292, etc.

って「Rubyの」ドキュメントに書いてあるのに、Rubyで Time.strptime("1", "%Y") が通るから
「これ本当に意図通り?エラーにした方が良いんじゃない?話は違うけどPythonではエラーになるね」
って報告に対する返答が「Pythonのバグ報告は要らない」だよ?
これがマトモな返答だと思ってるの?凄いねw
0212デフォルトの名無しさん2015/01/04(日) 02:22:07.03ID:4AdveR22
>>210
> こんなことを言われたら、テスト体系を作った本人はぶち切れるわ。

うん、それでもいいと思ってやってるもんだと思ってたがな
それでブチ切れるぐらいならはじめっからやるなよって話だよ

> なんで MRI の連中は RubySpec を取り込むように動かないのか。その価値がないのな
> ら、早い段階で そのように宣言しておくべきだろう

なんでいちプロジェクトのために宣言しなきゃならないのか
あくまで一時期サブプロジェクトとして利用したにすぎないだろうに
(それとて果たして何年前なのか)

まぁ、その点ではRubySpecを公式と扱いかけたYuguiさんにも責任はあるかもしれん
かの人はRubyプロジェクト内でも(技術力はともかくリリースメンテナとしては)黒歴史化
してる部分はあるので
0213デフォルトの名無しさん2015/01/04(日) 02:30:07.23ID:x+sstHNq
まあ、たぶんこれで Rubiniusというプロジェクトは
放棄されるという結果になる可能性が高いように俺は思うけど、

あれ、惜しいんだよなぁ。
Ruby 自身によってRuby を実装しようというの。
残念だな。

とはいえ、Ruby自身じゃなくて、システム開発用に
静的型のRuby のサブセットを作って、それでRuby を実装する
とかいう方向に向かわないかな。

そうすると、
Ruby の遅いという重大弱点の解消につながると思うんだけどな。
Mirah みないなRubyライクな静的型のRuby のサブセット。
0214デフォルトの名無しさん2015/01/04(日) 02:32:18.42ID:4AdveR22
>>211
想定外の文字列が与えられた場合にエラーになりますと明言されてるんならそのとおりだけどさ
Rubyの場合、単純にstrptime(3)に投げてるだけだから、想定外の文字列が与えられた場合は
そっちの仕様によるわけよ
そこまでRubyが面倒みる必要ないよね?がRubyのポリシーなわけで
0215デフォルトの名無しさん2015/01/04(日) 02:36:25.40ID:4AdveR22
>>213
そこはしょうがない
Brianという人物がオープンソースに向いてなかったとしか言い様がない
0216デフォルトの名無しさん2015/01/04(日) 02:44:06.32ID:x+sstHNq
>>215
彼は相当な覚悟をもってやったはずだ。
たぶん Rubiniusは終わる。引き継ぐ人がいない限り。

誰か、静的型のRuby のサブセット作ってよ。
遅いとき、そこだけそれで書けばいいようなヤツ。
0217デフォルトの名無しさん2015/01/04(日) 02:44:49.71ID:PafXKnQs
>>214
いやー、そういう理由を書いてrejectなら笑ったりしないんだわw
(本当はrejectせずドキュメントの方を直すべきだけど)

しかし、あれ読んでも「Pythonの挙動に合わせる必要はない、って却下しただけ(>>209)」って解釈になるのがMRIの文化なのか
本当に凄い
0218デフォルトの名無しさん2015/01/04(日) 02:48:18.87ID:4AdveR22
>>216
> 誰か、静的型のRuby のサブセット作ってよ。
それはRuby3.0で実現するかもしれませんよ
Matzがそういう構想を見せてましたしね
0219デフォルトの名無しさん2015/01/04(日) 02:49:18.19ID:k+m5c6UW
>>216
なんだよ、やっぱりCythonのrubyバージョンが欲しいんじゃねーか
0220デフォルトの名無しさん2015/01/04(日) 02:50:48.47ID:bZBwgO8F
Pythonの件は本人はジョークっぽいつもりだったのが、ほんとに失礼な返しになってしまった感じ
やっぱ母国語でないならネイティブの表面的なマネなんかしないで、出来るだけ丁寧に書いた方が
いいよな。
0221デフォルトの名無しさん2015/01/04(日) 03:07:16.92ID:x+sstHNq
>>219
Cython ていうかさ、ruby にはruby 特有の事情があるんだわ。
CRuby と Jruby という二つの実装があって、その互換性は
99.9パーセントくらいかと思うけど、共通の高速化手段がない。

それぞれ、C言語で書くかJava言語で高速化したい部分を書くという
ことになると思うけど、そうしたら互換性が台無しになる。

それに、Rubiniusというプロジェクトがあって、それはRuby を
Ruby自身で書くというものだけれど、やっぱ遅いRuby でそれを
やるのはいかにも無理があるよね。

そのすべてを解決するのは、Ruby Jruby のどちらからも呼び出し
可能な 静的型のRuby のサブセットだと思う。

それを CythonのRuby 版じゃないかと言うなら言えよというか、
Cython なんてよう知らんが、いま Mirah というモデルとなるような
のがあって、あんな感じのをRuby JRuby 共通のツールに出来たら
いいなぁと。

ホント、そんなの出来たら最高なんだけどな。
0222デフォルトの名無しさん2015/01/04(日) 03:28:29.08ID:PafXKnQs
MRIを開発してる連中のMRI以外への冷酷さを考えると、
MRIとJRubyの共通ツールを頑張って作っても幸せになれない気がするわ
仕様変更に追従するのに疲れ果てたりとかで

そして最後に「不満持つぐらいならはじめっからやるなよって話だよ」って言われてEND
0223デフォルトの名無しさん2015/01/04(日) 03:33:12.96ID:x+sstHNq
>>222
そんなことないよ。
JRuby のナッターさんはCRuby のコミッタのはずだよ。
CRubyの仕様に文句いうためだけになってるんだと思うよ。
だって、C言語で組むわけないからね www
だから、Rubiniusの人もナッターさんのようにそうすればよかったのに。
0224デフォルトの名無しさん2015/01/04(日) 07:25:04.59ID:oAitY7sD
JRubyに夢見るのはいい加減諦めろよw
技術的にはnative extensionを共通化できない理由は特にない。
そして、それに関してMRIに特に何か仕様変更を求める必要もない。
JRubyがnative extensionのサポートを諦めたのは純粋に開発リソース不足のため。
native extensionのサポートがMRIとの互換性において非常に重要であるのは>>221の言う通りであるが、
それすらも維持できない貧弱なプロジェクトだということ。
0225デフォルトの名無しさん2015/01/04(日) 10:22:31.20ID:x+sstHNq
>>224
native extension?
そんなもん、いらんだろって。jvm で動いてないもの、どこがありがたいのか???
動かなくてせいせいしたぜ。

Javaでこっちが書いたら、それはruby で動かないのが残念だなってだけで。

要するに、mirah の完成度が上がって Java(かJavaのバイトコード)と
C言語の両方を吐き出せるようになってほしいなって話なんだな。
print文で、Java かC を構文組み上げて吐くようにすりゃいいだけだ。

誰かやりゃいいのに・・・
0226デフォルトの名無しさん2015/01/04(日) 10:27:41.54ID:oAitY7sD
いいかげん観念してC覚えろよw
0227デフォルトの名無しさん2015/01/04(日) 11:20:51.33ID:PQ1/DFwu
「MRIとJRubyとその他実装はそれぞれ別言語です」
くらいの扱いが一番楽なんじゃないの
昔のBASICやLISP的なノリでさ、その内Schemeみたいな派生が出てくるよ
0228デフォルトの名無しさん2015/01/04(日) 11:57:30.28ID:4LHzAbdW
>>220
その人が単にキレやすかっただけに見える
ML読み返すと英語でも日本語でも些細なことでキレまくり

彼にせよBrianにせよ、コミュニケーションを軽視する人はこういう活動に向いてないという例では
0229デフォルトの名無しさん2015/01/04(日) 12:50:56.63ID:FkvmMkr7
Rubyの話はRubyスレでどうぞ。 Javaと比べるのはアレだが、このスレ的には、
Rubyは品質と機能の安定性の面で、他と比べて一歩劣るという結論でいいじゃない
0230デフォルトの名無しさん2015/01/04(日) 13:06:34.19ID:+Td8x07p
もうどのLLもダメだな
Pythonは3移行に失敗
PerlはPHPに取って代わられ
PHPは言語仕様がクソ
Nodeは分裂
0231デフォルトの名無しさん2015/01/04(日) 20:13:29.76ID:mDqV+MlI
>>230
けなっしーか?
ダメだと考える理由くらい書けよ。
0232デフォルトの名無しさん2015/01/04(日) 20:20:27.59ID:w9Cj0tkO
<?php
 echo 'ところで?>を省略しちゃう奴なんなの?'
?>
0233デフォルトの名無しさん2015/01/05(月) 00:25:16.12ID:3qqCgoQ1
>>232
.phpファイル末尾の ?> は省略するべき

?>の後ろに、改行・空白があると、ブラウザに表示されたり、
レイアウトが崩れたりする場合があるから

>>220
文章では表情までわからないから、
すぐ相手は気を悪くするもの

それに英語がネイティブじゃないものは、
おかしい英語を使う

この間、日本人の官僚か大使が、国連の会議で、
シャラーップって言って、
世界中で大馬鹿者として放送された
0234デフォルトの名無しさん2015/01/05(月) 07:04:52.45ID:KQNQflUf
>>233
これか
ttp://php.net/manual/ja/language.basic-syntax.phptags.php
ただ、HTMLタグ中に組み込む場合は、もちろん省略できんな
0235片山博文MZ ◆T6xkBnTXz7B0 2015/01/05(月) 23:09:42.06ID:ZGGJRGXG
/bin/shでの一時変数の使い方を教えて下さい。
0236デフォルトの名無しさん2015/01/06(火) 00:26:06.82ID:YQPZRkv+
>>235
シェルスクリプト総合 その24(c)2ch.net
http://peace.2ch.net/test/read.cgi/unix/1415634843/

専用スレで聞いたほうがいいよ
0237デフォルトの名無しさん2015/01/06(火) 00:47:06.50ID:7Rp7KoRa
シェルスクリプト
変数名には、英数字,_ が使える
ただし、変数名の先頭には、数字は使えない

変数の作成。$は付けない
変数名=

値の設定、または変数宣言と同時に、値を代入する
$は付けない。=の前後に、空白などを入れてはいけない
代入すると、文字列に変換される
変数名=値

値の参照
$変数名
${変数名}
{}を使った方が、変数名の切れ目が明確
0238デフォルトの名無しさん2015/01/06(火) 12:14:33.94ID:Cpl3B7oz
変数名の切れ目が集中力の切れ目
0239片山博文MZ ◆T6xkBnTXz7B0 2015/01/06(火) 14:29:16.56ID:hDnOTpqT
>>237
ありがとうございます。
0240デフォルトの名無しさん2015/01/07(水) 01:36:55.90ID:IbCBqkxU
Pythonには定数が無いから、
すべて大文字で変数宣言したら、
定数と扱うような、暗黙のルールがある

Rubyでは、大文字で始まる変数は定数
JSでは、const


Pythonでは、比較を簡単に書ける
if 10 < a < 20
0241デフォルトの名無しさん2015/01/07(水) 02:03:39.00ID:OR0Xay6F
結局perl5かなぁ。機敏で後方互換性が高い。
どれだけ面構えが醜くてもそれだけで許せる。
5年やそこらで既存コードをパーにされたらたまったもんじゃない。
0242デフォルトの名無しさん2015/01/07(水) 03:08:11.75ID:grCXKxRm
それでもPerl5はホントならこんな開発スピードにならずにもっと枯れてたハズなんだけどね
0243デフォルトの名無しさん2015/01/07(水) 05:20:42.86ID:SuGFpl1Q
互換性を捨てることで
そこに雇用が生まれるメリットはあるよね
0244デフォルトの名無しさん2015/01/07(水) 08:09:22.38ID:HKXqxXwW
>>241
開発者がレベル低くてperl6がろくに完成しなかったのが
結果的に功を奏した形になったよね
0245デフォルトの名無しさん2015/01/07(水) 14:13:26.73ID:ADXOWNsB
Perl6は型推論付きの静的型指定で方向性は正しかったんだよな
当時からブロックスコープだったし
PythonとかRubyとか今更型が必要とか言い出してるし
基本線は良かったのに、僕の考えた最強のスクリプト言語とか中二的な機能を山盛りにしようとして大失敗
obj->fooの代わりにobj.fooとか、文字列連結演算子を変更するとか、全くどうでもいい仕様変更考えたのって誰なんだろう
0246デフォルトの名無しさん2015/01/07(水) 18:56:02.12ID:5+edpXUl
欲張らずに関数アノテーションだけ事前に入れたPython3は賢い
0247デフォルトの名無しさん2015/01/08(木) 16:17:15.70ID:SnsO6Hw4
かしこいかわいいPython3
0248デフォルトの名無しさん2015/01/08(木) 18:23:31.25ID:nx8fIEJ5
>>246
それは便利なんだけど一方、printみたいに関数になっちゃったのが多くて、昔のライブラリ書き換えが面倒。
聞いた話じゃ、filter、map、reduceを活用するためとか、・・・意味分からんw
0249デフォルトの名無しさん2015/01/09(金) 08:57:03.72ID:rN687hyH
その程度なら 2to3 使えや
0250デフォルトの名無しさん2015/01/10(土) 09:18:16.79ID:x/aYCkcH
確かにpython3のprintのカッコは面倒
"print(s)" を "print s" とか "p s" にする簡単な方法ってないかな

この点だけで言えばRubyはいいな〜
0251デフォルトの名無しさん2015/01/10(土) 09:28:44.06ID:kTT0/GFr
Pythonってシェルとの相性が良くないから
Python使うときはprint使わないでファイルに直接書いちゃうことが多いかな
0252デフォルトの名無しさん2015/01/11(日) 01:47:07.24ID:BNezyC0M
phpプログラミングの現在の需要ってどんなもんですか?
0253デフォルトの名無しさん2015/01/11(日) 02:19:40.22ID:D8UjnNuz
もう供給過多だからやめとけ
0254デフォルトの名無しさん2015/01/11(日) 06:24:41.86ID:+g1taGc5
ウェブならPHPがダントツで多いよ
0255デフォルトの名無しさん2015/01/11(日) 08:05:57.92ID:V5MgNSbe
仕事の求人はダントツだったが、PHP自体の人気は年々右肩下がり
日本だとRubyが右肩上がり
0256デフォルトの名無しさん2015/01/11(日) 12:37:55.41ID:I5t5eddk
もうPython飽きた
もっと良い言語無いの?
0257デフォルトの名無しさん2015/01/11(日) 18:50:24.94ID:CYF8relG
Pythonは単なる道具であることを美徳とする言語であって、飽きるもクソもないわ
Rubyみたいな楽しい(笑)言語と一緒にするなよ
0258デフォルトの名無しさん2015/01/11(日) 19:02:57.25ID:iJxxEC6M
phpはwordpress次第なんじゃね?
今後の需要。
wordpressを追いやるものができたら、オワコン
0259デフォルトの名無しさん2015/01/11(日) 19:11:37.12ID:oFld/Oyi
道具としてPython
遊びとしてRustがベスト
0260デフォルトの名無しさん2015/01/11(日) 20:11:05.65ID:tVi6wPxY
今から始めるのはどの言語が分かりやすい?
とりあえず、特定のサイトのクッキー削除とかやってみたいんだけど・・・
0261デフォルトの名無しさん2015/01/11(日) 20:29:23.11ID:BkMuWsUG
>>258
PHPは終わらんよ。新人を中級上級に育てるのに便利だから。
RubyやPythonじゃそうはいかない。いきなり中級レベルが要求される。
0262デフォルトの名無しさん2015/01/11(日) 20:35:41.52ID:5YX1qxcz
PHPはずーっと昔使ったことあるなぁ。
日本語が十分に使えなくてi18n版とかいうのを使ってたような気が。
0263デフォルトの名無しさん2015/01/11(日) 21:05:07.42ID:8e7vlna2
>>260
クッキー削除ってブラウザの?
それブラウザのエクステンションとかになるから初心者向けの課題としては全くもって不適
他のアプリを操作したいというのは極めて狭い特定の問題領域に特化した知識が必要なので
はっきり言って何の勉強にもならん
0264デフォルトの名無しさん2015/01/11(日) 22:37:19.57ID:jQsmpaL2
>>260
regedit でIEのレジストリから、
そのサイトのクッキーを消したら?
0265デフォルトの名無しさん2015/01/12(月) 02:33:31.50ID:SfE3hKbl
ウェブ開発の難しさを全部perlのせいにして迷走しまくった挙句
互換性の首を締める方向に全力疾走の言語モドキをperlの代替と言われても
冗談にすらなんねーよ。PHPはさっさとApacheと心中して欲しい。

PHPに比べてperlに依存したソフトウェアがどれだけ出回ってるか。
PHPを初心者向けにと強いられる新人がいくらなんでも可哀想だわ。

Pythonは3にする必要なかった。2で良かった。
3になってなんでユニコードリテラル復活してるのか意味分からん。
Mercurialを負け犬にしたのはpy3kのせいだと思ってる。

PythonはPHPなんかと違って本物の初心者向けのいい言語だと思う。
まずエディタの設定を変更して、ハードタブをソフトタブに
切り替えなきゃならないあたりが絶妙な初心者向けのハードルで、
それすらできない出来損ないがコミュニティを腐らせる隙を与えなかった。
0266デフォルトの名無しさん2015/01/12(月) 05:48:56.65ID:+xl7KGyM
スクリプト言語で残るのはJSとPHPだけだろう
ニッチな用途で他の言語も使われていくだろうけど
0267デフォルトの名無しさん2015/01/12(月) 08:23:20.60ID:v02+vhqU
Webなんて大したコード書かないんだから言語なんかどうでもいいんだよ
意識高い系(笑)は関数型に手を出そうとしてるが、
不変のメリットを享受できるほどの複雑なモデルを持ち
かつ内製で完結できる程度の規模のサイトなんかまず存在しない
0268デフォルトの名無しさん2015/01/12(月) 08:48:07.46ID:N3htatRU
意識高い系って言い換えたら権威主義者だと思うんだな
これをやったらハクがつく、みたいなのを嗅ぎ取ることに夢中で
やれLISPだのSICPだのね
自分を飾るためのアクセサリーなんだね
0269デフォルトの名無しさん2015/01/12(月) 09:29:39.75ID:OOvwNMe1
みんな自分がやってきた | やってる言語を推すのに必死だなぁ
そりゃあまあ、今まで自分がやってきたことが無に帰したら悲しいからなw
0270デフォルトの名無しさん2015/01/12(月) 10:19:44.13ID:KOXsuD1D
perlはリファレンスとコンテキストが
許容出来ないレベルでゴミ過ぎる
それが無ければ我慢出来なくも無いのに
0271デフォルトの名無しさん2015/01/12(月) 10:32:32.62ID:mp+hxBsF
連想配列のキー側に文字列しか許容しない言語はゴミ
0272デフォルトの名無しさん2015/01/12(月) 10:49:22.54ID:yKw+EUpn
>>267
まじでこれ。言語にこだわってるのはバカ。
仕事では大事なことが他にある。
0273デフォルトの名無しさん2015/01/12(月) 10:57:03.69ID:Il3tkbbb
>>266
そのニッチじゃない用途ってのがWebのことなら、この板で話す理由は全くないけどな
0274デフォルトの名無しさん2015/01/12(月) 11:15:56.52ID:KOXsuD1D
>>272
言語も大事だよ
ドカタには分からないだろうけど
0275デフォルトの名無しさん2015/01/12(月) 11:52:42.85ID:LpPMJZpp
むしろ必要以上に言語に拘る方がドカタっぽいイメージだけどな
些細な言語の違いに影響を受けるのは、プログラミングの本質を理解せずにサンプルのコピペを繰り返してるだけだから
0276デフォルトの名無しさん2015/01/12(月) 12:27:25.00ID:KOXsuD1D
Webは単純なドカタ仕事
ドカタ仕事のWebなんてどんな言語使っても大差ない

それだけのことよ
0277デフォルトの名無しさん2015/01/13(火) 04:58:28.74ID:9nbZCc5w
スクリプト言語使った仕事っていうと、ほぼ全てがウェブになると思うけど
0278デフォルトの名無しさん2015/01/13(火) 07:29:00.61ID:fFU9OuRs
海外だとPythonがクライアントアプリに使われてたりするし
データ解析なんか基本的にスクリプトだし
サーバー管理なんてそれこそ無数のスクリプトが動いてる
世の中がWebばかりに見えるのは情報媒体がWebだからだよ
0279デフォルトの名無しさん2015/01/13(火) 08:27:23.85ID:zKLcexwt
つか、Web以外の仕事って

業務系クラサバシステム開発 … この世界の底辺
スマフォアプリ開発 … 中身のレベルはWebと大差なし


とかだから、どう見ても高度なレベルじゃなくね


デスクトップアプリ(ゲーム含む)開発も最近はLuaとかシェーダー言語だしなあ
0280デフォルトの名無しさん2015/01/13(火) 08:30:03.90ID:fFU9OuRs
そう?
クソ高い実験機器の制御・データ解析ツールなんて
Pythonで書かれてるのたまにあったよ
0281デフォルトの名無しさん2015/01/13(火) 08:30:50.94ID:JSzG7Hub
>>268
意識高い系が手を出すのは、Lisp(特にcommonlisp)じゃなくて、
Haskellだと思うけどな。
0282デフォルトの名無しさん2015/01/13(火) 08:42:34.76ID:/zWkSKJ0
>>279
それ、ゲーム含むじゃなくてゲームのみの話じゃん…
ゲーム以外のデスクトップアプリにPython使われたりしてんだぜ?
0283デフォルトの名無しさん2015/01/13(火) 09:19:30.34ID:uUqmuISF
>>280
Pythonつーても中身はほぼCだからなぁ
0284デフォルトの名無しさん2015/01/13(火) 19:07:09.77ID:fFU9OuRs
大規模アプリの拡張用スクリプトとしてはPythonの圧勝だよな
Luaはユーザーによる拡張用ではなくスクリプトごと固定で組み込んでしまう使い方が主だし
0285デフォルトの名無しさん2015/01/13(火) 19:20:57.98ID:9boVeRRQ
>>284
Pythonってアプリ同梱で配布するやり方がよくわからんのよね。
Python環境自体を別途インストールするなら問題ないのだけど。

Luaは最初からexe埋め込みだから、その点は明確で、環境依存はしづらいな。
0286デフォルトの名無しさん2015/01/13(火) 19:39:04.28ID:fFU9OuRs
>>285
http://docs.python.jp/3.3/extending/windows.html
やっぱりPythonのドキュメントは別格だと思う
MSに勝るとも劣らないレベル
0287デフォルトの名無しさん2015/01/13(火) 21:16:48.11ID:9boVeRRQ
>>286
拡張と埋め込みまでは知ってる。
その後、 exe と python.dll と *.py を同梱して配布するには? の資料が見つからないんだ。
レジストリを見に行くようで、ファイル単体では動かないんだよ。
0288デフォルトの名無しさん2015/01/13(火) 21:38:33.21ID:/ApZh3CF
ほらね、結局クライアントでなんて簡単じゃない
0289デフォルトの名無しさん2015/01/13(火) 21:55:12.64ID:/zWkSKJ0
Pythonのクライアントってそういう使い方もあるけど、そもそもPythonで作られてるパターンもあるような
0290デフォルトの名無しさん2015/01/13(火) 21:55:13.36ID:QfRKSulC
py2exe
0291デフォルトの名無しさん2015/01/13(火) 22:54:26.25ID:Jo6K+xXL
>>287
今のバージョンはどうか知らんが、1.*の頃試したときはインストールしたpython環境に
べったり依存していたように思う。luaやmrubyなんかの組み込みと違って単にCの
プログラムからpythonを呼び出せるというだけだったような。
ドキュメントを見る限りではそのへんあんまり変わってないんじゃないかな。
0292デフォルトの名無しさん2015/01/14(水) 02:25:27.00ID:T2Sy5zuG
>>287
6.2.1. モジュール検索パス
http://docs.python.jp/2/tutorial/modules.html#tut-searchpath

Py_Initializeの前にsetenv,putenv等で環境変数PYTHONPATHを設定すればいい
0293デフォルトの名無しさん2015/01/16(金) 09:07:33.90ID:G+UBMH+X
お前らPHP7が出たら最強になるからな。
覚悟しとけよ。


知らんけど…。
0294デフォルトの名無しさん2015/01/16(金) 15:44:01.15ID:49OvZmoV
なんかRubyだけ消えてなくなりそう。
Rails次第とういかRailsしか無いというか。
Pythonが無ければもっと・・・でもPython有るから。
0295デフォルトの名無しさん2015/01/16(金) 16:15:47.25ID:2bPtIKnK
Ruby には Sinatraがあるだろ。
Rails にはみんなうんざりしてるが、
Sinatra はいいんじゃないか?
0296デフォルトの名無しさん2015/01/16(金) 16:21:58.95ID:2bPtIKnK
Rails は山のようなapi をまず覚えないといけない。
しかし、そのapi の命も次のバージョンが出るまで www
ころころapi を変えたがるのはもう病気のレベルだものな。
いまRails を必死になってやってるヤツに言いたい。
その知識、2年後3年後にどれほど役に立つか考えろ。
Rails のapi覚えるなら、次のバーション出てからにした方がいいよ。
どうせすぐ変わるから www
0297デフォルトの名無しさん2015/01/16(金) 18:40:34.25ID:EFhovs02
Pythonこそ消えそう
使ってると飽きる
0298デフォルトの名無しさん2015/01/16(金) 22:15:42.86ID:VyuSK5Aq
>>297
俺も飽きた感があったんだが、最近になってまた好きになってしまった
スクリプト界では一番守備範囲広いし、使えるんだよなー

地味なのは認める
0299デフォルトの名無しさん2015/01/17(土) 07:25:54.87ID:f1EDoQ/5
一番消えそうなのはRubyだろうね
Railsで作ったサイトを作り直すときに、Raisの新しいバージョンに合わせて大幅に書き直す位ならいっそのこと別の言語にしようってなる
0300デフォルトの名無しさん2015/01/17(土) 07:48:59.08ID:OhSrciBg
新バージョン移行の際に機能を壊してないことを保証できるレベルまでテストを書くとなると
もう言語の記述性なんて大した問題じゃないしな
そこまでするなら静的言語使う
0301デフォルトの名無しさん2015/01/17(土) 08:01:04.96ID:SbteLaC5
Railsって元々からして立ち上げ重視でメンテしながら長期運用するのには向いてないでしょ
0302デフォルトの名無しさん2015/01/17(土) 08:41:07.14ID:OhSrciBg
ジャップの過剰品質や腰の重さに合ってないだけかと
0303デフォルトの名無しさん2015/01/17(土) 12:51:14.09ID:lr/+xWwF
最近流行りのアジャイル開発には向いてるね
ウォーターフォールでがっちりやりたいなら静的言語だろうけど
0304デフォルトの名無しさん2015/01/17(土) 23:47:30.50ID:sLyYJJKP
最近流行りのアジャイル…一体何年前から思考が止まってるんだろう
0305デフォルトの名無しさん2015/01/18(日) 00:09:17.45ID:UJDOWW1C
>>304
実際にアジャイルは多いよ
ちょっと前まではバズワード扱いだったのが、最近では開発現場でも当たり前になってきた

もちろん、ウォーターフォールが必要な場面ではそっちがまだまだ使われてるけどね
0306デフォルトの名無しさん2015/01/18(日) 06:52:15.36ID:64baGbNB
書く手間が少ないので、Rubyはやみつきになる
ary = [10, 11]

Rubyなら、
p ary, pp ary
[10, 11]

Pythonなら、
print(ary), pprint(ary)
0307デフォルトの名無しさん2015/01/18(日) 07:00:28.07ID:Xi2ZNgHc
Rubyには関数名や括弧を補完できるエディタが無いのかな?
03083062015/01/18(日) 07:11:36.31ID:64baGbNB
Rubyは、Windowsに弱いからね

漏れはWin8なので、TeraPadで書いて、
ttps://paiza.io/
にコピペして、実行している
0309デフォルトの名無しさん2015/01/18(日) 08:34:37.78ID:YQ/T1PKN
括弧を省くべきかどうか、{}かdo-endどちらを使うべきか、といった
どうでもいい判断を毎回する必要があることが馬鹿馬鹿しい
そういうどうでもいいことに拘った最低最悪の形がRSpecだね
0310デフォルトの名無しさん2015/01/18(日) 08:46:11.18ID:mY3wllRf
カッコ付ければいいとおもうし、そしたらdoか{か迷うこともないぞ
03113062015/01/18(日) 09:04:56.71ID:64baGbNB
Rubyのdo-endは、{}が無いから視認性がいい

ただし、処理が1行なら、{}を使う
0312デフォルトの名無しさん2015/01/18(日) 09:12:45.90ID:YQ/T1PKN
>>311
たとえばRSpecでletを使うとき、大抵一行で済むし、
処理(do)ではなく返す値に興味があるわけだから俺は{ }を使うことにしてる
before(:each)はその逆だからdo end
でも時々letが複数行になることがあって、そういうとき悩む
0313デフォルトの名無しさん2015/01/18(日) 13:59:10.61ID:mY3wllRf
俺は複数行でも戻り値使いたいときは{}派だなー
0314デフォルトの名無しさん2015/01/18(日) 23:38:08.91ID:g9CLYO+z
>>308
RubyがWindowsに弱いっていつの話だよ
1.8の時代はともかく、最近じゃほとんどの機能は全プラットフォームで使えるよ

それいうならPerl、Python、NodeだってWindowsでは…となるぞ
0315デフォルトの名無しさん2015/01/18(日) 23:44:24.32ID:YQ/T1PKN
Rubyを標準ライブラリだけで使ってる奴なんかほとんどいないと思うぞ
0316デフォルトの名無しさん2015/01/18(日) 23:51:42.07ID:g9CLYO+z
それ言うならRubyの用途はほとんどRailsだし、LessとUnicorn以外Winで使えないものが思い浮かばん
0317デフォルトの名無しさん2015/01/19(月) 00:00:18.75ID:UWF/Jaig
まずcygwinやmingwが必須な時点でWindowsでの使用に適してるとはとても言えないし、
ネイティブなライブラリに依存してるのは地獄だぞ
0318デフォルトの名無しさん2015/01/19(月) 01:48:25.96ID:wzv4NESB
他のLL言語も同じでしょ?
何を言いたいのかさっぱり意味が分らん
0319デフォルトの名無しさん2015/01/19(月) 12:23:41.10ID:yRlyh47C
もうさ、iOSのSwiftにWEBのHTML5(js)だけで取り敢えずはいいんじゃねえの?
0320デフォルトの名無しさん2015/01/19(月) 12:58:48.34ID:Sno3rMdn
Rubyさえあれば他はいらん
0321デフォルトの名無しさん2015/01/19(月) 21:49:04.56ID:qpn2CGqA
>>315
俺俺
0322デフォルトの名無しさん2015/01/19(月) 21:52:28.91ID:kiiRsxmr
Rubyメインの人でWindowsユーザーなんてほぼいないからな
全く動作確認されてないんだから、まともに動くわけない
0323デフォルトの名無しさん2015/01/19(月) 23:03:34.62ID:l9JevSUU
TortoiseHgとかDropboxとかMeldとか、Python製のWindowsアプリは結構多い
Rubyと同じじゃないよ
0324デフォルトの名無しさん2015/01/19(月) 23:13:15.51ID:i0MAuzuq
IronPythonの次にIronRubyがあったからWindowsで2番手の印象だったんだが、Rubyは人気ないのか
0325デフォルトの名無しさん2015/01/20(火) 03:50:44.66ID:tR2SZl1M
TRON,Linux,GNU,Ubuntu,Mozilla,Apache,Pythonなどは、
非営利財団だろ。経営もしっかりしている

Rubyは財団か?
それとも、Matzの個人商店か?
0326デフォルトの名無しさん2015/01/20(火) 06:35:51.88ID:quI2Cspp
Rubyは宗教法人
0327デフォルトの名無しさん2015/01/20(火) 10:13:39.35ID:hB3oeRgV
マジでRubyの後方互換問題はちゃんとしないと見放されると思う
0328デフォルトの名無しさん2015/01/20(火) 13:21:05.10ID:3IYipDbK
後方互換問題がないスクリプトなんてJSとPerlぐらいだろ
JSは単に進化停止していただけだし、Perlも6に以降失敗したようなもんだ
0329デフォルトの名無しさん2015/01/20(火) 13:25:29.78ID:3IYipDbK
あとRubyはもう1.8系はほぼ全滅するかレガシーになってるし、ある意味見放されたといえる

後方互換ガーなんてのはPHPとPythonだけ
0330デフォルトの名無しさん2015/01/20(火) 14:39:34.02ID:VllN2Wvm
>>325
Rubyは国が支援してるというね
0331デフォルトの名無しさん2015/01/20(火) 16:56:50.32ID:hB3oeRgV
>>328
このスレの120辺りを読んでくれ
Rubyの場合は別質
0332デフォルトの名無しさん2015/01/20(火) 18:04:44.73ID:RY//z8fg
Python2もPerl5もサポートされてるし、PHPはPHP4以降で破壊的な仕様変更はほとんどない
LLの中だとRubyがダントツで互換性低いのは間違いない
0333デフォルトの名無しさん2015/01/20(火) 18:40:33.91ID:2oWi77Pz
>>324
IronRubyの目的はIISでRailsを動かすこと
頓挫したけどね
向こうの人にとってのRubyは完全にRailsのDSLであって、
もう汎用言語とは言い難いレベル
0334デフォルトの名無しさん2015/01/20(火) 19:59:34.52ID:2rttaZJW
国内プログラマーなら黙ってRubyでオケ
国産言語ってことで行政が推してるからまあ安泰だは
0335デフォルトの名無しさん2015/01/20(火) 20:03:25.90ID:gCw9cvtQ
確かに。
日本人がPythonやってますとか聞くと非国民かよって思う。
0336デフォルトの名無しさん2015/01/20(火) 21:50:32.68ID:FOHiryvx
Ruby真理教なのか全体主義なのか知らんが
OSSには相応しくない
多様性は善ではなかったんかい!?

だから嫌われるんだよ
0337デフォルトの名無しさん2015/01/20(火) 21:51:26.48ID:quI2Cspp
といいながらRailsに頼る哀れなジャップ
0338デフォルトの名無しさん2015/01/20(火) 22:13:59.84ID:LYCYgqf6
ジャップは白人様が作られたPythonを使えばいいんだよ
どうせRubyなんてTRONと同じく白人様に潰されて消えていくんだから
Rubyみたいな糞言語は死んじまえ、Python万歳!!










...... こんな感じですかね?
0339デフォルトの名無しさん2015/01/20(火) 22:58:10.49ID:LYCYgqf6
やっぱり、LINE の中の人が使ってる Python をジャップも使うべきですよね?


--
91 名前: デフォルトの名無しさん Mail: 投稿日: 2014/09/13(土) 19:33:59.26 ID: NXGUPkMv
LINEにインターンに行った人のブログ読んだ時、そこの社員さんの本が写ってる画像があって
その中にPython関係のハングル翻訳本があったのであーやっぱりと思った

92 名前: デフォルトの名無しさん Mail: sage 投稿日: 2014/09/13(土) 20:35:34.26 ID: OsadxY4P
エンジニアブログでも登場してたよ
日本語バリバリっぽいが

110 名前: デフォルトの名無しさん Mail: sage 投稿日: 2014/09/16(火) 18:17:53.70 ID: exxayQq9
>>91
これか
http://cdn-ak.f.st-hatena.com/images/fotolife/c/cocodrips/20140829/20140829091202.jpg
0340デフォルトの名無しさん2015/01/20(火) 23:16:50.64ID:7gfbI4nv
国産のRubyには頑張ってほしいとは思うんだが、

こんなのがいるからRubyはダメになっていくんだろうな
0341デフォルトの名無しさん2015/01/21(水) 00:00:06.86ID:8ggEF+FJ
RubyはRails地獄、ライブラリ地獄で無理
0342デフォルトの名無しさん2015/01/21(水) 01:00:03.40ID:Tr7NsjzJ
そうそう、rubyは、初心者をバカにする
0343デフォルトの名無しさん2015/01/21(水) 01:31:54.70ID:Jm/vxooP
>>342
海外での評価は逆みたいだね ....
「Rubyコミュニティはnewbieに対して親切でフレンドリーだ」


--
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?RubyPeople

foocampにいたとき、rubyを好きな理由がもうひとつ見つかった。
それは自分では認識していなかったものだった。
誰かがテーブルで(ごめん名前忘れた)PythonコミュニティとRubyコミュニティの
違いについての彼なりの意見を述べていた。
彼曰く、「Rubyコミュニティはnewbieに対して親切でフレンドリーだ」と。
(彼はまた、これはRubyに日本の血が流れているからではないか、とも言っていた。)

Pythonコミュニティに参加したことはないので、彼の言うことが本当かどうかは分からない。
しかし、rubyコミュニティは、私が今まで見てきたどんなオンラインコミュニティよりも
ナイスだということは言える。 なんたって、あのAndy HuntとDave Thomas
――私が非常に尊敬する2人だ――が、私をRubyの世界に連れてってくれたんだから。
Rubyコミュニティには、才能と実用主義と楽しさとがうまくミックスされていると何度も思ってきた。
0344デフォルトの名無しさん2015/01/21(水) 01:39:05.34ID:+axw7Pvy
>>339
それ、突っ込みどころ違うよ。
Q:何故ハングルに翻訳するとそんなに分厚くなるのか?
A:発音記号だから。
0345デフォルトの名無しさん2015/01/21(水) 03:16:07.49ID:75gh2GfD
日本と日本人が大嫌いだけど、Rubyは大好きです。
0346デフォルトの名無しさん2015/01/21(水) 03:51:36.09ID:wB45Fkqg
慈悲深い終身独裁者、BDFL(Benevolent Dictator For Life)
が率いる組織は、成功することが多い

Linus, Ubuntuの Shuttleworth,
Pythonの Guido, Rubyの Matz など
0347デフォルトの名無しさん2015/01/21(水) 12:05:43.46ID:ZLZJY6Vk
話は変わるが、windowsでsshサーバを立てたいんだが、Cygwinとかソフトじゃなくて
PythonとかRuby辺りのライブラリで出来ないかな?
0348デフォルトの名無しさん2015/01/21(水) 13:45:53.87ID:JmHeT0ce
繋がったところでbashがないと意味ないだろ
UNIXと全く互換性がなくていいんならWinRMとPowerShellでも使っとけばいい
0349デフォルトの名無しさん2015/01/21(水) 21:46:32.46ID:ZLZJY6Vk
補足しとくと、、、

全部Windowsで、古〜いOSもあるLAN環境
とりあえずWinコマンド程度が使えればOK
0350デフォルトの名無しさん2015/01/21(水) 22:11:05.18ID:e6Du7UL/
なら>>348の言うようにWindowsの普通のリモート管理機能でいいだろ
telnetでも十分なレベル
0351デフォルトの名無しさん2015/01/22(木) 21:19:29.56ID:LKYj/LZs
node.jsがapacheの上で動けば何も迷わずに済んだ
0352デフォルトの名無しさん2015/01/22(木) 22:25:34.82ID:96GHEWiS
node.jsはサーバー付きなのが楽でいいんだろ
ゴチャゴチャと環境弄らなきゃいけないんなら誰が好き好んでJSなんか使うかよ
あれは組み込みみたいなもんだと考えるから許せるんだ
0353デフォルトの名無しさん2015/01/22(木) 23:52:07.17ID:LKYj/LZs
apacheが何やってるかよく分からないのに、node.jsなんて触れない
0354デフォルトの名無しさん2015/01/23(金) 00:16:00.35ID:pP0GMZce
githubもtopcoderもjsだらけ
0355デフォルトの名無しさん2015/01/23(金) 11:55:55.76ID:5/kO6ZiG
jsのいいところって何かあるっけ?
大抵の人にとっては仕方なく使うものなんじゃないの?
0356デフォルトの名無しさん2015/01/23(金) 12:08:20.53ID:pP0GMZce
fortranやpacalがイケてた時代を終わらせたのがcだとすれば、
pythonやrubyのイケてた時代を終わらせるのがjs
0357デフォルトの名無しさん2015/01/23(金) 19:02:18.94ID:6Afq+GYy
今ある言語でJSの代わりにブラウザに組み込めそうなものはなんだろうか
0358デフォルトの名無しさん2015/01/23(金) 19:10:11.25ID:pP0GMZce
c/c++。ベンダーロックインしない標準規格があるから
0359デフォルトの名無しさん2015/01/23(金) 20:00:14.55ID:uMcR+6pK
開発環境でロックイン。
0360デフォルトの名無しさん2015/01/23(金) 21:47:22.88ID:xpfPJLS+
Apple Swift がプログラミング言語ランキングで急上昇
http://blog.livedoor.jp/cartan0216/archives/55106852.html
初心者が学ぶべき最も適切なプログラム言語は何でしょうか?
http://blog.livedoor.jp/cartan0216/archives/55045634.html

とりまSwiftとRuby(Rails)で十分ぽいな
0361デフォルトの名無しさん2015/01/23(金) 22:25:03.62ID:pP0GMZce
ruby周りの動画みてるとさ、もう数年ぐらい前から登壇者たちはnode.jsの紹介しているよね
0362デフォルトの名無しさん2015/01/23(金) 22:43:40.65ID:hQrxvFHx
数年ぐらい前から紹介していながら今現在のこの普及度は明らかに足踏み状態だね
0363デフォルトの名無しさん2015/01/23(金) 22:49:19.54ID:xpfPJLS+
日本でプログラマーとして飯食うならRuby一択やろな
0364デフォルトの名無しさん2015/01/23(金) 23:35:24.96ID:OPE+Wqmb
jsはES6からが本命だろな

altjsがこんだけある背景みてみれば
0365デフォルトの名無しさん2015/01/23(金) 23:37:18.88ID:OPE+Wqmb
Rubyはsassで使うから入れてあるだけで全然使ってないな・・・
0366デフォルトの名無しさん2015/01/24(土) 00:54:48.95ID:NZHw0tw6
数年前からNode.jsやっていたような奴は、フレームワークどころかNode本体が内ゲバで
崩壊している現状に嫌気がさしてもう撤退しているだろ


>>364
ES6っていまだV8にすら採用されていないんだけど、いつ登場するの?

それに加えて、IE9/10/11、iOS678、Android45とか自動更新機能がないもので今後10年は
生き残りそうなのものがあるから、サーバーサイドという分野でのみES6は使われることになりそう
0367デフォルトの名無しさん2015/01/24(土) 01:46:56.28ID:j5NTd672
良いとか悪いとかじゃなくて、ブラウザでサポートされるのがJSだけなんでどうしようもない
0368デフォルトの名無しさん2015/01/24(土) 04:27:36.09ID:JKeamxrr
IEではVBSも使える。
というかVBSに処理を部分的に投げているライブラリは普通にあると思う。

# というかIEならWindowsの設定次第でPerlでもRubyでも使えるが、まあ、これは別の話だな。
0369デフォルトの名無しさん2015/01/24(土) 08:10:51.72ID:jAZ3+1Kv
JavaScript ≒ Javaバイトコード
別途コンパイラを用意すれば良いのであって、人間が直書きする必要は無い
0370デフォルトの名無しさん2015/01/24(土) 08:38:52.61ID:wENwJ1MH
jsってブラウザマクロ言語でしょ

Node.jsも決して使いやすくはないし、
alt.jsがたくさんあるのも、みんなが現状のjsにNoって言ってるよう

jsを汎用言語と混同している人ってなんなんだろう
webの世界だけしか見えてないってこと?
0371デフォルトの名無しさん2015/01/24(土) 09:04:28.74ID:sa+x1Xzy
Webどっぷりの人はそこら辺の感覚がズレてる
Webはフレームワークやプラットフォームに極めて強く依存する書き捨てコードばかりで
純粋に言語処理系を単体で動かすことってあんまりないからね
0372デフォルトの名無しさん2015/01/24(土) 11:22:18.67ID:eqZeKpyo
>>365
lessでいいじゃん

>>370
汎用言語だよ
0373デフォルトの名無しさん2015/01/24(土) 11:26:10.65ID:eqZeKpyo
言語処理系を単体で動かすって、何?学生の演習?
0374デフォルトの名無しさん2015/01/24(土) 17:00:35.12ID:W3y8Uzfq
nodeなんてオワコンだろ。
客に納品する仕事に使えるレベルではない。
0375デフォルトの名無しさん2015/01/24(土) 18:10:27.07ID:j5NTd672
ActiveXはIEからも消えていく
今度のSpartanとか
JSしか共通して使える言語はない
0376デフォルトの名無しさん2015/01/24(土) 18:21:30.79ID:4gU3kMxY
jsはブラウザごとの差異が激しすぎるよな
古めのブラウザだとライブラリも切り捨てるところ多いし

IE8とかまだまだシェアがあるから簡単には切れないけど、ライブラリ側からすれば
余計なメンテコストを払いたくないからと言ってざくざく切り捨ててる
0377デフォルトの名無しさん2015/01/24(土) 18:25:39.00ID:VbrrutVH
jQueryみたいなライブラリですらしょっちゅうAPI改廃したり、バージョンが細分化したりIE67切り捨てたりするからなあ
まあいまだにIE6-8使っている奴は氏ねと思うけど

IE9ですらモダンブラウザとは呼びにくい
0378デフォルトの名無しさん2015/01/24(土) 18:27:46.67ID:4gU3kMxY
>>377
IE67はさすがに死ねと思うが、IE8はまだシェア15%ぐらいあるからねー
さすがに切れないね
0379デフォルトの名無しさん2015/01/24(土) 18:47:53.83ID:DiKxWDit
Windows 2000ならIE6
それをアップグレードできない
0380デフォルトの名無しさん2015/01/24(土) 18:49:11.27ID:DiKxWDit
だいたいなぁ、最新のウェブブラウザでしかよめないウェブページなんて、どういうつもりかね?
いったいなにがしたいの。お客さんへってもしょうがない
0381デフォルトの名無しさん2015/01/24(土) 18:55:48.32ID:7JjHOFlk
PHPがいいね
0382デフォルトの名無しさん2015/01/24(土) 23:05:39.53ID:1ANpaCAo
>>380
ダサいページだと客が離れることもある
それくらい想像しろ
0383デフォルトの名無しさん2015/01/24(土) 23:14:45.75ID:4gU3kMxY
>>382
できることに差はあまりないよ
できることをやろうとしたときの面倒臭さに差があるだけで
0384デフォルトの名無しさん2015/01/25(日) 00:01:14.94ID:Jr53LPhm
>>382 できた当時からずっと2chはむちゃくちゃダサいページだな。

ワンページとかなんとか浮かれているような人たちは、もし彼らが只の雇われに過ぎないなら、極めつけのバカか狂信者だな。
0385デフォルトの名無しさん2015/01/25(日) 00:06:29.92ID:rMImkPL5
SPAってデスクトップアプリのようなものをブラウザ上に提供しようってもので、
派手でダサいだけのWebサイトをjQueryで作るのとは別物だよね?
0386デフォルトの名無しさん2015/01/25(日) 00:18:12.96ID:6mma36Hg
SPAはビチクソ全面Flashサイトの系譜だろ
デスクトップアプリの真似というよりはむしろ、Webらしいナビゲーションを
シングルページでどう実装するかみたいなアホらしい話が中心
0387デフォルトの名無しさん2015/01/25(日) 02:24:32.33ID:i0uaKtn8
モバイルの場合、ネイティブアプリで作るからそういうの要らないんだよな
帰ってきたFlashっていうのはその通りで、SEOだったり、フルFlashサイトの悪いところもそのまま
開発者の自己満足で作られてることが多いと思う
0388デフォルトの名無しさん2015/01/25(日) 09:24:05.61ID:kfeufnFV
シンプルで高速なのがいい
0389デフォルトの名無しさん2015/01/25(日) 09:45:05.35ID:jBwEQ7VS
>>384
そのレベルの事を態々書き込みに来る奴が絶えないんだから、十分成功しているな。
0390デフォルトの名無しさん2015/01/25(日) 09:56:04.07ID:nUXVFEqA
>>384
2chは早くからアプリベースのサービスだ
しかしそれにも関わらずユーザー離れは進んでるんじゃないのか?知らんけど
もっともダサい云々以前に質の問題だろうが
0391デフォルトの名無しさん2015/01/25(日) 13:08:38.69ID:rMImkPL5
レスポンシブな便所の壁に、糞を垂れてるヤツらなら幾らでも見たけど
2chのデザインとユーザビリティほど優れたものは見たことがないよ。
0392デフォルトの名無しさん2015/01/26(月) 08:43:53.57ID:sJiCscnb
IE8=XP使いだろうから、
本来は切り捨てていいんだけど、
まだシェアがあるってのが問題だよなぁ…。
0393デフォルトの名無しさん2015/01/26(月) 14:22:23.94ID:ltDG8o77
いや今の業務PCのデファクトスタンダードはWin7+IEだよ
目下Win7+IE10へ移行中といったところ
0394デフォルトの名無しさん2015/01/26(月) 14:23:09.30ID:ltDG8o77
訂正
いや今の業務PCのデファクトスタンダードはWin7+IE8だよ
の間違い
0395デフォルトの名無しさん2015/01/27(火) 12:37:13.90ID:P+J9yA8h
cで書かれたapache+phpと、c++で書かれたツール群のnode.js
どちらがプロジェクトとして長く続くんだろう
node.jsがv8へ依存している以上、googleの都合次第ってのが気持ち悪いよね
0396デフォルトの名無しさん2015/01/27(火) 18:59:29.53ID:/zylpgwD
みんな色々覚えて色々使ったらいいのに、なんで言語でケンカしてるの(´・ω・`)?
0397デフォルトの名無しさん 転載ダメ©2ch.net2015/01/27(火) 20:44:25.03ID:Ss3Wg0Gz
各人に十分な時間や気力があるわけではないからね…
0398デフォルトの名無しさん2015/01/27(火) 22:01:33.73ID:w1lsmrbK
>>396
ここが言語でケンカしたい人のために建ったスレだからだよ
0399デフォルトの名無しさん2015/01/27(火) 22:02:54.21ID:43M4HaDn
拳でケンカしたら痛いじゃないですか…
0400デフォルトの名無しさん2015/01/27(火) 22:14:29.76ID:43M4HaDn
やっぱり

拳固でケンカしたら痛いじゃないですか…

の方が語呂がよかったかな?
0401デフォルトの名無しさん2015/01/28(水) 02:12:53.90ID:PL/8mck0
言語って無数にあるし、スクリプト言語だけ全部覚えるとか無駄というか無理だからね
0402デフォルトの名無しさん2015/01/28(水) 02:22:02.15ID:6X1GPWd9
JavascriptとPHPとC++で十分。
Javascriptは方言が酷いし、C++もややそう。
PHPはビルド済み基本セットだけでなかなか行ける。
0403デフォルトの名無しさん2015/01/28(水) 09:59:37.04ID:UquNrg64
apache使う分にはluaの方がエコだよね
wiresharkやnmapだったりのバインドもあるし
皆が大好きなZed A. Shawもいる
0404デフォルトの名無しさん2015/01/28(水) 18:17:14.77ID:XvHvrKVb
C(組み込み)とjs(Webクライアント)とPython(その他全部)で全領域ok
0405デフォルトの名無しさん2015/01/28(水) 21:03:48.62ID:UquNrg64
jsだけでIoTで使われるような機器までイケるじゃん
Webって、wordpressだけで大抵のものは既に出来上がっているよね
0406デフォルトの名無しさん2015/01/29(木) 21:34:40.31ID:b+mFhtm4
jsをあえて他分野でも使いたいとは思わないんだよな

メジャーなスクリプトの中ではPythonが組み込みに強い方だと思うけど、
組込みって消費電力とかハードの値段とか設置場所の環境とか考えて
最小構成で作るようなものだから、スクリプトを乗っけれるような大げさな
機器だけしか選べないようだと困る
0407デフォルトの名無しさん2015/01/29(木) 23:45:11.53ID:KZZvYgK5
次世代のバズはWebとIoTだろ。大抵の組み込み機器にnode.jsが載っている
電気代よりもデバッグとメンテに掛かる人件費の方がコスト掛かる
0408デフォルトの名無しさん2015/01/30(金) 00:11:57.10ID:medIcPe3
jsこそデバッグとメンテに向いていないんじゃないのか? 使える人間の数だけは揃えられるとは思うが
見た目はjsに近いほうが良いだろうが、型チェックなりソース解析向きのアノテーションを付与する方向に行くんじゃないか
0409デフォルトの名無しさん2015/01/30(金) 00:12:30.08ID:dK03mtQo
電気代はバッテリの持ちなど利便性に直結するからな
利便性は商品の売れ行きに影響するので非常に重要で無視はできない
0410デフォルトの名無しさん2015/01/30(金) 00:34:02.97ID:UnBDdYg/
Javascriptは何時からか非同期、関数型が強調され出して初心者に難しい言語になってきた。
もともと早いころから関数型やオブジェクト指向を取り込んでる先進的言語だったんだろうが。
昔はそこにはそれほど触れなくても良かった気が。
0411デフォルトの名無しさん2015/01/30(金) 01:29:24.90ID:hYN/wnHV
>>409
組込み機器の生産数、利用者が多い場合にだけ考えれば良いことだよね
IoTで使われるような機器って多くても300個ぐらいじゃないの?
0412デフォルトの名無しさん2015/01/30(金) 02:15:31.33ID:M7MVDaI0
>>410
逆に大昔はお遊び言語な扱われ方だったからな
ヤリタカッタダケのユーザビリティ無視の効果に使われてる例が多かったし
解説サイトとかもページの効果の実装方法を説明するものがほとんどだった
0413デフォルトの名無しさん2015/01/30(金) 06:08:23.77ID:cIbmwoHp
>>407
全く意味がわかってないようだね

先に言語ありきじゃなくて、ハードに合わせて言語が決まってくるんだよ

jsとかが使える組み込みなんてホンの一部だけで、jsだけに縛られていたら
ほとんど何もできないということ
0414デフォルトの名無しさん2015/01/30(金) 08:30:02.04ID:medIcPe3
>>407
機器がどうなるかはともかく、jsを書ける人間は安価で調達できるってことが言いたかったんでしょ。
jsがインタプリタされるか、出荷時にコンパイルされるかのような違いは出るだろうが。

jsが「共通言語」になることを望んでいる経営陣やエンジニアもいるだろうし、逆の立場もいるだろう。
0415デフォルトの名無しさん2015/01/30(金) 09:08:58.93ID:5giSaP+2
非同期にセンサーデータを扱うことにかけてはnode.jsは優れてると思うけどね
0416デフォルトの名無しさん2015/01/30(金) 11:31:24.89ID:hYN/wnHV
>>413
は?パッと見た限りじゃ、c/c++の次にjsが多いだろ

>>414
それって、何処のガラパゴス諸島のmruby族?
0417デフォルトの名無しさん2015/01/30(金) 14:02:07.30ID:0aDLuZP4
非同期ではソースを綺麗に書くのは無理
0418デフォルトの名無しさん2015/01/30(金) 16:52:48.61ID:0d0GTcRJ
確かに
0419デフォルトの名無しさん2015/01/30(金) 22:32:55.03ID:kaeZrbim
無数にあるマイコンどれもにスクリプト言語をバイナリにコンパイルして書き込めるの?
0420デフォルトの名無しさん2015/01/31(土) 05:43:09.65ID:Klh2e7Hk
?よく分かんないけど、OSごと乗っかってる奴の話じゃない?
0421デフォルトの名無しさん2015/01/31(土) 06:42:16.39ID:Z3jRhN0n
お前らが何を言ってるのか理解できません
0422デフォルトの名無しさん2015/01/31(土) 09:26:59.04ID:Va9Rs2Sh
OS上のプログラムを組み込みと言うのか......
0423デフォルトの名無しさん2015/01/31(土) 09:51:52.43ID:Ozkgovrm
組み込みかどうかは利用形態の違いでしかない
Windows Embedded上のC#アプリみたいな超高級ソフトウェアでも普通に組み込みと呼ばれるから
0424デフォルトの名無しさん2015/01/31(土) 11:22:31.14ID:UNlAycVB
ttp://node-ardx.org/
IoTで使われる機器って、こんなのだよね?
0425デフォルトの名無しさん2015/01/31(土) 13:07:18.54ID:s9u0xaET
まさかarduinoの延長レベルの話だったりするのか?!

jsが使えるかどうかなんて、ハード要件に比べればどうでもよい小さいこと
0426デフォルトの名無しさん2015/01/31(土) 13:45:45.72ID:UNlAycVB
Webと繋ぐようなものなのに、コスト掛けてまでcでやらなきゃダメな場面って?
0427デフォルトの名無しさん2015/01/31(土) 15:25:12.05ID:SGXpRP2C
組み込みは全部webと繋げないといけないらしい......
0428デフォルトの名無しさん2015/01/31(土) 17:37:10.24ID:mU9tRz2Q
Xeonを搭載する組み込み機器を売ってます
0429デフォルトの名無しさん2015/01/31(土) 22:46:49.00ID:aqNl2FBk
スクリプト言語はどうでも良いです
好きなのを使えば良いんじゃないですか?

そんなことより静的型付け関数型言語の決定版が欲しいです
0430デフォルトの名無しさん2015/01/31(土) 23:35:12.71ID:3hGQPgsJ
スレタイを読んでもその発言ができるのか・・・
0431デフォルトの名無しさん2015/02/01(日) 04:18:10.85ID:5fvWjY1M
わかった、つまりpythonが最強ってことでしょ
0432デフォルトの名無しさん2015/02/01(日) 04:44:09.34ID:XrVkn0mu
ブラウザにはphpを載せるべきだった
0433デフォルトの名無しさん2015/02/01(日) 04:56:17.91ID:gVGAq1OK
Javascriptは関数型へ移行してきてるな。
メジャーな関数型として他を駆逐してしまうかもしれん。



CoffeScriptをさらに書きやすくしたLiveScript - webネタ
http://r-h.hatenablog.com/entry/2014/02/23/114659
0434デフォルトの名無しさん2015/02/01(日) 07:58:59.10ID:FFIHicXX
>>433
それJavaScriptとは言わないだろ。 JVMを言語と呼ぶようなものだ。

型付きで冗長なjs方言と、型無しでタイプ数を減らせるjs方言に二極化しているというのはある。
素のjsは駆逐されてしまうかもしれない。
0435デフォルトの名無しさん2015/02/01(日) 08:00:27.40ID:idWDCOsc
LiveScriptだのTypeScriptって名前に面白みがなくて試す気にならない
0436デフォルトの名無しさん2015/02/01(日) 08:12:40.69ID:gVGAq1OK
>>434
主流なJavascriptが先行版を取り込んでいくと見てる。


JavaScriptのクロージャ入門とECMAScript 6のletキーワードによる変数宣言
http://developers.linecorp.com/blog/ja/?p=3428

JavaScript - ECMAScript 6thで導入される機能 - Qiita
http://qiita.com/paulownia@github/items/1e0dce0bfee7c7d1c5aa
0437デフォルトの名無しさん2015/02/01(日) 09:30:26.03ID:FFIHicXX
>>436
全体的に日本語がおかしいぞ。
各種AltJSの実験的な機能を本家として取り込んでいく、という意味なら同意するが。
ライブラリごとに独自実装されている部分が共通化されるのは良いことだろう。
とはいえ、他の言語では当たり前のようにできていたことに追いついただけなんだがな。
0438デフォルトの名無しさん2015/02/01(日) 10:17:47.97ID:9dLdzSOD
Shell Script -> Bash等のShell
Run Script -> Daemonの起動制御
AppleScript -> OSAX
ActionScript -> Flush
TypeScript -> Web browser
JavaScript -> Web browser
JScript -> WSH(WScript)
VBScript -> WSH(WScript)
PostScript -> 印刷機
VIMScript -> VIM
Drawscript -> Illustrator
AutoCAD Script(Lispとは別) -> AutoCAD
MaxScript -> FinalRender
TeleScript -> MagicCap
NewtonScript -> MessagePad
SQL Script -> OracleDB
Script-Fu -> GIMP
0439デフォルトの名無しさん2015/02/01(日) 11:09:35.52ID:5haBzf74
>>438
至る所にtypoと大小文字の間違いがあってイライラする
書き直せ
0440デフォルトの名無しさん2015/02/01(日) 13:25:44.86ID:q+dQr7gh
SHELL SCRIPT -> BASH等のSHELL
RUN SCRIPT -> DAEMONの起動制御
APPLESCRIPT -> OSAX
ACTIONSCRIPT -> FLUSH
TYPESCRIPT -> WEB BROWSER
JAVASCRIPT -> WEB BROWSER
JSCRIPT -> WSH(WSCRIPT)
VBSCRIPT -> WSH(WSCRIPT)
POSTSCRIPT -> 印刷機
VIMSCRIPT -> VIM
DRAWSCRIPT -> ILLUSTRATOR
AUTOCAD SCRIPT(LISPとは別) -> AUTOCAD
MAXSCRIPT -> FINALRENDER
TELESCRIPT -> MAGICCAP
NEWTONSCRIPT -> MESSAGEPAD
SQL SCRIPT -> ORACLEDB
SCRIPT-FU -> GIMP
0441デフォルトの名無しさん2015/02/01(日) 14:35:08.24ID:XrVkn0mu
xlisp -> audacity
S-lang -> JED
0442デフォルトの名無しさん2015/02/01(日) 14:39:30.49ID:3vNkahG1
>>436
ブラウザ開発者間の綱引きが激しいのでJavaScriptは基本的に成長が遅いよ
だからAltJSみたいな発想になるんだから
0443デフォルトの名無しさん2015/02/01(日) 17:29:09.76ID:G8dOBwxP
altJSで一番オススメは何?
LiveScript? Elm?
0444デフォルトの名無しさん2015/02/01(日) 19:04:29.52ID:OM+Gcdnk
現実的にはCoffeeScriptとTypeScriptの2択だよ
あとは一ヶ月したら話題にも上らなくなるゴミ
0445デフォルトの名無しさん2015/02/01(日) 19:16:29.57ID:OM+Gcdnk
Railsに採用されてるCoffee,MSが作ってるType
それらが将来性を担保する要素として足るかどうかはともかくとして、
他のカス共は本当に全く「何も無い」からな
0446デフォルトの名無しさん2015/02/01(日) 20:01:42.99ID:XrVkn0mu
>>445
実はcoffee script使った方が、ecma scriptの仕様が改訂されてもソフトウェアを保守できる
github製のatomなんて、長期に渡って保守する必要があるだろうから、
素のjsで書くよりもトランスレーターを介した方が良い
0447デフォルトの名無しさん2015/02/01(日) 20:12:43.27ID:fftftPwM
coffeeもtsも仕様は思いっきりJavaScriptに依存してるぞ
互換性に厳しいMSならJSの仕様変更を回避するためにコード生成ルールを弄るなんてこともやりかねないが、
coffeeがそんなことするのはまず考えられない
0448デフォルトの名無しさん2015/02/01(日) 20:39:38.47ID:XrVkn0mu
MSなら大丈夫って何の根拠もないタダの印象論だよね?
tsみたいな複雑なものよりも、csのような単純なトランスレータの方がバグは見つけやすいのに
csって、配列末尾の","みたいな瑣末な違いを吸収してくれるんでしょ。たしか。
0449デフォルトの名無しさん2015/02/01(日) 20:56:47.79ID:FFIHicXX
js → やわめ → CoffeeScript
js → かため → TypeScript
どちらも需要は理解できるし、勝ち負けの話じゃないだろう
個人で手早く書きたいときは やわめ のほうがいいし、
企業で品質を客観的に保証する場合は かため のほうがいい

ただ、ES6がまともにリリースされた時には、残る利点もあるけど
js本体に吸収されてしまう部分もあるだろうなとは思う
0450デフォルトの名無しさん2015/02/01(日) 20:56:52.31ID:OM+Gcdnk
TypeScriptよりCoffeeScriptの方が単純って、
とてもTypeScriptを触ったことがあるとは思えないな…
0451デフォルトの名無しさん2015/02/01(日) 21:10:47.31ID:N0psPGkl
TypeScriptはトランスレータとしては非常にシンプル
型検査やMSお得意のIDEサポートのために処理系は超複雑だけど、
MSのコンパイラに品質の心配は無用だろう
0452デフォルトの名無しさん2015/02/01(日) 22:04:10.69ID:6s+kHcjQ
>>446
ECMAScriptは後方互換性を壊すような変更は絶対に入らないし

そもそも新しい仕様が追加されてもそれでコード書き直すなんてことはないからな
0453デフォルトの名無しさん2015/02/01(日) 22:09:19.86ID:G8dOBwxP
つまり、現状動いてるAltJS処理系の開発が終了したとしても、
動かなくなる心配は無用ってことだから、
現時点で純粋に優れている言語処理系を選べば良いわけだね?
0454デフォルトの名無しさん2015/02/02(月) 01:54:49.49ID:y5FxlOHY
C#のdynamicObject使えば動的型言語要らなくね?
0455デフォルトの名無しさん2015/02/02(月) 02:24:19.59ID:dbiG94ge
>>454
C#のdynamic objectは静的型言語の不便さを解消するために後付けで作られたものであって、
そこには動的型言語のメリットであるお手軽さはカケラも存在しない

むしろC#のdynamic objectは静的型言語の限界が露呈した結果でしかない
0456デフォルトの名無しさん2015/02/02(月) 03:33:09.70ID:DUKz3NUw
PerlもPHPもRubyもPythonも静的な型を宣言できるようにしようとしてる
ある規模越えると型は宣言できた方がよい
0457デフォルトの名無しさん2015/02/02(月) 05:42:55.18ID:KT6cnHtO
C#のdynamicはCOMや他の動的言語(ブラウザ上のJavaScriptとかPythonのバインディングとか)
と透過的にやりとりするためのものだから静的型が不便だから動的型入れたというのとはちょっと違うかと
0458デフォルトの名無しさん2015/02/02(月) 09:17:03.61ID:k5HPKynx
アプリケーションの一部をスクリプト側に追い出すのが流行って、そのためのホスト側の仕組みがdynamicだということね。
スクリプト側に追い出すこと自体を「静的型言語の限界」と言えなくも無いが、
昔ながらの設定ファイルにロジックを埋め込めるようなったという解釈もできる。
既にあるかどうか知らないけど、 .ini やJSONを扱うだけの DynamicObject も作れるんだろう、きっと。
0459デフォルトの名無しさん2015/02/02(月) 19:26:54.98ID:c9njyYRW
C#はCodeplexとかReference Sourceとか作ったのに今更GitHubに一部移行してるのがなあ
多くの古いプロジェクトがリポジトリーやイシュートラッカー複数作りたくないからGitHubはミラーにするかGitHub1本に乗り換えてるつーのに、
Rubyみたいに複数サイトにまたがって行うバカどもがいて、MSも同じ轍を踏んだw
0460デフォルトの名無しさん2015/02/02(月) 20:04:51.35ID:fZV+sQg0
Swift一本で十分過ぎるほど飯食っていけると確信したので専念するはさようなら^^
0461デフォルトの名無しさん2015/02/02(月) 21:23:59.49ID:SB3qw3g7
日本語のハイプだけでも、十分過ぎるほど飯は食えるだろ
0462デフォルトの名無しさん2015/02/03(火) 11:18:53.29ID:z5+/oPds
PHP7「俺が登場すればすべて勝利」
0463デフォルトの名無しさん2015/02/04(水) 04:00:11.44ID:C0cjHUM9
一年くらい前まではJSの一人勝ちかなって思ったけど、
なんだかんだでPythonが最強っぽい感じになってない?
0464デフォルトの名無しさん2015/02/04(水) 07:04:27.18ID:WTybUqd6
ないわー
0465デフォルトの名無しさん2015/02/04(水) 07:33:40.61ID:WOsZt1fm
2008,9年頃にPythonの1人勝ちだったけど、もう今はjsとgolangの時代だよ
0466デフォルトの名無しさん2015/02/04(水) 07:50:20.63ID:WOsZt1fm
世界的にはlessの方が普及しているのに、ガラパゴス諸島だけSCSS贔屓
0467デフォルトの名無しさん2015/02/04(水) 08:14:40.16ID:Y0NwCTkv
LESSはWindowsでは使えないからな
LinuxとかMac使っているやつらは現実にもかかわらず自分達が世界の中心とか言い出すけど
0468デフォルトの名無しさん2015/02/04(水) 10:44:30.48ID:ATulzAus
スクリプト言語はメインストリームはJSで間違いない
PHPは簡易なウェブサイト専用で当分残るだろうけど、その他はニッチな用途のみだな
0469デフォルトの名無しさん2015/02/04(水) 11:02:33.76ID:/nd+Eifb
>>467
> LESSはWindowsでは使えないからな
え?
0470デフォルトの名無しさん2015/02/04(水) 13:41:49.68ID:5pZRcUKP
LESSって何。ページャ?
0471デフォルトの名無しさん2015/02/04(水) 16:16:09.91ID:c4EOMpPG
numpyがある限りPythonは不滅
0472デフォルトの名無しさん2015/02/04(水) 16:43:47.77ID:WOsZt1fm
将来、numpyを使う職に就けるか、どうかなんて分からないんだよ?
0473デフォルトの名無しさん2015/02/04(水) 16:52:40.49ID:WOsZt1fm
>>467
ttp://winless.org/
やっぱ、メインストリームは違うよね
0474デフォルトの名無しさん2015/02/04(水) 19:15:37.21ID:QyQt1ecu
numpyを使う仕事か事業を興せばいいんじゃね?
0475デフォルトの名無しさん2015/02/04(水) 20:42:47.74ID:q5FZ4bIm
国内で働き続けるつもりならこれからも行政をバックボーンに持つRubyとiOSデバイスのSwiftだけで十分金稼げるやろ阿保
0476デフォルトの名無しさん2015/02/04(水) 21:13:54.40ID:VI4sqCnu
Rubywwww
0477デフォルトの名無しさん2015/02/04(水) 21:23:06.19ID:/nHBasUE
現実にPythonの案件なんてほぼないしな、日本では
0478デフォルトの名無しさん2015/02/04(水) 21:52:21.03ID:CnaU1BYI
Swiftはなぜかここで良く名前が挙がるが、スクリプト言語じゃないよな?
新興言語の中ではJavaScriptっぽいから、比べる人が多いのか?
GoやRustは癖が強いから人を選ぶのかもしれない。
0479デフォルトの名無しさん2015/02/05(木) 00:11:45.13ID:nfd6byLK
backbone.行政の無料で読めるtutorialって、何処かにない?
0480デフォルトの名無しさん2015/02/05(木) 00:20:17.23ID:dGetvNcg
Rubyは2008年頃にComplexFloat組込みを拒否ったときに
スクリプト言語が数値計算に使われるわけ無いじゃんって
空気を露骨に出したのが失敗だった
あれでnumpy的ライブラリが出現する可能性が無くなった

コア開発者達の先見の明が無さ過ぎたね
0481デフォルトの名無しさん2015/02/05(木) 00:29:18.33ID:nfd6byLK
numpyって、fortran製libraryのラッパーじゃないの?
設定面倒だし、Rかoctaveでいいよ。バカみたい。
0482デフォルトの名無しさん2015/02/05(木) 01:35:30.99ID:dGetvNcg
pip install numpy で直ぐ使えるようになるし、設定なんて不要
第一numpyがインストール出来ないレベルじゃRもインストール無理だ
0483デフォルトの名無しさん2015/02/05(木) 07:16:12.21ID:fR0tiRnO
>>482
こういうのはデフォルトじゃパフォーマンス出ないんだぜ
行列計算は年季の入った定番のクソ速いライブラリ群があるので、それを環境に合わせてビルドし直す必要がある
0484デフォルトの名無しさん2015/02/05(木) 08:24:30.09ID:dGetvNcg
何も設定せんでもBLASやATLASとリンクしてくれるじゃん
OpenBLASあたりを入れるのが若干面倒なのはまた別の話
それに、そのレベルじゃRでもリンクできねーって
0485デフォルトの名無しさん2015/02/05(木) 10:47:53.02ID:nfd6byLK
たまたま、自分の環境ではpip一発で入ったからってドヤ顔されても
numpy使うのってラッパーのラッパーみたいに幾つもレイヤーを跨いでいて気持ち悪いし
python自体が行列演算に向いた言語だとも思えないから使うだけのメリットないお
0486デフォルトの名無しさん2015/02/05(木) 12:14:09.88ID:4O3ODdxu
Pythonで数値計算してると動的型である必要性は全く感じないな
数値計算というのは基本的に配列に対してループぶん回して単純な計算するだけだから、
FORTRANですらそれほど不自由はないんだよね
0487デフォルトの名無しさん2015/02/05(木) 12:31:22.12ID:nfd6byLK
さっさと、juliaが普及すれば良いのになぐらいの感覚なんだけど
0488デフォルトの名無しさん2015/02/05(木) 17:30:58.22ID:zRse6YN5
いくらグルー言語とはいえ数値計算に使うならせめてN^2(N〜数千程度)くらいの処理は手軽に書けないと不便だよね
C++やfortranでは大袈裟すぎるが動的なスクリプトじゃ遅すぎる状況は意外と多い
0489デフォルトの名無しさん2015/02/05(木) 21:36:53.62ID:e89xCkjt
RubyとSiwiftだけでいいっす
オマケでjsくらい
0490デフォルトの名無しさん2015/02/05(木) 23:26:20.73ID:uJ7a95fp
>>488
Cython
0491デフォルトの名無しさん2015/02/06(金) 00:20:57.86ID:Nt6ZZwBi
数値計算分野のスクリプト言語はもはやRで決まりと言っていいだろう
0492デフォルトの名無しさん2015/02/06(金) 00:40:06.17ID:gG9kNFKc
統計ならRだけど、数値計算全般と言われると微妙
0493デフォルトの名無しさん2015/02/06(金) 02:07:01.32ID:gG9kNFKc
ロクに数値計算やった事ないのに
Pythonにケチをつけたいだけの奴等の
批判が浅過ぎて笑える
0494デフォルトの名無しさん2015/02/06(金) 06:56:42.13ID:xsYLlG/o
Rは統計関連のパッケージ揃っていて便利だけど計算が遅すぎる

>>493
同意
0495デフォルトの名無しさん2015/02/06(金) 07:45:46.52ID:COrbG8Gp
オマエは、今までにpythonのlistとnumpyの行列を間違えたようなデバッグに掛けた時間を覚えているのか?
matlab, octaveでいいじゃん
0496デフォルトの名無しさん2015/02/06(金) 08:30:35.40ID:gG9kNFKc
>>495
listとnumpy.ndarrayを間違える頻度は
strとintを間違えて演算する頻度と同じか、もっと少ないくらい

それを多いと感じるか少ないと感じるかは
当人のヘボさによって変わるから何とも言えない
0497デフォルトの名無しさん2015/02/06(金) 08:38:21.80ID:VJ9IpT0a
numpyが有用かどうかは一口に数値計算といっても何するかによるわな
うまく巨大な行列計算に落とし込めないような処理をすることが多い人にとっては実際クソ遅いだろうね
0498デフォルトの名無しさん2015/02/06(金) 08:51:59.42ID:060Dq3Vc
>>497
本当これ
C++だと一秒で終わる計算を10分以上もかけててワロタ。遅すぎて使えない
0499デフォルトの名無しさん2015/02/06(金) 09:15:16.65ID:COrbG8Gp
ublas使う方がマシ
データの出力にだけ、gnuplotかmatplotlib使え
0500デフォルトの名無しさん2015/02/06(金) 09:57:14.48ID:taJLh7vA
>>498は数学のセンスが無くて行列演算に落とせる処理を
無駄にループで書いてるタイプ
0501デフォルトの名無しさん2015/02/06(金) 12:26:38.48ID:WBuwIxnd
じゃあ例題やるから行列で効率的に解いてくれ
多数の三次元ベクトルが与えられていて、それぞれは空間上の点を表している
その全ての点に対して、各点を中心とした半径Rの球内に含まれる他の点の数を数えよ
粒子のシミュレーションでありがちなケースだ
0502デフォルトの名無しさん2015/02/06(金) 12:30:49.46ID:MGKB6HFr
ベクトルである必要性は?
3次元上の点、座標とどこが違う?
05035012015/02/06(金) 14:01:55.13ID:rUn5aUO6
空間内の点の座標(x,y,z)でいいよ
もちろん各成分は単なる数値としてバラバラに扱って構わない
点の位置について法則性などの前提知識は特に無いものとする
0504デフォルトの名無しさん2015/02/06(金) 19:38:56.10ID:y3riaJcs
>数学のセンスが無くて行列演算に落とせる処理を
>無駄にループで書いてるタイプ

ってのは「適切な処理方法が分からず非効率な処理方法を選んでしまうタイプ」という意味にしか読めないんだが
行列って字面だけ額面通り受け取ってどうすんだよ…
例えば「8分木で解く問題」を全検索ループで解こうとするのは全く同じことだと思うの
0505デフォルトの名無しさん2015/02/06(金) 22:05:06.57ID:n3qvAmTd
盲目的に二重ループ回してもCなら一瞬で終わる計算を、
わざわざ空間分割してまでスクリプトでやるのが賢明か?
そもそもスクリプト言語の有用性は「パフォーマンスよりもコーディング効率が重要な場面は多い」という仮定に保証されてるんだから、
複雑でも常に効率的なアルゴリズムを選ぶべきだというのはそれを否定してるようなもんだ
0506デフォルトの名無しさん2015/02/06(金) 22:36:41.76ID:COrbG8Gp
え?cで複雑なアルゴリズム実装するなら、先にpythonで実装するよ
0507デフォルトの名無しさん2015/02/07(土) 00:08:14.54ID:dy/8sxAQ
決めようぜ最強のプログラミング言語を綱引きで
http://portal.nifty.com/kiji/150203192687_1.htm
http://portal.nifty.com/2015/02/05/b/img/sp/000.jpg

なんだこれ
0508デフォルトの名無しさん2015/02/07(土) 00:17:55.83ID:SMMsK3cL
数値計算なんてFORTRANがかろうじて生き残ってた世界なのに、そんな世界での優位性を
主張するなんて、PythonはFORTRANの後釜でも狙ってるというのだろうか?
0509デフォルトの名無しさん2015/02/07(土) 00:34:25.50ID:SrqoFgB2
>>505
盲目的にCで二重ループ回せば終わるような計算は
Cythonを使えばCと完全に同等のパフォーマンスが出せる
ボトルネック以外は普通のPythonコードで書けるから開発効率も抜群
0510デフォルトの名無しさん2015/02/08(日) 09:01:34.52ID:0Aue6GB7
Pythonは物臭な大学生が課題用に沢山モジュールを作ってくれてるから
理論やアルゴリズムがわかっていれば使えるものがいっぱいあるからね。
自分でプログラミングできない人達には最適だよ。
0511デフォルトの名無しさん2015/02/08(日) 12:15:50.47ID:zszX/URa
もちろん自分でプログラミングできる人達にも最適だけどね
0512デフォルトの名無しさん2015/02/09(月) 00:48:25.32ID:Sty7eEqu
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Rubyが20位
消え去りそう
0513デフォルトの名無しさん2015/02/09(月) 12:45:08.52ID:Mur7opE4
更に下にもランキングがあるから大丈夫
0514デフォルトの名無しさん2015/02/09(月) 20:29:26.48ID:NdEO3stp
ttp://elementscompiler.com/elements/silver/
2014年、プログラム言語の人気はユーザーが如何にお金を落としてくれるかに再定義された。
0515デフォルトの名無しさん2015/02/09(月) 21:20:12.66ID:30EEw8FK
俺はPythonistaなんだが、、、

Ruby頑張ってくれよ
0516デフォルトの名無しさん2015/02/09(月) 21:23:51.32ID:7lZ37zN3
Rubyみたいな足場の脆弱な言語は一度落ち目のイメージが付くとあっという間だよね
0517デフォルトの名無しさん2015/02/09(月) 21:28:26.64ID:wJXH/6RL
もうすぐCOBOLに負けるのか…
感慨深いものがあるね
0518デフォルトの名無しさん2015/02/09(月) 22:39:15.68ID:NdEO3stp
世の中がRubyだのHaskellだの騒いでた時代から、俺はnode.js推しだったよ
もうじき、WordPressもPHPも時代の流れと共に過去の遺物として姿を消すんだろうね。
だけど、Railsなんて使う人たちは最初から闇に属していたんじゃないかな
脚光を浴びなくなったところで、闇は彼らを優しく包んでくれる
0519デフォルトの名無しさん2015/02/09(月) 22:58:53.13ID:cOqDGthB
Rubyはこのスレにある主要スクリプト言語の中で一番早く消えそうと思うけど、さすがに現状でRやPascal以下って事はないだろ
0520デフォルトの名無しさん2015/02/09(月) 23:04:56.73ID:NdEO3stp
2000年頃ってDelphiが謳歌していて、VCLがイケてた時代だったから、
当時、作られた遺物の保守・改修があるんじゃないの
0521デフォルトの名無しさん2015/02/10(火) 00:54:10.14ID:pMPiEmrc
VBが浮上したのはもしかして Windows10 への移植か・・・
0522デフォルトの名無しさん2015/02/10(火) 07:08:11.45ID:w6L2FJ5J
マジレスすると、tiobeはVB.NETとVB6以前を区別できないから
0523デフォルトの名無しさん2015/02/10(火) 10:20:32.21ID:PFEl66/k
toibeはあてにならない
まだredmonkのほうが参考になる
0524デフォルトの名無しさん2015/02/10(火) 21:10:52.64ID:cmxjOyHS
c/c++も両方合わせてのカウントなんだろうね

そう考えると、スクリプトが上位を占めてる
0525デフォルトの名無しさん2015/02/11(水) 05:02:09.85ID:8epm/hYr
ABAP て何?10位以下は誤差の範囲だな
0526デフォルトの名無しさん2015/02/11(水) 09:00:08.58ID:XzdqNrda
業務システムのDSLだよ
この中じゃ開発サイドの利益率は一番高いんじゃないかなw
0527デフォルトの名無しさん2015/02/11(水) 09:13:26.97ID:1xR6PXTF
>>518
じゃあブログは何が取って変わるの?
node.jsでブログ作るの?無理でしょ
0528デフォルトの名無しさん2015/02/11(水) 09:28:37.74ID:XzdqNrda
無理ではないでしょ
はてななんかPerlだよね
ブログ書く人にとって開発言語なんてどうでもいいことだし
0529デフォルトの名無しさん2015/02/11(水) 09:29:36.93ID:5YrTgD1Z
>>527
ぜんぜん問題ないだろ。ウェブサーバになれてファイルアクセスもできるんだから。
というか、ソケットとファイルを扱えるならどんな言語だって可能だ。

無理なことと、無駄なこと(既存のものがあるから)を混同していないか?
0530デフォルトの名無しさん2015/02/11(水) 12:25:28.83ID:ja9ixH6y
>>527
ghost, keystone, cody, ...
node.js cmsでググれば、もう1ダース近く出てくるよ
どのぐらい堅牢か分からないし、しばらくはwordpressが続くだろうけど
0531デフォルトの名無しさん2015/02/11(水) 12:28:47.63ID:ja9ixH6y
hatenaがperlなのは、今更、可動しているシステムを止められないからだろw
ebay,myspace,microsoft,yahooと、既にnode.jsに以降した後だよ
railsやwordpressがmeteorに取って代わられるのは時間の問題だよね
0532デフォルトの名無しさん2015/02/11(水) 14:32:01.76ID:XzdqNrda
ブログはサービスを今新しく作るならJavaかC#でいいんじゃないかな
やることが決まりきってるんだし、
ブログだとクライアント側で凝ったことするのには向かないし、
それほどnode.jsに比べて開発コストがかかるとも思えん
0533デフォルトの名無しさん2015/02/11(水) 14:54:26.49ID:ja9ixH6y
冗談でしょ?ebayだったか、myspaceはjavaで書かれてたものをnode.jsに移行したんだよ
0534デフォルトの名無しさん2015/02/11(水) 19:36:41.53ID:HJK17V0f
こいつまだnode.jsとか言ってんのか
主要メンバーio.jsに移ったのに
0535デフォルトの名無しさん2015/02/11(水) 20:49:55.62ID:n4ocOWkc
noderが以前の勘違い系Rubyistみたいになってる

ちなみに
ttps://www.google.co.jp/trends/explore#q=meteror%2C%20rails%2C%20%2Fm%2F02vtpl&cmpt=q&tz=
ttps://www.google.co.jp/trends/explore#q=meteror%2C%20rails&cmpt=q&tz=
0536デフォルトの名無しさん2015/02/11(水) 20:50:10.94ID:mLFUUH4O
どちらにしてもJavascript界隈は活発だな
0537デフォルトの名無しさん2015/02/11(水) 21:23:39.11ID:ja9ixH6y
io.jsは流行らないよ。そもそも、forkして流行ったようなものって何かあった?
xemacs,plan9,golang,rubinus,cakephpやcodeignitorの派生と失敗しか思い当たらない
0538デフォルトの名無しさん2015/02/11(水) 21:39:57.84ID:cr1RHjCT
>>536
meteror を meteor とスペルミスしてるのはワザトかと思ったが、
訂正して再検索しても結果は同じだった(Meteor 息してないよ >>536)

https://www.google.co.jp/trends/explore#q=JavaScript%20Meteor%2C%20Ruby%20Rails%2C%20Python%20Django%2C%20PHP%20CakePHP&;cmpt=q&tz=

なおキーワードが "Rails" だけでは鉄道関係も含まれて不公平なので、"Ruby Rails" とし、
WordPress はアプリケーションであってフレームワークではないので、"PHP CakePHP" とした
同様に他の LL についてもそれぞれ "JavaScript Meteor" "Python Django" としている

目立つのは 2006..2008 近辺における Rails への爆発的なトレンド
それだけ Rails の登場は Web フレームワークにおける革新的な存在であったのだろう
その後、緩やかに Rails のトレンドは低下しつつあるが、
それでも Rails と比較すれば他のフレームワークのトレンドは誤差(ゴミ)に等しい
3年や5年そこらで逆転するとは、とうてい予測できない
データは冷酷だね
0539デフォルトの名無しさん2015/02/11(水) 21:46:58.29ID:ja9ixH6y
perlの凋落なんて、あっという間だったろ?誰か、catalystって憶えてる?
0540デフォルトの名無しさん2015/02/11(水) 21:55:28.07ID:hnLG61Dm
いつものjs厨
スルー推奨
0541デフォルトの名無しさん2015/02/11(水) 22:36:27.12ID:00aeaMNo
>>538
DjangoみたいなオワコンとRailsで3倍くらいしか差がないやんけ
思ったよりRails落ちて来ててワロエナイ
0542デフォルトの名無しさん2015/02/12(木) 00:40:34.90ID:69w0QsPU
Python, PHP, Perl, Ruby, Javascript に programming をつけて google trends

http://www.google.com/trends/explore#q=Python%20programming%2C%20PHP%20programming%2C%20Perl%20programming%2C%20Ruby%20programming%2C%20Javascript%20programming&;cmpt=q&tz=
0543デフォルトの名無しさん2015/02/12(木) 06:12:21.21ID:T7x78rd/
伸び率予想も含めて、

python>>>>>>js>>>>>ruby>php

グダグダいうよりデータ
0544デフォルトの名無しさん2015/02/12(木) 06:20:38.24ID:FId2UG9C
>>542
python が増えてるのは、他が落ち込んだ影響だね。
PHP や Perl は減ってるけど、資産があるだろうから検索が減ってるからと言って利用が減っているとは限らない。

2007年ごろに Ruby なども上昇してきたけど、その時に Python が選ばれたっぽい。
しかし、Phthon は 2.x と3.x で分かれてるから・・・
0545デフォルトの名無しさん2015/02/12(木) 08:15:29.78ID:5oB/LYoT
それって、Webサイトに選ばれてるの?
0546デフォルトの名無しさん2015/02/12(木) 09:54:09.00ID:GGx2leqC
> 数値計算なんてFORTRANがかろうじて生き残ってた世界なのに、そんな世界での優位性を
> 主張するなんて、PythonはFORTRANの後釜でも狙ってるというのだろうか?

流石、バカは物事の技術的背景を全く考えない発想をするんだなwwwww
0547デフォルトの名無しさん2015/02/12(木) 15:11:52.88ID:vBHOZlzG
JSはプラグマ指定でクラスベース型付言語になるし、
もうJSで"use python"とかできるようにすればこの論争は終結じゃね
0548デフォルトの名無しさん2015/02/12(木) 15:28:52.08ID:hBWmgXOx
数値計算云々の話なら、Pythonには良いネイティブライブラリのラッパーがあるって文脈だから
ウェブブラウザというサンドボックスしか与えられなければ、Pythonの利点は無くなっちゃうよ
0549デフォルトの名無しさん2015/02/12(木) 17:58:55.98ID:jNVy0++O
Pythonは文法が極めて平易で、妙な罠仕様も少ないから
教科書に載ってるような擬似コードがほとんどそのまま動く
そして、関数型やRubyの世界と違って平易なコード=良いコードという共通認識がある
それがプログラミングを専門としない人達に好まれる理由だよ
0550デフォルトの名無しさん2015/02/12(木) 21:12:25.78ID:T7x78rd/
機械学習とか統計ものとか、色んな本でよくPythonが選ばれてるよね

可読性とシンプルさを重視してる分、いろんな分野の人がとっつき易いし
紹介する側も楽なんだろね

Pythonて地味にいいんだよな
0551デフォルトの名無しさん2015/02/12(木) 21:32:51.86ID:33UytghA
でも国内で飯食うならRuby一択なんすよね^^
国産言語で国が行政が後押ししてるんで安心なんすょぶっちゃけ^^
0552デフォルトの名無しさん2015/02/12(木) 21:45:52.37ID:gp/f22S8
IT業界全体が英語圏の後追いでしかないから、行政の後押しなんか寧ろ無駄にRubyを延命してしまって日本の開発事業をガラパゴス化させる要因になりかねない
まぁRubyに限らず、IT業界だけは日本製に慣れ親しんじゃダメだと思う
0553デフォルトの名無しさん2015/02/12(木) 21:58:07.22ID:yDIkiztO
小さな島国の馴れ合いコミュニティに頼らなきゃ食えないレベルなら
JavaやCOBOLでもやってたほうがよっぽど効率良く稼げるよ
0554デフォルトの名無しさん2015/02/12(木) 22:33:08.80ID:HWARCNzZ
しかしITの本場である米でRubyは未だ一大勢力である事実
日本より使われてるというねw
0555デフォルトの名無しさん2015/02/12(木) 22:42:18.84ID:JBmu40/2
>>550 可読性
いや、逆に窮屈に感じる。ライブラリとしては、スタイルが重要ですが…

むかし、Cがはやりだしたころ、Cのよさとして、自由なスタイルでかけるというのがあった(よめない!)
製品は、高価でかえなかった。フリーソフトウェアは、自由にかかれていた
0556デフォルトの名無しさん2015/02/12(木) 22:44:54.86ID:SyYc68M1
いや、WordPressは当分残ると思う
0557デフォルトの名無しさん2015/02/12(木) 22:47:19.67ID:EO8I/82g
>>554
日本以上に使われてるのか
Ruby最強じゃん
0558デフォルトの名無しさん2015/02/12(木) 22:50:42.47ID:G7IOQrQS
Rubyは日本ではあまり使われてない。
0559デフォルトの名無しさん2015/02/12(木) 23:42:15.05ID:5oB/LYoT
Rubyistは自分の故郷では敬われないものだ
0560デフォルトの名無しさん2015/02/13(金) 00:04:06.38ID:2jzWkgw0
RubyはいいんだけどRailsどうにかならんかな
プログラミングするってかAPIの使い方ばっかり探してる
0561デフォルトの名無しさん2015/02/13(金) 00:13:25.14ID:yrnbMcTJ
探して見つかるものならまだいいが、Railsは動的に定義される(orされてると見なせる)メソッドが多いから
大量の約束を丸暗記しなきゃいけない
0562デフォルトの名無しさん2015/02/13(金) 00:14:43.35ID:SVZa3gOz
>>549
その「平易なコード」が「手続き型プログラミングによるコード」を指すのならば、主旨に同意する
実際、(>>549 にもあるように)「教科書に載ってるような擬似コード」の多くは、
(常識的な)手続き型プログラミングのスタイルで書かれている

そして手続き型プログラミング言語として Python は簡潔な言語仕様で設計されているから、
初心者へのプログラミング教育に最適である
くわえて「プログラミングを専門としない人達」が道具として扱うプログラミング言語としても適している
彼らは道具がもたらす結果が重要であって、道具そのものの優劣には無関心であることが多い
実際、ビジネス分野では COBOL や VB、技術計算分野では FORTRAN や C が未だに現役である
そんな人達がスクリプト言語に手を出すとしたら、Python が最も違和感無く短期間で習得できるだろう

こうした Python への高評価が、>>542 のトレンドに表れたと言えるだろう
そして、この傾向は今後も継続し、少なくとも3年や5年といったスケールで Python が凋落することはない
0563デフォルトの名無しさん2015/02/13(金) 01:01:51.01ID:SVZa3gOz
>>551
> でも国内で飯食うならRuby一択なんすよね

いや、Ruby は Rails への求人は比較的多いが、Ruby そのものへの求人や案件はほとんど無い
しかも Rails 求人が比較的多いといっても、Webアプリ求人の大半は PHP(および Java)であって、
意外性で(ごく少数の) Rails が目立っているにすぎない
またシステム運用管理の求人であれば、(Ruby よりも)Perl のほうがずっと多い


> 国産言語で国が行政が後押ししてるんで安心なんすょぶっちゃけ

いや、国や行政が後押ししてるという事実は、残念ながら存在しない
まれな例外として島根県の松江市が Ruby 案件を扱う地元企業を支援しているけれど、
これは(Ruby 発祥の地である)松江市という地方自治体による後押し or 町おこしの一つにすぎない

類似のケースとして、長崎県では Open COBOL 案件を扱う地元企業を支援している
そして(現在のメンテナは海外へ移転しているが)Open COBOL の開発者は日本人であり、
しかもその開発の過程では IPA という国の機関から支援を受けている
  http://ossipedia.ipa.go.jp/doc/14/  -- オープンソースCOBOLコンパイラの開発
しかし、これだけの類似性があっても:
  Open COBOL は、国産言語で国が行政が後押ししてるんで安心なんすょ
などと語る人はいないし、マジで主張しているなら妄想扱いされるだろう
0564デフォルトの名無しさん2015/02/13(金) 01:33:56.26ID:txMLsUSz
>>563
> いや、国や行政が後押ししてるという事実は、残念ながら存在しない

刑務所作業で Ruby が選択されている。
刑務所を運営するのは国。
0565デフォルトの名無しさん2015/02/13(金) 06:03:45.76ID:3tmdVICO
昔からRubyを「ツール」として愛用してきた身としては
RailsからのRuby界隈の流れは何だか複雑な気持ち
RoRが出た当初ぐらいはまだ良かったけど、Rubyで便利にRoR、じゃなくて
まずRailsありき、の人がやたらと増えちゃった、ここの評価もそうだし
0566デフォルトの名無しさん2015/02/13(金) 06:09:41.97ID:WO6/InYq
rubyの思想はアメリカには受けそうだが、実際のところどうなの?
データとかない?

道具としてはpythonだな
0567デフォルトの名無しさん2015/02/13(金) 06:14:14.21ID:3tmdVICO
上の「飯食うためにRuby」って人もたぶん意味するところはRubyでなくRailsなんだろうし…
RailsってカルトでRuby信奉されても正直困るし、そんなカルトを基準にRuby叩かれてもって感じ
0568デフォルトの名無しさん2015/02/13(金) 06:36:28.52ID:txMLsUSz
カルトは Ruby で Rails は現実解だろ
0569デフォルトの名無しさん2015/02/13(金) 06:42:56.81ID:6he/hkSx
Ruby 地域別人気度
フィリピン 100
アメリカ合衆国 73
ニュージーランド 61
オーストラリア 52
トリニダード・トバゴ 51
ブルネイ 46
香港 45
http://www.google.co.jp/trends/explore#q=Ruby&;date=today%2012-m&cmpt=q&tz=

Python 地域別人気度
中国 100
アイスランド 39
アメリカ合衆国 31
イギリス 24
イスラエル 23
セントヘレナ 23
シンガポール 22
http://www.google.co.jp/trends/explore#q=Python&;date=today%2012-m&cmpt=q&tz=

COBOL地域別人気度
インド 100
日本 68
フィリピン 63
南アフリカ 51
スペイン 30
アメリカ合衆国 28
ブラジル 24
http://www.google.co.jp/trends/explore#q=COBOL&;date=today%2012-m&cmpt=q&tz=
0570デフォルトの名無しさん2015/02/13(金) 10:21:53.67ID:RWhE8JtR
"pythonのパラドクス"なんて記事があるけど、
これって、phpやjavascriptにも当てはまるよね
0571デフォルトの名無しさん2015/02/13(金) 10:34:45.99ID:3tmdVICO
>>568
Rails時代になるまではカルトと言われることはほぼ無かったよ
(作者がカルト信者、と言う人は居たけど)
しきりにそう呼ぶ人が出たのもまたRailsのイメージで語られるようになってから
0572デフォルトの名無しさん2015/02/13(金) 11:01:09.39ID:GTODBIzq
PythonとRubyでは、どちらがJavaに似ているの?
Javaの次に学習したいんだけど、学習コストの面で似ている方の勉強をしたい。
0573デフォルトの名無しさん2015/02/13(金) 11:21:59.68ID:HbIw8MAU
RubyとJavaの相性はいいよな
Javaやった後にRubyさわるとおしっこ漏らす
0574デフォルトの名無しさん2015/02/13(金) 11:38:13.83ID:txMLsUSz
>>569
ウソだろと思ったらウソだった。
Python に Windows か Linux をくっつけて検索したら、インドが上位に入ってくる。

Ruby に Windows をつけると、4つしか出てこない
日本 100
インド 72
アメリカ合衆国 54
イギリス 42

ttp://ja.wikipedia.org/wiki/%E3%83%AB%E3%83%93%E3%83%BC
> 天然ルビーは産地がアジアに偏っていて欧米では採れない

Perl と違って Ruby や Python は 有名な現物と同じ綴りだから、検索は絞り込みしないとおかしくなる。
宝石の Ruby で検索すると、プログラミング言語の Ruby や Python はないに等しい
ttp://www.google.co.jp/trends/explore#q=Ruby%20%20windows%2C%20Ruby%20%20%20%20%20linux%2C%20Python%20windows%2C%20Python%20linux%2C%20Ruby%20-windows%20-linux&date=today%2012-m&cmpt=q&tz=
0575デフォルトの名無しさん2015/02/13(金) 11:48:59.46ID:txMLsUSz
Ruby+Linux
100 日本
59  アメリカ合衆国

Ruby+Windows
100 日本
72  インド
54  アメリカ合衆国
42  イギリス


railsを開発した Jason Fried 氏がアメリカで広めただけか。
広がっていく可能性はあるけど。
ttp://www.ted.com/talks/jason_fried_why_work_doesn_t_happen_at_work?language=ja
0576デフォルトの名無しさん2015/02/13(金) 12:23:45.61ID:RWhE8JtR
石を裏返してみよ。シリコンバレーはそこにある。
木の側をひっぺがしてみよ。シリコンバレーは、そこにある。
0577デフォルトの名無しさん2015/02/13(金) 12:23:48.46ID:yrnbMcTJ
>>572
明らかにPython
3つとも使っててどの信者でもない人に聞けばほぼ満場一致だと思う
細かい根拠を挙げればキリがないが、
Pythonは開発陣がJavaをリスペクトしてるし、Javaを参考にして作られたライブラリも多い
Ruby世界ではJavaはいわゆる楽しくない言語の最大派閥であり
憎むべき敵だからね
0578デフォルトの名無しさん2015/02/13(金) 13:08:50.79ID:WMAmgE3I
>>573 >>577
ありがとう!とても参考になったよ。
派閥という観点は興味深いですね。
0579デフォルトの名無しさん2015/02/13(金) 14:00:50.03ID:txMLsUSz
あ、検索がおかしいだけか

"ruby on rails"

100 インド
66  アメリカ合衆国
58  台湾
57  フィリピン
52  カナダ
52  ウクライナ
48  ポーランド
46  オーストラリア
42  ロシア
41  日本

なんで日本はフィリピン以下なんだ?
0580デフォルトの名無しさん2015/02/13(金) 14:09:01.13ID:txMLsUSz
"ruby on rails"

2005 100 アメリカ合衆国

2006 82  アメリカ合衆国
    67  オーストラリア
    64  カナダ
    61  日本

2008 100 インド
    44  日本
    41  アメリカ合衆国

2011 100 インド
    66  ロシア
    58  アメリカ合衆国
    47  日本

2013 100 インド
    62  中国
    60  アメリカ合衆国
    53  フィリピン
0581デフォルトの名無しさん2015/02/13(金) 14:14:37.19ID:1K6tPySG
>>565
そうなの?
おれにとってもRubyはツールだよ
Rubyでちょこちょこ小銭稼いでるけどそれはwebにすら関係ないし

Railsはではじめのころからまったく他人事、いまも他人事、まったく関係がない
0582デフォルトの名無しさん2015/02/13(金) 14:32:14.42ID:v5btlO/2
ぶっちゃけどれも似てない。
Pythonが似てるというのならJavaScriptでさえ似てると言えるだろう。
0583デフォルトの名無しさん2015/02/13(金) 15:20:53.07ID:txMLsUSz
Python と似てるのは C言語のはず。見た目違うけど。

インデント構造は珍しいけど
C言語にインラインで組み込む MASM では普通にあんなインデント使うし
GOTOのラベルと制御文のコロンが一緒。
0584デフォルトの名無しさん2015/02/13(金) 15:48:14.79ID:VTAHyJPf
C++使っていてPythonに始めて触れたときは、C++を自然にした感じに見えたなぁ。
instance.method で self がバインドされた関数オブジェクトが返るところとか。
演算子も同じようにオーバーロードできたし。

JavaScriptはLuaにPerlの悪いところを取り込んだ劣化版にしか見えなかったが、
ブラウザでもサーバーサイドでも動くから、学習 / 教育コストを減らすために
どうしたって今後はjsが増えていくのは確実だろうな。
0585デフォルトの名無しさん2015/02/13(金) 16:01:44.18ID:RWhE8JtR
jsはschemeにcの構文取り込んだんだよ
最初、schemeを載せるつもりだったのに猛反発うけたわけ
0586デフォルトの名無しさん2015/02/13(金) 16:42:44.20ID:v5btlO/2
JavaScriptの構文と言ってもES6でだいぶスマートに書けるようになったし。
もうほかの言語と余り変わらないと思うよ。
0587デフォルトの名無しさん2015/02/13(金) 16:45:50.03ID:C4JgJ2Ao
>>579-580
Rubyは英語みたいなもんだから、日本人には不利。
一方、英語人には自然と話すように、
簡単にプログラミングできる

でも、日本のコミュニティは世界一。
Rubyistが優しいのは、日本人が多いから。
他の言語では、自己虫が多いし、もっとギスギスしている
0588デフォルトの名無しさん2015/02/13(金) 16:57:26.30ID:v5btlO/2
そもそもコミュニティが作っている言語とそうでない言語ではいろいろと違うだろう。
0589デフォルトの名無しさん2015/02/13(金) 17:06:03.75ID:UES1FkLe
パイソンはパスカルじゃね?
0590デフォルトの名無しさん2015/02/13(金) 17:37:30.85ID:VTAHyJPf
以前は偏見は無かったつもりなんだが >>587 みたいなのを多く見てRubyに不信感を抱くようになったんだよなぁ……
05915872015/02/13(金) 18:09:36.17ID:C4JgJ2Ao
Rubyコンに行った多くの人が、
優しくてすばらしい人が多いと言っている

他のコミュニティとは違うらしい
0592デフォルトの名無しさん2015/02/13(金) 18:11:13.20ID:v5btlO/2
まあ実際のところは2chの質問スレを見れば大体わかるよな。
0593デフォルトの名無しさん2015/02/13(金) 19:57:24.72ID:QIyK5jlp
ああいうコミュニティって面倒くさい
新顔か?とりあえず●●さんに挨拶しとけよ、みたいな
0594デフォルトの名無しさん2015/02/13(金) 20:16:30.46ID:t5R17Dpz
>>563
っ福岡
福岡はメチャンコRubyとmRubyに力入れている
0595デフォルトの名無しさん2015/02/13(金) 20:32:46.04ID:WO6/InYq
Ruby信者さんてRubyは自由だ多様性は善だと言っておきながら、
Ruby以外は認めないっていう矛盾したことを平気でいう人が多い
0596デフォルトの名無しさん2015/02/13(金) 20:41:56.21ID:SVZa3gOz
>>595
たとえば、こんな人達のことかな?

>Ruby世界ではJavaはいわゆる楽しくない言語の最大派閥であり
>憎むべき敵だからね
(>>577 から引用)
0597デフォルトの名無しさん2015/02/13(金) 21:36:00.18ID:mwNVsHPS
Python信者のRuby叩きってなんなの?目の敵にしすぎでしょ
RubyistはPythonなんてなんとも思ってないのに・・・。(むしろそこが気に喰わないのか?)
0598デフォルトの名無しさん2015/02/13(金) 21:49:29.77ID:WO6/InYq
Ruby叩きなんてしてないよ
信者の方
0599デフォルトの名無しさん2015/02/13(金) 22:32:50.16ID:SVZa3gOz
>>597
坊主(ぼうず)憎けりゃ袈裟(けさ)まで憎い

>>598 みたいなのは典型的な島国根性気質だから、ほっとけばいいw
0600デフォルトの名無しさん2015/02/13(金) 23:15:26.30ID:1kPxT1Pp
JRubyの出来はカナリ良いので
Java使いの次の選択肢として悪く無いんだけど、
Rails以外の理由でRubyを選ぶような人は意識高い系なので
Clojureとかに行ってしまいがち
0601デフォルトの名無しさん2015/02/13(金) 23:30:14.20ID:qAadHGJa
どっちかというと他を認めないのはPythonの方だと思うけどなぁ…
かつては永久凍土問題とも言われてたし、そういう文化が根強い感じ
0602デフォルトの名無しさん2015/02/13(金) 23:34:59.46ID:EnDK8K4a
Py厨はガラが悪い。まるでヤクザのよう。
Ru厨は知識がない。まるでお山の大将。
0603デフォルトの名無しさん2015/02/13(金) 23:39:03.69ID:yrnbMcTJ
>>600
×意識高い系 ⚪︎手段が目的化してる系
0604デフォルトの名無しさん2015/02/14(土) 00:49:11.35ID:2E82eAgo
>>597
Python と言うすぐれた言語があるのに国策で無理やり Ruby をやらされるからだよ
0605デフォルトの名無しさん2015/02/14(土) 04:13:13.09ID:nG6FExp8
JRuby使うくらいなら標準サポートのJS使えばよくね。
Rubyist以外が意識高いとわざわざRubyを選択する理由があるかねぇ。
0606デフォルトの名無しさん2015/02/14(土) 07:28:47.19ID:yiZhsGHz
>>604
>>564
ワロタ
0607デフォルトの名無しさん2015/02/14(土) 09:11:45.05ID:iwIxxWwW
不毛な議論になりがちだね

ちょっと趣向を変えて......

分野別
www.google.co.jp/trends/explore#q=Ruby%20web%2C%20python%20web%2C%20javascript%20web%2C%20node.js%20web&cmpt=q&tz=
www.google.co.jp/trends/explore#q=ruby%20scraping%2C%20python%20scraping%2C%20javascript%20scraping%2C%20node.js%20scraping&cmpt=q&tz=
www.google.co.jp/trends/explore#q=ruby%20embedded%2C%20python%20embedded%2C%20javascript%20embedded%2C%20node.js%20embedded&cmpt=q&tz=
www.google.co.jp/trends/explore#q=Ruby%20science%2C%20python%20science%2C%20javascript%20science%2C%20node.js%20science&cmpt=q&tz=

国別
www.google.co.jp/trends/explore#q=Ruby%2C%20python%2C%20JavaScript%2C%20node.js&geo=JP&cmpt=q&tz=
www.google.co.jp/trends/explore#q=Ruby%2C%20python%2C%20JavaScript%2C%20node.js&geo=US&cmpt=q&tz=
www.google.co.jp/trends/explore#q=Ruby%2C%20python%2C%20JavaScript%2C%20node.js&geo=CN&cmpt=q&tz=

結構意外な結果も多い
0608デフォルトの名無しさん2015/02/14(土) 09:37:13.48ID:2E82eAgo
>>607
Ruby science に関してだけど
Ruby laser と少し同期してるんだけど
ttp://www.google.co.jp/trends/explore#q=Ruby%20science%2C%20Ruby%20%20laser%2C%20Ruby%20science%20laser&cmpt=q&tz=

Ruby science
100 アメリカ合衆国

Ruby laser
100 インド
19  アメリカ合衆国
17  イギリス

Ruby laser windows
0


そういえば Python の実物がいるのもインドだっけ。
0609デフォルトの名無しさん2015/02/14(土) 09:46:18.13ID:3EPsJ3bR
>>605
JRubyとJSってかなり方向性違うと思うのだが、なぜ代替になると思った?
0610デフォルトの名無しさん2015/02/14(土) 09:48:24.19ID:2E82eAgo
Ruby Python JavaScript Node.js 各言語+mathematics
Python がわずかにあるだけ
ttp://www.google.co.jp/trends/explore#q=Ruby%20mathematics%2C%20python%20mathematics%2C%20javascript%20mathematics%2C%20node.js%20mathematics%2C%20%22Scientific%20computation%22&cmpt=q&tz=

科学技術計算の英訳は Scientific computation (Google翻訳)だけど、一件も出てこない。
0611デフォルトの名無しさん2015/02/14(土) 10:07:39.54ID:KJLqYxlY
scientific computation も決して間違った言い方じゃないんだけど
scientific computing の方が良く使われるから、そっちなら出るかも
0612デフォルトの名無しさん2015/02/14(土) 10:10:56.61ID:ISQup94G
もうちょっと広い意味ではnumeric computing
どれも出なかったけど
0613デフォルトの名無しさん2015/02/14(土) 10:15:39.00ID:KJLqYxlY
意味は広いかもしれないけど、そういう言い方はあんまりしない
Numerical analysisなら使う
0614デフォルトの名無しさん2015/02/14(土) 10:46:10.71ID:8mcoyf2I
検索で宝石のRubyを省くなら蛇のPythonも省いて統計取らないと
0615デフォルトの名無しさん2015/02/14(土) 10:52:23.46ID:NBsm4vmv
蛇(パイソン)とか悪魔(デーモン君)
ゾンビプロセスとか
Guile(腹黒い[陰険な]ずるさ,悪知恵,狡猾(こうかつ); 二枚舌,二心.)とか
Unix系は、悪趣味だな!
悪の権化
0616デフォルトの名無しさん2015/02/14(土) 11:11:54.44ID:mF11qe4I
悪魔はdemon、Unixのはdaemonな
とマジレス
0617デフォルトの名無しさん2015/02/14(土) 11:52:27.31ID:VmodTSHN
>>615
そうだよ。Windowsがキリストの十字架に見立ててるんだ。XPなんてまさにそれ。
Gnashなんて、M$の楽園の提供する楽園に入れず、傲慢、無精、怠惰だけが取柄の地獄で歯ぎしりしてる連中だね。
0618デフォルトの名無しさん2015/02/14(土) 11:56:04.42ID:b89lMdY8
>>616
デーモン「君」なのだからFreeBSDのマスコットキャラクターのことだろ
0619デフォルトの名無しさん2015/02/14(土) 11:59:38.96ID:VmodTSHN
ここだけの話し、ダンコガイや堀江がperlのプロパガンダを振りまくことになったのも、
高価な真珠を豚に与えてはならないっていう預言が実現するためのものだったんだ。
0620デフォルトの名無しさん2015/02/14(土) 12:05:55.81ID:O6svWQnE
なにそれこわい
0621デフォルトの名無しさん2015/02/14(土) 13:27:44.64ID:cVw0KtML
勢力争いみたいなのは、JS勝利で確定なんだから、今さらどうでもいいだろ
0622デフォルトの名無しさん2015/02/14(土) 13:57:47.57ID:iwIxxWwW
カテゴリが選べるんだった 失礼

"プログラミング"
www.google.co.jp/trends/explore#cat=0-5-31&q=Ruby%2C%20python%2C%20JavaScript%2C%20node.js%2C%20php&cmpt=q&tz=
アメリカ
www.google.co.jp/trends/explore#cat=0-5-31&q=Ruby%2C%20python%2C%20JavaScript%2C%20node.js%2C%20php&geo=US&cmpt=q&tz=
日本
www.google.co.jp/trends/explore#cat=0-5-31&q=Ruby%2C%20python%2C%20JavaScript%2C%20node.js%2C%20php&geo=JP&cmpt=q&tz=
中国
www.google.co.jp/trends/explore#cat=0-5-31&q=Ruby%2C%20python%2C%20JavaScript%2C%20node.js%2C%20php&geo=CN&cmpt=q&tz=

"ネットワーク"
www.google.co.jp/trends/explore#cat=0-5-311&q=Ruby%2C%20python%2C%20JavaScript%2C%20node.js%2C%20php&cmpt=q&tz=
アメリカ
www.google.co.jp/trends/explore#cat=0-5-311&q=Ruby%2C%20python%2C%20JavaScript%2C%20node.js%2C%20php&geo=US&cmpt=q&tz=
日本
www.google.co.jp/trends/explore#cat=0-5-311&q=Ruby%2C%20python%2C%20JavaScript%2C%20node.js%2C%20php&geo=JP&cmpt=q&tz=

"インターネット ソフトウェア" アメリカ
http://www.google.co.jp/trends/explore#cat=0-5-32-807&;q=Ruby%2C%20python%2C%20JavaScript%2C%20node.js%2C%20php&geo=US&cmpt=q&tz=

やっぱりアメリカが先を行ってて他が後追いしてる感じがする
0623デフォルトの名無しさん2015/02/15(日) 00:34:50.80ID:j9FQDFlJ
apacheやnginxにluaのモジュールって、何となく気持ち悪いよね
このぐらいならperlの方がマシ
0624デフォルトの名無しさん2015/02/15(日) 09:12:01.10ID:DmYD2Sag
js勝利で確定らしいよ
0625デフォルトの名無しさん2015/02/15(日) 09:18:50.88ID:lHovhrIX
>>623
perlってC/C++の実行ファイルへの組み込みってできるの?
luaの利点ってそこでしょ?
0626デフォルトの名無しさん2015/02/15(日) 09:29:33.19ID:ABT28a22
勘違いしてる人が多いけど、luaでいう組み込みってスクリプトも含めた組み込みな
ユーザーにスクリプト書かせる用途では、luaでは少;々不便なのでPythonなどもっと豪華な言語が好まれる
0627デフォルトの名無しさん2015/02/15(日) 09:51:32.38ID:lHovhrIX
>>626
一昔前は確かに組み込みといえばPythonだったけど、最近でもPythonを組み込んだものって開発されてる?
Pythonの豪華さって、ライブラリの豪華さであって、
アプリ内の環境とファイルに多少触れれば十分な用途では、そこまでの差を感じられるのかね?
0628デフォルトの名無しさん2015/02/15(日) 15:40:11.60ID:j9FQDFlJ
>>625
unix系鯖に使われる設定スクリプトにluaってのが文化的に気持ち悪い。文法も冗長

ついでに、思い付くようなことは大抵は誰かがやってるよね
ttp://perldoc.perl.org/ExtUtils/Embed.html
0629デフォルトの名無しさん2015/02/15(日) 15:56:31.03ID:SSlwb3yD
ゲームのスクリプトエンジンみたいなものに限らず、アプリの拡張言語としてluaは普通に
使われていると思うが。自分が使ってるアプリだとWireSharkなんかもそうだな。
逆に、Pythonを組み込んだアプリってどんなのがあるかな?
パスを指定して自分でビルドするようなのしか思いつかない。
0630デフォルトの名無しさん2015/02/15(日) 16:46:36.71ID:lHovhrIX
>>629
https://ja.wikipedia.org/wiki/Pythonを使っている製品あるいはソフトウェアの一覧
GIMP, Blender の辺りは有名だろうか。
個人的にはシヴィライゼーション4でMODを手直ししたときにPythonだったのが印象に残ってる。

Luaも拡張用途でよく聞くが、アプリ全体がほぼLuaってのは少ないかも。
PerlやRubyを組み込んだアプリは聞いたことがない。 逆に、全体がってのは多いだろうけど。
0631デフォルトの名無しさん2015/02/15(日) 16:48:18.88ID:bvDjJpB+
どちらもゲームエンジンで恐縮だが、
RPGツクールはRubyで、Ren'PyはPython
0632デフォルトの名無しさん2015/02/15(日) 16:55:32.68ID:SSlwb3yD
GIMPもPythonを使ってたのか。Script-Fuの印象しかなかったw
で、見てみたらやっぱりPython環境一式まるまる抱え込んでるんだね。
0633デフォルトの名無しさん2015/02/15(日) 16:57:27.86ID:bWgf/6Xs
pythonはPy_*REFが面倒くさい
0634デフォルトの名無しさん2015/02/15(日) 17:27:07.08ID:5TXODXhX
サクラエディタが perl 使えるんじゃなかったかな。使ったことないけど
0635デフォルトの名無しさん2015/02/15(日) 18:25:48.78ID:LLTklK8q
プログラミングアートしてのprocessingは最高やな
Aruduinoと連携できるしクリエイティブになれる
0636デフォルトの名無しさん2015/02/15(日) 18:43:01.84ID:DmYD2Sag
>>635
数年ズレてるし初心者丸出し
0637デフォルトの名無しさん2015/02/15(日) 18:51:47.85ID:xJHWsHas
UnityのBooもPythonベースだっけか
0638デフォルトの名無しさん2015/02/15(日) 19:19:56.41ID:LLTklK8q
>>636
>>624

wwwwwただの社畜コーダーが偉そうにょwww
0639デフォルトの名無しさん2015/02/15(日) 19:47:32.84ID:LLTklK8q
こちとら美大出のクリエイティブな職業柄、あくまでツールとしてのプログラミングを語ってるだけよな
0640デフォルトの名無しさん2015/02/15(日) 19:56:50.94ID:Fti/aEnS
"美大出"って言う奴って藝大や多摩美出てる奴居ないよね
0641デフォルトの名無しさん2015/02/15(日) 20:00:18.10ID:ABT28a22
Processingは中途半端にJavaなのがダルい
JavaならJavaで変に弄らないで普通にJava書かせろよ
Processing.jsの方が良いわ
0642デフォルトの名無しさん2015/02/15(日) 20:13:50.62ID:dIIwrjWA
>>637
違う
PythonライクなC#
Booで書いた自作ライブラリはC#と共用できる
見た目はPythonだけど中身はC#
0643デフォルトの名無しさん2015/02/15(日) 20:16:53.76ID:pg1XKTVq
C#つーか.Netだな
0644デフォルトの名無しさん2015/02/15(日) 20:19:46.75ID:dIIwrjWA
あ、そうだった
まぁつまりPythonの書き方で.Net資産を使い放題
0645デフォルトの名無しさん2015/02/15(日) 20:23:07.99ID:ABT28a22
全くメンテされてないし次のバージョンでUnityからも外されるけどね
0646デフォルトの名無しさん2015/02/15(日) 20:44:51.72ID:bWgf/6Xs
非DLR、静的タイプってのが最高だったな、おまけにマクロも。
SharpDevelop3系+WinForms+Booは重宝したなぁ
0647デフォルトの名無しさん2015/02/15(日) 21:10:22.86ID:DPVLi1TC
Windows業務系だと、C#が主流なの?
ironPython/ironRubyは使えそう?
0648デフォルトの名無しさん2015/02/15(日) 22:34:53.22ID:lHovhrIX
>>647
IronPythonはメンテが続いてるように見える。
IronRubyのほうは2年ほど放置中。

そういえば、Boo⇔ Python の関係って、JavaScript ⇔ TypeScript の関係に似てるかもな。
0649デフォルトの名無しさん2015/02/15(日) 22:42:31.21ID:bWgf/6Xs
違いますから
0650デフォルトの名無しさん2015/02/15(日) 23:34:05.23ID:/SOxeOnw
>>640
芸大かそれ以外じゃない?多摩美は普通に美大って言うと思うが
0651デフォルトの名無しさん2015/02/15(日) 23:38:50.63ID:bWgf/6Xs
何を言うとるんだ君は
0652デフォルトの名無しさん2015/02/16(月) 00:31:01.87ID:fv9TRfXf
Python製のWindowsアプリはそこそこ普及してる
0653デフォルトの名無しさん2015/02/16(月) 00:55:16.65ID:MMcpdm+E
>>648
thnx

最近はWebFrameworkばっかりで遠ざかってたんだが、
今からWindows(XP〜7)の業務用GUIを作る場合で無難な選択ってC#.Netなんだろか?
0654デフォルトの名無しさん2015/02/16(月) 00:57:11.02ID:1hmF6S/z
>>632
Gimpは起動したらすっげー長い時間pyスクリプト流してるじゃん
0655デフォルトの名無しさん2015/02/16(月) 18:30:17.65ID:NxVOoQZu
RubyやP言語のエンジンはいつになったらJSのそれ並に早くなるの?
ぶっちゃけV8を改造すればいいんじゃね?
0656デフォルトの名無しさん2015/02/16(月) 18:58:48.99ID:4BaVTJq2
「今のところPythonの中の人たちは高速化する気が無い。だからRubyは高速化で優位に立てる」みたいな記事をネットで読んで寂しくなったのを覚えています。本当にそうなのでしょうか?
0657デフォルトの名無しさん2015/02/16(月) 19:35:56.07ID:DbIQDT9L
>>656
Cythonとかが既に有るが?
0658デフォルトの名無しさん2015/02/16(月) 20:25:49.19ID:fc395IJE
速度が要るならGoで書くから別に
0659デフォルトの名無しさん2015/02/16(月) 20:32:12.98ID:yzFhOePD
JSはJSしか使えない環境だから嫌々ながらでも高速化する動機が生まれるんだな
他の言語を組み合わせることができる環境だとボトルネックを追い出せば済むから、
わざわざ労力をかけてスクリプト言語自体を高速化したいと思わないんだろう
0660デフォルトの名無しさん2015/02/16(月) 20:41:41.22ID:/dxaPFxY
言語処理系の最適化はソースを汚して進化の足を引っ張る迷惑行為でもあるからなあ
MRIなんか特にそうだろう
0661bti2015/02/16(月) 20:46:26.30ID:KKpFX0J7
ビットコインをはじめよう
1000円分のビットコインがもらえます!

https://bitflyer.jp/gift/fn0tlipl

とにかく一応もらっておくといいです。
0662デフォルトの名無しさん2015/02/16(月) 21:01:54.75ID:dTbuNMm+
>>656
>「今のところPythonの中の人たちは高速化する気が無い。だからRubyは高速化で優位に立てる」みたいな記事

この記事のソースはどこ?
どこかの誰かがblogに書いた妄想だろ
0663デフォルトの名無しさん2015/02/16(月) 21:26:45.38ID:dTbuNMm+
>>659
>わざわざ労力をかけてスクリプト言語自体を高速化したいと思わないんだろう

Ruby に限定した話であれば、Ruby のバージョンアップはインタプリタ高速化の歴史そのものだよ

・〜Ruby 1.8: MRI (Matz Ruby Implementation)とも呼ばれ、Ruby のオリジナル実装で遅かった
・Ruby 1.9:仮想マシン YARV (Yet Another Ruby VM) の採用によって、他のスクリプト言語並の性能に改善
・Ruby 2.0:Ruby 1.9 のリファクタリング版
・Ruby 2.1, 2.2, ...:Ruby 2.0 の性能改善版
  * 64bit環境では、浮動小数点オブジェクトのメモリ割り当てをヒープから(整数等と同じ)スタックへ変更
  * 有理数/複素数を組込みクラスとして実装(Ruby -> C への移植)
  * 世代別GCの採用
0664デフォルトの名無しさん2015/02/16(月) 21:28:13.66ID:nT8bWWvG
Cythonがあるじゃないって言っても、ならPythonはいらないのかって話でもあるしな。
0665デフォルトの名無しさん2015/02/16(月) 21:29:53.38ID:ObiwWRJ7
>>663
そんな丹精込めたインタプリタがお遊びで作ったJRubyやIronRubyに一瞬で抜かれるのがジャップクォリティ
0666デフォルトの名無しさん2015/02/16(月) 21:32:06.36ID:/Le2iIgb
googleやfacebookの技術者たちがフルタイムで世界最速のインタプリタを実装してくれるのに、
未だに、RubyだのPythonだの言ってたの?
0667デフォルトの名無しさん2015/02/16(月) 21:58:15.48ID:yzFhOePD
>>663
ちょっと前にベンチマークを取ったら、RubyはLuaの2割くらい遅いだけだったから、確かに結構速くなったなとは思った。
その後、Chakra (IE11のJSエンジン) を試したら1桁速くて、JITには勝てないなと痛感した。
おそらくv8でも同等以上の速度が出るだろうね。
0668デフォルトの名無しさん2015/02/16(月) 23:19:11.10ID:1hmF6S/z
生のLua動かすなよw
0669デフォルトの名無しさん2015/02/17(火) 00:07:43.31ID:p+M358vo
>>662
これです。

「Pythonの実行処理系は、現在では最適化にあまり力を入れていない。そのため、言語設計のレベルではRubyよりもPythonの方が有利であるものの、処理系の性能ではRubyの方が勝っている」
ttp://www.ipa.go.jp/files/000006385.pdf
0670デフォルトの名無しさん2015/02/17(火) 00:51:45.17ID:U3SYBhrh
>>669
「Ruby側」からの発言だから、眉唾だな。
0671デフォルトの名無しさん2015/02/17(火) 01:01:35.92ID:L1u57SQV
どれも高速化はしてるだろ。だがもともと遅いのが10-20%アップしても遅い。
最終的には熱心に高速化するかどうかより実測だろう。
0672デフォルトの名無しさん2015/02/17(火) 01:02:54.90ID:Sx05C5wV
高速化で PyPy を使ってる人は少ない?
0673デフォルトの名無しさん2015/02/17(火) 01:05:39.35ID:119eewUp
>>664
Cythonが何か分かってたら、そういう発言は出ないと思うんだけど

CythonはPythonに極めて酷似した構文(型を書かなければPythonそのもの)で
CPythonのC言語拡張モジュールを記述できるライブラリなので、
当然Pythonが無かったら意味ありません
0674デフォルトの名無しさん2015/02/17(火) 01:18:25.18ID:8pmBcFLk
もうC#でいいんじゃね?
dynamic型でダックタイピングできるし、
ExpandoObjectで
http://www.atmarkit.co.jp/fdotnet/csharp4/csharp4_08/csharp4_08_01.html
こーんなことまでできるし。
C#で静的型と動的型を必要に応じて使い分ければいんじゃね?
実行速度の話が挙がっているが、これもJust in timeで速いし。
0675デフォルトの名無しさん2015/02/17(火) 01:26:48.93ID:4ypmtgKv
PythonってThere is only one wayしかないらしいけど、それなら新API追加されたら旧APIは削除されるの?
0676デフォルトの名無しさん2015/02/17(火) 02:00:33.27ID:uUznwSJx
>>658
Goは普及してきてるんかいな?
0677デフォルトの名無しさん2015/02/17(火) 03:03:12.93ID:Q2g81oZ1
>>675
削除されたけどまた追加された
0678デフォルトの名無しさん2015/02/17(火) 04:05:06.53ID:fin6oyP+
>>673
わざわざCythonだと意識して書かないといけないのならそれはPythonと分けて考えられるべき。
0679デフォルトの名無しさん2015/02/17(火) 06:29:36.59ID:og8h0gXe
>>672
PyPyは大して速くない
寄付集めて本家と協調しないで無駄な再発明をやってる馬鹿野郎として
Pythonコミュニティからも嫌われてるよ
0680デフォルトの名無しさん2015/02/17(火) 09:19:00.16ID:119eewUp
>>678
そりゃあボトルネックを高速化するために書くんだから意識はするよ
でもCythonも所詮はPythonのライブラリのひとつに過ぎない
0681デフォルトの名無しさん2015/02/17(火) 09:31:31.35ID:g880Oypa
rubyですら遅いのにpythonってrubyより遅いの?
0682デフォルトの名無しさん2015/02/17(火) 09:49:43.67ID:Q2g81oZ1
>>681
ruby で秒(またはシステムタイム)を取得するループの最適コードを書き込んでくれたら試してみるよ
0683デフォルトの名無しさん2015/02/17(火) 09:55:14.55ID:fs6T0wjH
どうせ、ベンチで使われるようなアルゴリズムなんて書かないんだろ?
どれ使ったって一緒だよ
0684デフォルトの名無しさん2015/02/17(火) 09:57:30.83ID:7Oammksp
>>681
またCython無双がはじまるよー
0685デフォルトの名無しさん2015/02/17(火) 09:59:13.89ID:U3SYBhrh
他のスクリプト言語が tagged pointer なり NaN boxing なりで(邪悪な)最適化をしているところを
Pythonは素直に整数1個1個でもヒープオブジェクトを生成しているから遅いという話を聞いたことがある。
0686デフォルトの名無しさん2015/02/17(火) 10:33:58.36ID:Q2g81oZ1
Ruby まったく知らんけどググって計測してみた。
以下コード

def myinc(i)
return i + 1
end

puts "abc"
puts Time.now
puts Time.now.sec

prev = Time.now.sec
while prev == Time.now.sec do
end
prev = Time.now.sec
cnt = 0
while prev == Time.now.sec do
cnt += 1
end
puts cnt

prev = Time.now.sec
while prev == Time.now.sec do
end
prev = Time.now.sec
cnt = 0
while prev == Time.now.sec do
cnt = myinc(cnt)
end
puts cnt
0687デフォルトの名無しさん2015/02/17(火) 11:11:35.35ID:Q2g81oZ1
>>686 のコードだと Python より少し速い結果になったんだけど
CPU 時間のループは半分近くになっちゃったから
やっぱり Python の方が速いんじゃないかな。

ttp://peace.2ch.net/test/read.cgi/tech/1378978504/53+330+358
> JS chrom  777203    736391

Chrome の JavaScript より遅い結果になった。
0688デフォルトの名無しさん2015/02/17(火) 12:27:45.18ID:4qghq42T
>>686-687
あのさ…
元スレでも
> >>53
> >時刻を取って秒が変動するまで
>
> よく意味がわからない…
と突っ込まれてたように
そんなの計測しても何の意味もないんだよ…
> prev = Time.now.sec
> while prev == Time.now.sec do
> end
prev取得時の秒未満の値次第で結果が変わるでしょ?

> pp (1..5).map{sleep 0.3;[Time.now.sec,Time.now.nsec]}
[[25, 895178162],
[26, 195322889],
[26, 495487005],
[26, 795643036],
[27, 95801409]]
0689デフォルトの名無しさん2015/02/17(火) 12:44:30.42ID:e3sUk8Nw
サブセットなら早いという話をし始めると、
それこそasm.jsはLLVM系のコンパイラ、clangでCをコンパイルしたものといい勝負してるし、
マクロベンチでは抜いてる項目だっていくつもあるさ。
0690デフォルトの名無しさん2015/02/17(火) 12:59:46.36ID:Q2g81oZ1
>>688
> prev取得時の秒未満の値次第で結果が変わるでしょ?

だからコンマ00になった瞬間に次のループでカウント開始して
次にコンマ00になった瞬間にループを抜けるから
きっかり1秒でしょうが。
0.000001秒くらいの誤差はあるでしょうけどね。

意味がないと結果を否定するなら、意味のある結果を持ってきてよ。

ただね、>>686 のコードを実行した結果は疑いようのない事実なんだよね。
まあ、速いと思ったよ。
てっきりHSPくらいになるかと思ってたから
少なくとも僕の Ruby に対する印象はガラッと変わったから計測した意味はあったよ。

なんで Ruby で書かれた Web サイト(ツイッター)はあんなクソ重いんだろうね。
0691デフォルトの名無しさん2015/02/17(火) 13:10:30.97ID:e3sUk8Nw
ああいうサービスではディスクアクセスが最大のボトルネックでしょうよ。
ハードとファームと、DBエンジンの実装の問題はあるかもしれないが、
言語の単純計算の速度は関係ないだろうよ。
0692デフォルトの名無しさん2015/02/17(火) 13:12:22.36ID:Q2g81oZ1
>>691
Google は速いんだけどね。サーバーの数の問題か。
0693デフォルトの名無しさん2015/02/17(火) 13:14:04.09ID:e3sUk8Nw
まあそもそも毎ループ時刻を確認するのは、もはや時刻取得のベンチマークになってしまうよね。
固定回数ループでも時には無視できないオーバーヘッドがあるっていうのに。
0694デフォルトの名無しさん2015/02/17(火) 13:18:21.43ID:4qghq42T
>>690
あぁ勘違いしてたわ

でも、そのベンチのとりかたはおかしいわ
ベンチに不要なゴミ(毎ループでの時間取得)があるので
普通にN回試行して掛かった時間を測れば
時間取得のコストは除外できる
0695デフォルトの名無しさん2015/02/17(火) 13:27:12.67ID:Q2g81oZ1
>>693
>>691 が言うように、実際にはリソースへのアクセスが決め手になるんだから
時刻を使ったっていいはずだ。

そもそも、時刻って時計の時刻とCPUの時間とがあって
それぞれに限定して比較してるから結構参考になると思うんだけどね。

まあ、CPU時間はプロセスとシステムと別れてて直接比較はできそうにないけど。
0696デフォルトの名無しさん2015/02/17(火) 13:37:31.99ID:e3sUk8Nw
リソースへのアクセスはまさにそのリソースへのアクセスをしてみて測らないとしかたがないよ。
というか大抵SQLとか言事別れたDB使うでしょうよ。
0697デフォルトの名無しさん2015/02/17(火) 15:27:17.15ID:Q2g81oZ1
>>696
だから時刻と言うリソースにアクセスして比較してるでしょって言ってるでしょ?
0698デフォルトの名無しさん2015/02/17(火) 15:50:23.53ID:gKCJmXEI
>>666
例えば?
0699デフォルトの名無しさん2015/02/17(火) 16:10:31.70ID:e3sUk8Nw
誰か>>697の通訳を頼む。
0700デフォルトの名無しさん2015/02/17(火) 19:08:16.81ID:4ypmtgKv
>>690
TwitterはRubyじゃないし、そもそもレスポンス速いだろ
0701デフォルトの名無しさん2015/02/17(火) 19:11:24.82ID:8pmBcFLk
どんな頭していたらこんなベンチ測定方法を思いつくんだ?
普通、1秒間にどれだけ処理できるか、じゃなくて、
特定の処理をするのに何秒かかるか、だろ。
まともではない。
0702デフォルトの名無しさん2015/02/17(火) 20:57:57.01ID:Ixfu4YT2
じゃあ>>501のお題で
間違ってたら訂正してくれ
https://ideone.com/lE07gL
0703デフォルトの名無しさん2015/02/17(火) 21:02:00.09ID:e3sUk8Nw
>>501はスクリプト言語で通常やることじゃない。
このスレの話題としてはおかしい。OpenCLスレでどうぞ。
0704デフォルトの名無しさん2015/02/17(火) 21:08:28.35ID:Ixfu4YT2
>>703
そうか?
これがシミュレーションのコアの処理ならスクリプトでやることじゃないけど
単発の統計処理だったらスクリプトも余裕でアリだと思うけど
0705デフォルトの名無しさん2015/02/17(火) 21:41:32.44ID:fs6T0wjH
>>698
v8, golang, hhvm, hacklang
0706デフォルトの名無しさん2015/02/17(火) 22:09:41.12ID:Ixfu4YT2
>>702のPython版
https://ideone.com/hovz8G
0707デフォルトの名無しさん2015/02/17(火) 22:24:59.50ID:xDsIAAA2
あのー、今きた俺の素朴な感想を書いていい?

なんで、スクリプト言語同士の争いで、速度を競ってるの?

スクリプト言語を選ぶ意味は、速度ではないでしょ?
例えば、pythonなら統計処理系のライブラリが従事してるから、あえてjava使わずにpython選んだりするよね。

そういう便利さではなく、ただ言語の速度(これも謎な言葉だけど、インタプリタの性能?)を競いたいなら、ベンチ回せばすぐ結論がでるのでは?
0708デフォルトの名無しさん2015/02/17(火) 22:28:25.64ID:fqc/IWR+
それを言っちゃあ
0709デフォルトの名無しさん2015/02/17(火) 22:31:06.53ID:119eewUp
>>706
numpyの使い方が素人すぎてドン引きだわ

Python
https://ideone.com/Dr6U8E
0710デフォルトの名無しさん2015/02/17(火) 22:31:39.74ID:Ixfu4YT2
>>707
客観的かつ信頼性の高い尺度がそれくらいしかないから。
Rubyの楽しさ(笑)とPythonの実用性をどうやって比較するの?
0711デフォルトの名無しさん2015/02/17(火) 22:32:52.20ID:2h2vSy5L
python, 変数はグローバルに置かないほうが速いみたいな話があった気がする
0712デフォルトの名無しさん2015/02/17(火) 22:38:32.99ID:xDsIAAA2
客観的な尺度であることと、その項目での比較が適当であることの間には、関連性はないよ。

例えば、美についても、いまだ統一した客観的な尺度は発明されてないよね。
じゃあ、その辺のオタサーの姫と、ガッキーとで、客観的な美的比較は不可能だから、客観的な体重比べて軽い方の勝ちにしましょう、っていうのは適切なの?
体重を比べてわかるのは、どちらが重いか、という事実に過ぎない。
0713デフォルトの名無しさん2015/02/17(火) 22:57:20.43ID:fs6T0wjH
web frameworkの一極化に成功したRails communityが最強だよ
0714デフォルトの名無しさん2015/02/17(火) 23:20:28.81ID:Q2g81oZ1
>>701
DOSでは1秒未満の時間がわからないので誤差を100分の1秒以下に抑えるためにはループを100秒以上回さないといけない。

また、時間のループにする場合、時刻にアクセスするので他のスクリプトでも同じにしないと比較にならない。

そもそも、使用目的がまるで違うものに同じ処理をさせることこそ愚か。
0715デフォルトの名無しさん2015/02/17(火) 23:35:33.34ID:U3SYBhrh
>>714
突っ込みどころが満載なんだが……

その言語には1秒よりも精度の高いタイマーが無いのか?
どうせある程度の処理の分量がないと結果が暴れるから、そもそも100秒程度の時間をかけるのは妥当では?
もともと今回は、同じ処理をさせる場合の優位性を測ろうとしていたんだろう?
0716デフォルトの名無しさん2015/02/17(火) 23:54:48.88ID:fs6T0wjH
5年前に、どのphp frameworkがtrendだったか憶えてる?
このバブルの後には、wordpressとrailsしか残らないよ
0717デフォルトの名無しさん2015/02/18(水) 00:11:12.22ID:V5eytjJ/
>>715
HSPと同程度だと思ったと書いてるだろ。HSPと比較できる共通の処理を思いつくなら書いてくれよ。
0718デフォルトの名無しさん2015/02/18(水) 00:25:26.47ID:04Uy6nsI
>>717
HSPには1秒よりも精度の高いタイマーが無く、
HSPでは100秒以上の連続した処理ができないということ?
それなら仕方ないが、そうでなければ >>701 の通りだ。
個人的には、遅いのを待ちたくなくて時間で切るのはアリだと思うが、1秒は短すぎるな。結果が安定しないよ。
0719デフォルトの名無しさん2015/02/18(水) 00:34:27.52ID:4jYEuEnn
>>717
>>501>>702でもやってろ
0720デフォルトの名無しさん2015/02/18(水) 01:09:19.69ID:V5eytjJ/
>>719
書いてくれよ。DOSとHSPと PowerShell と UWSC のソースコードもよろしく。
0721デフォルトの名無しさん2015/02/18(水) 01:28:14.51ID:V5eytjJ/
C, C++, Objective-C, Java, Scala, Ruby, Python でベンチマークテストを行ってみました。
ttp://www.mk-mode.com/octopress/2014/11/21/benchmark-c-cpp-m-java-scala-ruby-python/
> C < C++ < Java < Scala < Objective-C <<< Ruby < Python という結果となった。

Python vs Ruby vs Haskell(文字列検索deベンチマーク)Add Star
ttp://d.hatena.ne.jp/nshinchan01/20130126/1359197911
1.5313435s Haskell
1.116003s  Python
1.1019912s Ruby

【PHP, RUBY, PYTHON, PERL】ベンチマーク対決【フィボナッチ数】
ttp://www.mixp.net/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E8%A8%80%E8%AA%9E/262
時間    言語  バージョン
54.57 sec  Perl   5.16.3
34.27 sec  Python  3.3.2
20.47 sec  PHP    5.5.5
21.18 sec  Python  2.7.5
9.21 sec  Ruby   2.0.0p247

RubyとPythonとPerlで正規表現の速さを比べてみた(2013年版)
ttp://qiita.com/YamaguchiRei/items/408d4c88674cb0d3dd5d
ttps://qiita-image-store.s3.amazonaws.com/0/15830/817a682f-0c32-5e5a-ae6c-922f713efd41.png
なんだ、ギガバイト単位になると Python 圧勝か。・・・グラフが大げさだった。
Perl の正規表現は速いな。
0722デフォルトの名無しさん2015/02/18(水) 03:58:17.52ID:qJod6Zoi
Rubyのしくみ、2014

年末に出た外人の翻訳本で、
Rubyの実装系、Ruby1.9のRuby仮想マシンの本。
内容は新しく、Ruby2.0のキーワード引数まで含む

今後は、JSみたいに数値型をクラスではなく、
primitiveにして、メソッドを呼ぶときだけ、
クラスに変換したら、メモリを食わないと思う

JITや実行時、徐々に最適化していく、
インクリメンタル・コンパイルも欲しい
0723デフォルトの名無しさん2015/02/18(水) 07:28:36.27ID:4rX4Omau
>>704
Pythonスレならまだわかるけど、このスレにはそぐわない。
0724デフォルトの名無しさん2015/02/18(水) 07:33:08.08ID:FJC9eT5Z
>>501程度もさくっと書けない>>721みたいなのしかいないからな
0725デフォルトの名無しさん2015/02/18(水) 07:44:22.53ID:V5eytjJ/
さくっとは書けないけどそれなりに仕上げる事はできるよ。
僕がうpったスクリプトはなかなか好評だった。
半分は他人が書いたものだけど。
0726デフォルトの名無しさん2015/02/18(水) 07:47:17.01ID:V5eytjJ/
あんまり出来がいいもんだから荒らしが妨害しに来るほど。

グランブルーファンタジー Part5(c)2ch.net
ttp://kanae.2ch.net/test/read.cgi/gameurawaza/1423672738/
0727デフォルトの名無しさん2015/02/18(水) 07:51:33.66ID:FJC9eT5Z
あんたの優秀さを証明するのは大変かもしれないが、
>>724を否定するだけならその2レス書いてる間に十分できるだろ?サンプルも出てるんだから
0728デフォルトの名無しさん2015/02/18(水) 07:59:27.04ID:V5eytjJ/
>>727
数学わからんし
Python も
Ruby も
JavaScript も知らん
ちょっと勉強してみたことはあるけどさっぱり覚えてないね。

まあ僕は Lua と Python の最初の実装をした人間だからかつては目をつぶってもコーディングできたけどね。

Python に実装された関数が間違っていると話題になったことがあったが
実際には常識の方が間違っていたということがあった。
当時の僕の数学知識と実装能力は常識破りではあった。
0729デフォルトの名無しさん2015/02/18(水) 08:27:27.32ID:4rX4Omau
口を動かす暇があるなら手を動かそうぜ()
0730デフォルトの名無しさん2015/02/18(水) 08:29:35.07ID:V5eytjJ/
さっき果てたからあと三日待て
0731デフォルトの名無しさん2015/02/18(水) 09:18:01.20ID:gLfG5mWE
numpyとCythonを禁止しないとPythonが強すぎる
0732デフォルトの名無しさん2015/02/18(水) 09:20:08.12ID:0zeBm7tU
必殺技
反則
0733デフォルトの名無しさん2015/02/18(水) 09:49:04.80ID:jAoHttfI
昔書かれたスクリプトを読まなければいけないということがない限り
Pythonだけ覚えれば良いよね。
他にWebブラウザで簡単に動かすならJavaScript。

Rubyは他のスクリプト言語で書かれていたものを
Rubyで書き直しましたの集合体だから
はっきり言って避けて通れるw
0734デフォルトの名無しさん2015/02/18(水) 10:09:03.38ID:YLGpxgrV
JSをメインにして、ウェブプログラマーならPHPも、UNIXのサーバ管理するならPythonとPerlも知っておくと便利
0735デフォルトの名無しさん2015/02/18(水) 10:18:12.56ID:04Uy6nsI
他人の書いたものをメンテナンスするケースもあるからなぁ
0736デフォルトの名無しさん2015/02/18(水) 10:53:29.17ID:6zAO9i/E
可搬性考えて、awk,sed,shしか使わない
0737デフォルトの名無しさん2015/02/18(水) 12:29:24.25ID:/R9PZMCF
そういう奴に限ってgawk, gsed, bashw
0738デフォルトの名無しさん2015/02/18(水) 14:09:53.90ID:YLGpxgrV
いろんな世代のLinux、BSD、Solaris全てで動作保証されてるシェルスクリプト書くと、物凄く面倒で、ぐちゃぐちゃになるからね
0739デフォルトの名無しさん2015/02/18(水) 16:29:22.72ID:6zAO9i/E
Web frameworkで、まともに続いてるのがRailsしかもうないよね。
PHPはframeworkそのものが乱立するし、入門に向いたCakePHPには
redmineやlocomotiveみたいなframeworkを基礎にしたアプリもない。
かといって、expressはApacheが不要だし、まだ無料で使いたいようなアプリもない。
node.jsでsessionやcookieって、どうやって管理するの?
0740デフォルトの名無しさん2015/02/18(水) 18:08:59.50ID:4rX4Omau
ぶっちゃけSaneScript/SoundScriptがきちんと確立されたらこの戦争は終わりやな。
0741デフォルトの名無しさん2015/02/18(水) 19:19:26.43ID:4s6swZE/
node.jsを使ってみて分かること


実際は大して速くない
0742デフォルトの名無しさん2015/02/18(水) 20:52:42.43ID:pYbmwIWw
速い使い方と遅い使い方があるだけの話
0743デフォルトの名無しさん2015/02/18(水) 21:01:05.29ID:psJc2Mbv
んじゃあもうWEBはHTML5(css,js)とRuby/Railsだけ押さえてればええよな?
0744デフォルトの名無しさん2015/02/18(水) 21:02:27.71ID:Xn+Iy9mD
ブラウザOSって今後どうなるんだろ

普及するようならjsが有利になるのか?
0745デフォルトの名無しさん2015/02/18(水) 21:50:19.58ID:d+4bKGeK
Googleがjsを何かに置き換えるかどうか
0746デフォルトの名無しさん2015/02/18(水) 22:04:33.62ID:411wnb7o
Dartじゃないの?
0747デフォルトの名無しさん2015/02/18(水) 22:07:25.71ID:FJC9eT5Z
Googleって言語のセンスは壊滅的だよね
0748デフォルトの名無しさん2015/02/18(水) 22:55:57.84ID:pYbmwIWw
言語のセンスもそうだが、それ以上にフレームワークとか仕様決定のセンスが壊滅的
Angularとかpolymerとか歴史を遅らせた汚点レベル
0749デフォルトの名無しさん2015/02/18(水) 23:05:27.36ID:3cxEKPFm
>>665
たしかに、そのとおりだね
欧米先進諸国に対抗して、アジアで唯一ジャップだけが孤軍奮闘するという構図は、
戦前から現在に至るまで、何ら代わりはない
さしずめ Ruby 1.8(MRI) は悲運の名戦闘機「ゼロファイター」といったところかな...

また MRI の後継機として開発された YARV ベースの Ruby 2.1 は、JRuby の性能を越えた
・Ruby&#xA0;vs&#xA0;Ruby JRuby | Computer&#xA0;Language&#xA0;Benchmarks&#xA0;Game
 http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=yarv&;lang2=jruby

もし MRI がゼロファイターであるなら、YARV は米主力機ヘルキャットを圧倒できることを目標にして
計画されながらも遂には完成される事の無かった幻の戦闘機「烈風」になるのかもしれない....



まったくジャップの技術者はあきらめが悪いよね、これもまた日本民族の血に流れる伝統なのかな?
0750デフォルトの名無しさん2015/02/18(水) 23:06:58.13ID:6zAO9i/E
Angularは使われてるだろ
0751デフォルトの名無しさん2015/02/18(水) 23:10:22.53ID:3cxEKPFm
>>669
そのリンク先は「2004年度未踏ソフトウェア創造事業」の関連文書だよね

・IPA:2004年度「未踏ユース」開発成果:Rubyプログラムを高速に実行するための処理系の開発
  https://www.ipa.go.jp/jinzai/esp/2004youth/mdata/98-02.html

確かに10年前であれば「今のところPythonの中の人たちは高速化する気が無い。(>>656)」という考察は
事実であったのかもしれない
しかし、10年前のソースであるにもかかわらず、
それを明かさずに現時点での情報であるかのように発言する行為(>>656)は不適切だよ
0752デフォルトの名無しさん2015/02/18(水) 23:23:11.38ID:UXdCAeZK
ジャップ社会の特徴として

・有能な人間は上に立たない
・無能で厚顔無恥で傲慢な人間ほど上にたつ



というのがあるので、Rubyのコアメンバーの中に「Rubyの高速化は世界一ィィィィ」とか思ってる奴がいてもおかしくない
0753デフォルトの名無しさん2015/02/18(水) 23:29:45.34ID:3cxEKPFm
>>681
ベンチマーク対象のコードによって速かったり遅かったりする

・Python 3&#xA0;vs&#xA0;Ruby | Computer&#xA0;Language&#xA0;Benchmarks&#xA0;Game
 http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=python3&;lang2=yarv

とりあえずベンチマーキングを実施したのは Debian.org 関係者みたいだから、
Python と Ruby、どちらからも中立な立場にあると思われる

ベンチマーク結果をざっと見たところ、こんな印象がある:
・単純な整数計算であれば、Python のほうが速い(?)
・小数を扱う数値計算、複雑なデータに対する計算、
 あるいはマルチスレッディングであれば Ruby のほうが速い(?)
・メモリ効率は、圧倒的に Ruby 2.1 が優れている

なお「整数計算で遅くてメモリ効率が高い」という Ruby 2.1 の特性は、
Puthon との比較だけでなく、他のスクリプト言語との比較にも現れている
0754デフォルトの名無しさん2015/02/18(水) 23:49:34.97ID:3cxEKPFm
>>685
効果的な言語処理系の開発はソフトウェア工学における主要テーマであり、
中でも最適化は言語処理系の設計における重要な課題の一つである

>>684がその話をどこの誰から聞いたのか知らないけれど、
そんなことも知らずに「最適化は邪悪で愚直な設計は素直である」などと
語るような人物は、言語処理系開の常識に疎い素人なんだろうね

たしかに大昔にあった「CISC vs. RISC 論争」のように、命令セットの
単純性を追求することで結果的に性能競争で勝利した RISC という例外はある
けれども>>735のベンチマーク結果で分かるように、
かつては遅い遅いと言われ続けた Ruby にも追いつかれ、
多くのケースでは Ruby にすら追い抜かれているのが、
現在の Python が置かれている現実な訳だ

視点を変えれば、現在の Python には性能改善の余地が数多く残されているとも
言えるわけだから、「最適化は邪悪で愚直な設計は素直である」と語るような
お馬鹿者は相手にしないほうがいいと思う
0755デフォルトの名無しさん2015/02/18(水) 23:50:36.78ID:gLfG5mWE
ところで>>501のお題は>>702がRubyの限界なの?
高速化を頑張ってこれ?
0756デフォルトの名無しさん2015/02/19(木) 00:00:12.45ID:/rXoqLFu
>>752
>・有能な人間は上に立たない
>・無能で厚顔無恥で傲慢な人間ほど上にたつ

ナッツ姫事件を見るに、まるで血筋を重視し技術者を見下す韓国社会そのものだね


> Rubyのコアメンバーの中に「Rubyの高速化は世界一ィィィィ」とか思ってる奴がいてもおかしくない

おおいにけっこうだな
Mozila、Goggle、Microsoft にも同じ思いで戦国時代である JS 世界の覇権を争っている
奴等がワンザカいるはずなんだから、一人や二人、ジャップにいてもおかしくないね
0757デフォルトの名無しさん2015/02/19(木) 00:14:02.07ID:kP+TkhZJ
言語に関してはやっぱりMSがズバ抜けてるよな
C#やTypeScriptのような地に足の着いたものは当然として、
F#とかPowerShellみたいなマニアックなものまで成功させてしまうのは凄い
C#がメジャーな言語の中ではいち早く関数型に目を付け、関数型の市民権獲得に大きな役割を果たしたのも事実
ハッキングと統計しか能のないGoogleとは違って基礎研究を真面目にやってるのが活きてるんだろうね
0758デフォルトの名無しさん2015/02/19(木) 00:15:49.13ID:/rXoqLFu
>>755
限界といっても、>>501のお題に対する解答は
>>702 の Ruby と >>706 の numpy だけしかないのだから、
結論としては:

  (Python ではなく) numpy は速い

でいいんじゃまいかと

numpy が高機能で高速な数値計算パッケージであることを
否定する人はいないだろうしね
0759デフォルトの名無しさん2015/02/19(木) 00:17:48.44ID:AysI5U9Q
gmpみたいなもんだよな
0760デフォルトの名無しさん2015/02/19(木) 00:43:55.85ID:YPPxC10E
>>757
F#やパワーシェルがいつ成功したんだよ
あとC#やTypeScriptは他会社からの引き抜きだから育てたわけではない
つまりMSはVB
0761デフォルトの名無しさん2015/02/19(木) 00:51:06.82ID:TS7jO9Iz
うちの環境ではnumpyの>>709(>>706は遅過ぎ)より
Cython使ったコードの方が4倍くらい速い
0762デフォルトの名無しさん2015/02/19(木) 01:03:43.67ID:TS7jO9Iz
嘘付いてた
やっぱCythonの方が10倍以上速いわ
0763デフォルトの名無しさん2015/02/19(木) 02:17:15.01ID:RJ2nbfqi
>>749
最新鋭の戦闘機がある現代に、ゼロ戦を持ち出すぐらいのクールジャパンだよね
もう第二次大戦は終わったんだ。こんな古い物を、父さん酸素欠乏症にかかって
0764デフォルトの名無しさん2015/02/19(木) 03:45:42.90ID:F3U7fBS8
>>663
>>717 > HSPと同程度だと思ったと書いてるだろ。

僕のこの思い込みは最近まで事実だったんだな

4 Aug 2003 Ruby 1.8.0 がリリース
25 Dec 2007 Ruby 1.9.0 リリース!
24 Feb 2013 Ruby 2.0.0-p0 リリース
25 Dec 2013 Ruby 2.1.0 リリース
25 Dec 2014 Ruby 2.2.0 リリース

>>538 >>580 のトレンドと合わせてみると、普及したのは
Rails のおかげもあるかもしれないが
高速化も理由の一つかもしれないな。
0765デフォルトの名無しさん2015/02/19(木) 07:01:56.40ID:kP+TkhZJ
というより、高速化したのがRailsのお陰なんだよ
利用者も開発者も増えたし、安易な仕様変更も前に比べたらしづらくなったからな
最近だとRailsのパフォーマンスが向上しましたとか平気でchangelogに書いてくるし
0766デフォルトの名無しさん2015/02/19(木) 07:45:23.95ID:YLyFJjqR
>>751
申し訳ありません。

Rubyが2.0で爆速になったと知ってPython3と比較してどうなのだろうと2.0、YARVなどのキーワードと一緒にググりまくってた時に発見した記事だったので当然ここ数年の記事なのだろうと勘違いしていました。

まさか10年前のものだったなんて…。
0767デフォルトの名無しさん2015/02/19(木) 08:40:25.96ID:F3U7fBS8
数値計算ベンチマーク (Fortran Go Java JavaScript Julia Lua Mathematica Matlab Octave Python R)
ttp://julialang.org/benchmarks/

julia が Fortran 並に速いらしい。

>>753
Ruby はメモリ効率がいいので大量のデータを扱うWeb向きって事か。

> あるいはマルチスレッディングであれば Ruby のほうが速い(?)
これは間違いだな。
x86 だと Python がだいぶ速くなり、 x64 だと Ruby がだいぶ速くなるが、傾向は変わらない。

> Python は早くから64bit版 Windows に対応した64bitの Python (amd64だけでなくia64も)を配布してきましたが、
> 一般的に使われる多くの拡張モジュールが64bit版のバイナリパッケージを配布していないこともあり...
0768デフォルトの名無しさん2015/02/19(木) 08:55:03.72ID:F3U7fBS8
>>686-687 と >>753 の結果はまあ近いな。

↓よりは参考になる。誰だろうな、無意味だと言ったのは。

> >656  「今のところPythonの中の人たちは高速化する気が無い。だからRubyは高速化で優位に立...
> ├>657   Cythonとかが既に有るが?
> └>662   妄想だろ
>  └>669   これです。
>   ├>670   「Ruby側」からの発言だから、眉唾だな。
>   └>751   そのリンク先は「2004年度未踏ソフトウェア創造事業」の関連文書だよね...
>    └>766   申し訳ありません。 まさか10年前のものだったなんて…。
0769デフォルトの名無しさん2015/02/19(木) 09:48:57.42ID:YKDWyqEz
その流れは「高速化する気が無い」という風潮が真実か否かについてだと思うが
実際の速度はまた違う話だろう
0770デフォルトの名無しさん2015/02/19(木) 10:34:02.24ID:yjdKd9wY
まあ1つ確かなことは、もう今のままでは高速化はほぼ無理ってことだよね。
だからCythonやSaneScriptみたいにサブセットで高速化したり、
SoundScriptや新Ruby構想みたいに付加情報で最適化することにシフトし始めた。
0771デフォルトの名無しさん2015/02/19(木) 10:41:10.73ID:F3U7fBS8
>>769
高速化すると言う話があって高速化した事実があるんだから、逆も真なりですよ。
でも、Python のバージョンごとのベンチマークが見つからない。

ttp://h-miyako.hatenablog.com/entry/2015/01/23/060000
高速
55 PyPy3
49 PyPy
17 Ruby 2.0
14 Ruby 1.9
8  Python 2
7  Python 3
低速

なるほど、バージョンアップで速度を落としてるから、高速化するつもりがないと言うのは本当かも。

しかし、CPython 2.7 と PyPy のバージョンごとの比較を見ると、PyPy がぐんぐん伸びてるのがわかる。
ttp://prog.hu/assets/site/text/quicknews/03672/pypy-performance--dyn--fullwidth.jpg

すごく、・・・Framework
ttp://www.techempower.com/benchmarks/
上位は Java がほとんどか。1位だけ C++ だけど。
Lua はマイナーだけど食い込んでるなあ
0772デフォルトの名無しさん2015/02/19(木) 11:05:43.05ID:YKDWyqEz
>>771
ふむふむ。
・Ruby: 高速化すると言って、高速化した
・Python: 「高速化する気が無い」とは言ってはいないが、実際速くなってない
ってことだな。 予言の自己成就とまでは言わないが、近いものを感じた。
0773デフォルトの名無しさん2015/02/19(木) 13:43:10.29ID:yjdKd9wY
LuaはJSと似てるのになんであんなに最適化がうまくいくんだろうな?
どこで差がついた?
0774デフォルトの名無しさん2015/02/19(木) 13:52:03.79ID:kP+TkhZJ
いやベンチマークを見る限りほとんどnode.jsと変わらんだろ
オタクのオモチャluajitと違ってv8はセキュリティやら信頼性やら大人の事情があるのに
これほど健闘してるのは大したもんだよ
0775デフォルトの名無しさん2015/02/19(木) 14:23:35.02ID:RJ2nbfqi
PHPは随分と大人になったよね。
以前は、性にまったく興味のなかったのに、いつの間にかRubyやPythonを突き放してる。
0776デフォルトの名無しさん2015/02/19(木) 17:43:42.26ID:8vdG+l6Q
PHPは経験人数がRubyやPythonの数十倍はあるから、テクニックが磨かれたんだよ
0777デフォルトの名無しさん2015/02/19(木) 21:51:27.29ID:TS7jO9Iz
速度が欲しいなら、スクリプト言語で頑張るより
素直に静的言語を使った方がずっと楽だわ
CとかJavaでいいじゃん
0778デフォルトの名無しさん2015/02/19(木) 21:56:35.44ID:iyHfikAq
そういう人はScalaを使えばいいんじゃないかな
記述量はスクリプト言語と大差ないし
記号とか使いまくって黒魔術的気分に浸れるところはPerlそっくり

コンパイルはクソ遅いけど
0779デフォルトの名無しさん2015/02/19(木) 22:36:46.45ID:/rXoqLFu
>>751,762
とりあえず、>>758 を以下のように訂正しとくね

>結論としては:
>
>  (Python ではなく) numpy と Cython は速い
>
>でいいんじゃまいかと
0780デフォルトの名無しさん2015/02/19(木) 23:35:51.39ID:Xwd/TzPE
まあ速度の話は大方結論が出たけど、
書きやすさの点ではどれが優秀なの?
0781デフォルトの名無しさん2015/02/20(金) 06:07:49.87ID:6HTifz1o
>>780

読みやすさにすべきでは?

書きやすさだと書く人だけの自己満足
0782デフォルトの名無しさん2015/02/20(金) 09:40:41.33ID:HooYvf2o
スクリプトはむしろ書きやすさのが重要でしょ
0783デフォルトの名無しさん2015/02/20(金) 09:48:44.63ID:ahptq4t6
読みやすさと書きやすさって、そんなに乖離するか?
詳しい人間向けと、初見向けの差はあるとは思うが
それとも、書きやすさ=行数/タイプ数が少ないこと、なのか?
0784デフォルトの名無しさん2015/02/20(金) 09:57:22.35ID:HooYvf2o
>>783
それだけが書きやすさの指標ではないと思う
例えばRubyの「書き下しやすさ」なんかは、その数字には現れにくいし
0785デフォルトの名無しさん2015/02/20(金) 10:09:40.30ID:sjYVzcTZ
書きやすいのはPythonだな。読みやすいのもPythonだな
Rubyはendばかりで読みづらいし、書きづらい
0786デフォルトの名無しさん2015/02/20(金) 11:09:24.39ID:HooYvf2o
Rubyは「書きやすさ」ではなく「書き下しやすさ」だよ
似てるようで微妙に違う
0787デフォルトの名無しさん2015/02/20(金) 12:09:36.33ID:EQCZo/vU
なんかちょうど出来立てのコードが移植されてる

Python: http://codepad.org/6M2KhlKR
Ruby : http://codepad.org/qvy2JbhP
0788デフォルトの名無しさん2015/02/20(金) 12:13:10.51ID:ahptq4t6
Pythonは言語は綺麗なのにライブラリが汚いな
なんで urllib と urllib2 があるんだよ
0789デフォルトの名無しさん2015/02/20(金) 13:30:29.04ID:JrxIWFmW
スクリプト言語は俺スゲーするためのものだから読みやすさはどうでもいいと思うな。
0790デフォルトの名無しさん2015/02/20(金) 13:48:47.39ID:qp4GkBdV
書きやすい と コピペしやすい が両立しない場合ならある
0791デフォルトの名無しさん2015/02/20(金) 20:56:06.86ID:P8+HoY+F
>>788
今更Python2を使うなら汚さには目をつむらなきゃ
0792デフォルトの名無しさん2015/02/20(金) 21:02:45.40ID:8OUkX7Zl
>>787 の Ruby コードについて、保守性を考えて添削してみた:
・代入文の右辺式のインデントをそろえた
・空行を挿入することで、コードの意図に沿ってパラグラフとして構造化した

https://ideone.com/avrIKc
0793デフォルトの名無しさん2015/02/20(金) 21:18:22.31ID:evlLTDtR
今時、代入文のインデント揃えてるスタイルなんて久々に見た
0794デフォルトの名無しさん2015/02/20(金) 21:23:30.72ID:KoZ8UZGe
COBOLで猿のようにMOVE並べるときのスタイルだね
0795デフォルトの名無しさん2015/02/20(金) 21:48:19.98ID:JrxIWFmW
Rubyの連想配列の書き方アロー関数に見える辺りとか嫌いだけど、
JavaScriptのも場合によってはブロック+ラベル文に見えるし、そう解釈されるときもあるからベストではないんだよな。
0796デフォルトの名無しさん2015/02/20(金) 23:16:17.14ID:xeIHjzJz
>>795
RubyのあれはPerlを真似しただけだからな
他にもPerlの真似した部分は数多い
0797デフォルトの名無しさん2015/02/21(土) 01:15:36.09ID:HG3aqmPZ
JSは全てが配列でありハッシュであるという斬新な設計が言語に柔軟性をもたらしている
Rubyは普通のオブジェクトに[:hoge]でアクセスしたらエラーが出るし
そもそも文字列とシンブルがぐっちゃぐちゃになっていてto_sとかto_symとかいちいちカオス
0798デフォルトの名無しさん2015/02/21(土) 01:30:39.42ID:1ts2mUR/
>>797
それはRailsのせい
Ruby自体はSymbolとStringは厳密に区別されてるのでいちいち悩むことはない
0799デフォルトの名無しさん2015/02/21(土) 02:59:08.94ID:zv91iaBv
文字列の代わりに、Symbolを使えば、
動作が速くなって、メモリも節約できるのか?

'abc'
:abc
0800デフォルトの名無しさん2015/02/21(土) 04:38:15.73ID:qY4oi0dn
JSのSymbolとRubyのSymbol、どこで差がついたのか?
慢心、環境の違い。
0801デフォルトの名無しさん2015/02/21(土) 05:06:39.13ID:iT1er0RA
>>799
C言語に例えるなら、文字列はchar[]で
シンボルはenum内で定義した数値定数

ハッシュのキーとして特定のものしか使わないなら、シンボルが適切だが
不定な文字列を扱うなら、文字列のが適切
0802デフォルトの名無しさん2015/02/21(土) 06:09:28.01ID:NpkyWpnd
>>787
node.jsのサンプル
http://codepad.org/zUrxEsx8
0803デフォルトの名無しさん2015/02/21(土) 07:43:02.11ID:rbwsrojx
>>799
シンボルを使うメリットは
・新しく文字列を生成しない分やや効率がよく、比較も高速。
・文字の意味がはっきりするのでコードが読みやすくなる
・immutable なので内容を書き換えられる心配がない

class Symbol
http://docs.ruby-lang.org/ja/2.1.0/class/Symbol.html
0804デフォルトの名無しさん2015/02/21(土) 07:55:44.42ID:qhlX4NCN
まあ、今となっては分かりにくいだけだけどね
・リテラル文字列はインターンする
・:aaaは”aaa”と同じ意味
という仕様にすればよかった
初期の安易な実装がそのまま負債として残ってしまっている
0805デフォルトの名無しさん2015/02/21(土) 09:11:35.26ID:D+IGPkVJ
本当、言語、開発環境に関してはMSがずば抜けていい
0806デフォルトの名無しさん2015/02/21(土) 09:12:55.32ID:sa43Zcnr
>>805
このスレで存分にPowerShellをアピールしていいぞ!
0807デフォルトの名無しさん2015/02/21(土) 09:25:27.54ID:b3TAXLfH
>>804
JavaScriptやLuaはそんな感じじゃないの? obj.foo と obj["foo"] が同じ意味。
Rubyは文字列それぞれが文字コードを持っている関係で、現仕様になっているのでは。
0808デフォルトの名無しさん2015/02/21(土) 10:01:44.96ID:qhlX4NCN
シンボルをテーブルに登録して管理するのって言語処理系作るときの定番のやり方だから
Matz自身の馴染みのあるやり方を安易にそのまま言語自体に持ち込んじゃっただけだと思うよ
リテラルの文字コードはインタプリタのデフォルトを使うだけなんだから別に問題はない
0809デフォルトの名無しさん2015/02/21(土) 10:04:19.62ID:aXQn6I9c
> 初期の安易な実装がそのまま負債として
> 持ち込んじゃった

?
シンボルあって誰がどう困るの?
0810デフォルトの名無しさん2015/02/21(土) 10:13:36.73ID:qhlX4NCN
>>809
文字列とシンボルを明確に区別して使っているなら結構だけど、
良い悪いはともかく、>>797-798の言ってるように、最近は文字列とシンボルをあまり区別しない傾向があるからね
そういうスタイルにおいて両者の違いは邪魔なだけというのはわかるでしょ?
0811デフォルトの名無しさん2015/02/21(土) 10:15:34.06ID:ZVQQE9/A
> 最近は文字列とシンボルをあまり区別しない傾向があるからね

(´・∀・`)ヘー
そうなん
まずその傾向からして知らなかったわとんくす
0812デフォルトの名無しさん2015/02/21(土) 10:21:47.58ID:XLU71/kI
昔の人が見たら卒倒しそうなスタイルだけどな
マジックナンバーやら文字列やらは定数に置き換えなさい
と言われてきたC言語の世代はどう思うんだろうか
0813デフォルトの名無しさん2015/02/21(土) 10:22:52.51ID:1ts2mUR/
>>810
それはRailsの世界の話であって、Rubyの世界の話じゃないね
0814デフォルトの名無しさん2015/02/21(土) 10:24:08.31ID:/yFQNdkc
ところで、railsの人たちってfrontendにopalつかってるの?
0815デフォルトの名無しさん2015/02/21(土) 10:26:00.55ID:1ts2mUR/
>>814
ふつうにcoffeescriptだと思うよ
0816デフォルトの名無しさん2015/02/21(土) 10:27:08.31ID:XLU71/kI
JavaScriptが便利な理由は、メソッド名や変数名が文字列で表せて、
柔軟に動的に切り替えられたりできるってことでしょ
リフレクションとかメタプログラミングとかそういうことが、余計な機能なしに
普通にお手軽に出来るってこと
でも安全性、バグチェックの観点からみると、間違いやすいよね
柔軟性をとるか、安全性をとるかってことじゃないかな
0817デフォルトの名無しさん2015/02/21(土) 10:41:58.71ID:b3TAXLfH
>>816
それは正しいんだが、Rubyとの比較の文脈だと、どちらもダックタイピングできるからあまり意味が無い。

話にあがっているのは、設計思想の面だと思う。
・class/module と map/table は区別すべきなのか?
・文字列は、書き換え可能なべきか、immutableでよいか?
・ユニコードだけで良いのか、各種エンコードも扱えるべきなのか?

時間が経って、結局はシンプルで覚えることが少ない側に落ち着いちゃった感はある。
0818デフォルトの名無しさん2015/02/21(土) 11:43:30.74ID:iT1er0RA
>>808
いやLisp系からの借用だろ、あちらもシンボルを値として扱えるし
0819デフォルトの名無しさん2015/02/21(土) 12:27:44.91ID:s76k4WVR
>>810
>両者の違いは邪魔なだけ

シンボルあって誰がどう困るの?
0820デフォルトの名無しさん2015/02/21(土) 12:44:21.23ID:HG3aqmPZ
ただしJavaScriptは動的言語なのにdoesNotUnderstandを実装しなかったのが痛い
ただFirefoxがnoSuchMethod導入してV8にも入るんだっけ?
0821デフォルトの名無しさん2015/02/21(土) 12:47:32.35ID:/yFQNdkc
flowなりの外部ツーで済むんじゃないの
0822デフォルトの名無しさん2015/02/21(土) 12:49:01.29ID:/yFQNdkc
Ruby、Pythonってマイナー、周辺ツールが一向に出来ないままだよね
0823デフォルトの名無しさん2015/02/21(土) 12:53:42.33ID:qY4oi0dn
>>820
noSuchMethodは廃止。
その代わりより汎用性の高いProxyが標準に入った。
余談だがProxyとwith文を組み合わせると、スコープアクセスを仲介することができて、魔法のようなことができる。
0824デフォルトの名無しさん2015/02/21(土) 15:52:20.31ID:BwYNANap
>>822
例えば?
0825デフォルトの名無しさん2015/02/22(日) 01:45:38.69ID:vo1EKyKq
>>819
引数にどっちでも受け取れるメソッドを作ろうと思ったら明示的に型チェックするか無条件にto_sしなきゃいけない
前者がクソなのはさすがに>>819の腐った目にも明らかだと信じたいが、
後者はシンボルと文字列以外でも何でも通ってしまってバグの原因になる
0826デフォルトの名無しさん2015/02/22(日) 02:11:25.75ID:COKde7BB
>>825
それは型付の問題であってシンボルさんはとばっちりですよw
0827デフォルトの名無しさん2015/02/22(日) 02:30:17.67ID:PAsRUe3j
結局Pythonのが勢いあって世界中でユーザー多くて、なんでもできるんでしょ?
だったらスクリプト言語はPython以外いらんやん
0828デフォルトの名無しさん2015/02/22(日) 02:34:06.40ID:XwM2xAPU
>>827
Pythonをjavascriptに変えたら一行目は正しくなる
二行目が正しくなるかどうかは知らんがw
0829デフォルトの名無しさん2015/02/22(日) 02:34:59.98ID:edsPbehB
>>825
オーバーロードがないからいろいろ仕方ない
0830デフォルトの名無しさん2015/02/22(日) 05:21:37.13ID:eIsRhMfC
Rubyを知らない人のために>>825の意味を教えてくれ
引数がどっちでも良いようなユースケースでは、そもそも内部でも区別する必要のないことのほうが多いんじゃないかと思ってしまうが。

function getProperty( obj, strOrSym ) {
 return obj[ strOrSym ]
}
みたいに。
0831デフォルトの名無しさん2015/02/22(日) 07:54:50.02ID:vo1EKyKq
>>830
RubyはStringとSymbolを明確に区別するので { :x => 1 }[“x”] や { “x” => 1 }[:x] はnil(null相当)になる
JavaScriptを知ってる奴が必ず一回はやらかすのは { x: 1 }[“x”] だな
{ x: 1 } は { :x => 1 } と同じ意味だから、結果はnilになってしまう
0832デフォルトの名無しさん2015/02/22(日) 08:10:38.56ID:0rD0njW6
>>828
少なくともなんでもできるはjavascriptは該当しないよね
あと、勢いもか >>622
08338312015/02/22(日) 08:19:14.17ID:vo1EKyKq
ちなみに、インスタンスのメソッドを名前で取得する obj.method メソッドや
インスタンスフィールドを名前で取得するobj.instance_variable_methodメソッドなどはシンボルでもメソッドでもどっちでもいける
意味的にはシンボルしか受け付けないのが正しいはずだが、このダブスタがRuby
0834デフォルトの名無しさん2015/02/22(日) 09:56:46.91ID:6wlRzF4X
>>832
細かいことを言い出すと該当しないけど他の言語と比べたら
該当するんじゃない?
ChromeOSやFirefoxOS、ChromeAppなどが出てきてるように、
今はブラウザでなんでもできるようになってきているし、
nodejsの登場でサーバーサイドも出来るようになったし、
nodewebkitなんかでデスクトップアプリも出来る
iOSやAndroidも作れる

あと、検索結果だとタイピング量が多い関係でPHPに及ばないかもしれないけど
勢いは間違いなくあるよ
たとえば、githubのトレンディングリスト
https://github.com/trending?since=monthly
ほとんどJavaScriptだ
0835デフォルトの名無しさん2015/02/22(日) 10:29:43.21ID:YKNqpodF
>>825
String型がto_sコールするとどれぐらいオーバーヘッドがあるの?

コンパイルできる言語ならそもそも呼ばないだろうけど・・・・
0836デフォルトの名無しさん2015/02/22(日) 10:44:33.19ID:vo1EKyKq
>>835
そうじゃなくて、無条件に全部to_sしたら全てのオブジェクトを受け入れてしまうでしょ
値の文字列表現としてto_sが適切に実装されてる型だけならそれでもいいけど、
デバッグ用に適当な実装になってるのも多いから予期せぬ動作の原因になる
0837デフォルトの名無しさん2015/02/22(日) 12:00:36.13ID:QM9RthBG
それは文字列とシンボル以外を引数に入れてるのがバグなんじゃないの
動的型付け言語に全てのオブジェクトを受け入れる事の文句を言っても仕方ないんじゃない
0838デフォルトの名無しさん2015/02/22(日) 12:05:56.76ID:vo1EKyKq
かもしれないが、困ることはあり得るよね、という話をしてるんだよ
少なくとも、文字列が入るところにシンボルが来る可能性を常に考慮しなきゃいけないだけでも結構なストレスだよ
0839デフォルトの名無しさん2015/02/22(日) 12:08:24.19ID:D7LwOPVY
Aが入るところにBが来る可能性を常に考慮しなきゃいけない

それがRubyや!
0840デフォルトの名無しさん2015/02/22(日) 12:24:56.69ID:/rkkmz87
またRailsの世界の話をRubyの世界の話として喧伝してる奴がいるのか
0841デフォルトの名無しさん2015/02/22(日) 12:25:48.92ID:2vzKbssH
>>837
動的型は実行前には型エラーが分からないが、だからといって
間違った引数を与えたときに、その場でエラーが出るのと
その場では何となく通ってしまって、全然別の場所で予期せぬ動作をするのとでは
テストやデバッグの難易度が違いすぎる

だから無条件にto_sは悪手すぎる
0842デフォルトの名無しさん2015/02/22(日) 12:29:41.28ID:vo1EKyKq
>>840
>>833に書いた通り、Rubyのコアな部分でも意図的に混同した扱いをしているケースは多いし
ライブラリでもそうなってるのは多いぞ
特に { key: value } が使えないのは痛いしな
0843デフォルトの名無しさん2015/02/22(日) 14:11:21.01ID:vP+G2tFu
何で Symbol と String を同一視したいの
違うものなら受け入れる側で区別するのは当たり前じゃないの
0844デフォルトの名無しさん2015/02/22(日) 14:19:20.41ID:vo1EKyKq
俺が区別したいかどうかは別にして、区別したくない人が多いのは事実だからな
大抵のユーザーはシンボルを文字列リテラルの書き方のバリエーションくらいにしか考えていなくて
多くのライブラリはそれに合わせている
客観的に見れば設計ミスだと言わざるを得ないね
0845デフォルトの名無しさん2015/02/22(日) 14:25:54.55ID:TumPQPr4
どんな言語にも設計ミスはあるよ
Ruby信者とApple信者は設計ミスに対する指摘と言語や製品全体に対するディスを区別して考えることを覚えろ
0846デフォルトの名無しさん2015/02/22(日) 14:47:29.04ID:TumPQPr4
信者の人が受け入れやすいように書こうか
Matzは以前SymbolをStringのサブクラスにしようとして大反対されて却下された
その時に直さなかったお陰で、今シンボルGCだとか馬鹿馬鹿しいことにものすごいコストかけてるわけ
0847デフォルトの名無しさん2015/02/22(日) 17:29:55.93ID:vP+G2tFu
いや信者とかそういうのはよくて
Symbol って他の言語でいうと enum のような感じで使ってたんだけど、違うの?
enum は String じゃないよね?

ごめん、俺趣味でしか使ってないからわからない
0848デフォルトの名無しさん2015/02/22(日) 18:09:12.30ID:2L0KeDxe
>>806
オプショナルな型指定ってやっぱ便利だよねー

以上
0849デフォルトの名無しさん2015/02/22(日) 18:12:50.46ID:UoVjPwO3
シェルですら型指定出きるのに
0850デフォルトの名無しさん2015/02/22(日) 18:49:42.50ID:+WCHq4X5
>>847
定数に限れば、Symbol が変数名で、String が文字列リテラルってことじゃねーの?
enum はまた違う概念だと思うが
0851デフォルトの名無しさん2015/02/22(日) 19:08:16.83ID:vo1EKyKq
>>847
それStringじゃいけない理由もないだろ?
静的言語のEnumみたいに色ならColor列挙型の値でないとコンパイルエラーになれば意味はあるけど、
列挙型かそれ以外かなんて区別にはほとんど意味がないし、
その間違いですらも結局実行時にバグとして表れるまでは分からない。
Symbolは本来>>850の言う通りオブジェクトやハッシュのメンバ名として使うんだよ。
言語処理系作る人の感覚だとその方が文字列でメンバ検索するより綺麗だから。
0852デフォルトの名無しさん2015/02/22(日) 19:29:08.23ID:0rD0njW6
Rubyだけの話?
0853デフォルトの名無しさん2015/02/22(日) 20:43:06.38ID:1kQwXsuI
一人でやるなら何でもいいけどチームでやるならC#かJavaしかないな
PHP→技術力のないやつらが暴走してデスマ
Ruby, Python→技術力のあるやつらが暴走してデスマ
0854デフォルトの名無しさん2015/02/22(日) 21:24:09.57ID:UN6erKiZ
Javaならデスマらない?ご冗談をw
0855デフォルトの名無しさん2015/02/22(日) 21:24:38.83ID:vP+G2tFu
>>851
あーなるほど。名前の通り識別子として使うのね。それなのに文字列も受け取れるように書かなきゃいけなくて嫌だと
俺みたいな理解してない奴がいると、間違えそうだな
0856デフォルトの名無しさん2015/02/22(日) 22:12:38.79ID:M6aE6xoB
国内エンジニアなら全方位のjs、行政がバックボーンの国産Ruby、iOSのSwift
これらから好きなものチョイスするか、ケースごとに3つを使いこなせばええんじゃないかな
0857デフォルトの名無しさん2015/02/22(日) 22:17:06.17ID:vo1EKyKq
安定して人並みの生活を送りたいならJava一択
Web系は技術だけじゃなくビジネスセンスが無いと悲惨な奴隷
0858デフォルトの名無しさん2015/02/22(日) 22:29:00.55ID:/rkkmz87
今更Javaはないわー
かといってJavaは消えるわけでもないし、代わりにこれさえやっとけばOKなんて言語もない

結局のところ、「○○一択」なんて時代ではなく、複数の言語を使えるようにしておくのが
最も賢い選択肢
0859デフォルトの名無しさん2015/02/23(月) 00:18:12.68ID:nBmgs1q6
名前を扱うライブラリでは、単に「internやto_symできるもの(=Symbol扱いして良いもの)を受け入れる」って仕様でいいと思うぞ
「StringとSymbol」なんてややこしい考え方は必要ない
0860デフォルトの名無しさん2015/02/23(月) 05:19:13.12ID:2dcX2lQG
さすがにそれはない
メモリリークする
0861デフォルトの名無しさん2015/02/23(月) 06:01:19.63ID:8G2/loTv
>>856
Python一つで済むのに
0862デフォルトの名無しさん2015/02/23(月) 06:09:14.28ID:2jyfM//F
>>861
現実問題、Pythonだとdjangoの仕事しかないぞ
Webのクライアントサイドやモバイルアプリ開発、金融システム、組み込み開発は
Pythonなんて使ってるとこ聞いたことがない
0863デフォルトの名無しさん2015/02/23(月) 06:56:47.06ID:4Mxvq81K
JSでも思うけど、Symbolって確かに役に立ってるんだけど、
どう使って、どう役に立たせたらいいのか悩むよね。
ぶっちゃけ使い道は物凄く狭いんじゃないかと思ってる。
0864デフォルトの名無しさん2015/02/23(月) 07:12:40.67ID:2dcX2lQG
無くても何も問題ないからな
処理系の都合をプログラマに押し付けてるだけ
0865デフォルトの名無しさん2015/02/23(月) 07:23:51.74ID:4Mxvq81K
__str__みたいのの代わりになるってのが一番のメリットだとは思う。
0866デフォルトの名無しさん2015/02/23(月) 08:14:09.75ID:CW3xNlRi
>>861
Pythonじゃ国内で飯食えないんやで^^
0867デフォルトの名無しさん2015/02/23(月) 11:07:37.43ID:THzeMFUz
ふとPixivのメインページのソース見てみたらなんか好感が持てた

// Googleのスクリプトがエラー出しまくってるので一時的に対処
if (url.indexOf('https://apis.google.com/_/scs/apps-static/') === 0) {
if (Math.random() > 0.01) return;
}

// IE9がエラー出しまくってるので一時的に対処
if (message === "null" && line === 1 && window.navigator.userAgent.indexOf("MSIE 9.0") >= 0) {
if (Math.random() > 0.01) return;
}

// Safariがエラー出しまくってるので一時的に対処
if ((message === null || message === "null") && line === 0 && window.navigator.userAgent.indexOf("Safari") >= 0) {
if (Math.random() > 0.01) return;


頑張れ!
0868デフォルトの名無しさん2015/02/23(月) 12:13:38.41ID:HCdngPjw
ひでえなw
こんなんでも国内ではそこそこでかいサイトだろ
0869デフォルトの名無しさん2015/02/23(月) 12:18:23.46ID:nBmgs1q6
>>860
メモリリーク…するか?
0870デフォルトの名無しさん2015/02/23(月) 13:51:18.32ID:GeqniVAa
>>867
Pixivの運営会社の実態を調べたほうが良いよ
0871デフォルトの名無しさん2015/02/23(月) 13:56:22.26ID:/tejiemr
『日本はなぜ、「基地」と「原発」を止められないのか』矢部宏治・孫崎享 対談
https://www.youtube.com/watch?v=cBFE2dWTVQg

日本はなぜ、「基地」と「原発」を止められないのか
出版社: 集英社インターナショナル (2014/10/24)
矢部 宏治 (著)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

日本の最高権力者は日米合同委員会です。
日米合同委員会は日本国憲法より上にあります。
だから原発が止められないし日本人の被害者を助けようとしないのです。

国連憲章では日本は敵国とされています。
日本は敵国なので、いまだにアメリカ軍が駐留して日本が再軍備しないか監視しているのです。
国連憲章で敵国とされなくなるにはアジア各国と仲良くする必要があります。
日本と中国と韓国が仲良くなれば、日本は国連憲章で敵国扱いされなくなります。
そうなればアメリカ軍が日本から出ていかなければなりません(アメリカの支配から脱する)。

そうさせないために「2ちゃんねる」「ニコニコ」で中国叩きや韓国叩きのアジア分断工作が行われているのです。
「2ちゃんねる」「ニコニコ」「自民党」「2ちゃんを転載してるブログ(ニコニコが運営してる)」は日米合同委員会の下部組織です。
「2ちゃんねる」「ニコニコ」「2ちゃんを転載してるブログ(ニコニコが運営してる)」の役割は東アジアの分断工作です。
0872デフォルトの名無しさん2015/02/23(月) 14:31:58.49ID:2dcX2lQG
>>869
"Symbol DOS"でググってみ
シンボル
0873デフォルトの名無しさん2015/02/23(月) 14:33:21.46ID:2dcX2lQG
すまん
最新版に入ったシンボルGCで対策されたけど、動的にシンボル作るのは基本的に御法度だよ
0874デフォルトの名無しさん2015/02/23(月) 14:36:52.00ID:xos6Ur9w
RoR がそんなにシンボル周りで苦労しているなら、
最初から 他の言語 on Rails にしておけばもっと楽だった可能性が?
0875デフォルトの名無しさん2015/02/23(月) 15:33:24.53ID:HCdngPjw
ユーザーからの入力(毎回異なる)をわざわざ文字列らシンボルに変換する処理を繰り返すようなサイトが果たして存在するんかなw
DOSする側もそもそもRubyかどうかすらわからないのに、そんなクソ処理が実装されているかもしれないフォームに大量のランダム文字列や辞書をPOST・・・

多分攻撃成功例はないと思うぞ
0876デフォルトの名無しさん2015/02/23(月) 16:26:40.59ID:JQKxWn8H
>>875
HTMLでは標準的な、文字のコード指定は
文字列を文字コードに変換しまくり
0877デフォルトの名無しさん2015/02/23(月) 17:26:30.16ID:KfX94sTP
>>866
国外でも食えねぇよ
0878デフォルトの名無しさん2015/02/23(月) 19:09:53.40ID:zy+CPtpD
>>872
「internやto_sym出来るものを受け入れる」≠「引数をinternやto_symする」
0879デフォルトの名無しさん2015/02/23(月) 19:13:16.28ID:zy+CPtpD
と言うか、組み込みクラスでリークするような扱い方なんてそもそもしないだろ
0880デフォルトの名無しさん2015/02/23(月) 19:18:22.30ID:zy+CPtpD
…って書いた後で気付いた
要するにシンボルを「文字列の亜種」と捉えちゃう人が
Symbolを動的に生成する、なんて扱い方をしちゃうワケか
Railsが生んだ誤解としか言えないな…
0881デフォルトの名無しさん2015/02/23(月) 19:35:01.02ID:THzeMFUz
>>870
ヤバいの?
0882デフォルトの名無しさん2015/02/23(月) 20:18:38.02ID:LN+sNCaQ
Symbolを動的に生成することの何が悪いのかが分からない。
メモリリークはバグでしょ。
0883デフォルトの名無しさん2015/02/23(月) 20:42:24.98ID:nBmgs1q6
>>882
バグのような、仕様のような微妙なところかと
だってSymbolがGCされるのも、それはそれで困るし…

Symbolを動的に生成する必要があるコードって本来は限られてると思うけどな
性質としてはeval()問題にも通じると思う
Railsは文字列と混同したせいで乱用しとるけどね
0884デフォルトの名無しさん2015/02/23(月) 20:51:29.49ID:2dcX2lQG
シンボルGCに代表されるように、今のMRIって完全にRailsコミュニティに支配されてるんだよね
このスレで頑張ってるRuby原理主義の子には悪いけど、
RubyとRailsは別というもの言いはもはや通用しないんだよ…
0885デフォルトの名無しさん2015/02/23(月) 20:56:48.09ID:QjP2ga8a
使われることのないSymbolは当然GCの対象にならないとおかしい。
0886デフォルトの名無しさん2015/02/23(月) 21:02:53.86ID:2dcX2lQG
Symbolが使われなくなるという状況自体がおかしいんだよ
Symbolは本来ソースコード上の識別子を表すものなんだから、それが使われなくなるってのは
いったん読み込まれたコードファイルがインタプリタからアンロードされるような状況を意味するわけだ
0887デフォルトの名無しさん2015/02/23(月) 21:16:05.21ID:KfX94sTP
>>884
実によって木を知るってヤツだね
0888デフォルトの名無しさん2015/02/23(月) 21:17:40.64ID:KfX94sTP
Rubyはプログラム言語の黒歴史の集大成なんだ
0889デフォルトの名無しさん2015/02/23(月) 21:20:15.66ID:xos6Ur9w
>>886
すぐ上のレスにある eval()問題 って文字が見えないのか?
.NETでもアセンブリの動的アンロードでいろいろと問題になった。

不要になったクロージャのGCという状況は普通にあるんだから、
ソースコードのトップレベルもクロージャ扱いにすれば良かった。
コンパイル型言語の考え方から抜け切れなかっただんだろうね。
0890デフォルトの名無しさん2015/02/23(月) 21:34:39.10ID:QjP2ga8a
>>886
>>Symbolは本来ソースコード上の識別子を表すものなんだから
だからそもそもそれが不味いんだろう。
JSのような仕様にしておけば気軽に間違いを犯すことはなかった。
JSだと「:sym」と同等の存在は「Symbol.for('sym')」とわざわざしないと生まれない。
Symbolは基本的にユニークな存在で「Symbol('sym') != Symbol('sym')」だ。
それでもパフォーマンスと利便性は確保出来てる。
0891デフォルトの名無しさん2015/02/23(月) 21:56:27.46ID:xos6Ur9w
JSの Symbol は、実質、演算子オーバーロード用の特殊識別子であって、Rubyのものとは比べられないのでは。
設計当初であれば __iter__ 等を予約しておけたが、後付だから互換性のために文字列を使えなかったというだけだろう。
0892デフォルトの名無しさん2015/02/23(月) 22:06:56.37ID:QjP2ga8a
互換性というより醜いからだな。特にオブジェクトが連想配列なJSでそういうのができるのは。
それにSymbolはむしろユニークでかぶらないってところが重要で、存在意義を産んでる。
文字列の亜種みたいな扱いにしてしまうからそんな問題が起きる。
0893デフォルトの名無しさん2015/02/23(月) 22:29:07.72ID:xos6Ur9w
醜いのはJSの連想配列だぞ。 Symbolは、文字列しかキーにできなかったことの尻拭いだ。
もしオブジェクトのIDをキーにできていたなら、Symbol などなくても
単に var sym = new Object() をキーにするだけで済んでいた。
0894デフォルトの名無しさん2015/02/23(月) 22:35:14.21ID:QjP2ga8a
ObjectをキーにしたければMapを使えばいいじゃない。
それにオブジェクトがオブジェクトのキーに普通に使えたとしても、
Hashを求めないといけないんじゃ、パフォーマンスは期待できないよね。
だからこそプリミティブ型としてのSymbolがあるんでしょ?
0895デフォルトの名無しさん2015/02/23(月) 22:41:09.66ID:sMGbOyvE
横から一言。

ハッシュコード値を求めるのなんてコストのうちに入らないんじゃないの?
0896デフォルトの名無しさん2015/02/23(月) 23:26:36.47ID:QjP2ga8a
というかObjectの場合はHashじゃなくてObjectが作られるたびにインクリメントされるIDを付与していく形になるだろうな。
0897デフォルトの名無しさん2015/02/23(月) 23:27:56.63ID:KfX94sTP
ゆとり世代はcのコードすら追っかけない
0898デフォルトの名無しさん2015/02/24(火) 00:03:31.04ID:yqEgAYkt
もしこうだったらの仮定の話をしてるんだから追っかけようがないわな
0899デフォルトの名無しさん2015/02/24(火) 00:16:32.35ID:fa9+iiuu
> HashじゃなくてObjectが作られるたびにインクリメントされるIDを付与していく形
という実装にはならないという意味だろ?
0900デフォルトの名無しさん2015/02/24(火) 00:31:48.85ID:luD6jO26
Ruby における文字列とシンボルの本質的な違いを理解していない人がいるみたいだね....
コードで実行例を示す:
  $ ruby -e 'p "foo".__id__; p "foo".__id__'
  922250
  922190
  $ ruby -e 'p :foo.__id__; p :foo.__id__'
  209848
  209848
  $

・文字列であれば、リテラルによってオブジェクトが生成されるたびに、
 「別のオブジェクトID」が割り当てられる(つまり、それらは「別々」のオブジェクト)
・シンボルであれば、字句として同じリテラルなら何度書いてもそれらには
 「同じオブジェクトID」が割り当てられる(つまり、それらは「同一」のオブジェクト)

だから同じ振る舞いを JS をで実現するには、>>890 が示してくれたように
わざわざ「Symbol.for('sym')」と書かなければならない

>>893 が考えた「var foo = new Object()」だけでは、
(連想配列うんぬんとは無関係に)変数 foo をグローバルな名前空間上で宣言しなければならない
たかだかシンボルを実現するためだけにグローバルな名前空間を汚染することは、
良い JS プログラミング作法とは言えないだろう
0901デフォルトの名無しさん2015/02/24(火) 00:43:13.50ID:yqEgAYkt
>>899
a={}とb={}は異なるものと扱われないとダメでしょ
アドレス値でもを使いたいが相性悪いCGもあるし、生成の度にユニークIDに当たるものを付与するのが良いでしょ。
09029002015/02/24(火) 00:48:03.94ID:luD6jO26
一部訂正
X: わざわざ「Symbol.for('sym')」と
O: わざわざ「Symbol.for('foo')」と
0903デフォルトの名無しさん2015/02/24(火) 01:40:32.79ID:I87emoo4
>>900
$ ruby --version
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin13]
$ ruby -e 'p "foo".to_sym.__id__; 100000.times {|i| "foo#{i}".to_sym}; p "foo".to_sym.__id__'
70100989070960
70100984866860
0904デフォルトの名無しさん2015/02/24(火) 01:44:03.59ID:I87emoo4
$ ruby -e 'p "foo".to_sym.class'
Symbol
0905デフォルトの名無しさん2015/02/24(火) 06:00:58.49ID:Z1ULvn/u
まあまあ、、、

Rubyは問題が特に多い言語、ということで。
0906デフォルトの名無しさん2015/02/24(火) 06:26:13.31ID:uqCdmZ4l
最近の速いスクリプト処理系はオブジェクトを単なる配列として実装していて、
メンバ呼び出しはその箇所ごとにインデックスのキャッシュを持たせるのが定番だね
ハッシュ表を引くのはキャッシュミスしたときだけ
0907デフォルトの名無しさん2015/02/24(火) 08:19:30.05ID:fa9+iiuu
>>900
> 変数 foo をグローバルな名前空間上で宣言しなければならない
Symbol.for('foo') もグローバルな名前空間を汚染していることに気付いていないのか?
var Symbol = { "for": "foo" } としているのと実質的に同じだぞ。

>>901
> a={}とb={}は異なるものと扱われないとダメでしょ
あたりまえだろ? a.foo = 3 したら b.foo にも 3 が入るのか?

なぜかRubyだけ問題を指摘されているが、JSも似たようなものだ。
RubyはキーにSymbolしか受け付けず、文字列との違いとSymbol GCを後付した。
JSはキーに文字列しか受け付けず、Symbolを後付した。
どちらも、言語組み込みの連想配列のキーにすべてのオブジェクトを受け付けるようにしておけば、もっと単純化できたのだ。
0908デフォルトの名無しさん2015/02/24(火) 08:29:00.02ID:9l1rIhAp
>RubyはキーにSymbolしか受け付けず


irb(main):001:0> {'a'=>1}.keys[0].class
=> String

irb(main):002:0> {9=>1}.keys[0].class
=> Fixnum

irb(main):003:0> {Object.new=>1}.keys[0].class
=> Object
0909デフォルトの名無しさん2015/02/24(火) 09:17:17.29ID:fa9+iiuu
>>908
すまん、不正確だった。 Rubyのクラス/モジュールは、なら誤りは無いないだろうか?
Rubyの { } は Hash を構築するから、それと比べるなら JS も Map になるな。
オブジェクト/クラス/インスタンス と Hash/Map の両方が独立して必要なのかという話なのかもしれん。
0910デフォルトの名無しさん2015/02/24(火) 09:57:19.93ID:EMqrg7HR
もうRubyの話はRubyスレでやれよ
ついてけねーよ
0911デフォルトの名無しさん2015/02/24(火) 12:05:09.68ID:lFZ8d0+y
>>906
それはオブジェクトならなんでもいいわけじゃなくて、
厳かに設計されたクラスのインスタンスオブジェクトを厳かに利用している限りは、
クラスで初期化されたプロパティに関してそのような最適化を有効に働かさせられるってことだな。
連想配列のように使われるオブジェクトに関してはその手の最適化はできない。

>>907
オブジェクトを仮にキーとして使える場合、Hashをとった時の値が異ならないといけないという話なんだが。
そしてそのためにはオブジェクトに固有の目印を付けておかないといけないんじゃないかという話なんだが。
0912デフォルトの名無しさん2015/02/24(火) 12:09:03.80ID:lFZ8d0+y
話は変わるが、JSのMapは仕様上はHashではなく、ただのkeyとvaluのe2つのリストの複合体だが、実装はHashなのがちょっとおもしろい。
0913デフォルトの名無しさん2015/02/24(火) 12:58:02.64ID:CcurMLoY
富んでいる者は、ますます富み、持たない者は持っているモノまで奪われる
この予言を成就させないための反キリストの象徴なんだ。Rubyistたちは。
畑に2人居る農奴なんて、片方は天使に連れて行かれるよ
0914デフォルトの名無しさん2015/02/24(火) 18:26:14.87ID:+og2tlLi
わい少し前から医療(医工学/再生医療など)や生命科学分野で在野のエンジニアとして某旧帝の人達のお手伝いとかしたりしてるけどRやRuby大活躍やで^^
以下の書籍は結構参考になるから医療、生命科学に興味あるエンジニアは読んでみ^^

RとRubyによるデータ解析入門
https://www.amazon.co.jp/dp/4873116155/ref=cm_sw_r_awd_5ie7ub0KZ71W6
https://www.amazon.co.jp/dp/4873116155/ref=cm_sw_r_awd_5ie7ub0KZ71W6
トランスクリプトーム解析 (シリーズ Useful R 7)
https://www.amazon.co.jp/dp/4320123700/ref=cm_sw_r_awd_Rge7ub1SZ79Q0
https://www.amazon.co.jp/dp/4320123700/ref=cm_sw_r_awd_Rge7ub1SZ79Q0
0915デフォルトの名無しさん2015/02/24(火) 18:48:01.77ID:CcurMLoY
三流以下の国立大生でもscipyやMIT、stanford辺りの無料講座ぐらい、学部の頃から読むだろ
0916デフォルトの名無しさん2015/02/24(火) 19:12:32.33ID:EFE1Fkp5
いいねぇ
とりわけ生物学は一生かけ通すだけの価値ある学問だと思うしね
日本が誇る再生医療×国産言語Rubyとか素敵やん
俺もRubyやるかな
0917デフォルトの名無しさん2015/02/24(火) 19:23:26.92ID:udw0BBc/
一生かけてプログラミングするんなら
メンテしやすい Python 一択だと思うが
0918デフォルトの名無しさん2015/02/24(火) 19:37:44.64ID:iUe1ND2+
Rubyとか日本以外で仕事無いぞ
海外出るならPythonとJavaさえあれば食っていける
一生ジャップとして生きるならRubyやれ
0919デフォルトの名無しさん2015/02/24(火) 19:41:51.92ID:CcurMLoY
Rubyistのイタリア人とか、無職のPythonistaとか見たこともないんだろうな。
0920デフォルトの名無しさん2015/02/24(火) 20:01:03.27ID:D5FJHWff
>>917
Python4が出てコード改修の強制が再び起こるかも分からんので
特出してメンテしやすいとは考えられないな
0921デフォルトの名無しさん2015/02/24(火) 20:17:34.72ID:wMWkMGk+
>>912
実際には普通のハッシュ表ではなく>>906のように
インラインキャッシュを効かせるために特殊なデータ構造になってるよ
ハッシュ表はオブジェクトに付随する型情報(メタデータ)であると考えるのが実態に近い
0922デフォルトの名無しさん2015/02/24(火) 20:22:43.41ID:9l1rIhAp
Rubyはむしろ日本では仕事ほとんどないわ
まあ「皆無」に近いPythonよりはあるけど
0923デフォルトの名無しさん2015/02/24(火) 20:35:23.10ID:xlkVkRzD
Pythonを使う仕事あるけど、ドカタには一生無縁な職種
0924デフォルトの名無しさん2015/02/24(火) 20:56:24.78ID:luD6jO26
>>909
>すまん、不正確だった。 Rubyのクラス/モジュールは、なら誤りは無いないだろうか?
>Rubyの { } は Hash を構築するから、

それも間違いだ
JS だと [] は構文の一部だけど、純粋オブジェクト指向言語である Ruby だと
[] は単なるメソッドであり、ハッシュの構築とやらとは全く関係ない
だから無知な >>797 が望む JS の振る舞いを Ruby で模倣することは簡単に実現できる
具体的なコードで示すと、まず以下のコードをファイルへ保存する("like-a-js.rb" とする)
  class Object
    define_method :[]= do |key, val|
      instance_variable_set "@#{key}", val
    end

    define_method :[] do |key|
      instance_variable_get "@#{key}"
    end
  end
次にRubyインタプリタを対話モードで起動する
  $ irb -I. -rlike-a-js.rb
  irb(main):001:0> o = Object.new
  => #<Object:0x129594>
  irb(main):002:0> o[:x] = 1
  => 1
  irb(main):003:0> o[:bar] = 'BAR'
  => "BAR"
  irb(main):004:0> o[:x]
  => 1
  irb(main):005:0> o[:bar]
  => "BAR"
  irb(main):006:0>
0925デフォルトの名無しさん2015/02/24(火) 21:04:17.06ID:CcurMLoY
railsで請け負えば、競合に奪われないのにね
0926デフォルトの名無しさん2015/02/24(火) 22:34:01.67ID:VYr5b09y
>>925
その論法でいけばPythonだとさらに奪われにくいという事になりませんか?
0927デフォルトの名無しさん2015/02/24(火) 22:34:50.99ID:luD6jO26
>>907
>RubyはキーにSymbolしか受け付けず、

すでに >>908 が指摘しているけど、これも間違い
JS だと [] は構文の一部だからオブジェクト/配列のキーに制限があるけど、
純粋オブジェクト指向言語である Ruby だと
2つのメソッド Object#hash と Object#eql(other) が定義されている
任意のオブジェクトをハッシュのキーとして指定できる
  http://docs.ruby-lang.org/ja/2.2.0/class/Hash.html

実際のコード例を以下に示す
  http://ideone.com TUrRqm
ここでは二次元座標上の点を表現したクラス Point を定義し、
そのインスタンスをキーとしたハッシュの生成とアクセスをコード化してみた

なおこのクラスは不変(immutable)なオブジェクトとして設計したので、
ハッシュ値はオブジェクト生成時に決定され、二度と変化することはない
またハッシュのキーとして利用しない場合、ハッシュ値の計算は無駄になる
そこでメモ化によって、最初にハッシュのキーとして利用する時だけ
ハッシュ値を計算するように工夫している
0928デフォルトの名無しさん2015/02/24(火) 22:38:03.70ID:luD6jO26
(>>900,902 の続き)
>・シンボルであれば、字句として同じリテラルなら何度書いてもそれらには
> 「同じオブジェクトID」が割り当てられる(つまり、それらは「同一」のオブジェクト)

この Ruby のシンボルが持つ本来の性質を(性質がもたらす)結果という視点で言い換えたのが、
>>866 の「Symbolは本来ソースコード上の識別子を表すもの」になる
だからシンボルは、たとえばハッシュのキーや業務アプリであれば「区分コード」や
「分類コード」のようにオブジェクトの同一性のみが要求されるケースに限定して用い、
入出力のテキストデータであれば文字列を用いるという、「用途に応じて使い分ける」ことが
Ruby プログラミングにおける「暗黙の常識(オキテ?)」だった(>>873)
そして、これに従ってコーディングしていれば、シンボルのオブジェクトが生成されるのは
リテラルのコンパイル時だけだから、シンボルのオブジェクトをGCの対象から外してもかまわない、
すなわちゴミ回収の必要性は無かった(過去形 ....)

ところが Rails では一部で(?)シンボルを「不変(immutable)な文字列」として扱い、
入出力テキストデータを Symbol.new(str) やstr.to_sym で動的に生成しはじめたから、
大規模な Rails アプリではたちまちメモリが枯渇するという深刻な問題が発生した (>>880)
ここで Ruby の中の人達が「そもそも Ruby のシンボルとは...」などと叫んでも、
すでにRails は全世界的に普及し Ruby プログラマの大半が Rails ユーザという状況下では
後の祭り、泣く泣くシンボルGCを後付けするしかなかった.... というのがいきさつ
0929デフォルトの名無しさん2015/02/24(火) 22:48:19.91ID:luD6jO26
>>903
  $ ruby1.8 -e 'p :foo.__id__; 100000.times {|i| "foo#{i}".to_sym}; p :foo.__id__'
  106258
  106258
  $ ruby2.2 -e 'p :foo.__id__; 100000.times {|i| "foo#{i}".to_sym}; p :foo.__id__'
  416178
  416178
  $

>>900,902 で述べた「Ruby のシンボルが持つ本来の性質」は、
あらゆる Ruby のバージョンで一貫している
(リテラルの同一性であることがポイントね)

だから互換性が問題になるのは、シンボル・オブジェクトを動的に大量生成するような
「Ruby における暗黙の常識(>>928)」を守っていないコードだけ
大半の「ふつうのRubyコード」では問題にならない
0930デフォルトの名無しさん2015/02/24(火) 23:02:54.20ID:9l1rIhAp
>ところが Rails では一部で(?)シンボルを「不変(immutable)な文字列」として扱い、
>入出力テキストデータを Symbol.new(str) やstr.to_sym で動的に生成しはじめたから、
>大規模な Rails アプリではたちまちメモリが枯渇するという深刻な問題が発生した

どこのアプリがそんな処理をするのか知りたいわ。
RubyのRVALUEってそもそも40バイトだし、シンボルは1個しか作れないから、通常のプログラミングで
シンボルのせいでメモリが枯渇することはありえないし、枯渇するまでにはサーバーが再起動されている。

むしろ大規模なRailsアプリで一番の問題だったのは、速度でもメモリ使用量でもなく、ガベージコレクションによる停止時間。
これもシンボルは直接の原因ではない。
0931デフォルトの名無しさん2015/02/24(火) 23:04:02.26ID:9l1rIhAp
>ところが Rails では一部で(?)シンボルを「不変(immutable)な文字列」として扱い、
>入出力テキストデータを Symbol.new(str) やstr.to_sym で動的に生成しはじめたから、
>大規模な Rails アプリではたちまちメモリが枯渇するという深刻な問題が発生した

どこのアプリがそんな処理をするのか知りたいわ。
RubyのRVALUEってそもそも40バイトだし、シンボルは1個しか作れないから、通常のプログラミングで
シンボルのせいでメモリが枯渇することはありえないし、枯渇するまでにはサーバーが再起動されている。

むしろ大規模なRailsアプリで一番の問題だったのは、速度でもメモリ使用量でもなく、ガベージコレクションによる停止時間。
これもシンボルは直接の原因ではない。
0932デフォルトの名無しさん2015/02/24(火) 23:04:34.17ID:9l1rIhAp
>ところが Rails では一部で(?)シンボルを「不変(immutable)な文字列」として扱い、
>入出力テキストデータを Symbol.new(str) やstr.to_sym で動的に生成しはじめたから、
>大規模な Rails アプリではたちまちメモリが枯渇するという深刻な問題が発生した

どこのアプリがそんな処理をするのか知りたいわ。
RubyのRVALUEってそもそも40バイトだし、シンボルは1個しか作れないから、通常のプログラミングで
シンボルのせいでメモリが枯渇することはありえないし、枯渇するまでにはサーバーが再起動されている。

むしろ大規模なRailsアプリで一番の問題だったのは、速度でもメモリ使用量でもなく、ガベージコレクションによる停止時間。
これもシンボルは直接の原因ではない。
0933デフォルトの名無しさん2015/02/24(火) 23:19:36.74ID:f0qd5wpl
とても大事なことだから三回言いました
0934デフォルトの名無しさん2015/02/25(水) 01:10:17.34ID:2Uq6yvoW
いや、to_symなんてメソッドがあったら
そら動的にシンボル生成する奴出てくるよ
非推奨っぽい名前でも無いし
0935デフォルトの名無しさん2015/02/25(水) 02:44:13.09ID:CRSuk3Gj
そもそもJSと比べてもランタイムのメモリ使用量が多い
0936デフォルトの名無しさん2015/02/25(水) 05:57:17.67ID:bDhGkzH3
その話はそろそろ別スレでやってくれないかな
0937デフォルトの名無しさん2015/02/25(水) 06:25:03.62ID:CRSuk3Gj
このスレより適したスレがあるとでも?
0938デフォルトの名無しさん2015/02/25(水) 07:42:59.65ID:flmNpp9d
RubyのSymbolの問題というより、文字列などをインターンするケース全般に当てはまるんじゃないの?
Pythonもインターンしていた気がするけど、そっちは大丈夫なのかな?
JSも文字列はimmutableだから、インターンしてそうな気がするけど
0939デフォルトの名無しさん2015/02/25(水) 07:52:04.61ID:9jad7y3g
RubyでSymbolが多用されるのはインターンなんて関係なくて
単に記述が簡易なのと辞書の { キー: 値 } 記法を使ったら嫌でもキーがSymbolになってしまうのと
メソッドを動的に定義したり取得したりするのにSymbolしか使えないから(文字列渡せたりするが内部で変換している)
0940デフォルトの名無しさん2015/02/25(水) 08:00:32.40ID:9jad7y3g
あと勘違いしているようだけど組み込みのStringクラスを持つ大抵の言語(Python/JS/Java/C#…)では
勝手にインターンされるのは文字列リテラルだけ
書き忘れてたけどRubyでSymbolが多用される大きな理由の一つに「Stringがミュータブルだから」というのがある
キーとしてミュータブルなオブジェクトを使用すると外から書き換えられてハッシュがぶっ壊れる恐れがあるからね
元々Stringがイミュータブルならインターンされてるかどうかはあまり重要ではない
0941デフォルトの名無しさん2015/02/25(水) 08:06:38.60ID:9jad7y3g
そしてシンボルGCはリテラルのシンボルは絶対に回収しない仕様なので、
これによってSymbolは他言語のイミュータブルなStringとかなり近い存在になったわけだ
いったんインターンする分だけ生成にコストがかかるのとStringと互換性がなくてクソ不便な以外はね
0942デフォルトの名無しさん2015/02/25(水) 08:56:52.59ID:0PKAsEXX
Stringがimmutableならハッシュ値の計算コストも問題にならないんだよな
だって一度計算したらキャッシュしとけばいいんだから
Stringをミュータブルにするという間違った選択が全ての元凶
MatzはC脳だから、char*を自由に弄れないなんて考えられなかったんだろう
0943デフォルトの名無しさん2015/02/25(水) 09:02:24.73ID:2Uq6yvoW
const char*とか無い古いC脳だからね
0944デフォルトの名無しさん2015/02/25(水) 10:45:15.58ID:PD19Kjkh
Rubyの場合、キーがStringやSymbolである必要はないから
GCされてかつimmutableなキーが欲しけりゃ、やり方はあるし
mutableだからぶっ壊れるっつーても、新規キー突っ込むときdupすりゃ済むよ

>>939
ハッシュの { key: value } 記法はSymbolに限った例外で
基本的な書き方は { key => value } なんだけどな
まあ、そのSymbolの記法では動的な使い方は出来ないから問題ないが

メソッドなどの動的定義については仕方ない
それが本来のSymbolの役割だと思うしな
…ただ、動的定義多用する場面ってDSL作るときぐらいだと思う
Railsがまさにそれだから困るわけだが

もうさ、Perl => PHP みたく、Rails には言語として独立してくんないかなと思う
いちいちRuby本体を巻き込まないで欲しいよ
0945デフォルトの名無しさん2015/02/25(水) 14:07:24.00ID:GuxC04/B
haskellとか、scalaとか、Ruby以上に優れた言語はあるんだけど、
結局、Rubyが使われる理由ってRailsなんだよね
0946デフォルトの名無しさん2015/02/25(水) 14:11:27.09ID:zbP264L7
RubyがRailsのようなものに特別向いてるとは思わないけどな。
RPGツクールのスクリプトとしては確かに向いてると思う。
0947デフォルトの名無しさん2015/02/25(水) 14:21:30.19ID:GuxC04/B
ツクールの組込みスクリプトなんて何だって良いよ
てか、node.jsの文化って何気にクローズドな世界へ逆戻りするね
MEANやmeteor製のecommerceを探しても使えそうなものは出てこない
OSSなんて、wordpressやrailsで左手団扇だった頃の名残りって時代になるんだろうな
0948デフォルトの名無しさん2015/02/25(水) 16:56:46.92ID:+Rnlx2S3
Node.jsは完成を待たずしてAPIや表面が風化しかけてる感がある。
一応2系で大きく変えていく予定ではあるみたいだし、io.jsみたいな存在も出てきたので希望は捨ててない。
とりあえずasync/awaitが入ってAPIがそれに乗っかってほしい。その前にES6との調和が急務ではあるが。
まあそこまでやれば光沢を取り戻せると思う。

そこから先はWebやらFirefoxOSやらWinメトロアプリAPIやらと、
StreamやファイルアクセスのAPIを揃えていくのがJSとしての問題。
0949デフォルトの名無しさん2015/02/25(水) 17:04:34.20ID:4b4tu3Ug
node.jsの言語使用はV8エンジンそのままではないのか?
そっちが更新されない限りは現状維持だろ。
0950デフォルトの名無しさん2015/02/25(水) 17:12:15.73ID:flmNpp9d
「クローズドな世界」とか「風化しかけてる」とかよく分からない形容詞だな。
ブラウザJSの流れから外れてしまったということか?
0951デフォルトの名無しさん2015/02/25(水) 17:36:22.58ID:+Rnlx2S3
>>949
そりゃあMathとかそういったのは当然差異はないよ。
でもJSはIOと切り離された言語だからね。IO周りはその環境が独自のAPI提供しないといけない。
何かのスクリプトなら殆ど困らないだろうけど、サーバーにおいてIO周りと言ったらほぼ全てなわけよ。
DOMにあればそれを真似することもできただろうけど、生憎Nodeが生まれた時には全くなかった。
最近になってTextDecoderやらそういったのが出てくるようになってきて、Streamはいよいよこれからって段階。

>>950
手っ取り早く言うと、開発から5年たったけどまだ1.0がリリースされない。
5年前は新鮮で素晴らしかったAPIも5年間使われていくうちに不満が出てくるようになったってこと。
でもここ数年はもうすぐ1.0を出すからという名目でAPIの変更を避けてきた。
いよいよES6の時代となって、V8のバージョンを中々挙げないことも相まって、崩れ出す=コミュニティの熱が冷め切って崩壊してしまいそう。

今はkoaみたいな標準のAPIを先進的にラップしてくれるライブラリが活力を与えてる状態。
恐らく今年中に「Nodeを使うならkoaも一緒に」。「koaは実質標準」みたいになるだろう。
でもそういった物を使うってのも本来は要らない煩わしさを負って、本来は得られる利便性の何割かは損ねる形で妥協しているわけだから時期に不満は出てくる。
0952デフォルトの名無しさん2015/02/25(水) 18:27:18.27ID:GuxC04/B
>>950
wordpress規模のCMSが無い。サービス作りの拝金主義に傾倒している。
0953デフォルトの名無しさん2015/02/25(水) 18:29:41.47ID:0z3UW+sb
言語もライブラリも守りに入ったら終わるんだな
今から始めるならやっぱりPrologしかないか
0954デフォルトの名無しさん2015/02/25(水) 19:01:47.56ID:kf8LDibB
Rustが良いよ
0955デフォルトの名無しさん2015/02/25(水) 19:23:00.08ID:0z3UW+sb
Rustは名前が残念すぎる
0956デフォルトの名無しさん2015/02/25(水) 19:30:31.77ID:QDE3W+93
言語は守りに入った時点でもう勝ちだろ
むしろ最先端気取りのアホWeb連中に騒がれなくなってからが大衆言語としての本番
0957デフォルトの名無しさん2015/02/25(水) 19:35:11.96ID:0z3UW+sb
非RailsなRuby使いの被害者意識は異常
0958デフォルトの名無しさん2015/02/25(水) 20:26:38.55ID:GuxC04/B
>>953
ネタでなく将来性があるよね。今のWebって数年後には終わってるだろうし
0959デフォルトの名無しさん2015/02/25(水) 20:46:57.09ID:qU3KeDvM
>>914>>916
去年からバイオインフォマティクス界隈でお仕事してるけどBioRubyとかR使ってるわwww
0960デフォルトの名無しさん2015/02/25(水) 21:23:46.75ID:b1PxjtZ0
ふふっふー♩
0961デフォルトの名無しさん2015/02/25(水) 21:24:21.08ID:b1PxjtZ0
日本原産Rubyもいよいよ医療、生命科学分野に本格進出か!?
0962デフォルトの名無しさん2015/02/25(水) 21:37:40.85ID:7GkgvnFA
>>907
>> 変数 foo をグローバルな名前空間上で宣言しなければならない
>Symbol.for('foo') もグローバルな名前空間を汚染していることに気付いていないのか?
>var Symbol = { "for": "foo" } としているのと実質的に同じだぞ。

遅レスになったが、Symbol.for('foo') はグローバルな名前空間を汚染しない
JS のシンボル Symbol は組込み型だけど、あえて「実質的に同じ」コードを書くと、以下になる
  var __internal_symbol_table__ = { "foo": "foo" }
ここで新たにシンボル bar が宣言されると、この(JS ランタイム内部に存在する)表は以下のよう変化する
  var __internal_symbol_table__ = { "foo": "foo", "bar": "bar" }

JS のシンボルについてあまりに無知すぎるから、以下を読んで勉強したほうがいいね
・Symbolについて - JS.next
 http://js-next.hatenablog.com/entry/2014/03/01/001650
この記事内にある「シンボルを登録する」という節で、コンストラクタ Symbol('foo') と
メソッド Symbol.for('foo') との違いが詳しく解説されている
0963デフォルトの名無しさん2015/02/25(水) 21:38:37.97ID:GuxC04/B
バイオインフォマティクスなんか学んだ修士って何処に就職するんだろな
0964デフォルトの名無しさん2015/02/25(水) 21:46:02.29ID:7GkgvnFA
>>930
>通常のプログラミングでシンボルのせいでメモリが枯渇することはありえないし、

ありえないのなら、シンボルCGの導入も不要だったはずだよね
ところが、ありえる事が明らかになって、深刻な問題であると認識されたのが「シンボルDoS」攻撃(>>872)
「枯渇するまでにはサーバーが再起動されている」とお花畑なこと言ってるくらいだから知らないのだろね
以下で詳しく解説されているから、読んで勉強したほうがいいと思うよ
・(翻訳) Ruby 2.2 のシンボル GC | FIVETEESIXONE
 http://fiveteesixone.lackland.io/2015/01/21/symbol-gc-ruby-2-2/

あと以下の箇所は間違いだったから、訂正しておく
X: メモリが枯渇する
O: メモリ確保失敗による実行時エラーが発生する
  $ ruby2.1 -e 'p :foo.__id__; 10000000.times {|i| "foo#{i}".to_sym}; p :foo.__id__'
  146328
  -e:1:in `to_sym': symbol table overflow (symbol foo2094525) (RuntimeError)

>むしろ大規模なRailsアプリで一番の問題だったのは、速度でもメモリ使用量でもなく、ガベージコレクションによる停止時間。
>これもシンボルは直接の原因ではない。

>>928 で書いたのは、シンボルGCが導入された「いきさつ」だよ
それを>>928 の最後に書いたのだけど、読めなかったのかな???(困惑

そして、シンボル以前に Ruby のGC実装そのものに性能問題が多いことは良く知られていたし、
その一方でバージョンアップのたびに問題は改善された
そして遂には他言語を圧倒するほど効率的になったのは、しばらく前にこのスレで話題になったばかり(>>753)
そんな当たり前の話を今さら強調するという感覚がよく分からんな???(大困惑
0965デフォルトの名無しさん2015/02/25(水) 21:46:06.21ID:flmNpp9d
>>962
「名前空間」の認識がずれているだけで、同じことを言っているよ。
変数空間は汚さないけれど、Symbol.for() の空間には何かしらを追加している。
もちろん、その空間はリードオンリーの Symbol しか存在しないから、実害はないけれど。
単に、変数空間上にある Symbol.for という名前の Map<string, Symbol> に値を追加すると変わらないという話。
> var Symbol = { "for": "foo" } ってのは例としてはおかしいな。
0966デフォルトの名無しさん2015/02/25(水) 22:01:20.15ID:9jad7y3g
生物系なんか宮廷卒のSEとか山ほどいるよ
0967デフォルトの名無しさん2015/02/25(水) 22:19:12.37ID:+Rnlx2S3
JSでも流石に
i=0;while(++i)Symbol.for(i);
とするとメモリが枯渇するよ
0968デフォルトの名無しさん2015/02/25(水) 22:40:36.83ID:aV8txqsR
>>964
お前リアルでも相当苦労してそうだな
0969デフォルトの名無しさん2015/02/25(水) 22:58:39.61ID:+Rnlx2S3
そういえば近年世代別CGへの移行がいろんな実装で進んだけど、
やっぱこれが至高なのかね?
0970デフォルトの名無しさん2015/02/25(水) 23:16:07.34ID:7GkgvnFA
>>938,939,940 (ID: flmNpp9d)
>単に記述が簡易なのと

これは「多用される理由」ではなくて、「(文字列の亜種として (>>880))誤用される理由」


>辞書の { キー: 値 } 記法を使ったら嫌でもキーがSymbolになってしまう

これもすでに >>944 が指摘しているけど、{ シンボル => 値 } の単なる構文糖


>メソッドを動的に定義したり取得したりするのにSymbolしか使えないから

シンボルの本質は「ソースコード上の識別子を表す(>>866,928)」なのだから、
メソッドの動的定義で渡すメソッド名としてシンボルを用いるのは、まさに正しい使い方だよ
(>>944 の言う「本来のSymbolの役割」)
これを文字列とシンボルのどちらでもかまわないという(型付けの弱い)発想は、
Ruby プログラミングにおける「暗黙の常識」(>>928) に反している


>書き忘れてたけどRubyでSymbolが多用される大きな理由の一つに「Stringがミュータブルだから」というのがある
>キーとしてミュータブルなオブジェクトを使用すると外から書き換えられてハッシュがぶっ壊れる恐れがあるからね

これまた >>944 が指摘しているように組込みメソッド Object#dup を使う方法があるし、あるいは
もし「イミュータブルなString」が必要ならば組込みメソッド Object#freeze を使えばいい
  http://docs.ruby-lang.org/ja/2.2.0/method/Object/i/freeze.html
Object#freeze は String オブジェクト内部の属性値を更新するだけだから、
Object#to_sym のように無駄な Symbol オブジェクト生成もいらない
だから「Stringがミュータブルだから」という理由は間違い

もう少し Ruby について勉強し直してから、出直したほうがいいと思うよ
0971デフォルトの名無しさん2015/02/25(水) 23:41:20.55ID:7GkgvnFA
>>965
> もちろん、その空間はリードオンリーの Symbol しか存在しないから、実害はないけれど。

いや、実害が無いのは、シンボル宣言によって消費される名前空間(=シンボル表)を
変数やメソッドが属する一般的な名前空間から分離しているからだよ

そして実害が無いことが重要だ

名前空間の分離という発想が、異なる JS パッケージ間で名前が衝突するという
古い JS 仕様が抱えていた名前汚染問題の解決方法になった
もう少し「JS における名前汚染問題」について勉強したほうがいいと思う
0972デフォルトの名無しさん2015/02/25(水) 23:51:31.87ID:flmNpp9d
>>971
名前空間を分離しても、その接続点 (Symbol.for) は固定しているんだろ?
そこから下位構造として名前を生やすのと、実質的に何が違うんだ?
また、実害が無いのは、名前空間が分離しているからではなく、
<string, Symbol>というペアしか配置できないという、型付けがあるからだと述べたはずだ。

本質を理解した議論ができているのか?
もう少し「コミュニケーション」について勉強したほうがいいと思う
0973デフォルトの名無しさん2015/02/25(水) 23:57:16.81ID:+Rnlx2S3
Symbol.forの挙動を調べてたけど面白いね。
Symbol.forで登録されたシンボルはグローバルを超えて、互いに通信可能な環境全てで共有されないといけない。
ブラウザでは大体の場合通信可能なのは同オリジンのページどうしで、これらは1つのプロセスで動いているから共有も容易。
しかしあるページから別オリジンのページを開いた場合にはChromeではセキュリティのために別プロセスとなっている。
この時開いた先で多数のシンボルを登録すると、開いた元のメモリが増えることを確認した。
0974デフォルトの名無しさん2015/02/26(木) 00:45:42.62ID:RBoyK9EV
>>972
これまでの文脈に沿って、もともとシンボルという概念が
存在しなかった JS において:
 「なぜ Symbol という組込み型とメソッド Symbol.for を
  後付け(= ES6)で導入しなければならなかったのか?」
という背景(いきさつ)を説明しているだけ

JS ランタイム内部の Symbol 実装は枝葉の議論だと思うし、
その議論を続けたいのなら、自分は興味が無いので落ちるよ
0975デフォルトの名無しさん2015/02/26(木) 01:06:58.50ID:AyVU2GHw
なんだかんだでSymbolは元々プライベートプロパティの実現を期待されてたんだよ。
でも最終的に実用上完全には隠蔽されなくなった。
V8の内部的には存在してて内部プロパティの実装用に使われてる。

ES7で採用しようという案もあるけど、プライベートに関してはもっと汎用的な
Relationships改めAbstract Referencesが採用される可能性が高いだろう。
0976デフォルトの名無しさん2015/02/26(木) 06:01:31.44ID:KjL5S3Us
どうでもいー
0977デフォルトの名無しさん2015/02/26(木) 09:00:36.83ID:ZbTpR+xY
RubyとJavaScript以外ではSymbolのようなものないの?
0978デフォルトの名無しさん2015/02/26(木) 13:09:15.19ID:8ZdwsKpC
>>977
LISP
0979デフォルトの名無しさん2015/02/27(金) 00:53:05.02ID:fEMv6Yml
RubyはLispからもパクってるからね
でも中途半端にパクるもんだから劣化しまくり
シンボルもそう、関数型の機能もそう
0980デフォルトの名無しさん2015/02/27(金) 13:01:58.88ID:ksgzB1WO
common lispでやってたことが、なんで、ここまで複雑になるんだろうな
0981デフォルトの名無しさん2015/02/27(金) 21:46:53.43ID:croQRtGo
あべし
0982デフォルトの名無しさん2015/02/27(金) 22:22:27.71ID:ksgzB1WO
common lispでauto cadが書かれていたって話しは聞くけど、
Rubyで、それ規模のものが書かれたことはないよね。pythonにはあるのに
0983デフォルトの名無しさん2015/02/27(金) 22:58:35.35ID:v/A3JJUH
そういうモノシリックなソフトをRubyで書くのは辛いだろうけど、
画面数がバカみたいに多いだけのある意味大規模なドカタWebアプリなら腐るほどあるだろ
0984デフォルトの名無しさん2015/02/27(金) 23:13:23.09ID:j2kMYDr9
そもそもサーバーサイドで流れを管理しようと言うのが時代遅れ。
今はサーバーサイドはコンパクトに、APIを提供するだけに留まるから問題ない。
0985デフォルトの名無しさん2015/02/27(金) 23:17:11.34ID:v/A3JJUH
仕事したことなくてWebから得られる情報しかないとそうなるんだろうな
現実のWebはDBを触る似たような画面が沢山あるだけのつまらんドカタアプリがほとんどだよ
AJAXなんて専ら入力チェックに使う程度だ
0986デフォルトの名無しさん2015/02/27(金) 23:19:21.72ID:XIuqZzpl
サーバーサイドとかAPIなんて話は出てきていないのだが……
単にその時代に新しく必要とされるものが書かれただけじゃないのか?
例えば、いまさら新言語でオフィススイートをゼロからつくろうとは思わないだろ?
0987デフォルトの名無しさん2015/02/27(金) 23:49:23.52ID:YR6qNPXJ
>>979
添削しとく

>JSはLispからもパクってるからね
>でも中途半端にパクるもんだから劣化しまくり
>シンボルもそう、関数型の機能もそう

まさに JS にぴったりだ
Java風の構文で初心者にも使いやすい簡潔な構文の言語として誕生したのに、
ES6 ではシンボル、クラス、モジュールやら追加され肥大化してしまった


>>980
まったくだ、どうして JS はここまで複雑になってしまったのだろね
0988デフォルトの名無しさん2015/02/28(土) 00:08:00.32ID:dohjXiRJ
プロトタイプベースという自由が与えられても、自由度が高すぎて皆がバラバラに動いてしまっていた。
そこに、クラスやモジュールという縛りを導入することで、やっと共通ルールが生まれたと捕らえるべき。

いまの平均的なプログラマの頭だと、クラスベースで、Javaに毛が生えたくらいの機能で十分なんだよ。
これでも、オブジェクト指向が理解できない COBOLer の時代からすれば平均レベルは上がっているだろうけど。
0989デフォルトの名無しさん2015/02/28(土) 00:13:48.77ID:JYQdrmRY
求人票みてもhtml/css/jsが増えてきてるよね。
SIerがJavaで作ってたものの大半は、JavaScriptでもっと良いものが作れるしね
0990デフォルトの名無しさん2015/02/28(土) 00:14:13.96ID:YbcJcEIb
>>988
> Javaに毛が生えたくらいの機能で十分なんだよ
おいおい、昨今のプログラミング技術の進歩を考えれば、Javaなんて時代遅れもいいとこだぞ
そんなものに毛が生えたもので十分なんて、IT土方以外にはまったく通じないぞ
0991デフォルトの名無しさん2015/02/28(土) 00:14:59.38ID:BgScRhfi
オブジェクト指向なんて理解してないよ
PHPだろうがRailsだろうがJavaだろうがトランザクションの一つ覚え
COBOL時代から根っこは何も変わってないというか、COBOLの偉大さを感じさせられる
0992デフォルトの名無しさん2015/02/28(土) 00:18:00.11ID:JYQdrmRY
オブジェク指向なんて、誰も理解してないよ
考えるだけ時間の無駄だったんだ
0993デフォルトの名無しさん2015/02/28(土) 00:22:14.64ID:BgScRhfi
Webに夢見てる子達が多くてかわいいな
その気持ちを忘れるなよ
0994デフォルトの名無しさん2015/02/28(土) 00:22:59.87ID:JYQdrmRY
本当に必要だったものの大半なんてSPAだったんだ
ところで、SIerって会社に棄てられたら何するの?
0995デフォルトの名無しさん2015/02/28(土) 00:27:26.32ID:6Lhyreb3
>>988
全くの無関係ではないが、JSが自由だったのはプロトタイプベースというより、オブジェクトの連想配列性だと思う。
プロトタイプベースは昔から隠蔽されててES6からようやく本格的に使えるようになった。
例えばhttp://peace.2ch.net/test/read.cgi/hp/1422084185/334みたいなのが本来の「プロトタイプベースらしい」コード。
それにES6のクラスシンタックスは機能が弱いから、それだけ知っておけばいいものではなく、従来型と併用する必要がある。
あくまで糖衣構文に過ぎない。
0996デフォルトの名無しさん2015/02/28(土) 00:29:41.40ID:BgScRhfi
>>994
逆に聞くが実装スキルだけあって何ができると思ってるの?
どの業界でも奴隷にしかなれないよ
0997デフォルトの名無しさん2015/02/28(土) 00:33:39.00ID:6Lhyreb3
次スレ
http://peace.2ch.net/test/read.cgi/tech/1425051187
0998デフォルトの名無しさん2015/02/28(土) 00:36:18.69ID:JYQdrmRY
>>996
それは企業のなかで実装してるだけだからだよ
0999デフォルトの名無しさん2015/02/28(土) 00:41:16.22ID:BgScRhfi
まあ学生さんだろうけど、WebだろうがSIだろうがアプリの道に行くならいずれ嫌でも思い知ることになるよ
技術だけ見てたいならインフラ行ったほうがいい
1000デフォルトの名無しさん2015/02/28(土) 00:42:44.72ID:vAVkZjyz
>>987
Rubyはキーワード引数ひとつ取ってみても複雑すぎる
しかも最近導入された機能だから、設計初期にありがちなミスとも違う
こんな複雑な言語そうそう無いよ

def f(*args, kwd: 'keyword')
  p args, kwd
end

f(1, 2) #=> [1, 2], "keyword"
f({}, {}) #=> [{}], "keyword" # 引数が1つ消滅。どこに消えた?
f({a: 0}, {b: 1}) # ArgumentError
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。