【Perl,PHP】LLバトルロワイヤル20【Ruby,Python】

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
最強のLL=軽量プログラム言語は、どれよ?

エントリーは、Perl、PHP、Python、Ruby、JavaScript・・・
さあ、死ぬまで語りやがれ!!!

■LLとは?
軽量プログラミング言語(Lightweight Language,LL)とは、取り回しに優れ、
コードの作成や修正が容易と見なされるプログラミング言語のことを指す。

ここでいう「軽さ」はプログラマの負担の軽重を指し、
実行速度に優れているという意味ではない。

現在の水準では
・インタプリタ
・動的型
・正規表現
・クロージャ
などを利用できるものがLLと呼ばれることが多い。(Wikipediaより)

前スレ
【Perl,PHP】LLバトルロワイヤル19【Ruby,Python】
http://toro.2ch.net/test/read.cgi/tech/1320405770/
2デフォルトの名無しさん:2012/01/12(木) 13:23:47.21
Schemeは?
3デフォルトの名無しさん:2012/01/12(木) 13:37:42.38
・・・に含めてますが
4デフォルトの名無しさん:2012/01/12(木) 16:11:00.47


2chやニコニコ動画に民主党から反日工作費が流れていることが知られるようになってきた。
民主党が用意した資金で工作員が2chを荒らしていることもだんだんと知られるようになってきた
5デフォルトの名無しさん:2012/01/12(木) 18:03:05.67
もうPythonの圧勝で結論が出ただろ
削除依頼出しとけよ
6デフォルトの名無しさん:2012/01/12(木) 18:23:12.08
次からRuby抜かせばいいじゃん
必要ないでしょ
7デフォルトの名無しさん:2012/01/12(木) 18:33:51.00
LLとか本来の意味と違って恥ずかしいから
EP言語(EasyProgrammingLanguage)とかにしろよ
8デフォルトの名無しさん:2012/01/12(木) 19:06:19.00
このスレいつもPHPの話題でないね
9デフォルトの名無しさん:2012/01/12(木) 19:11:39.80
PHP は板違いだからな
10デフォルトの名無しさん:2012/01/12(木) 20:52:57.60
前スレで誰かがPHPによるGUI開発環境を紹介してくれていたから
汎用LLとして個人的には認めてるけど、なんせマイナーな利用だから
皆誰もが納得してくれるとは思えない

それにPHPを入れるとWebの話題が中心になってしまうし、
そうなるとPythonの立場が無くなってあまりに哀れで可哀想だよね!!
11デフォルトの名無しさん:2012/01/12(木) 21:28:42.27
GUIならPHP以外の言語でいくらでも作れるのに
何が嬉しくてわざわざPHP使おうと思うのか
理解に苦しむ
12デフォルトの名無しさん:2012/01/13(金) 07:06:13.09
グローバル名前空間に便利なものが山ほどあるのがいい言語、
と思ってる奴が、PHP大好きなんだろうと思っている。

それ以外の人は割り切って使ってるでしょ。
13デフォルトの名無しさん:2012/01/13(金) 17:10:50.49
PHPのアマチュアが遊びで作ったGUIアプリ

EXEを吐けるRADツール
HC-wbRadStudio Ver.2.1 for PHP-5.3.9
http://hirata-create.cocolog-nifty.com/blog/

PHPスタンドアロン(コンパイラ・ビルダ)
HC-Standalone-B Ver.1.21 for PHP-5.3.9
http://hirata-create.cocolog-nifty.com/blog/2012/01/hc-standalone-b.html

ローカル用HTTPサーバー
HC-LocalServer Ver.1.11 for PHP-5.3.9
http://hirata-create.cocolog-nifty.com/blog/2012/01/hc-localserver.html

JRA-VAN登録ソフト
オッズコアスコープ+ワイド Ver.1.2 for PHP
http://hirata-create.cocolog-nifty.com/blog/2011/12/ver12-for-php-9.html
http://jra-van.jp/dlb/sft/lib/oddscorescopewide.html
14デフォルトの名無しさん:2012/01/13(金) 17:31:27.81
実のところ最強のLLはScheme何ですけどね
15デフォルトの名無しさん:2012/01/13(金) 17:41:50.87
schemeとかもう歴史的価値しかないでしょ
16デフォルトの名無しさん:2012/01/14(土) 01:05:43.56
野田改造内閣に早速疑惑浮上

@aritayoshifu 有田芳生
捜査当局が内偵を続けている農水疑惑。詳細な怪文書まで出回っている。3億円の
行方はどこに?

@minorucchu ジャーナリスト 田中稔
野田改造内閣を揺るがす、農水省3億円スキャンダルの怪文書。二人の議員名が浮上。
34分前 webから
https://twitter.com/#!/minorucchu/status/157687110562881537

鹿野と筒井らしい
自公は問責も視野に調査開始だって
17デフォルトの名無しさん:2012/01/14(土) 08:50:06.46
>>16 そろそろコピペ荒らしとして規制入るだろうなw
18デフォルトの名無しさん:2012/01/14(土) 09:14:23.02
bashもここで良いですか?w
19デフォルトの名無しさん:2012/01/14(土) 19:45:23.68
LLとのバトルならここが良いかもね、やる価値があるのかは知らんが
他のシェルとの比較なら他で頼む
20デフォルトの名無しさん:2012/01/15(日) 11:32:23.11
bashはbash言語ですよ
21デフォルトの名無しさん:2012/01/17(火) 01:13:59.50
そういえば JVM を利用する言語で、
多重継承とか mixin とか interface にメソッドの中身を記述みたいなことが出来る言語ってある?
JRuby と Jython 以外で。
22デフォルトの名無しさん:2012/01/17(火) 01:28:24.85
PHPはWebの中でLLにおいては断トツTOPのシェアなのにム版では空気だな
23デフォルトの名無しさん:2012/01/17(火) 01:48:28.09
PHPはWebProg板でやることになってるからだよ
24デフォルトの名無しさん:2012/01/17(火) 08:33:19.06
Web特化言語だからなあ
25デフォルトの名無しさん:2012/01/17(火) 10:24:52.52
2012年1月は、C#がC++を抜いて3位につけたことが特に注目される。C++は長期に渡って
緩やかな下落傾向にある一方で、C#は上昇傾向が続いており、特にここ数年は上昇傾
向が強くなっている。

今後しばらくは、C#とC++で順位の入れ替えを繰り返すものと見られるが、最終的には
C#が3位、C++が4位に落ち着く可能性が高い。また、Objective-Cも急成長を続けており、
この傾向が続いた場合には、C#、Objective-C、C++という順位に変わっていく可能性もある。

上記のほか20位以内に入ったプログラミング言語としては、Rが19位に、Luaが20位に
入った点が注目される。

特に、統計処理や統計データのグラフィック化などに利用されるRプログラミング言語は、
ここのところ注目が高まっている。Rの機能拡張が、Googleの支援によって実現したこと
などもその一因となっているものとみられる。

 1 Java       17.479 (-0.082) 18ヵ月連続1位
 2 C         16.976 (-0.081)
 3 C#         8.781 (+0.576) 3位へ浮上。上昇傾向
 4 C++.        8.063 (-0.189) 4位へ下落
 5 Objective-C   6.919 (+0.114) 上昇傾向
 6 PHP        5.710 (-0.291) 下落傾向
 7 (Visual)Basic  4.531 (-0.226)
 8 Python.      3.218 (-0.274)
 9 Perl.        2.773 (+0.301)
10 JavaScript    2.322 (+0.123)
11 Delphi       1.576 (+0.331)
12 Ruby.        1.441 (-0.053)

http://news.mynavi.jp/news/2012/01/12/058/
26デフォルトの名無しさん:2012/01/17(火) 10:27:59.67
c, p, i, j, n, F = 40, k, m; float a, x, y, S = 0, V = 0; int main(void){ for(;
F--; usleep(50000), F ? puts("\x1b[25A") : 0){ for(S += V += (1 - S) / 10 - V /
4, j = 0; j < 72; j += 3, putchar(10)){ for(i = 0; x = S * (i - 27), i++ < 73;
putchar(c[" ''\".$u$"])){ for(c = 0, n = 3; n--;){ for(y = S * (j + n - 36), k
= 0, c ^= (136 * x * x + 84 * y * y < 92033) << n, p = 6, m = 0; m < 8; k++[
"<[\\]O=IKNAL;KNRbF8EbGEROQ@BSX""XtG!#t3!^"] / 1.16 - 68 > x * cos(a) + y * sin
(a) ? k = p, p = "<AFJPTX"[m++] - 50 : k == p ? c ^= 1 << n, m = 8 : 0){ a = (k
["O:85!fI,wfO8!yZfO8!f*hXK3&fO;:O;#hP;\"i[by asloane"] - 79) / 14.64; }}}}}return 0;}
27デフォルトの名無しさん:2012/01/18(水) 10:40:27.79
>>25
Pythonの低落が止まらない点に注目するべきだろう。
28デフォルトの名無しさん:2012/01/18(水) 14:04:44.49
Delphiが盛り返してるのが不思議
29デフォルトの名無しさん:2012/01/18(水) 14:10:57.10
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
グラフで見ると、↓の受賞の理由になった2010下期〜2011頭のPythonの山が
一過性のバブル(というか多分ただの偶然)でしかなかったのが分かる
http://www.infoq.com/jp/news/2011/01/python-tiobe-award
バブル後はずっと減少してとっくに元サヤ以下

俺が面白いと思うのがJavaScript。少なくともnode.jsはTiobeには
微塵も影響を与えていないようだ
30デフォルトの名無しさん:2012/01/18(水) 14:17:29.69
PHPの荒廃っぷりがすごいな
31デフォルトの名無しさん:2012/01/18(水) 20:08:47.15
1ランク下がったもの・・・C++
2ランク下がったもの・・・PHP、Ruby
3ランク下がったもの・・・Python
32デフォルトの名無しさん:2012/01/19(木) 06:23:29.89
下がった言語は、良い意味で話題性が無くなったとも解釈できるんじゃないの
空気のように、あって使うのが当たり前になってきたのかもしれない
そういう意味で心配なのはC++で、新規格制定で話題性があるはずなのに
むしろ下がっている
33デフォルトの名無しさん:2012/01/19(木) 09:16:26.97
>>32
TIOBE INDEX の読み方はそんなところでしょうね。
使われているかどうかは求人数でほとんど全てです。
34uy:2012/01/19(木) 16:43:59.26
http://www.seprogrammerjobs.com/job_keyword.php
Windows (80) Mac (11) Linux (182) FreeBSD (9) UNIX (51)
AIX (17) Solaris (13) iOS (17) Android (36) C (268)
C++ (260) C# (210) Objective-C (40) Java (629) PHP (420)
ASP (132) Perl (196) Ruby (119) Python (15) Pascal (30)
Cobol (155) SQL (228) Visual Basic (160) VBA (112) .Net (51)
PL/I (57) PL/SQL (166) Tcl/Tk (22) XML (91) XHTML (77)
HTML (209) HTML5 (11) HDML (25) CHTML (26) css (24)
JAVAScript (236) AJAX (13) Oracle (307) SQLServer (201) Access (90)
DB2 (103) PostgreSQL (146) MySQL (346) mSQL (39) Apache (21)
Tomcat (15) WORD (19) EXCEL (27) PowerPoint (13) Illustrator (14)
Photoshop (16) Flash (27) ActionScript (31) SilverLight (7) CAD (5)
SAP (23) 英語 (13) 中国語 (5) 韓国語 (4)



こうやってみて
JavaやPHPが仕事多い現状を見ると日本のIT終了に見える
何であんなに頭の悪そうな言語ばかりを成長させようとするわけ?
誰かがITの発展を妨げようとしてるようにしか見えない
けど数年前よりはRubyの仕事増えたのか
Pythonは相変わらず
35デフォルトの名無しさん:2012/01/19(木) 21:32:49.30
全角野郎に頭悪いとか言われたくねえだろw
36デフォルトの名無しさん:2012/01/19(木) 21:36:21.43
PHPもRubyも大差ないわ
37デフォルトの名無しさん:2012/01/19(木) 21:59:01.66
仕事はつくるもんだから
JavaやPHPのやつらは仕事をつくるのがうまくて、Rubyやpythonやってるやつは売り物を作れないんだろ
38デフォルトの名無しさん:2012/01/19(木) 22:03:32.30
結局、Ruby大勝利ってことでFA??
39デフォルトの名無しさん:2012/01/19(木) 22:05:01.29
>>36
それは流石に勉強不足

>>37
今仕事が多いかどうかは、早く広まったかどうかってだけで
つくるのがうまいとか関係ないんじゃないか?
40デフォルトの名無しさん:2012/01/19(木) 22:45:23.13
並び替え。TIOBEと大差はないね。

Java (629)   PHP (420)   C (268)   C++ (260)   JAVAScript (236)
SQL (228)   C# (210)   HTML (209)   Perl (196)   PL/SQL (166)
Visual Basic (160)   Cobol (155)   ASP (132)   Ruby (119)   VBA (112)
XML (91)   XHTML (77)   PL/I (57)   .Net (51)   Objective-C (40)
ActionScript (31)  Pascal (30)   CHTML (26)   HDML (25)   css (24)
Tcl/Tk (22)  Python (15)   AJAX (13)   HTML5 (11)   SilverLight (7)

Linux (182)  Windows (80)  UNIX (51)   Android (36)   Flash (27)
iOS (17)   AIX (17)   Solaris (13)   Mac (11)  FreeBSD (9)

MySQL (346)   Oracle (307)  SQLServer (201)  PostgreSQL (146)   DB2 (103)
Access (90)   mSQL (39)

Apache (21)  Tomcat (15)

EXCEL (27)   WORD (19)  Photoshop (16)  Illustrator (14)   PowerPoint (13)
CAD (5)
  
SAP (23)

英語 (13)  中国語 (5)  韓国語 (4)
41デフォルトの名無しさん:2012/01/19(木) 23:09:00.25
プログラム言語限定で、上位陣はおよそ想定した通りだったけど、
いくつか意外な点もある

・Pythonの順位について、このスレで騒がれているほど(国内で)Pythonは
 ビジネス分野に普及していない
・Rubyが健闘しているのは、まず間違いなくRails求人の影響だろう
・Perlが上位に食い込んでいるのは、おそらくプログラマ求人と言うよりも
 UNIXシステム運用管理業務での保守を期待しているのだと思う(?)
・(COBOLは別格として)PL/IとPascalは既に死に絶えていたと思っていたけど、
 以外と求人あるのな
42デフォルトの名無しさん:2012/01/20(金) 00:01:12.96
なんだか2011年の年末からこの2012年の年始にかけて、
Pythonはボロボロで一方的にメッタ打ちされている状態が続いているんだよな

何かPythonに良い話題はないの?ここのところスレに張り合いが無い....

このままだと、「2012年はPython滅亡の始まりの年であった」と
後世の人々から言われるようになる悪寒www
43デフォルトの名無しさん:2012/01/20(金) 00:26:32.86
http://cruel.org/freeware/hacker.html

↑ではPythonはイチオシなのにね。
44uy:2012/01/20(金) 00:59:13.07
だって普通に、いやごく普通の一般的な思考能力レベルの持ち主レベルで考えたら

PHP
<?php
echo"Hello world";
?>

PErl
print("てs");

PyTHOn
print "Hello World!"

Ruby
print "てs"



どうみたってこの時点でRubyかPythonを選ぶし
情報を追っていれば速度の問題もRuby1.9になった時点で解消されたの知ってるはずだし
なんなの?
PErlとかいつまでも保守していないでさっさとRubyで全部書き換えたら???
ブロック構文がいいやつ→Ruby
インデント構文がいいやつ→Pythonって
分かれて RubyとPythonの二強状態で争うならわかるよ?

なんでここでまだPErlとかPHPが上位にいるのwwwwwwwwwwwwwwバカじゃないのwwwwwwwwwもう2012年になるんだよwwwwwwww
45デフォルトの名無しさん:2012/01/20(金) 01:03:21.45
Rubyは書いているときは俺すげーみたいな感じだけど
後で読めなくて泣きを見る
46uy:2012/01/20(金) 01:20:08.56
>>45
それはお前がザコなだけ
それをいったらPerlはRubyの何倍も読めなくなるよ
つうかPHPよりも可動性は上


なんで落ち着いて効率のいいものを見極められないのだろう?

47uy:2012/01/20(金) 01:26:19.81
PHP
<?php
class A  {
    function foo() {
        echo 'tessss';
    }
}
$a = new A();
$a->foo();
?>

どうみてもゴミッカス
なんで変数に$ついてんの? -> って何? 末尾の;ってとれないの?
echoとかセンスない

PERl
class Sanae {
  has $.colour is rw;
  method area {
    $.colour
  }
}
my $x = Sanae.new( colour  => "tess", );
say $x.area;

ありえない。変数に$がつくだけならまだしも $ .  がついたよ
ふざけてんの?

48uy:2012/01/20(金) 01:27:15.69

Python
class MyClass:
    def f(self):
        return 'hello world'
x = MyClass()
print x.f()

それなりにちゃんと作られている言語
PythonはRubyよりも簡潔に書ける
インデントになれることが出来るかどうかの問題


RUBY
class R
  attr :x
  def initialize x
    @x = x
  end
  def draw
    print @x
  end
end
r = R.new 5
r.draw

作りこまれた言語
49デフォルトの名無しさん:2012/01/20(金) 01:31:33.52
頭に@とかダサイわ、ボケ
50uy:2012/01/20(金) 01:32:31.35
ああ
並べてみてわかった
エディタの中で見るRubyとネット上に上がってる場所で見るrubyコードは別物かもしれない

endがオモチャに見えますね
51uy:2012/01/20(金) 01:40:04.65
>>49
SHIFT+4おさなきゃだせない$よりは
1Keyで@はでてくるからよっぽどマシだよ
しかもそれメンバ変数だし

そもそも動的言語でクラスをフルに使いまくったソースコードなんて頻繁に書くわけ?

Ruby以外の言語なんてクラスの機能がほとんど合って無いようなものじゃん
クラスの機能についてJaVAとrUby比べるならわかるけど
52uy:2012/01/20(金) 01:44:33.86
rubyはendがダメか・・・冷静に見るとどの言語よりも見た目最悪だな

そうなんdけど
でも実際コーディングするときは
SHIFT+「   をおして { この記号を出すわけだから
{ よりは endのほうが タイプ楽なんだよ

あああああああもう記号化記号化
エディタの効率がわるいいいいいいいいいいいいいいいいいいいいいいいいいいいいいい
53デフォルトの名無しさん:2012/01/20(金) 01:51:51.09
俺頭悪いからdoとかbeginとかendとか覚えられん
{}で統一してくれ
54デフォルトの名無しさん:2012/01/20(金) 01:59:53.57
>>45
そういうのは、
とりあえず、すべてのメソッドにコメントを記述。
コメント内に引数、戻り値、投げる可能性のある例外の説明を記述。
変数定義時にコメント記述。
最低限これくらいはしてから書けよ。
55デフォルトの名無しさん:2012/01/20(金) 02:01:23.17
どんな感じか具体例を
56デフォルトの名無しさん:2012/01/20(金) 02:01:42.84
そこまでするならJavaでいいや
57デフォルトの名無しさん:2012/01/20(金) 02:02:10.75
日本人は英語苦手だから仕事で嫌々PerlやPHPやC系覚えたら
それらを使い続けたい。
さらに年功序列だから古い言語を強要される。

Pythonは日本人からみたら名前が悪いから流行らない。
読みづらいしパイパイとか言いたくない。

Rubyは日本発だから検討してるけどパクリ嫌いで宗教嫌いで
ブランド好きな日本人はこの言語を心底好きになることはないであろう
58デフォルトの名無しさん:2012/01/20(金) 02:10:22.48
59uy:2012/01/20(金) 03:04:43.75
>>58
>結論
>WindowsにおけるPythonの実績を積み立てていくしかありませんかね〜。

え?ちがうよ
結論は
Pythonっていう言語名を日本人にとって読みやすく親しみやすい名前に変えることだよ
あとPythonのサイトってそうやってやたら文字に影装飾するページみる気がするけど全部同じ奴なのか?
キチガイしね


>>57
だいたい同意だけど
Rubyが流行らないのは、日本人の技術者が既に日本より国外のほうがレベル高いことを認めちゃってて
日本発だからこそ信頼できなくて使いたくないんじゃないの?
それに少なくともruby1.8まではオモチャだったし
1.9系になってUTF-8強要されて混乱して
1.9.3になってようやくwindowsのコンソールに文字化けせずにデフォルトで文字表示できるようになったようなレベル
言語のシンタックスは最高なんだけど
内部処理がまだ全然ダメなんだと思う
速度の問題も解決したとはいえ、まだPerl,PHP,よりは遅いだろ
rubyは外側しか完成していない
けどちょっとしたツール作る程度ならこれ以上優秀な言語はない
本家rubyで商品に出来るレベルのものをrubyで作れるかどうかがまだあやしいと思ってる
rubyのバグをいくつかみてきた俺からすると本家以外のruby実装のほうが安定バージョンになってる気さえする

日本人の書いたソースコードは日本人に信頼されていない   ← 2012年。歴史に残る名言
60デフォルトの名無しさん:2012/01/20(金) 03:41:14.94
>>51
俺のキーボードは、@はSHIFT+2だよ。そして世界的にはそれが主流。
Rubyのendは醜悪さ、視認性の悪さに比べれば、行末の;くらいどうってことない。
というより、折り返しの為にバックスラッシュ要求するとかしないとか、よく分からない勝手ルールを迫られるRubyの方がよっぽど酷い。
61デフォルトの名無しさん:2012/01/20(金) 07:39:43.02
>>40
まるっきり違うではないかw
62デフォルトの名無しさん:2012/01/20(金) 09:21:44.11
失礼します

◆第3期花王デモ
開催日時:2012年1月20日(金)
集合場所:新宿 柏木公園(西新宿7−14)
集合時刻:ボランティア参加者 11時00分 一般参加者 11時30分  
出発時刻:12時00分 ルート:柏木公園→新宿駅周辺→柏木公園(左回り 2.5km前後)

フジテレビ、スポンサーの花王、花王デモはフジテレビデモの一環です。

詳しくは大規模OFF板↓
【2012/1/20】花王デモ Part 49【新宿・柏木公園】
http://kohada.2ch.net/test/read.cgi/offmatrix/1326768927/


◆第2回電通抗議デモ 主催 第2回電通デモ 実行委員会
日時 1月21日(土) 集合場所  水谷橋公園(東京)
最寄り駅  JR東京駅八重洲南口から徒歩約8分
      地下鉄有楽町線銀座一丁目駅7番出口から徒歩約1分
集合時間  11時00分 出発時間  11時30分 雨天決行

【1月21日】 第2回 電通抗議デモ 8【敵の本丸】
http://kohada.2ch.net/test/read.cgi/offmatrix/1326289659/


(デモを妨害、阻止する目的で工作員が多数の悪質な書き込みをしていますのでお気をつけ願います)
ニコニコ生放送でも中継ありますので要チェック
63デフォルトの名無しさん:2012/01/20(金) 11:34:02.21
>>62 ここが隔離スレだとよくわかったな。迷惑かけないようにここで存分にやれw
64デフォルトの名無しさん:2012/01/20(金) 13:30:46.32
65uy:2012/01/20(金) 15:51:29.32
>>60
>俺のキーボードは、@はSHIFT+2だよ。そして世界的にはそれが主流。
え?wwwwwwちょっと周りの人間に聞いてみれば?wwwwww
pcショップいってキーボードみてくればwwwwwwwwwww


Rubyのルールが受け付けられない奴がいるのは知ってるよ
そのレベルで止まってる奴には何を言っても無駄だということも
なんか他の言語で変な癖つけたから考えが固まっちゃってるんだろうね
一番最初に触った言語がrubyだったらもう少しマシな人生送れただろうに
;が気にならないってことはPerlの人か?wwwwwwwww
ご苦労様ですよおおおwwwwwwwwwwwww


それと
endが;より醜悪っていうのはマジでrubyを理解していないと思う
このendは ブロックで区切る為にあるものであって
do
 puts :test1
 puts :test2
 puts :test3
end

というようにも書く事で可読性を上げる為のもの

実際 { } でかける箇所だって多い(けど、ruby使ってれば{}よりdo〜endで書いたほうがいい事はすぐにわかる)
そもそもオブジェクト.オブジェクト.オブジェクトって感じに数珠繋ぎにしてコーディングするのがrubyなんで
慣れてくればdo〜endとかそう頻繁にはかかねーよ
書くとしたら1ロジックに1回が基本とみて良い。後置きIFだってあるし
66uy:2012/01/20(金) 16:00:44.11
([ "A".."Z" , "A".."Z" , "0".."9" , "0".."9" ]*5).map(&:to_a).flatten.shuffle.each_with_index do | n , i |
  print n
  puts if (i%40).zero? unless i.zero?
end

たとえばこういうソースコードをみても end  が醜悪だというのか?


下のようにもかけるけど、どうみてもendのほうがマシだと思う
([ "A".."Z" , "A".."Z" , "0".."9" , "0".."9" ]*5).map(&:to_a).flatten.shuffle.each_with_index { | n , i |
  print n
  puts if (i%40).zero? unless i.zero?
}

rubyを知らない奴は
([ "A".."Z" , "A".."Z" , "0".."9" , "0".."9" ]*5).map(&:to_a).flatten.shuffle.each_with_index do | n , i |
この一行に何が詰まっているのかを理解出来ない
他の言語でさらに書けば長くなることを知らない
67デフォルトの名無しさん:2012/01/20(金) 16:35:50.83
日本のキーボードは独自のJIS配列で、世界から見ると特殊な存在。
68デフォルトの名無しさん:2012/01/20(金) 16:37:57.79
>>67
俺もちらっとそう思ったが
ユーロ圏もそれぞれ独自だわ考えてみたら
69デフォルトの名無しさん:2012/01/20(金) 17:08:04.24
>>66
詰めるのは良いがやっぱり醜悪だなぁ。
70uy:2012/01/20(金) 19:19:43.32
「バカは効率を理解しない」のはしってるから
71uy:2012/01/20(金) 19:29:51.14
ちなみにクラスも
class A
  def func
  end
end
こんな風に書かずとも、endが嫌いなら

A=Class.new {
  def func
  end
}

こうすればいいだけだし


endの別記法が用意されていること す ら 調べられない情報弱者が騒いでいるだけ
効率を理解できないから騒いでいるだけ
72uy:2012/01/20(金) 19:31:51.39
ああ、def〜endもなくしたいって?
それならこうしろ

A=Class.new {
 define_method (:f) {
   p self
 }
}
 
A.new.f


はいはいendなくてもかけますねー^^;;;;;;;;;
Rubyを理解できない言い訳にendが嫌いだって言い訳できなくなったwwwwww
73デフォルトの名無しさん:2012/01/20(金) 19:56:02.90
うわぁ
74デフォルトの名無しさん:2012/01/20(金) 20:02:27.61
>>69
インデントベースな言語の構文は、endが無いから美しい
ただし、Pythonの構文だけは醜悪だ

具体的には、if文やfor文の行末に付着する : (セミコロン)が醜悪
インデントベースであれば、行末に : なんて必要無いはず

これは、**** Python の構文設計上のミス **** だと思われる

たとえば関数型言語の Haskell は、行末に汚い記号は不要
Python と同族の手続き型言語である Occam もインデントベースの
構文だけれど、行末に汚い記号は必要無い
75デフォルトの名無しさん:2012/01/20(金) 20:51:40.85
なぜPythonはセミコロンを必要とするのか。
http://docs.python.org/faq/design.html#why-are-colons-required-for-the-if-while-def-class-statements

読みやすいから。
76デフォルトの名無しさん:2012/01/20(金) 20:52:46.58
いけね。セミコロンじゃないや。コロン。
77デフォルトの名無しさん:2012/01/20(金) 20:53:21.43
何周目だよ・・・
78デフォルトの名無しさん:2012/01/20(金) 21:09:28.20
必要かどうかを考えてるうちはまだまだだわw

プログラム言語は数式と共に文章でもある。
読みやすいかどうかが重要。

読みやすい ≠ 文字数が少ない

どうせタイピング時間なんて写経してるわけじゃあるまいし、
思考時間に比べれば短いものなんだから
数文字程度短くかけたって、仕事が早く終わるわけがない。

短いサンプルが、短くかけた!って喜んでる奴。あれは間抜け。
読みにくくなるのに、無くても良いから無くそう。これも馬鹿


それと空白は文章に必要なもの。
小説では読みやすい文章にするために、意図して空白を入れることがある。

読みやすい ≠ インデント強制

インデント(空白)は強制されるもんじゃない。自分で好きに入れるもんだ。
79デフォルトの名無しさん:2012/01/20(金) 21:20:07.39
黒魔術からのドヤ顔。
勘弁してくれ。
80デフォルトの名無しさん:2012/01/20(金) 21:27:09.61
>>74
こんなでこぼこのインデントでもOKなHaskellは
インデントベース構文としては出来損ないだけどな

foo x y =
        if x < x
  then x
    else y
81デフォルトの名無しさん:2012/01/20(金) 21:49:31.81
しばらくPythonを触ってなくて、久々にコードを書くと

map(lambda x,y: x + y, [(1,2),(3,4),(5,6)])

みたいなコードで

TypeError: <lambda>() takes exactly 2 arguments (1 given) 

ってエラーが出てあれ?ってなる
x, y = 1, 2 は出来るから特に
82デフォルトの名無しさん:2012/01/20(金) 22:23:04.02
>>75
>読みやすいから。

読みやすさを重視し、なおかつインデントを強制する言語なら、
なおさらコロンは不要だろ
タイプミスも減るし

コロンは単なるゴミでしかない

>>80
Haskell のif構文は、(Pythonと違って)インデントを強制しないからな
then という予約語があるからインデントは必須じゃない
83デフォルトの名無しさん:2012/01/20(金) 23:10:03.54
Haskellがif構文でブロックの終端(endや } 等)を明示しなくて良いのは、
単純に then節や else節には式一つしか書けないからであって
インデント構文は全然関係ない(式一つだから終端は自明ってわけ)
84デフォルトの名無しさん:2012/01/20(金) 23:44:12.34
>>82
読みやすいけどなぁ。
行末の開き括弧やコロンは、それ以下に内容が続くことを期待させる。
何もしない'pass'なんかも思想的には同じ感じかな。

意識して書かない限り読み手に伝わらない。
タイプミスするのは書き手が何書くかすら理解してない証拠じゃないの?

そもそも>>82だって読みやすいように律儀に行間開けてくれてるわけで。
85uy:2012/01/20(金) 23:57:42.41
コロンは邪魔
コロンさえなかったら俺はRubyじゃなくてPython使ってる
はずせるなら外せるようにするべきだけど
実際、外せないんだろ
ちょっと簡単にはパーサ書ける気がしない


外せないゴミのことを「可読性が上がる」なんていう方向に吹っ切れちゃうのはマジでやめたほうがいいよ
末尾のセミコロンを「可読性が上がる」って言ってる超絶バカもいるにはいるけど・・・

本当にその手のおばかは頭痛の種だわ
その手のおばかにどうやって説明したら理解させられるんだか
86デフォルトの名無しさん:2012/01/21(土) 00:07:01.77
Cでも(したがってC系の言語では)ifの{}は別に必須じゃないよな
構文は
if (式) 文 [ else 文 ]
なので文は一個と決まっている

PerlはC系だけどdangling else避けたいからか
if (式) ブロック [ else ブロック ]
にしたんだよな
87uy:2012/01/21(土) 00:08:33.21
ifとかを一行で書くならコロンいらなくてもパーサ大丈夫だけど
二行にわたって書く時は

if a == b
 || c == d :

こうするか

if a == b \
 || c == d

こうじゃないとパーサが字句を読み解けないと思う
88デフォルトの名無しさん:2012/01/21(土) 00:09:14.45
elifとかelsifって
なんかダサすぎるよな
89デフォルトの名無しさん:2012/01/21(土) 00:09:46.95
>>85
いいから句点書けって。
90uy:2012/01/21(土) 00:15:44.77
91uy:2012/01/21(土) 00:28:18.95
つまり

if a == b
 print 1
  for i in 0..5
   print i
print :test

こんな言語があればいいなって話だろ
92デフォルトの名無しさん:2012/01/21(土) 00:51:20.58
>>84
>タイプミスするのは書き手が何書くかすら理解してない証拠じゃないの?

だってさぁ、世界にあまたあるプログラミング言語の中で、
if文やfor文の行末にコロンが必要なんていう醜悪な構文を採用しているのは、
Pythonだけなんだよ
それでも行末のコロンは読みやすいなんて言えるの?

もしも Python でしかプログラミングしない人なら慣れるだろうけど、
他のプログラミング言語ユーザからすればウザイ、ゴミとしか思えないよ
93デフォルトの名無しさん:2012/01/21(土) 00:55:18.00
>>91
まさしく Occam がそれ
Occamは、インデントベース(インデント強制)な手続き型言語
Pythonのような醜いコロンは不要

Occamという名前は、もちろん「オッカムの剃刀」で有名な数学者に由来する
まあ、Pythonとは縁遠い設計思想だね
94uy:2012/01/21(土) 01:32:58.32
インデントベースな言語はそりゃあるだろうけど、
ようはPytohnやRuby並の機能を持ったまま
>>91これのパーサかくのが死ぬほど厄介なんだろ

「プログラム言語作ってみた」程度の言語はもういい
ニコ動でやれ。と思う
95デフォルトの名無しさん:2012/01/21(土) 01:40:02.59
字句解析フェーズでインデントの前後に
ブロックを表すトークンを入れて終わり
だいたいRubyこそ、書きやすさと可読性を最優先するために
パーサが大変なことになっている言語の筆頭だと思うが
96デフォルトの名無しさん:2012/01/21(土) 01:45:30.99
>字句解析フェーズでインデントの前後に
>ブロックを表すトークンを入れて終わり

FizzBuzzレベルの話だな
uyさんには死ぬほど厄介みたいだが
97uy:2012/01/21(土) 01:46:37.76
>>95
それで終わらないから書いてみろって(書けるなら)
98uy:2012/01/21(土) 01:47:33.41
無知すぎてPythonからコロンを無くすパーサの難易度もわからないか
99uy:2012/01/21(土) 01:59:55.52
あ、ごめん
Pythonをしらなすぎた

Pythonって複数行にまたがるIF使うときって既に \ 使うように実装されてんだね
ここまで作られてるなら:消すの簡単だわ
100デフォルトの名無しさん:2012/01/21(土) 02:28:04.33
>>95
>だいたいRubyこそ、書きやすさと可読性を最優先するために
>パーサが大変なことになっている言語の筆頭だと思うが

まさしくその通りであり、それがRubyだ
Rubyは(インデントベースではないから)if式の直後にthenという終端子が必要
それを「ユーザへの優しさ」を優先し、パーザが複雑になるのを承知で
thenを改行で省略できる構文が採用されている

if式だけではない
あらゆる視点で「ユーザへの優しさ」「直感的なプログラミング」が考慮された
巧妙な構文になっている
苦労するのは中の人だけでいいという思想
だからRubyプログラミングには「自由」があり、プログラミングの楽しさを味わえる
言語であると評価されている

Pythonはその逆だ
インデントベースなのだから(HaskellやOccamのように)行末の醜悪なコロンは不要なハズなのに、
言語設計ミスによりコロンの省略が不可能になった
しかも、それを公式文書では「読みやすさ」などと欺瞞を語る(>>75)
言語設計上のバグの尻拭いをプログラマに押し付けている

行末のコロンだけではない(....以下省略)
101デフォルトの名無しさん:2012/01/21(土) 02:44:09.86
>>81
map(lambda (x,y): x + y, [(1,2),(3,4),(5,6)])
102デフォルトの名無しさん:2012/01/21(土) 02:45:12.97
while ((y = f(x1,x2,..)) != z)
の代用が
while True:
 y = f(x1, x2, ...)
 if y == z:
  break

for y in iter(lambda: f(x1,x2...), z):
だってのが嫌だな

ifやwhileの条件式をブール値式に限定するだけで
Cでありがちな比較のつもりで代入を使用する罠は避けられるのに……

なんかいろんなところで微妙に不便だったりすることが多いよな
103uy:2012/01/21(土) 03:14:53.35
>>100
本当にユーザーに優しくするんなら
endも取り外し可能にするべきだろ

あと文章気持ち悪いよお前
104uy:2012/01/21(土) 03:19:37.50
なんでこういう気持ち悪い文章書くんだろう
死ねばいいのに
105デフォルトの名無しさん:2012/01/21(土) 03:23:43.60
代入式の左辺値をそのまま評価したらどんな不都合があるんだろうな。俺は別に構わんけど
schemeのブロックのコメントアウトみたいなのが欲しい。出来ると思うけどな、次にその深さに戻ってくるまでがブロックなんだから
106uy:2012/01/21(土) 04:00:38.69
お前たちゴミッカスのためにendのいらないRubyお試し版をかいてやったよ?
お前たちゴミカスもソースコードで語ってほしいものだよね

http://codepad.org/BwqV0jlM

__END__ 以下にソース書けばある程度は動く

とりあえずハリボテなんで if for each class def だけ対応
そんでendはつけてもつけなくても良いようにはした
俺個人としてはRubyがいつかこうなってほしい

class A
  def func
    for i in 1..9
      for n in 1..9
        printf "%02d " % ( i * n )
      puts


end

A.new.func
107デフォルトの名無しさん:2012/01/21(土) 04:04:55.03
ruby房は狂っとる
108uy:2012/01/21(土) 06:11:10.99
http://codepad.org/2sth8vhu

とりあえずendなしrubyをここまでは作った

簡単とか言ってる奴は続きを作れカス

寝る
109デフォルトの名無しさん:2012/01/21(土) 11:04:32.90
XMLリテラルが言語ってどんなのがある?
110デフォルトの名無しさん:2012/01/21(土) 11:09:22.37
最強言語Scala
111uy:2012/01/21(土) 13:02:47.28
で、結局だれもソースかかないのか
いつもこうやって俺だけがソースをアップし後続が続かない
「「「「「「「議論のためにソースを提示」」」」」」」
程、有効な手段は無いのにバカじゃないの
かかないんじゃなく「かけない」んだろうけどな


一生そうやって口で大口叩くだけの存在で生きてろよカス共
112デフォルトの名無しさん:2012/01/21(土) 13:23:48.76
【プログラミング部】 PHPが100倍速で動くようになったぞー
http://awabi.2ch.net/test/read.cgi/poverty/1327050821/
113デフォルトの名無しさん:2012/01/21(土) 15:18:19.20
Pythonで行末コロンをオプションにしてみた
もちろんやっつけ

http://ideone.com/r6xsP
114デフォルトの名無しさん:2012/01/21(土) 15:34:43.45
キーワード足したり、ちょっと修正
http://ideone.com/1uS6U
115デフォルトの名無しさん:2012/01/21(土) 15:39:00.26
          _____
  .ni 7    /        \  ご冥福をお祈りします
l^l | | l ,/) / /・\  /・\ \    .n
', U ! レ' / |    ̄ ̄    ̄ ̄  |  l^l.| | /)
/    〈  |    (_人_)    |  | U レ'//)
     ヽっ     \   |    /   ノ    /
 /´ ̄ ̄ ノ     \_|    \rニ    |
                      `ヽ   l
116デフォルトの名無しさん:2012/01/21(土) 16:06:07.49
経緯はよく知らないが
Rubyは実験的に、thenの代わりにコロンが使えるようになってたことがある
他にもfor while untilのdoの代わりにもコロンが使えた
制御構文の条件部の終わりにコロンが使えたのだろう
が、1.9で廃止された
たぶん今の1.8.7ならまだ使えると思う
ruby 1.8.7 (2011-06-30 patchlevel 352) [i386-mingw32]では使えた

いつもthenやdoは省略してしまうので書かないし
短く一行で書くにしてもセミコロンでいいし
いったいなんだったんだろう

ドキュメントにもかかれてないので、あまり知られてないだろうけど
117uy:2012/01/21(土) 16:19:30.00
>>114


>>116
case 2
 when 2:
  p 9
end
switch文からきてんじゃねーの

気まぐれだろ thenよりマシだと思うから復活してほしいんだけど
118デフォルトの名無しさん:2012/01/21(土) 17:41:52.79
>>117
>「「「「「「「議論のためにソースを提示」」」」」」」
>程、有効な手段は無いのにバカじゃないの
>かかないんじゃなく「かけない」んだろうけどな

と書き込んだ本人が、他人のソースに「乙」の一言じゃ
ソースをアップする方も報われねーな
119uy:2012/01/21(土) 18:14:41.97
>>118
ソースをアップするほうって。むくわれねーって。
この程度の「一瞬で作れるレベル」のソースに感想とか。

>>96いわくFizzBuzzと同程度らしいじゃん
一々fizzbuzzに感想なんていらないだろ
この程度のソース作成に手間取るような奴は会話に参加しなくていいと思うよ
120デフォルトの名無しさん:2012/01/21(土) 18:30:42.16
やっぱendは見苦しいというかダサイな。
121デフォルトの名無しさん:2012/01/21(土) 21:11:41.39
だよな、行末のコロンもダサイしな。
122uy:2012/01/21(土) 22:45:35.03
一生変数に$のついた言語と末尾に;のつく言語でプログラミングしいていてくださいね
123デフォルトの名無しさん:2012/01/21(土) 22:46:51.90
プログラミングしいていていくよ
124デフォルトの名無しさん:2012/01/22(日) 01:34:46.37
>>119
二つの問題を混同してるでしょ
インデントをブロックを表すトークンに変換して
トークン列に挿入したとしても、パーサの複雑さはまったく変化していない
インデントベースだからといって困難が極端に増すわけではないというだけ

もっとも、Rubyみたいにやたら複雑なスキャナを構築していると
スキャナ自体をいじるのもそう簡単ではないだろうけど
125デフォルトの名無しさん:2012/01/22(日) 01:40:40.91
所で、インデントの効果はありましたか?
126デフォルトの名無しさん:2012/01/22(日) 02:05:09.67
インデントの効果? あるわけないだろ。
あれはインデントすらできてない奴らを矯正するためのもので、
普通にインデントがちゃんとできてるなら、
それと全く変わらない。
127デフォルトの名無しさん:2012/01/22(日) 05:13:18.50
あれ?Rubyも$とか@とか@@とか変数の前に付いてたと思うけど?
128デフォルトの名無しさん:2012/01/22(日) 05:50:52.89
ださいよね
129デフォルトの名無しさん:2012/01/22(日) 10:09:06.75
>>127
わざと。スコープが一目瞭然っていう利点はあるが、
グローバル変数を多用するとコードが汚くなるようにして
スコープをできるだけ狭めるようにプログラマを誘導してる
130デフォルトの名無しさん:2012/01/22(日) 10:49:34.81
BASIC・Perl路線の単に型を示すためのシジルなら
システムハンガリアン同様の時代遅れで死滅していい気がするんだが
Lisp路線の
*special_variable*
predicate?
destructive!
みたいなのはむしろわかりやすいと思う

131デフォルトの名無しさん:2012/01/22(日) 11:25:24.15
>129
ならグローバル変数そのものをなくせいばいいじゃん
132デフォルトの名無しさん:2012/01/22(日) 11:33:03.22
>>131
Rubyでそれやると他に色んなトコが崩れないか
133デフォルトの名無しさん:2012/01/22(日) 11:36:56.65
Rubyの本質は全部global
134デフォルトの名無しさん:2012/01/22(日) 11:48:09.35
>>131
もしかしてグローバル変数の存在意義について議論したいの?
135デフォルトの名無しさん:2012/01/22(日) 12:14:30.68
Rubyは根本的な設計がまずいって話をしたいのです。
136デフォルトの名無しさん:2012/01/22(日) 12:28:57.45
>>135
添削

誤: Rubyは根本的な設計がまずいって話をしたいのです。
正: Rubyは根本的な設計がまずくなければならないって話をしたいのです。
137デフォルトの名無しさん:2012/01/22(日) 13:06:57.89
>>129
だったら、Perlは$@%で型を明示出来て分かりやすいよね?
138デフォルトの名無しさん:2012/01/22(日) 14:09:32.28
てか LL にオブジェクト指向とかいらねーだろ
object.method(args) なシンタックスって邪魔なだけじゃね?

おまいら list.each(function) なコードが分かりやすいと本気で思ってるの?
どう考えたって each(function, list) が自然だろ

list オブジェクトに each メッセージを送るとか
list オブジェクトが each メソッドを持ってるとか
どんな解釈だよ。アホ過ぎ。
オブ指信者が発狂してるとしか思えねーよマジで。
139デフォルトの名無しさん:2012/01/22(日) 14:16:03.35
モダンな汎用高級言語では多様なオブジェクトや代数データ型みたいなものが
扱われるわけで、変数のデータ型を記号や名前規約で明示させようなんて
無駄で役立たずな試みでしかないのが馬鹿でもわかる

グローバル変数はどうせ言語の上でのコンベンションがなかったとしても
ユーザがg_とかそんな名前のものをつけるだろ
140デフォルトの名無しさん:2012/01/22(日) 14:22:06.07
>>139
perl 知ってる?
141デフォルトの名無しさん:2012/01/22(日) 14:29:27.53
もちろん知ってるよ
ハッシュと配列「だけ」区別できたらなぜ嬉しいかさっぱり分からんがな
142デフォルトの名無しさん:2012/01/22(日) 14:48:00.14
>>129
本当にそれだけの意図で記号を入れてるならMatzただの馬鹿だな
143デフォルトの名無しさん:2012/01/22(日) 14:51:15.86
>>142
RubyってPythonと同じ変数宣言なしの関数スコープな言語なんじゃなかったっけ
なら$があることでglobal文とかいうキモい代物が要らないという利得があるんじゃね
144デフォルトの名無しさん:2012/01/22(日) 14:52:00.40
インスタンス変数の @ とかクラス変数の @@ とかはどういう利得があるのか
145デフォルトの名無しさん:2012/01/22(日) 14:52:38.05
selfとかいうキモい代物が要らないという利得があるんじゃね
146デフォルトの名無しさん:2012/01/22(日) 14:53:27.74
@もキモいだろw
147デフォルトの名無しさん:2012/01/22(日) 14:56:15.25
そうだけどたぶん関数スコープで変数宣言が無い言語ではローカル変数かどうかを
区別する手段は必要なんだよ
だからPythonにはself, nonlocal, globalのようなものがある
やっぱりletとかあったほうがいいんじゃね?という話なら特に反対はしない
148デフォルトの名無しさん:2012/01/22(日) 15:00:39.77
と同様に、Perlではコンテキストを区別する手段が必要だよね。
コンテキストとか難しいから無くていいんじゃね?という話なら特に反対はしない
149デフォルトの名無しさん:2012/01/22(日) 15:06:35.20
>>143
外のスコープの変数を読むだけならglobalいらない
そもそも外の変数の束縛を書き換えようなんて邪悪なこと
滅多にしないからglobalなんて殆ど使わない

え?Rubyは参照するだけでも$がいるの?キモイね
150デフォルトの名無しさん:2012/01/22(日) 15:12:35.18
Lispのスペシャル変数も*で囲むから、グローバル変数の$は別にキモくないけどなあ
外の変数の束縛を書き換えるってのはLispの系統ならよくやるし
(レキシカルクロージャでオブジェクト風のことをやる際の常套手段)
151デフォルトの名無しさん:2012/01/22(日) 15:15:16.71
Lispは全体的にキモいから
152デフォルトの名無しさん:2012/01/22(日) 15:16:56.95
さらに邪悪でもある > Lisp
153デフォルトの名無しさん:2012/01/22(日) 15:21:23.17
間隔が麻痺してる人の意見は当てにならんな
154デフォルトの名無しさん:2012/01/22(日) 15:24:19.81
155デフォルトの名無しさん:2012/01/22(日) 15:32:30.90
最近思うのは、オプションとして行末記号が付けられないと、Twitterで不便
みんなどうしてんだろ
156デフォルトの名無しさん:2012/01/22(日) 15:45:19.20
lisp は括弧さえ気にならなくなれば後は気にすることないのに。
式と文の違いもないし。

common lisp の loop と format はさらに変態的だけど。
157デフォルトの名無しさん:2012/01/22(日) 16:49:59.65
carとかcdddrとか括弧以外もきもいって
158デフォルトの名無しさん:2012/01/22(日) 16:56:19.53
cdrない
159デフォルトの名無しさん:2012/01/22(日) 17:01:40.20
格好がなくなれば
きもくないって思っているのは
Lisperだけ
160デフォルトの名無しさん:2012/01/22(日) 17:05:50.66
>>149
参照するだけって言うが、そんなに頻繁に参照しないだろ
161uy:2012/01/22(日) 17:14:57.84
つうか
ローカル変数と
グローバル変数と
メンバ変数と
クラス変数を

区別する為に% @ @@ ってわざと記号つけているわけで
区別する手段の無い言語のほうが可読性が下がっているじゃん
んで、可読性を下げない為にメンバ変数は

m_hogehoge とか 変数名に m_ つけたりしてるんだろ?wwwww

@とどっちがいいよ


そもそもRubyで大規模なプログラムは滅多に書かない(書く奴はそれほどいない)
ので
JAVA,C#と同じようなクラス設計でプログラムかかなくたっていいんだよ
evalやyieldやlambda使わないなら、Rubyの意味が無いから、C#でもつかっててくださいって感じだけど
162uy:2012/01/22(日) 17:16:12.43
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% → $
163デフォルトの名無しさん:2012/01/22(日) 17:18:57.70
別にm_とかつけんでも文脈でわかるよ
164デフォルトの名無しさん:2012/01/22(日) 17:20:58.38
>そもそもRubyで大規模なプログラムは滅多に書かない

だからグローバル変数使いまくりでも別に構わなくて
いちいち $ なんか付けたくないなー
165デフォルトの名無しさん:2012/01/22(日) 17:23:00.11
>ローカル変数と
>グローバル変数と
>メンバ変数と
>クラス変数を

エディタのシンタックスハイライトで区別できる
166uy:2012/01/22(日) 17:23:21.62
あとRubyは>>129
こういう考えもあって
static変数すらない

この辺りを解決できないPGには大変だろうが

その代わりにカスがカスなソースコードをかかなくなるので
最低限の品質は守られる
ただstatic変数は、アルゴリズムにおいて必要な概念だと俺は思っているけどな

Pythonがインデントで束縛するのと似たような事を言語仕様でやっている言語ではある
結局、Matzがどういう考えでrubyの言語仕様を決めているかが、ある程度理解できる程度のレベルにならないと
rubyにある「なんでこうなってんの????」は理解できないと思う
167デフォルトの名無しさん:2012/01/22(日) 17:25:17.35
Rubyは楽しさがウリの言語らしいけど
Pythonの方が楽しいわ
168uy:2012/01/22(日) 17:25:27.37
>>164
Rubyでグローバル変数使いまくりなソースコードって?
そもそも、普通はオート変数しか使わないぞ

>>165
動的言語でそれは出来ない
中途半端に出来るそれを「出来る」とはいっちゃいけない
169デフォルトの名無しさん:2012/01/22(日) 17:25:37.89
> static変数

…その言葉って、言語によって随分意味が変わるんだが
どの言語のstatic変数のことだ
170uy:2012/01/22(日) 17:26:01.64
>>163
だろうけど、つける奴はつけるぞ
rubyでつけてる奴も見たことある
171uy:2012/01/22(日) 17:26:21.92
>>169
Cの考えでいい
172デフォルトの名無しさん:2012/01/22(日) 17:33:34.36
さすがにきもさでいったら、Perl、PHP、Pythonは郡を抜いてるから、
相対的にRubyはきもくないだろ。
173デフォルトの名無しさん:2012/01/22(日) 17:35:00.07
Ruby厨がPerlとは違う!とか言ってて笑える
174デフォルトの名無しさん:2012/01/22(日) 17:36:28.68
>>172
群を抜いてるのはお前の頭の悪さじゃ
175uy:2012/01/22(日) 17:37:12.91
言語仕様のカスさ → PHP
キモさ → Python
読みにくさ → Perl
神さ → Ruby

>>173
俺じつはPerl6に期待してたよ
それと同時に、もしかしたらRubyにおいついてくるんじゃないかっていう少しも不安もあった
でもperl6をみて安心した^^;;;;;
perlは終わったコンテンツです
176デフォルトの名無しさん:2012/01/22(日) 17:38:09.17
Rubyってカルトだしな
177デフォルトの名無しさん:2012/01/22(日) 17:39:01.52
神のキモさ → Ruby
178デフォルトの名無しさん:2012/01/22(日) 17:40:32.12
Perl はむしろ5系を弄り過ぎ、もう弄らないで欲しい
そろそろ枯れさせてやってくれ…
179デフォルトの名無しさん:2012/01/22(日) 17:41:44.04
Ruby ってスクリプト言語としては他に比べて何がいいの?
Rails で流行っただけで Ruby 自体の何がいいのかよくわからね
180デフォルトの名無しさん:2012/01/22(日) 17:44:45.17
Python vs Ruby は Haskell vs Smalltalk に通じるものがある
カルト同士で議論がまったく噛み合わない
181デフォルトの名無しさん:2012/01/22(日) 17:46:46.77
プログラミング言語人気TOP10の簡易解説
http://www.mwsoft.jp/column/program_top10.html
182uy:2012/01/22(日) 17:57:04.80
>>179
perl PHP と比べるならオート変数に$がつかないこと
文の末尾に;が無いこと
イテレータの記述が容易なこと

あと俺がここでアップしたソースみたいに
> srct.scan(/\"(.*)\"/).each_with_index do | ( s ) , i |
rubyに慣れてくるといろんな処理をこうやって . でいくつでも繋げられるから別次元にいけるよ

普通だったら、これは
n = srct.scan(/\"(.*)\"/)
n.each_with_index do | s , i |
こうやって2行にわけてかかなきゃいけないソース
183デフォルトの名無しさん:2012/01/22(日) 17:57:08.06
>>179
左から右へ書きやすいことや、DSL的な命令群を実装しやすいことかなあ
ワンライナー、テキストフィルタ、小規模なコードくらいなら慣れりゃサクッと書けると思う

一方で言語自体に容易に深入り出来てしまうんで
カオスな状況を作り出すことも容易だったりするのが問題点かな
一見すると読みやすいのに、実は読めないってコードが出来上がることもある
184uy:2012/01/22(日) 17:58:10.71
そういう風に、イテレータ同士が結合できるから普通の言語では
こういう風に別々にそれぞれイテレータを分けてかかなくちゃいけない事も

a=[1,2,3,4].map  do  |m|  m.to_s  end
i  =  0

n=a.inject  ""  do  |  a  ,  m  |
  a  <<  ":#{i}"  +  m 
  i  +=  1
  next  a
end
p  n


↓rubyだと一行でこうなる

n=[1,2,3,4].map(&:to_s).each_with_index.inject  ""  do  |  a  ,  (  m  ,  i  )  |
  a  <<  ":#{i}"  +  m 
end
p  n


185デフォルトの名無しさん:2012/01/22(日) 18:01:00.15
>>183
perlだな
186デフォルトの名無しさん:2012/01/22(日) 18:08:39.17
>>184
ごめん何をしているコードなのかさっぱり読めない。
・・・ってのが Ruby は多い気がする。
187デフォルトの名無しさん:2012/01/22(日) 18:11:06.12
inject
<<
#{i}
next

p は print だよな?
そういや Ruby って変数名に p って使えないの?
188デフォルトの名無しさん:2012/01/22(日) 18:11:32.43
>>185
そりゃ名前からしてPerlの後継的なポジションを狙ってる言語だからね
189デフォルトの名無しさん:2012/01/22(日) 18:12:30.62
結局さあ、perlがゴミならrubyもゴミなんだよ
消去法でpythonが残るだけ
190デフォルトの名無しさん:2012/01/22(日) 18:14:23.89
>>187
p() は標準で存在する関数だよ
Pythonなら print(repr( 〜 )) にあたる

変数名として p を使うことはできるよ、標準の関数名と被るから推奨はされないけど
191uy:2012/01/22(日) 18:15:05.70
どうせやさしくかいてもよめやしないから超上級者コードをかいただけ

p=9
p p

使えたけど
混乱するから使わないほうがいいと思うよ

pはデバッグ用に使う出力
文字列とかで使うとダブルクオーテーション込みで出力してくる

a = "testets"
print a + "\n" # => testets
p a # => "testets"


192uy:2012/01/22(日) 18:16:41.80
>>189
perlはゴミじゃないよ
使える奴が少ないだけだよ
俺PHPはバカにするけどperlはバカにしてないけど?
193デフォルトの名無しさん:2012/01/22(日) 18:18:27.60
>>186
ぶっちゃけ>>184は崩れすぎてて普通に読みづらいので
Rubyが良い悪いという観点のサンプルとしては
ちょっとどうかと思うw

あと平気で畳み込み演算を使ったりもするので、
慣れてないと意味不明かも
194デフォルトの名無しさん:2012/01/22(日) 18:19:51.55
inject は関数型言語でいうところの fold か。これはわかった
<< は文字列の append だと思えばいいのかな
#{i} はダブルクォートの中で変数を展開すると。
next がわからん
195uy:2012/01/22(日) 18:21:42.48
next は continueと同じ
next a の場合
イテレータ内で次の戻り値が a になる
196uy:2012/01/22(日) 18:32:22.39
p %&a i u e o&,%r#a i u e o#,%q-a i u e o-,%w*a i u e o*
こんなことも出来るし最強じゃん
197デフォルトの名無しさん:2012/01/22(日) 18:41:36.93
184 の下のコードが動かない
198デフォルトの名無しさん:2012/01/22(日) 18:45:21.21
Ruby 書いたことがないので糞コードだと思うが、これでも同じかな

p [1,2,3,4].map {|i| i.to_s}.inject([[],0]) {|(a,i),s| [a << [s,i], i+1]}[0].inject("") {|a,(m,i)| a << ":" + m + i.to_s}

each_with_index という関数が用意されてるのは便利だが何かずるいので、
それ使わずにゴリゴリ書いてみた。
199デフォルトの名無しさん:2012/01/22(日) 18:49:02.75
>>184
n = '"%s"' % ''.join(':%d%s' % (i,x) for (i,x) in enumerate(map(str,[1,2,3,4])))
print n
200デフォルトの名無しさん:2012/01/22(日) 18:51:09.16
あ、文字列を""で囲む必要は無いのか
じゃあこれで
n = ''.join(':%d%s' % (i,x) for (i,x) in enumerate(map(str,[1,2,3,4])))
201デフォルトの名無しさん:2012/01/22(日) 19:13:16.99
184 の下の方は &: ってのが 1.9 の機能なのか。
codepad で試してたが Ruby 1.8.6 だから動かなかった
202デフォルトの名無しさん:2012/01/22(日) 19:42:13.11
自分以外にコードを貼る奴が出てくるとuyが消える法則
比較されるのは嫌なんだろうな
203uy:2012/01/22(日) 19:44:40.19
>>199
n=("0".."3").map do |i|
   ":" + i + i.succ
end*""
p n
204uy:2012/01/22(日) 19:45:21.92
>>202
勝手に比較してろよ
205uy:2012/01/22(日) 19:47:22.34
>>198
ひどすぎる
しかしinject([[],0])が出来ることと
}. が出来ることに気づいたことは上出来だと思う
206デフォルトの名無しさん:2012/01/22(日) 19:48:27.30
>>205
より良く直してくれ。
207デフォルトの名無しさん:2012/01/22(日) 19:50:03.60
uyとかNGネームにしてるから安価を付けられてない限り見えないが
ここはコイツの相手する奴が多いな。うぜえ
208uy:2012/01/22(日) 19:55:45.58
>>206
>>203
これで
209デフォルトの名無しさん:2012/01/22(日) 20:02:22.08
隔離スレで何を言ってるんだ?
210デフォルトの名無しさん:2012/01/22(日) 20:04:10.34
>>208
203は問題の趣旨を理解してないゴミ
211デフォルトの名無しさん:2012/01/22(日) 20:04:46.86
203でいいなら、こっちの方がもっといい。

p ":01:12:23:34"
212uy:2012/01/22(日) 20:15:13.44
必死な奴がいるなw

>>206
n=%w!1 2 3 4!.map(&:to_s)
.inject([[],0]) do |(a,i),s|
  [ a << [s,i] , i.next ]
end.first.map do | (i,m) |
  [":" , m , i]
end.join
p n
213uy:2012/01/22(日) 20:18:21.92
更新

n=%w!1 2 3 4!.map(&:to_s)
.inject([[],0]) do |(a,i),s|
  [ a << [":",s,i] , i.next ]
end[0..-2].join
p n
214uy:2012/01/22(日) 20:19:55.88
元がひどいソースコードを無理にリファクタリングするとひどくなっていく典型wwww
面白いからいいけどwwwwwww
215デフォルトの名無しさん:2012/01/22(日) 20:20:11.61
結局、最初に言ってた1行で書けるってのはどこ行ったんだ?
216デフォルトの名無しさん:2012/01/22(日) 20:23:42.95
改行を必要としない言語なら一行で書けるさ
217uy:2012/01/22(日) 20:25:29.82
別に改行必要としないけど
見易さの為に改行してるだけ

他人に見せる為のコードでわざわざインデント崩すのはゴミだと思う
218デフォルトの名無しさん:2012/01/22(日) 20:35:36.19
結局、自己満足な再帰的技巧を使うよりも
このくらいが一番分かりやすいんじゃないかね?

a = [1,2,3,4].map{|x| x.to_s}
s = ""
a.each_with_index {|x,i| s << ":" + i.to_s + x}
print s
219デフォルトの名無しさん:2012/01/22(日) 20:39:59.88
each_with_index も使わないならこれでいいし。

a = [1,2,3,4].map{|x| x.to_s}
s = ""
for i in 0 .. (a.length - 1)
 s << ":" + i.to_s + a[i]
end
print s
220デフォルトの名無しさん:2012/01/22(日) 20:40:30.08
>>203
n = ''.join(':%c%c' % (i,i+1) for i in range(*map(ord,('0','4'))))
print n
221デフォルトの名無しさん:2012/01/22(日) 20:53:31.30
PowerShellで書いてみた
-join (1..4 | % { $i=0 } { ":$_$i"; $i=$_ })

変数名にシジルのある言語はこういうときは便利
まあこういうときだけだけど
222デフォルトの名無しさん:2012/01/22(日) 21:05:42.65
なんで
01:12:23:34
じゃなく
:01:12:23:34
なん?
223デフォルトの名無しさん:2012/01/22(日) 21:08:17.69
bash で
a=(1 2 3 4)
for c in "${a[@]}"; do
s="${s}:$((i++))$c"
done
echo "$s"
224デフォルトの名無しさん:2012/01/22(日) 21:16:32.27
>>222
俺もずっとそこが不思議だった
225デフォルトの名無しさん:2012/01/22(日) 21:54:23.85

就活中
(p)http://livedoor.blogimg.jp/jin115/imgs/3/1/31a6f8e6.jpg

就職後
(p)http://livedoor.blogimg.jp/jin115/imgs/2/b/2b790359.jpg

街の人(やらせ業者)募集中です

226デフォルトの名無しさん:2012/01/22(日) 22:08:25.46
n = ''.join(':%d%s' % x for x in enumerate([1,2,3,4]))
227デフォルトの名無しさん:2012/01/22(日) 23:50:54.40
Haskellスレで、たかがtailコマンドの実装(ファイルの終端から読み込む)程度で
グダグダと議論してるのを見ると、RubyもPythonも
どっちも素晴らしく開発効率が良い言語だと思う
228デフォルトの名無しさん:2012/01/23(月) 00:27:10.75
SICP taught in Python 3
http://www-inst.eecs.berkeley.edu/~cs61a/sp12/book/index.html

PythonでSICP
世界はPythonを選んだみたいだな
229uy:2012/01/23(月) 00:44:38.11
世界はPythonを選んだみたいだな(キリッ)

よほどの理由がない限り日本人が初見で読み方のわからない言語は
たとえ世界で流行ったとしても日本じゃ流行らない

>>227
Haskellは開発効率以前の時代に取り残された言語
勘違いした情弱以外は使わない
230デフォルトの名無しさん:2012/01/23(月) 00:51:03.17
>>227
確か『7つの言語〜』の著者が言ってたと思うが
関数型言語は難しいことを簡単にできる事がある一方で、
簡単なことが難しくなってしまう事もある
231デフォルトの名無しさん:2012/01/23(月) 00:55:41.01
だからオブジェクト指向も関数型も両方できるScalaが最高と。
232デフォルトの名無しさん:2012/01/23(月) 01:04:31.87
混ぜりゃいいってもんじゃない
C++が最強言語って事になってしまう
まあ間違いとは言わないが……
233uy:2012/01/23(月) 01:06:58.86
>>230
なんで自分の言葉で説明できないで
ゴミみたいな奴の言葉を借りることしか出来ないの?バカなの?

>>232
ありえない
キモい
お前が
>まあ間違いとは言わないが……

はぁ???

どの程度のレベルでそれをいってんの?
234デフォルトの名無しさん:2012/01/23(月) 01:42:49.58
>>228
それをY CombinatorのHacker Newsからpythonスレに貼ったら図書スレとかにも誰かが貼ってたけど
なるほど、Pythonが選ばれたのか、Python大勝利!ではちょっとつまらないと思う
というかUCバークレーが率先して選んだというより、既に世界でPythonが広く使われているという事実を受けて選んだ感じ
まあ他にも理由はあるだろうし、やっぱり使いやすさ、読みやすさも評価されてるだろう

ハードウェア記述言語や特定の研究室で使うような専用言語は別にしても
Scheme、C、Java、FORTRAN、Prologとか大学や講義によっていろいろあるだろうが
これらは歴史や実績があるから選ばれてて、Pythonもそのレベルに到達したってことだと思う
Python3がそうであるかは甚だ疑問だけど

同じように、これから何かもっと良い言語が出てきて広く受け入れられれば、
大学の講義で使われることもあるかもしれない
235uy:2012/01/23(月) 05:32:47.29
>>234
本当にPythonが進化していいと思っているの?
どうせ日本じゃ流行らない言語だぞ
流行るとしても
世界で十分に流行って使い尽くされてからようやく日本人がPythonに気づいて
使い始めるような・・・
間違いなくそんな感じになっちゃうけど
236uy:2012/01/23(月) 05:33:31.10
それよりも今目の前にある[ ruby ]使ったほうがいいんじゃないの?
目が悪いのか?
237uy:2012/01/23(月) 06:10:49.95
184よりはマシな問題があったよ 動的言語スレより
もうといてしまったけどな
http://www4.atwiki.jp/fsharpmaster/pages/24.html

http://ideone.com/JqJ3e
238デフォルトの名無しさん:2012/01/23(月) 07:29:39.05
>>237
http://www4.atwiki.jp/fsharpmaster/pages/24.html
> 4種類のアルファベット "A,C,G,T" から成るn文字の文字列のうち、
だから、
http://ideone.com/JqJ3e
%w!A C G T!.repeated_permutation(4).reject do | x |
  !( x.join =~ /(AAC)/ )
end.each do | x |
  p x*""
end
だと仕様を満たしていないと思う。
def dna(n)
  %w!A C G T!.repeated_permutation(n).reject do | x |
とでもすれば良いのかな。
でも元スレでは上記方法だと無駄な文字列が作られ過ぎると書かれてた。
239uy:2012/01/23(月) 16:24:32.87
おぞましいなお前
いいからソースかけよ
240uy:2012/01/23(月) 16:29:45.25
そもそもrepeated_permutationってイテレータが存在しているって事なんで
それに直接整数を入れて問題ない
既に存在しているイテレータをラップする意味がわからないけど頭大丈夫か?
241uy:2012/01/23(月) 16:32:57.77
>>238
お前がやっているのはこれだ

def f n
  def f2 n
   〜処理〜
  end
 f2 n
end

そしてこの問題の場合は文字列は作られすぎて問題はない
大丈夫か?
242デフォルトの名無しさん:2012/01/23(月) 17:20:06.47
uyは糞ニート
243uy:2012/01/23(月) 17:48:55.08
話題そらしか?

最近俺が思うに、俺は元から技術は高かったが
マジでお前たちがuyについてこれていないと思う
どうすんの?
こんなイタタタタタな奴に技術で負けてる気分ってどんなだよ・・・・・・・・・
すくなくとも俺はお前たちが思っているよりもずっとrubyに精通している

「rubyは初心者でもすぐ使える言語なんだ!(キリッ)PerlやPHPのほうがすごいんだ!(キリッ)」とか、
まさか本気で思ってるわけじゃないっしょ

PHPは、内部ではなくその周りを取り巻く環境がいいから、なかなか死んでくれないけど
Perlとかもう完全にお亡くなりになっているくらいは、わかっているよね?

ていう事は、今までperlで作られていたワンライナーとか小さなパッチやツールはrubyで書くことになるんだよ
PHPじゃ、かけないし、Pythonもワンライナーにはむかないし、それに
やっぱりちょっとしたものを書くときにイテレータが楽にかけないと面倒だと思うよ?
rubyできない奴って・・・どうするの? perl使い続けるわけにもいかないでしょwwwwwwwww
perl6みた?仕様みた?試した?wwwwwネエネエwwwwwwwwwwwペrl厨息してんのwwwwwwwwwww?
PHPは・・・論外っていうかさ


C/C++ が C#に置き換えられたのと同じで
PHP は Rubyに置き換えられているはずなんだけど・・・ 速度・・・??? 速度とか、あれじゃん
244uy:2012/01/23(月) 17:50:32.15
C/C++の3倍くらいC#は遅いけど、シェア奪ったよね
PHPの3倍もRubyが遅いわけじゃないじゃん
余裕じゃん・・・・・・・・・・・・・・・・・・・・・
どうするの・・・・・・・・・・・・・・・・???
ずっとuyを否定してきた奴とか・・・・いまさらrubyに乗り換えることって出来るの????負けたみたいで悔しくない??大丈夫??ww
245デフォルトの名無しさん:2012/01/23(月) 18:35:31.86
Perlが滅んだように、PHPも滅んでほしい
246デフォルトの名無しさん:2012/01/23(月) 21:04:58.12
速度とかメモリ使用量はプログラマが
よく気にしたがるところだけど、
エンドユーザーはあまり気にしない所。

プログラマが気にするところと
エンドユーザーが気にするところは
反対な事が多いね。
247uy:2012/01/23(月) 21:21:54.89
サーバープログラムに関してだけは違うが

ちょっとプログラム組めるようになってきた初心者+@くらいのレベルの奴は
やたら執拗に実行速度を気にするようになる
クライアント側でのプログラムの実行速度なんて最低限クリアしてたらマジでどうでもいい
年々pc性能も上がるし、並列化技術も進んでいる
248uy:2012/01/23(月) 21:25:06.02
だいたいそういう奴に聞いてみたいわ
Cの何倍遅い程度までは耐えられるんだ?
ってな・・・・・・・・・
PHPとRubyなんて、C言語と比べて100倍遅いか110倍遅いか程度の違いだろ

どうせ遅いんだよ
249デフォルトの名無しさん:2012/01/23(月) 22:26:37.69
>>244
今ではC#(Mono)の整数演算はC++(g++)の2倍くらい速い。
浮動小数点演算は20倍くらい遅いが。
250デフォルトの名無しさん:2012/01/23(月) 22:31:27.34
>>248
純正PHPは遅いが別実装のPhalangerはF#の中の人がカリカリチューニングして今やC++より速い。
これも整数演算だけだけどPHPの用途的に文字列中心だから圧倒的。
251デフォルトの名無しさん:2012/01/23(月) 22:42:41.78
252デフォルトの名無しさん:2012/01/23(月) 23:04:44.93
>>237
4種類のアルファベット"A,C,G,T"から成る 100文字 の文字列のうち、
AAGを含むものが何種類あるか求めよ
253デフォルトの名無しさん:2012/01/23(月) 23:07:40.51
>>250
速くしたいなーって作者が言ってるだけだろ
254デフォルトの名無しさん:2012/01/23(月) 23:10:46.20
早くしたいなー。
255デフォルトの名無しさん:2012/01/24(火) 01:17:43.75
これからはD言語だな
256uy:2012/01/24(火) 03:05:35.82
>>249-250
だから何
一部分だけ速くなりましたとか聞いてねえよwwwwwwwwwwww

単純な計算の速度実測のあたりは日々競争をしているわけで、
一時的に追いつきましたとか、一時的に追い抜いたとかどうでもよくてさwwwwwww
VM中継してる言語とネイティブはいている言語がどちらが速いのかくらい知識として知っておいてくれよ
257デフォルトの名無しさん:2012/01/24(火) 04:17:40.98
速さがそこまで気にならないというわりには
RailsもJavaごときに置き換えられてる現状はなんなのだ
258デフォルトの名無しさん:2012/01/24(火) 06:41:20.16
このスレ開いたやつはこれ見に来たんだろ

■伝説のPHP作者「Rasmus Lerdorf」名言集を聞くと嫌PHP厨がファビョる

・今のPHPを作ったのは、何十人もの開発者ですよ。私は1人目の開発者だったに過ぎません。

・問題を解くのが好きなだけで、プログラミングは大嫌いです。

・いかにプログラミングを避けるかを考えていたら、コードを再利用するためのツールとしてPHPができました。

・PHPは、歯ブラシみたいなものですね。毎日使うものですけど、だから何でしょう?誰が歯ブラシの本なんて読みたがります?

・パーザを書くのは苦手です。本当にダメなんです。今でもね。

・PHPには「protected属性」も「仮想メソッド」もありますよ。情報学科の教官が「重要だ」っていうやつは何でもね。僕自身は、こんなものどうでもいいと思ってますけど。

・プログラミングを好む人がいるのは知ってますが、全く理解できないですね。

・僕はホンモノのプログラマではありませんから、やっつけ仕事ですよ。ホンモノのプログラマは、「動いてるように見えるけど、メモリリークだらけじゃないか。直す必要があるかもね」なんて言うでしょう?僕なら、10リクエストごとにApacheを再起動しますね。

・いえ、メモリリークはちゃんと気をつけてますよ。でも、プログラミングってほんとクソだなと思いますね。

・プログラミング言語を作るつもりはありませんでした。どうやって作るのかも知りませんし。論理的に必要だと思われるものを足していっただけなんです。

・僕の発言に怒ってる人がいるようですね。僕がプログラマとしてひどいのは認めますけど、でも、多分あなたたちよりマシだと思いますよ(笑)。

http://awabi.2ch.net/test/read.cgi/poverty/1327050821/3
259デフォルトの名無しさん:2012/01/24(火) 06:52:57.03
> ・PHPには「protected属性」も「仮想メソッド」もありますよ。情報学科の教官が「重要だ」っていうやつは何でもね。僕自身は、こんなものどうでもいいと思ってますけど。

必要なのは、いらんと思ったら斯界の権威になんと言われようとやらない、という
ライナスのようなセンスだということがよくわかる話だなw
260デフォルトの名無しさん:2012/01/24(火) 07:39:00.38
>>252
簡単すぎるだろ

1280549650917283762136735434444908507212487721403333580285832
261デフォルトの名無しさん:2012/01/24(火) 08:09:13.67
uyには無理だろ
262デフォルトの名無しさん:2012/01/24(火) 08:31:45.27
http://www4.atwiki.jp/fsharpmaster/pages/24.html

元の問題は順序を問わないという条件なので簡単だが
辞書順に生成するという条件に変えるとなかなか面白い
(作ってからソートするのは不可)
263uy:2012/01/24(火) 17:03:44.53
>>257
それすら満足に調べられないで何いってんの?
それRubyが並列処理できないせいだけど
264uy:2012/01/24(火) 17:06:25.19
>>259
自分にとってはいらないものでも世界の誰かは使っているなら
そのユーザー獲得の為に言語に機能を追加する
でもある程度でいいんだけどね

もし自分にとって必要な(超優秀なPG)
最低限の機能しか用意しないとLispになるだけ
265uy:2012/01/24(火) 17:07:04.57
それにしても動的言語スレの沈黙が面白すぎた
266デフォルトの名無しさん:2012/01/24(火) 18:10:53.11
>>265
>>252 >>262

>>261
>uyには無理だろ
267uy:2012/01/24(火) 18:23:48.20
面白いと思ってるのはお前だけだから
一人でやってれば?
268デフォルトの名無しさん:2012/01/24(火) 18:27:04.46
>>267

>>106
> お前たちゴミカスもソースコードで語ってほしいものだよね
>>111
> かかないんじゃなく「かけない」んだろうけどな
269デフォルトの名無しさん:2012/01/24(火) 18:46:30.10
pythonにはvertualenv, node.jsにはnvmといった、sudoが許されざる状況でも使える環境あるのに
rubyには無いんだろ?
270デフォルトの名無しさん:2012/01/24(火) 18:49:37.99
gem install もsudo権限ないと動かないもんな
npmとかnvmとか、ユーザ権限に環境つくれるnode.jsしかこれからのLLは無いよな
271デフォルトの名無しさん:2012/01/24(火) 18:52:14.70
repeated_permutation

http://ideone.com/Zqvbp
272デフォルトの名無しさん:2012/01/24(火) 18:53:40.52
uyとかいうキチガイがruby厨で良かった
273uy:2012/01/24(火) 20:54:55.33
>>268
お前はソースを晒さずに、uyに一方的に俺に解けって?
宿題だったら自力でやれよw
そもそもプログラムの問題ではなくどうみても数学の問題なのに
区別すら出来ないからずっとそのレベルでとまってるんだろ
もしかして以前俺にからんできてフルボッコにされていた遅延評価の知恵遅れハスケル厨ですか?

>>271
最高だわ
保存した
274uy:2012/01/24(火) 21:05:49.69
ちょっと解こうとしたけどやめた、何かわかった
動的言語スレからのお客さんかな?
237の問題をrepaated_perrumationを使わずに
問題を理解していない強引なアルゴリズムを使うと>>260は求められるな
repuatued_parumutetionを知らないからそんなことになるのに
repeatued_prrrremtation覚えたほうがいいよ・・・
275デフォルトの名無しさん:2012/01/24(火) 21:15:45.14
C#がC++のシェア奪ったというより
VB使ってたやつらがC#に移行したんだろうな
276デフォルトの名無しさん:2012/01/24(火) 21:19:44.51
>>274
( ゚д゚)ポカーン

http://ideone.com/OMK93
277デフォルトの名無しさん:2012/01/24(火) 21:27:51.10
あー枝葉末節に突っ込まれる前に書いておくと
面倒だから全部配列に持たせたけど
c[n] = c[n-1]*4 + 4^(n-3) - c[n-3]
という漸化式だから領域は 3 要素分だけで使い回して計算できる
278デフォルトの名無しさん:2012/01/24(火) 21:29:24.88
>>274
じゃ、>>262 で名誉挽回がんばれ
279デフォルトの名無しさん:2012/01/24(火) 22:37:20.58
>>258
つまり、10リクエストごとにApacheを再起動させない人は、
PHPを使う資格がないってことですね。
280デフォルトの名無しさん:2012/01/24(火) 22:40:18.32
どこにPHPを使う資格がないって書いてあるの?

「僕なら再起動する」って書いてあるのしか見えないけど。
281デフォルトの名無しさん:2012/01/24(火) 22:45:27.82
>>272
こっちとしては堪ったものじゃねえよ…
282デフォルトの名無しさん:2012/01/24(火) 22:59:08.73
>>281
まあまあそう気を落とさずにっぷっ
283uy:2012/01/25(水) 02:01:53.45
>>281
WHAT?

・僕の発言に怒ってる人がいるようですね。僕がプログラマとしてひどいのは認めますけど、でも、多分あなたたちよりマシだと思いますよ(笑)。

これ、俺かと思ったわ
お前等よりマシだと思います


実際、俺がコテハンを取って、ちゃんとした文章かけば
お前たちはその名無しがハッカーにしか見えなくなるよ
でも俺はプログラマって高等なものではなく、こういう泥臭いものだろ?って思ってるから
わざとPGの品位を下げる事ばかりをしているだけ
間違っても俺を褒めたり崇めたりする奴が決してでてこないように文章をかいている
お前たちは技術系ブログや技術系サイトを構築したとき「あれ?この人なんかすごそう!」みたいに思われたいんだろう
「優秀なぷろぐらま(笑)」だと思われたいんだろう
だから偉そうな文章を書いてしまう・・・
俺はその真逆、決して凄く思われたくはない

uyはぜんぜん凄くない(はずだ)
「こんなぜんぜん凄くない奴に論破されてる俺ってなんなんだろう?」と、思わせる為にこうしてるだけ
(キリッ)としながら、偉そうな文章書いてる奴のプライドをズタズタに引き裂きながら周ってるだけ
力があるくせに下にいていつでも上にいる人間を引き摺り下ろせるプレッシャーを与えているのが面白いだけ
それが楽しくて仕方がないだけ
wwwww
284デフォルトの名無しさん:2012/01/25(水) 19:42:57.25
site:www.php.net/include

ねえ、これって見えていいものなのかな
285デフォルトの名無しさん:2012/01/26(木) 17:29:48.46
ウイルスを不正に作成 初摘発 1月26日 16時31分

コンピューターウイルスを不正に作成して、知り合いの男性のパソコンに感染させたとして、
大阪の28歳の男が逮捕・送検されました。ウイルスを不正に作成した罪は、去年、新たに設けられ、摘発は全国で初めてです。

逮捕・送検されたのは、大阪・松原市の無職小林浩忠容疑者(28)です。
警察の調べによりますと、小林容疑者は、コンピューターウイルスを不正に作成し、去年9月、
別人を装って神奈川県の知り合いの男性にメールで送りつけて感染させたとして、不正指令
電磁的記録作成などの疑いが持たれています。このウイルスは、インターネットの掲示板に
自動的に小林容疑者を脅す内容の書き込みをするよう仕組まれていて、小林容疑者自身が
「掲示板に『家族を殺す』などと書き込まれている」と被害届を出していました。警察が
書き込み元の男性の自宅を捜索したところ、パソコンがウイルスに感染していて、小林容疑者が、
みずからウイルスを送りつけたことが分かったということです。警察によりますと、小林容疑者は、
調べに対して容疑を認めていて、掲示板の運営を巡って男性とトラブルになっていたことから、
警察は、男性を陥れようとしたとみて調べています。コンピューターウイルスを不正に作成
することは、去年6月の刑法の改正で罪に問われるようになり、摘発はこれが全国で初めてです。
286uy:2012/01/26(木) 21:15:05.11
>>285
よく読んだらとんでもない内容だな

コンピュータウィルスで摘発されたのが凄いんじゃなくて
やっぱりそういう「成りすました犯罪予告」を書き込みさせてる奴がいるって事

ウィルスに感染していたかどうかのチェックが正確に出来なかったらどうするつもりだよバカ警察
もし検出できなかったら犯罪予告を書き込んだ側を処罰していたような事例だろそれ
287uy:2012/01/28(土) 10:45:38.87
PHPって駆逐する価値あるの?

PHPを触れる奴ってRubyを触ったこともなくperlも使えない奴だけだと思う


ちょっと色々とソース見て周ってるが
あの言語はねーわ

何もしなくても滅びるだろ・・・

JAVAもゴミカスではあるけど、
PHPよりも絶対にJAVAのほうが開発効率でるよね・・・

どうすんだあのゴミ
288uy:2012/01/28(土) 10:48:10.78
いやつうか動的言語は
JAVA、C#のような静的言語よりも

開発効率でなきゃおかしいだろwwwww

PHPさんは、動的言語なのに、あれじゃ開発効率の面で明らかにJAVAに劣るぞ
動的言語ゆえに速度も遅い、マジでゴミってああいうものをいうんだと思うけど


はあああああああ?wwwwwwwwwwwwww
なんであんな言語が広まっちゃってんのwwwwwwwwwwwwwwwwwwwww
ゴミグラマ共バカすぎワロタ
289デフォルトの名無しさん:2012/01/28(土) 11:27:25.49
> PHPさんは、動的言語なのに、あれじゃ開発効率の面で明らかにJAVAに劣るぞ

ん?

<?php print('hello world')

他の言語で、これより短いコードで
ウェブページ(ブラウザに表示)することが
できる言語ってあるの?
290デフォルトの名無しさん:2012/01/28(土) 11:49:26.71
hello worldが開発効率の指標か・・・
291uy:2012/01/28(土) 13:33:55.99
>>289
このスレはperl,php,ruby,pythonのスレだけど、
その4つの中では一番お前さんのかいてるコードが冗長してる
まずさ、
<?php
↑これをなんだと思ってるの?
それ、いらなくね?

PHPにしかないよ
こんな
<?phpとか、
こういう、ゴミみたいな記述

ゴミだよそれゴミ
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミ

まず、そこから考えろよ・・・
なんだよ <?php    ってwwwwwwwwww バカじゃねえのwwwwwwwww何このゴミ記述wwwwwww
冷静に考えろよおおおおおおおおwwwwwwwwwwwwwwwwww


マジPHPってこのレベルの奴が触ってるからあんな酷い言語仕様でも
文句たれる奴がいなくて
使い続けられるんだと思うwwwwwwwwwww
救ってやるからまってろよwwwwwwwwwwwwwwwwwww
292デフォルトの名無しさん:2012/01/28(土) 13:36:28.42
#!/usr/bin/ruby

とか書くのと似たようなもんだ。気にするな。
293デフォルトの名無しさん:2012/01/28(土) 13:38:31.32
てか、ぺちぱーディスりたいならwebprogでやれよ。
ム板にphp専門はいないだろ。
294デフォルトの名無しさん:2012/01/28(土) 14:01:30.10
>>292
まさにそのとおりだな。
295デフォルトの名無しさん:2012/01/28(土) 14:02:07.57
>>293
スレタイ嫁
296デフォルトの名無しさん:2012/01/28(土) 14:28:38.36
>>295
Perl,Ruby,Pythonならそれぞれ信者が顔真っ赤にして反論してくるだろうが
PHPディスってもここに信者はいないからつまらんぞ
っていう助言だ。
297デフォルトの名無しさん:2012/01/28(土) 14:57:15.37
Rubyを馬鹿にすんな
298デフォルトの名無しさん:2012/01/28(土) 15:41:34.23
Rubyはバカにしない
Ruby信者をバカにしてる
299デフォルトの名無しさん:2012/01/28(土) 16:09:13.00
Matzを馬鹿にしたい気持ちはある
300デフォルトの名無しさん:2012/01/28(土) 16:42:43.39
嫉妬乙
301デフォルトの名無しさん:2012/01/28(土) 17:43:20.57
Rubyはユーザーが宗教臭いってホント?
302デフォルトの名無しさん:2012/01/28(土) 18:09:17.15
数々の試練(互換性放棄)を経てもMartz様に付いていくのは
信者と言わずして何と言う
303デフォルトの名無しさん:2012/01/28(土) 18:44:45.90
何ができるかで言語を決めるべきで、先に言語を決めて使い続けることはない。
PHPで十分かと思う。PHPでは困る点はあるのか。
304デフォルトの名無しさん:2012/01/28(土) 21:54:57.61
変な仕様がある言語が好きだというなら好きにすればいい。
305デフォルトの名無しさん:2012/01/28(土) 22:06:12.91
>>1 に書いてあるのに無視されている Javascript 。
306デフォルトの名無しさん:2012/01/28(土) 22:14:43.44
>>301
そういうのって宗教に失礼だと思う
307デフォルトの名無しさん:2012/01/29(日) 00:30:05.69
Rubyユーザは押しつけがましいよね。
モルモン教は良いものなのか知らないが、いちいちこっちまで出張って来てほしくないね、
308デフォルトの名無しさん:2012/01/29(日) 00:41:20.32
>>307
スレタイ嫁、ここはバトルスレだ
ここでのそのセリフは、自ら敗北を宣言したに等しい
>>307を添削しておこう

誤: Rubyユーザは押しつけがましいよね。
  モルモン教は良いものなのか知らないが、いちいちこっちまで出張って来てほしくないね、

正: もう技術的な議論ではRubyに勝てそうもありません(涙目
309デフォルトの名無しさん:2012/01/29(日) 01:38:12.22
フォルダにあるファイルの修正をPHPで監視できるか?
310デフォルトの名無しさん:2012/01/29(日) 01:45:04.26
>>309
コメントくださいねw

http://php.net/manual/ja/book.fam.php
FAM 関数
fam_cancel_monitor ? 監視を終了する
fam_close ? FAM 接続を閉じる
fam_monitor_collection ? 指定したディレクトリにあるファイルの変更を監視する
fam_monitor_directory ? ディレクトリの変更を監視する
fam_monitor_file ? 通常のファイルの変更を監視する
fam_next_event ? 次の待機中の FAM イベントを返す
fam_open ? FAM デーモンへの接続をオープンする
fam_pending ? 待機中の FAM イベントの有無を調べる
fam_resume_monitor ? 中断された監視処理を再開する
fam_suspend_monitor ? 監視を一時的に中断する
311デフォルトの名無しさん:2012/01/29(日) 06:35:48.86
「とりあえずテレビをつける」のをやめようか
http://www.nicovideo.jp/watch/sm16774477

1/28 27日の朝生の感想 & 岐阜にキムチの町があるらしい!
http://www.nicovideo.jp/watch/sm16814879

日本の年寄は情弱。一日中反日TVを見てる。
http://www.nicovideo.jp/watch/sm16812923

マスゴミの麻生さん叩きを検証しよう
http://www.nicovideo.jp/watch/sm16811530

外圧で日本経済の破壊工作をする馬鹿
http://www.nicovideo.jp/watch/sm16811102

【拡散】 民主党の新たな言論弾圧法案、[秘密保全法案]
http://www.nicovideo.jp/watch/sm16809977

法務省の「新たな人権救済機関」Q&Aが国民を騙している件
http://www.nicovideo.jp/watch/sm16809271

【西部邁ゼミナール】安倍(元総理)の日本国民に訴える
1 http://www.nicovideo.jp/watch/sm16692013
2 http://www.nicovideo.jp/watch/sm16750147
3 http://www.nicovideo.jp/watch/sm16810518

【討論!】野田民主党内閣の本質と行方[桜H24/1/28]
1/3 http://www.nicovideo.jp/watch/so16804695
2/3 http://www.nicovideo.jp/watch/so16804716
3/3 http://www.nicovideo.jp/watch/so16804726
312デフォルトの名無しさん:2012/01/29(日) 07:22:38.97
>>311 巣に帰れネットの情報を鵜呑みにする情弱バカウヨ
313デフォルトの名無しさん:2012/01/29(日) 11:15:11.28

日教組教育とマスコミ(電通)に洗脳された哀れな国民
もしくは在日
314デフォルトの名無しさん:2012/01/29(日) 11:47:39.63
>>310
fam_monitor_directory ってディレクトリを再帰的に監視するの?
315デフォルトの名無しさん:2012/01/29(日) 11:49:32.53
>>314
自分で実装しろよ。inotifyも再帰的に監視しないだろ。
316デフォルトの名無しさん:2012/01/29(日) 11:57:53.05
>>315
いやPHPのスタンス的にできるのかなと思っただけです。
317デフォルトの名無しさん:2012/01/29(日) 12:19:14.52
スタンスってなんやねん。いみふ
318デフォルトの名無しさん:2012/01/29(日) 12:22:00.79
インスタンスですがな
319デフォルトの名無しさん:2012/01/29(日) 12:24:23.26
野球のバッターが足を置く位置
320デフォルトの名無しさん:2012/01/29(日) 12:43:37.87
空なタンスのこと出んがな
いわせんといてやー恥ずかしいきに
321デフォルトの名無しさん:2012/01/29(日) 14:33:29.66
>>318
なんでインスタンスって言うんだろう、オブジェクトでいいじゃん
って時々思う。
322デフォルトの名無しさん:2012/01/29(日) 14:45:27.67
>>321
objectで間違いではないけれど、
明確でないというか曖昧、抽象的すぎると言うか、
objectの指し示す範囲が広すぎるんだと思う。

言語に依るかもしれんけど、
objectにはinstance, class, method, ...etc
が含まれるんじゃないっけ?

objectは数学でいう数みたいなもんかな?
数には整数、自然数、負の整数、小数、分数、無理数、有理数、、、
が含まれるみたいな話。

>>321 を「数」という語で書き直すと以下の感じだろうか。

1をなんで自然数っていうんだろ?
数でいいじゃんって時々思う。
323デフォルトの名無しさん:2012/01/29(日) 15:00:51.60
Perl的にはどうでもいい
324デフォルトの名無しさん:2012/01/29(日) 15:40:36.01
ここのスレは在日が日本人のふりしてる人が多いね
真実を伝える情報を拒否したり、左翼的感覚に共鳴する書き込みは
反日在日と思ったほうが良いね

わが小学校は橋下さんの言葉に賛同して卒業式に国家を歌う
方向に向いています
日本人であれば国家を憂うのは当たり前です
  ここは日本ですから
325デフォルトの名無しさん:2012/01/29(日) 16:40:54.24
インスタンスは単なるオブジェクトじゃなくて
「何らかの設計図を元に生成されたオブジェクト」って感じだね
だからクラスベースのOOPLならクラスとの対比として語られる概念
326デフォルトの名無しさん:2012/01/29(日) 16:54:48.56
ネトウヨは現実で何も壊せないカス
327デフォルトの名無しさん:2012/01/29(日) 17:18:17.03
ヒトラーみたいな亡国の指導者をまつりあげるのが「国家を憂う」ことなのか。

死んじまえ。そんな、国に害なすバカは。
328デフォルトの名無しさん:2012/01/29(日) 17:46:48.68
>>325
ただし、SmalltalkやRubyといったメタクラスベースなOOPLの場合、
インスタンスが「あるクラスから生成されたオブジェクト」であるのはもちろんのこと、
クラスさえも「あるメタクラスから生成されたオブジェクト」になる
したがって、クラスとインスタンスの境界線は直感的には曖昧であり、
それらオブジェクト間に存在する相対的かつ推移的な関係の一つでしかない
329デフォルトの名無しさん:2012/01/29(日) 19:05:12.39
おい、またPython信者がPHPをディスってるぞ。懲りないやつだな。

http://twitter.com/methane/status/162510367707234304
他の言語のユーザーがphp始めたときにハマりがちなこと:
O/Rマッパーを使おうとする。有名なフルスタックフレームワークが
謳っている "fast" をベンチマークせずに信じて、Djangoとかに比べて
数倍遅いことにS-inしてから気づく。

http://twitter.com/methane/status/162509507149312001
他の言語のユーザーがphp始めたときにハマりがちなこと:
テンプレートエンジン以外の用途でphpを使おうとする。

330デフォルトの名無しさん:2012/01/29(日) 19:26:10.08
>>321
「オブジェクト」は、ポインタ(参照値)で指せるもの全般、みたいなニュアンスを帯びることがある。
例えばJava言語仕様での「オブジェクト」は「クラスのインスタンス」と「配列」の総称だったりする。
331デフォルトの名無しさん:2012/01/29(日) 23:28:27.29
今日はなんだかPHP厨が元気だな
332デフォルトの名無しさん:2012/01/30(月) 00:26:20.02
>>310
注意: この拡張モジュールは Windows 環境では利用できません。
http://www.php.net/manual/ja/intro.fam.php
333デフォルトの名無しさん:2012/01/30(月) 01:11:56.70
>>328
むしろ境界が曖昧だからこそ、そういう言語では尚更
「オブジェクト」と「インスタンス」をキッチリ使い分けると思う
「クラスとはClassクラスのインスタンスであるオブジェクトのことです」
みたいな感じで
334デフォルトの名無しさん:2012/01/30(月) 03:18:54.87
既存政党の責任と限界。2.1韓国大使館デモ
http://www.nicovideo.jp/watch/sm16828941

【2012.01.29】民主党本部前座り込み抗議活動100日目 -エベンキキャノン編-
http://www.nicovideo.jp/watch/sm16828331

1月28日 民主党・野田政権の即時退陣を求めるデモ
http://www.nicovideo.jp/watch/sm16827791

「日本海/東海併記」米議会にて1票差で否決&朝生の感想
http://www.nicovideo.jp/watch/sm16826674

【民主党】は震災復興なんてする気なし!さっさと叩っ斬ってしまおう!
http://www.nicovideo.jp/watch/sm16826826

字幕【テキサス親父】民主党と環境保護団体はグル!誰が儲かる?
http://www.nicovideo.jp/watch/sm16825471

総統閣下はブータン国王侮辱問題にお怒りのようです【拡散希望】
http://www.nicovideo.jp/watch/sm16822734

反日宣伝工作を迎え撃て!★第35回炸裂トーク
http://www.nicovideo.jp/watch/so16821093

笑ってはいけない朝鮮人の妄想2
http://www.nicovideo.jp/watch/sm16820739

【Part3】財産を奪われ続ける日本人
http://www.nicovideo.jp/watch/sm16820261

我が国の憲法の問題点
http://www.nicovideo.jp/watch/sm16819028
335uy:2012/01/30(月) 09:56:21.83
>>303
「困る事」なんてないよ
C言語の時点で、チューリング完全
C言語以降の言語で困る事など何もない
もし、言語の機能のことを言っているのであれば、
PHPには存在せずRubyやPerlやPythonに存在機能なんていくらでもある
そのちょっとズブの初心者にはとっつにくい効率の高いソースコードを
かけないようにしちゃったのがPHPだよ?
いつまでそれ使い続ける気だよ
自分のレベルがそこで止まっているならまだしも
さすがに、プログラミング初心者の奴でも1年PHP使ったらさっさとRubyにでも移るべきだろ
Webアプリしか作らないプログラマでもRubyくらいは使いこなせよ・・・

PHPよりマシな言語があるのに、それを使わんでわざわざ効率の悪い言語で開発する利点ってなあに?
マゾプレイが大好きなの?w
って話


まぁお仕事でやってる奴は強制的にPHP(笑)だから仕方ないよね
Rubyは遅い!遅いんだ!(キリッ)とか思ってるのかもしれないけど、インタプリタ(1.8)からVMになったので
実際Ruby1.9からはPHPと速度の差なんてねーだろっていう、むしろイテレータ関係が充実してる分
スクリプト言語側でコードを書く量が減るんで、予め作られてるCネイティブのコードが流れる
つまり、理論的には最終的にRubyのほうが確実に速くなれる
PHPは言語仕様的に、今からRubyのようなイテレータを実装するのは 不 可 能
336uy:2012/01/30(月) 09:59:12.97
おっと・・・PHP使いはイテレータは使わないでマゾプレイでプログラミングしてるんだったかな?w

for文(笑)

foreach文(笑)



可愛そうだ
337デフォルトの名無しさん:2012/01/30(月) 21:53:04.50
ん? PHPで普通にイテレータ使うだろ?

PHPにはイテレータ無いんだ!って
主張なら、それはお前が無知な馬鹿ってことになるし
何を言いたいのかさっぱりだ。
338デフォルトの名無しさん:2012/01/31(火) 02:04:28.13
PHPは関数指向プログラムって感じがする
339デフォルトの名無しさん:2012/01/31(火) 02:19:40.02
まったくその通りだ
Cには手続きが無くて関数しかないから、関数指向プログラミング言語だもんな
それと同じだよね
340デフォルトの名無しさん:2012/01/31(火) 02:57:20.22
>>337
あwww
PHPさんでもイテレータ使うんだwwww

でもあんなイテレータ使ってたんじゃfor文やforeachと開発効率かわんねーと思いますよ
PHPにイテレータは似合わないよwwwfor文でやっててくださいよwwwww
イテレータっていうのは効率的なプログラミングする為の考え方なんすよwwwwww
PHPで効率なんてでるわけないのにPHPがイテレータ使うとかイテレータに失礼過ぎワロタwwwwwww

>>339
C言語を出すあたりよく理解している
PHPはC言語を動的言語にして、ちょっとライブラリ付属しただけの時代錯誤のゴミ

Perlが一部の人間にしか扱えなかった事と
rubyの成長が遅かったことと
pythonがマイナーだったせいで
時代遅れのゴミに付け入る隙を与えてしまった
だから今こうなっている
341デフォルトの名無しさん:2012/01/31(火) 03:04:07.70
>>337
何を言いたいのがさっぱりっすかwwwwwwww
そうっすねwwwww
PHPさんパネェっすwwww
まぁRubyのイテレータが特殊なだけだよねwwwwww
まだ一般浸透してるどの言語でも真似できてない( まねしようとしたら1から言語作り直す必要がある )からねwwwwwwww

PHPさんはPHPしか使わないからRubyが何やってるか全然わからないんすよねwwwwww
PHPはC言語と見た目一緒なソースだから安心しちゃうんすよねwwwwwwww
本来ならば、2012年にゴミカスC言語と似たような見た目のソースコード書いている時点で危惧すべきなんだけど
PythonとRubyとLispあたりやってない奴からすると
未だに2012年でもC言語のプログラミングスタイルで通用するとか思ってそうだもんねwwwwww
まああああ確かに通用するよwwwwwwwそれ以上の手段が開発されているってだけでwwwwwCやPHPが効率下がったわけではなくww
もっと上のノウハウが作られたってだけでwwwwwwwwwwwwwwwwwwwwwww
ちゃんと話題になった言語は全部使えるようになっておけよ
1日で1つの言語くらい調べられるだろ? なんでその当たり前の事をやらないで
知ったかぶって、そこに存在するものをなかったことにして>>377わかりまてん。 とかいい始めちゃうのwwwww
サッパリわからねーなら勉強しろよwwwwwwwwww質問してんの???答えてほしいんすかwwwwwwwwwいい歳こいた大人だったら自分で学べカスwwwwwww
342デフォルトの名無しさん:2012/01/31(火) 03:25:54.85
イテレータ自体は古くからある抽象化で、珍しいものでも何でもない
内部イテレータは少し珍しい……と思いきやforeach文という形でサポートしている言語もあるし
まあ現代的な言語では内部/外部イテレータの両方をサポートしているのが普通

この点においてRubyは別に変わった言語ではない

Rubyが面白いのは
・イテレータと呼ばれていた反復手法に高階関数という解釈を与え、自由度を高めた
・関数引数が一つの場合に特化した糖衣構文をブロックという形で提供した
(イテレート目的で使われることが多かったので、昔のRubyではブロック構文のことをイテレータと読んだ)

これがポイントであって、uyのイテレータ馬鹿は完全に論点を外してる
343デフォルトの名無しさん:2012/01/31(火) 11:03:32.03
break/continueみたいなフロー制御は手続き型のforループでは常用されるけど、
内部イテレータがモデルにしてる高階関数での反復計算ではそうではないよね
(基本抜けられなくて、どうしても抜けたければ例外を使いなさいみたいなことが多い)

こうした途中脱出的な手続き構文をサポートするためかどうか知らないけど
Rubyのブロックやその眷属は結構トリッキーなものになっているように見える

あと、RubyのブロックやPythonの内包表記の変数のスコープはリークするんだっけ?
344デフォルトの名無しさん:2012/01/31(火) 21:49:12.70
>>342
>まあ現代的な言語では内部/外部イテレータの両方をサポートしているのが普通
何をもって内部イテレータと呼ぶかだよなあ。
たんに関数オブジェクトを渡すだけならいろんな言語で内部イテレータをサポートできるけど、
Rubyの場合はbreakやcontinueができるから内部イテレータと言えるのであって、
それができない(あるいは例外処理とかでお茶を濁している)言語では、内部イテレータと呼ぶのは違和感ある。
内部イテレータと同じようなことができる、というだけなら同意。

>Rubyが面白いのは
>・イテレータと呼ばれていた反復手法に高階関数という解釈を与え、自由度を高めた
>・関数引数が一つの場合に特化した糖衣構文をブロックという形で提供した
>(イテレート目的で使われることが多かったので、昔のRubyではブロック構文のことをイテレータと読んだ)
>
>これがポイントであって、uyのイテレータ馬鹿は完全に論点を外してる

ここらへんはその通りだと思う。最後の行も含めて。
345デフォルトの名無しさん:2012/01/31(火) 22:12:53.93
Rubyのブロックの引数は
Ver1.8までは外側の同名変数を共有してましたが
1.9からは遮蔽するようになりました
ブロック引数の名前が外側の変数と被ってなければ
そのスコープはブロック内に限られます
10.times{|i| i }
print i # => エラー
外側の変数と被ると
i = 999
10.times{|i| i }
print i # => 1.8までは 9 1.9以降は 999


(よく知りませんが)Pythonはちょろっと試したところだと
Ver2.7では、リスト内包表記はスコープを作らず外側と共有
3からは スコープを作って外側の変数を遮蔽

[i for i in range(10)]
print(i) # 2.7だと9 3以降だとエラー

外側の変数と被ると
i = 999
[i for i in range(10)]
print(i) # 2.7だと 9 3以降だとだと999

ジェネレーター式は2.7でも3でもスコープを作って外部変数を遮蔽

346デフォルトの名無しさん:2012/01/31(火) 22:31:48.91
rubyやpythonにはこんな落とし穴はあるのかな?
http://blog.practical-scheme.net/shiro/20060110-for
と思って、pythonで書いてみた。あまり知らないので間違っているかも。

>>> f = [lambda : i for i in range(10)]
>>> [g() for g in f]
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9]
347デフォルトの名無しさん:2012/01/31(火) 22:40:38.32
python3.2では>>346の示した結果になった。
>>346はどのpythonで実行したの?
348346:2012/01/31(火) 23:03:36.15
>>347
2.7.2

>>346 で提示したページもよく分かっていないで話を投げたのだけれど、
2系と3系では意味が異なるのかなあ?
349デフォルトの名無しさん:2012/01/31(火) 23:33:04.02
Rubyのブロック変数は各ループごとでの共有はしていないので
f = 10.times.map{|i| lambda{i}}
f.map{|g| g.call} # => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
ブロックってのは関数を渡して、毎ループごとにそれを呼び出してるようなものだから
ループごとのiは別もの、その別々のiをクロージャーが閉じ込めてる

ただ、1.8までだとブロック変数が外部と被ってると、ループごとのiがすべて同じになるので
i=0
f = 10.times.map{|i| lambda{i}}
f.map{|g| g.call}
1.8だと [9, 9, 9, 9, 9, 9, 9, 9, 9, 9]
さらに
i=10
f.map{|g| g.call}
などと、続けると 当然[10, 10, 10, 10, 10, 10, 10, 10, 10, 10]に

1.9だと遮蔽されてるのでどちらも [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
350デフォルトの名無しさん:2012/01/31(火) 23:37:37.05
Pythonでは内包表記ではループ変数は共有されるんだね
f = [lambda : i for i in range(10)]
print( [g() for g in f] )
i = 10
print( [g() for g in f] )

Python 3だと
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9]
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9]

Python 2だとスコープがもれるので
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9]
[10, 10, 10, 10, 10, 10, 10, 10, 10, 10]
351346:2012/01/31(火) 23:49:13.98
こうすればいけるのか。
f = [(lambda x: (lambda : x))(i) for i in range(10)]
352デフォルトの名無しさん:2012/02/01(水) 08:10:53.25
素直にジェネレータ式を使うべき

f = (lambda : i for i in range(10))
[g() for g in f]
353デフォルトの名無しさん:2012/02/01(水) 21:03:01.10
>>352
こうなる

f = ( lambda : i for i in range(10))
a = [ g for g in f]
print( [g() for g in a ] )

[9, 9, 9, 9, 9, 9, 9, 9, 9, 9]
354デフォルトの名無しさん:2012/02/01(水) 21:09:07.55
lamdbaの入れ子はわかりにくいから
可読性を考えて、こうするのがいいんじゃね

def gen(x):
  def _gen():
    return x
  return _gen

f = [gen(x) for x in range(0, 10)]
355デフォルトの名無しさん:2012/02/02(木) 00:35:02.88
このスレの話題RubyとPythonとPHPばっかりなんだけど、
CとPerlとJavaScriptをずっと使い続けてきてる俺は
このスレ的にはどんな存在なの?
356デフォルトの名無しさん:2012/02/02(木) 00:55:53.91
話題がなければその時は話に上らないだけで
スレ的にはあーだこーだ書いてもぜんぜん問題ない
357デフォルトの名無しさん:2012/02/02(木) 00:59:26.43
引数が増えてるからエラーに弱くなってるけど、自分ならこうする

f = (lambda i=i: i for i in range(10))
358デフォルトの名無しさん:2012/02/02(木) 01:19:24.97
本気でlambdaのリストを得たいわけじゃなくて
気をつけなければならないことがあるねって話でしょ

Pythonだと似たようなので、関数のデフォルト値とか

そもそものリンク先の話は
「プログラマが気をつけなければならないのはわずらわしいね」
って話?
359デフォルトの名無しさん:2012/02/03(金) 19:02:07.94
__call__使うのもいいな

class Func(object):
  def __init__(self, num):
    self.num = num
  def __call__(self):
    return self.num
360デフォルトの名無しさん:2012/02/03(金) 21:13:01.54
動的言語で一番速いのはどれだ
http://www.anlyznews.com/2011/02/objective-c.html
361デフォルトの名無しさん:2012/02/03(金) 21:18:09.88
Javaだろうな
362デフォルトの名無しさん:2012/02/03(金) 22:24:00.00
動的言語限定ならdynamics C#が圧倒だろ
363デフォルトの名無しさん:2012/02/03(金) 22:27:17.45
次点でPhalanger
364デフォルトの名無しさん:2012/02/03(金) 22:45:36.10
schemeだろ
365デフォルトの名無しさん:2012/02/03(金) 22:53:40.90
>>364
あほ?
366デフォルトの名無しさん:2012/02/03(金) 23:32:29.57
>>365
schemeより早い動的言語あるの?
367デフォルトの名無しさん:2012/02/04(土) 00:03:07.69
>>366
あほ?
368デフォルトの名無しさん:2012/02/04(土) 01:02:11.07
>>360
こういう比較はやっちゃダメです、っていう見本みたいな記事だな
369デフォルトの名無しさん:2012/02/04(土) 01:14:20.55
>>367
何があほなの?
370デフォルトの名無しさん:2012/02/04(土) 01:21:24.97
schemeは仕様だから実装によって違うだろうなあ。
それにそもそも速そうな仕様でもないし、仕様の中にオブジェクトシステムがない。
371デフォルトの名無しさん:2012/02/04(土) 01:23:56.61
>>370
動的言語ではあるだろ
372デフォルトの名無しさん:2012/02/04(土) 01:29:58.82
schmeは仕様ならC++やPythonやJavaも仕様
仕様がないRubyだって処理系はひとつじゃない
373デフォルトの名無しさん:2012/02/04(土) 01:33:55.03
scheme処理系で一時期話題だったstalinってやつは
どこまで頑張るのかなあ?

>>372
Rubyは最近、最低限の仕様がJISで規格化された
374デフォルトの名無しさん:2012/02/04(土) 05:09:31.26
KARAの日本での活動を担当するマネージャーが、在日本朝鮮人総連合会(以下、朝鮮総連)の
所属であるという主張が提起されるなか、所属事務所側が正確な事実を確認している。

所属事務所DSPメディア側は3日、「物議をかもしている男性は、KARAの日本での活動を任されて
いるDSP JAPANの職員で、スケジュールマネージャーを担当している。活動に支障はないと思うが、
物議をかもしているので、事実かどうかを確認している」と説明した。
この関係者は、「韓国での活動には問題はないが、日本で主に右翼傾向の強い方々が疑惑を
提起していると見られる。最近、嫌韓流が強くなり、日本のファンの間でこのような話がさらに
大きくなっているようだ。まず該当の男性が朝鮮総連なのか確認した後、さまざまな状況と
今後の計画を検討し、立場を明らかにする」と話した。

これに先立ち、ある日本のオンラインコミュニティには、KARAの日本での活動に同行した男性が、
2006年11月に警視庁の朝鮮総連本部強制捜査を妨害した人物と同一だという疑惑が提起された。
特にネットユーザーたちはKARAの日本での活動途中のこの男性の写真と、警視庁の
朝鮮総連本部の強制捜査当時の男性の姿を比較して掲載した。
(以下略)

リンク先に全文
http://www.kstarnews.jp/news/viewContents/entame/1304652257

http://engawa.2ch.net/test/read.cgi/poverty/1328289808/9


検証画像
http://inspire.iza.ne.jp/images/user/20120127/1696540.jpg
375デフォルトの名無しさん:2012/02/05(日) 06:00:00.89
PHPが圧倒的に人気。
ソースはGoogle Trend
http://www.google.co.jp/trends/?q=ruby,+python,+php,+perl
376デフォルトの名無しさん:2012/02/05(日) 10:31:25.88
レガシーなPHPが使われたHPが、
まだ生き残っているからしょうがないな


377デフォルトの名無しさん:2012/02/05(日) 18:40:22.92
PHPを使った事無い俺には
お前等が何でPHPを目の敵にするのか分からん
378デフォルトの名無しさん:2012/02/05(日) 18:42:02.60
Rubyの教祖がPHPを目の敵にするから
下々の者も右へならへでPHPを目の敵にしてる
379デフォルトの名無しさん:2012/02/06(月) 00:36:11.62
>>375
PHPとPerl爆下がりでどうみてもRubyst騙り乙だろw
380デフォルトの名無しさん:2012/02/06(月) 12:58:53.83
>>377
PHPは悪くない。
問題は暴れるPHPer。
381デフォルトの名無しさん:2012/02/06(月) 13:27:19.11
関数の命名規則が適当だからだろ
382デフォルトの名無しさん:2012/02/06(月) 13:31:02.59
>>375
ウェブ系のトレンドじゃpythonよかrubyの方が伸びてるのな
数値計算やら科学技術計算のライブラリはrubyじゃ全然なわけだが
383デフォルトの名無しさん:2012/02/06(月) 13:46:33.49
PHPは初心者をいち早く実戦投入するのに最適な言語だからな
驚くぐらいレベルの低いプログラマが多い

誤解してはいけないのはプログラム言語それ自身と
プログラマーの能力はまったく無関係だってことだ

PHPを仕事で使っているプログラマーでも優秀なプログラマーは
たくさんいるし、すごそうな言語を使っているだけの無能プログラマー
もたくさんいる

「〇〇を使っている俺すごい、PHPを使っているお前より上だから」
みたいなこというバカは多いけど
384デフォルトの名無しさん:2012/02/06(月) 14:39:29.89
PHPってだけで、web系だって業務の幅が分かるもんじゃないの?
Matlab,Rみたく統計解析したり、関数型でパーサーみたいなもの書いたり、
そういうのと皆無で、ずらずらと手続きを並べながら、セキュリティに気配ってるだけのイメージ
385デフォルトの名無しさん:2012/02/06(月) 14:58:16.56
「そういうのと皆無で」とか言っちゃう雑魚がおナマ言ってんなよw
386デフォルトの名無しさん:2012/02/06(月) 17:43:03.22
PHPやってて、なんか違うってので
Ruby on Railsで作り直してて
それでもなんか違うってPHPに戻ったら

Ruby on Railsでの経験や考え方を学んだことにより
PHPでも以前よりスマートに書けた
ってブログをだいぶ昔に読んだな
387デフォルトの名無しさん:2012/02/06(月) 17:46:02.61
PHP以外ならなんでもいいんだよ
PHPの考え方はかなり歪んでいる

他の言語でも言えることだけれど
388デフォルトの名無しさん:2012/02/06(月) 21:04:32.26
>>384
他の言語は何系の業務で使われてんの?
389デフォルトの名無しさん:2012/02/07(火) 05:28:38.68
>>377
現場をしらない趣味グラマーだらけだから
390デフォルトの名無しさん:2012/02/08(水) 00:10:09.36
>>384
セキュリティに気をくばってればいいけどなあ。
391デフォルトの名無しさん:2012/02/08(水) 00:18:41.62
>>389
趣味グラマーがわざわざPHPを使うわけないだろ
392デフォルトの名無しさん:2012/02/08(水) 00:30:29.79
おれのPHPのソースコードは、きたなくて、ひとにみせられないよ
393デフォルトの名無しさん:2012/02/08(水) 01:31:08.86
394デフォルトの名無しさん:2012/02/08(水) 02:23:17.12
>>393
あーやっぱり素人が作った、しかもPHPごときではこの程度か…
もうすぐこのスレでPerl,Ruby,Pythonのプロがすげーもん見せてくれるぜ
395デフォルトの名無しさん:2012/02/08(水) 02:56:49.35
知ってるか?
宣伝するのは本人だけって
396デフォルトの名無しさん:2012/02/08(水) 02:58:53.11
趣味グラマーがPHPに惹かれない理由は、単純にワクワクしないからだろう
なんか初心者向けのようなチープさがあって、凄いオモチャで遊んでるという高揚感が得られないから
397デフォルトの名無しさん:2012/02/08(水) 07:36:58.64
>>391
だから目の敵にしてるって意味じゃないの?
398デフォルトの名無しさん:2012/02/08(水) 11:46:43.39
ActivePerlなどでインストールが簡単なら初心者向きだが、PHPのインストールは、たいへんでわ?
パソコンの初心者がApache2.2いれるか? おっかなびっくり
399デフォルトの名無しさん:2012/02/08(水) 12:07:56.52
最近はXamppあるしなぁ
400デフォルトの名無しさん:2012/02/08(水) 12:39:04.38
初心者のためにPHPで作ったサーバー、ダウンロード後好きな場所にZIP解凍したら無設定で即開始できます
PHPバージョンは、PHP-5.3.10
http://hirata-create.cocolog-nifty.com/blog/HC-LocalServer.html

初心者のためのRADツール、WindowsのGUIスタンドアロンが簡単に作れる
PHPバージョンは、PHP-5.3.10
http://hirata-create.cocolog-nifty.com/blog/HC-wbRadStudio.html
401デフォルトの名無しさん:2012/02/08(水) 12:44:40.08
今となっては、Phalangerでいいな
原始の海は、とっくに過ぎ去った
402デフォルトの名無しさん:2012/02/08(水) 14:06:40.22
LL言語童貞なボクですが、このスレをみてPythonからはじめる決意ができました。

みなさんも不毛な議論はやめてシコシコ頑張りましょうね!
403デフォルトの名無しさん:2012/02/08(水) 16:55:54.82
Perlの入門書読んでるけどこのスレ的には(板もか?)
今から始めるならPythonかRubyらしいね
404デフォルトの名無しさん:2012/02/08(水) 16:58:46.89
スレ的にはっつーか世の中の大部分がそう
405デフォルトの名無しさん:2012/02/08(水) 17:14:52.56
なんか必死だねwww
406デフォルトの名無しさん:2012/02/08(水) 17:17:07.66
PythonかRubyかは好みの問題だけど、仕事で必要じゃない限りPerlやPHPみたいな過去の異物に触れる必要はない
407デフォルトの名無しさん:2012/02/08(水) 18:17:34.83
まとめるとPerl最高ってことか
408デフォルトの名無しさん:2012/02/08(水) 18:20:06.90
んだな
まあとりあえず全部ひととおり触ってみるといいとおもうよ
409デフォルトの名無しさん:2012/02/08(水) 18:24:02.46
ぷっ、クスクス…クスクス
410デフォルトの名無しさん:2012/02/08(水) 19:16:26.75
>>406
>PythonかRubyかは好みの問題だけど、仕事で必要じゃない限りPerlやPHPみたいな過去の異物に触れる必要はない
コレが趣味グラマーかwww
411デフォルトの名無しさん:2012/02/08(水) 19:22:38.77
仕事で必要なのだぁ
412デフォルトの名無しさん:2012/02/08(水) 19:37:10.24
というか現在のPerlやPHPはJavaやCOBOLなんかと同じ「業務言語」だろ
趣味で使う人がCOBOL選ばないのと似たような理屈で、PerlやPHPを選ぶ理由はない

プロユースだと認められてるんだから喜べばいいのに、嬉しくないなんてもしかして働いてないのか?
413デフォルトの名無しさん:2012/02/08(水) 20:09:31.79
仕事なら尚更Pythonにすべき
414デフォルトの名無しさん:2012/02/08(水) 20:43:32.15
すべきと言われてもなあ....
実際、Pythonは仕事じゃ使われていない訳で (>>40,41)
415デフォルトの名無しさん:2012/02/08(水) 20:45:17.81
いや、他人がどうとか関係ないじゃん。自分が使うと決めれば使えるだろ
416デフォルトの名無しさん:2012/02/08(水) 20:47:10.61
Python - Wikipedia

Pythonはおもに欧米の企業でよく使われている。大企業ではマイクロソフトやアップルなどのパッケージソフトウェア企業をはじめ、
Google、Yahoo!、YouTube などの企業も利用している[4]。
また携帯電話メーカーのNokiaでは、S60シリーズで Python アプリケーションが動く[5]。
研究機関では、NASA[4]や日本の高エネルギー加速器研究機構[6]でPythonが使われている。
適応範囲はWebプログラミング、GUIベースのアプリケーション、CAD、3Dモデリング、数式処理など幅広い分野に及ぶ。
さらにスクリプト言語としての特性から、従来Perlやシェルスクリプトが用いられることの多かったシステム管理用のスクリプトとして
採用しているOSも複数ある。また、多くの異なる言語で書かれたモジュールをまとめるグルー言語としての利用例も多い。
実際、多くの商用アプリケーションで Python は組み込みのスクリプト言語として採用されている。
417デフォルトの名無しさん:2012/02/08(水) 20:48:52.61
日本人は隣の人が使ってるのを使いたがるからPHP信者ばかりになってしまったんだろう
418デフォルトの名無しさん:2012/02/08(水) 20:50:31.13
自分が使うということならば、その人が好きな言語(LL)を自由に選べばいい訳で....
Pythonの「押しつけ(....すべき論)」は無用だろ
419デフォルトの名無しさん:2012/02/08(水) 20:51:41.23
自分が使うなら、Pythonを使うべきだと思うが
420デフォルトの名無しさん:2012/02/08(水) 20:51:54.98
前にも書いたがPythonさんは排他的だから
421デフォルトの名無しさん:2012/02/08(水) 20:54:07.32
>>416
Wikipedia記事のコピペは無駄だろ、リンクだけで十分
そんなにPythonが好きなら、自分の言葉で語れやw
422デフォルトの名無しさん:2012/02/08(水) 20:57:19.46
なんでそんなにイラついてるんだろう。該当箇所をコピペしてるだけだろう
423デフォルトの名無しさん:2012/02/08(水) 21:16:31.84
まあ、少なくとも日本でPythonの求人はほぼゼロなのは確か
COBOLのほうがずっとある
424デフォルトの名無しさん:2012/02/08(水) 21:18:59.18
だからCOBOLやろうとはならんだろ
425416:2012/02/08(水) 21:25:01.24
自分はPHP押しだが。C言語的な言語はPHPだろ。
業界のスタンダードな言語はC言語系統だろ。
なんで文法的に昔からあるなじみのあるやつ使わないのか判らん。
426デフォルトの名無しさん:2012/02/08(水) 21:27:12.13
pythonやrubyだって十分C言語に近いだろ
427デフォルトの名無しさん:2012/02/08(水) 21:29:54.15
だから(いくら海外で使われていても)Python使おうとはならん、とも言えるよね

Python使うべき論者は、その(技術的な)理由を具体的に書いて欲しいな
単なる押し売りは、かえって周囲の反発をまねくだけだと思う
428デフォルトの名無しさん:2012/02/08(水) 21:40:55.55
別に海外で使われてるからという理由でPythonを使うべきと言ってるわけじゃないだろ
ただ海外で使われてる理由はCOBOLが使われてる理由よりは勧めるファクターにはなるだろうね
429デフォルトの名無しさん:2012/02/08(水) 21:49:21.42
>>428
>ただ海外で使われてる理由はCOBOLが使われてる理由よりは勧めるファクターにはなるだろうね

なぜ海外で使われていることが薦める要因になるのだろう?
いわゆる日本人の特に年配者によくある「舶来信仰」みたいなものなのかね
トヨタ/ニッサンよりもジャグァー/メルセデス、みたいなw
430デフォルトの名無しさん:2012/02/08(水) 21:51:58.67
>>429
海外で使われてるという事実が、じゃないよ

なんで海外がPythonを選んでるのか、それはCOBLが使われている理由より合理的なものだろ
431デフォルトの名無しさん:2012/02/08(水) 21:53:49.60
その合理的な理由というのをkwsk
432デフォルトの名無しさん:2012/02/08(水) 21:54:05.34
できる事に大差は無いと思う。安定性、リソース消費量での判断か。
433デフォルトの名無しさん:2012/02/08(水) 21:55:30.05
Javascriptさんはどうなの?

っていうか、誰か擬人化で例えてくれww
Javascriptさんは長門有希みたいなイメージだな
控えめだけどなんでもこなすみたいなとこが
教科書にも控えめにって書いてあるしな
434デフォルトの名無しさん:2012/02/08(水) 21:55:44.21
COBOLの仕事があってもCOBOLを使おうとはならないってことだ
435デフォルトの名無しさん:2012/02/08(水) 21:56:59.54
日本人ならRuby
436デフォルトの名無しさん:2012/02/08(水) 22:00:25.95
むかーし、Cが流行したころ、Cなら、かきかたが自由だからすき
というひとがいた(もちろん、アマチュア)
ところが、Pythonでかくと、だれがかいてもにたようなソースコードになる
というひとがいる(仕事なら、他人のソースコードを保守しなければなりないから
よみやすくて好都合)
437デフォルトの名無しさん:2012/02/08(水) 22:00:55.57
Rubyたんは黒髪、巨乳、ヤンデレだな
438デフォルトの名無しさん:2012/02/08(水) 22:03:56.30
>>434
やっぱり日本人、特に年配者に特有の「精神論」でしかないみたいだねw

>>435
日本人というよりも、日本語で書かれた書籍/情報が
初心者から熟練者という広い範囲で豊富に揃っているといのは、
Rubyお薦めの大きな要因になると思う
439デフォルトの名無しさん:2012/02/08(水) 22:06:39.79
>>436
>仕事なら、他人のソースコードを保守しなければなりないからよみやすくて好都合

ところが、なぜか仕事ではPythonが使われない
なんでだろねw
440デフォルトの名無しさん:2012/02/08(水) 22:08:11.11
>>439
精神論がまかり通ってるから
441デフォルトの名無しさん:2012/02/08(水) 22:08:30.67
リリースするときに整形ツールのオプションを統一したら何言語でも同じようになるが。
442デフォルトの名無しさん:2012/02/08(水) 22:10:46.08
>>437
Pythonたんは、規律にばかりウルサイ逝き遅れたオールドミスの数学教師かな
あれしなさい、これしなさい、いうことをききなさい、こうすべきザマス...みたいなw
443デフォルトの名無しさん:2012/02/08(水) 22:12:04.75
ものは言い様だな。python使ったことすらないことがよく分かる
444デフォルトの名無しさん:2012/02/08(水) 22:16:14.96
>>440
だよね
Python使うべきなんて精神論だけじゃ、誰もついていこうとは思わんよな
445デフォルトの名無しさん:2012/02/08(水) 22:19:51.07
>>444
精神論がまかり通ってるから、と言ってるだろ。さっきから何で文をちゃんと読まなないんだ?日本語出来ないのか?
446デフォルトの名無しさん:2012/02/08(水) 22:29:57.96
>>442
PHPはアホの子だけどみんなの人気者って感じだな
\\アッカリーン/
447デフォルトの名無しさん:2012/02/08(水) 22:34:49.54
perlは関西弁だな
口達者だからなんとでも言い換えられる
そしてお金$が大好き
448デフォルトの名無しさん:2012/02/08(水) 22:36:16.45
擬人化寒い。嫌いな言語への悪意が隠しきれてない
449デフォルトの名無しさん:2012/02/08(水) 22:59:46.02
海外で使われてるから使うってことは
別にありがたがってるわけでもないだろ
英語だって海外で一番使われるから
覚えたほうがいいし
450デフォルトの名無しさん:2012/02/08(水) 23:09:51.45
かといって英語を押し付けるのは違う
それと自分で評価できるようになるべき
451デフォルトの名無しさん:2012/02/08(水) 23:12:43.69
意味不明。英語が出来ない奴はカス
452デフォルトの名無しさん:2012/02/08(水) 23:13:47.68
いや多様性を認められない奴がカス
453デフォルトの名無しさん:2012/02/08(水) 23:14:32.23
英語が出来ないことのメリットって何?馬鹿も休み休み言えよ
454デフォルトの名無しさん:2012/02/08(水) 23:15:58.28
いや英語ができないとは一言も言っていない
やりたくない奴に押し付けんなといってる
455デフォルトの名無しさん:2012/02/08(水) 23:18:39.97
良し悪しは別にグローバル化の流れを軽視して生き残れると思ってるお花畑は
確かにCOBOLくらいしか選択肢ないわな。あえて流れに取り残されるというニッチな選択も一種の多様性か
自分の好きな事だけやれば良いなんて子供みたいな主張がまかり通るわけないじゃん
456デフォルトの名無しさん:2012/02/08(水) 23:18:42.78
>>445
だから「Python使うべき」という精神論がまかり通ってるという話だろ
それを精神論と言われたくなければ、Pythonの技術的な課題を具体的に説明しないとね

>>449
>英語だって海外で一番使われるから覚えたほうがいいし

だから、さっきから「ナゼ海外で使われている」ことが
Pythonお薦めの理由になるのかを何度も何度も質問しているのだが....
実生活面では、海外就職/転職志望者を除くと、>>40,41で指摘されているように
Pythonを学んでも就職/転職に優位とはならない(ムダとまでは言わんがね)
他に何か根拠があるのかな?
457デフォルトの名無しさん:2012/02/08(水) 23:20:45.06
そもそもPythonが英語のごとく、そんなに使われているように思えんのだが
458デフォルトの名無しさん:2012/02/08(水) 23:21:12.15
>>456
いや、その精神論は明らかにまかり通ってないだろ
まかり通ってる精神論は、お前の精神論だよ
459デフォルトの名無しさん:2012/02/08(水) 23:22:44.47
linux標準だから使わない手はないだろ。Emacs使う時Lispを覚えるのと同じ
460デフォルトの名無しさん:2012/02/08(水) 23:32:26.47
ちなみにRubyの場合だと、>>438下段で書いたように
日本語で書かれた書籍/情報が豊富に揃っているから
初心者卒業級くらいまでは日本語だけでも通用する

でも、それより技術レベルを上げようと思ったら、英語の読解力が必要
たとえば自分が必要なライブラリを探すのも、
英語ができれば(他人に頼らず)自分で調べることができる
Railsに至っては、最新版に追従していくなら英語力は必須といってもよい

グローバル化の流れの中で、英語が必須なのはPythonだけじゃないんだよん
まぁ、ごく当たり前で常識的な話だよね
461デフォルトの名無しさん:2012/02/08(水) 23:37:16.86
>>459
もちろん(Pythonで書かれた)Linuxのツールは使うよ
でもそれがCで書いてあろうがPerl/Pythonであろうが関係ないね
必要なのは(ツールの記述言語ではなく)ツールの機能だから

また、同じ理屈であれば、Webの世界はPHPが主流でRailsも増えつつあるのが
現実の状況だから、Web利用者は(Pythonではなく)PHPやRubyを使うべきとなるのでは?
462デフォルトの名無しさん:2012/02/08(水) 23:42:01.74
グローバル化云々でどうこういうなら今ならJavaScriptかも
というかグローバル化ってw
463デフォルトの名無しさん:2012/02/08(水) 23:42:49.13
>>458
だから、何度も書いているけど、
Python信者は具体的な理由を説明せずに(説明できずに?)
「Pythonを使うべき」ばかり主張しているよ

それを精神論と言わず何と言うのだろうか?
464デフォルトの名無しさん:2012/02/08(水) 23:43:27.47
>>463
宗教
465デフォルトの名無しさん:2012/02/08(水) 23:53:46.26
pythonが便利だからでしょ。なんでも良いならアセンブラ使えば良いじゃん
でも便利なのがあればそれを使う。それだけ
466デフォルトの名無しさん:2012/02/08(水) 23:56:45.65
>>462
JavaScriptはデファクトスタンダード化してるアレだけど
海外で使われているものは使ってはいけないという宗教の方が怖いな
467デフォルトの名無しさん:2012/02/08(水) 23:59:20.80
精神論(古くさい根性論)がまかり通ってるせいで
(最新の)パイソンが流行らない
みたいな意味でしょ
468デフォルトの名無しさん:2012/02/09(木) 00:01:09.06
日本のプログラミングコミュニティは可哀想なくらいショボいから
海外のコミュニティを重視すべきなのは確定的に明らか
469デフォルトの名無しさん:2012/02/09(木) 00:02:48.10
なぜMITもUCバークレーもPythonを使うのか
下らない精神論に違いない
470デフォルトの名無しさん:2012/02/09(木) 00:04:17.96
全然Python薦めてる人から技術的な話が出てこない
471デフォルトの名無しさん:2012/02/09(木) 00:05:19.28
相手のレベルに合わせてるんだろう
472デフォルトの名無しさん:2012/02/09(木) 00:06:40.60
PHPこそ普及率しか自慢できる所がない
そして、他の言語好きから必ず馬鹿にされているのがPHP
473デフォルトの名無しさん:2012/02/09(木) 00:11:25.29
技術偏重の人はユーザビリティを理解していないし
多分、使い方が決まっていることを悪いことだと思ってる
474デフォルトの名無しさん:2012/02/09(木) 00:24:00.86
>>473
例えば「オブジェクト指向」の定義をPythonで決められるなら良いけど
現実には、OOにclassは必須かどうかすら決まっていない
だからOOを避けて通りやすいPHPなんかが流行るんじゃないかね
475デフォルトの名無しさん:2012/02/09(木) 00:25:58.59
いやpythonもclassやOO必須じゃねえしw
476デフォルトの名無しさん:2012/02/09(木) 00:34:06.68
>>465
だから(他のLLと比較して)Pythonの何が便利かをkwsk

>>466
誰も使ってはいけないとは言っていないと思うけどな
日本語が不自由なお人かな?
逆に「Pythonを使うべき」と押し付けているのはPython信者だけ

>>467
その(他のLLと比較して)Pythonの何が最新なのかをkwsk

>>468
添削

X: 日本のプログラミングコミュニティは可哀想なくらいショボいから
O: 日本のPythonコミュニティは可哀想なくらいショボいから
  たとえばZopeコミュニティのグダグタっぷりは有名
  ちなみにRubyは日本発

>>469
年寄り臭い「舶来品信仰」ですか?
477デフォルトの名無しさん:2012/02/09(木) 00:38:37.33
>>475
使い方が決まっていることが良いことだとするなら、むしろ必須にしないとダメだろ
478デフォルトの名無しさん:2012/02/09(木) 00:39:20.80
MITやUCバークレーがPythonを使うのは「舶来品信仰」という理由だったのかあw
さすが日本発()のRubyを一押ししてる人の意見は一味違うなあ
479デフォルトの名無しさん:2012/02/09(木) 00:40:38.16
>>477
程度問題だろ。Pythonはそのバランスがいいというだけ
技術至上主義の人には一生理解出来ないだろうけど
480デフォルトの名無しさん:2012/02/09(木) 00:48:13.62
技術を理解したいのか、素人の心理を理解したいのかの違いかな
481デフォルトの名無しさん:2012/02/09(木) 00:51:50.98
>>478
Pythonを薦める理由が「MITもUCバークレーもPythonを使う」という話だから、
それって舶来品信仰だよね、という指摘なんだけど
頭悪いのかな?
482デフォルトの名無しさん:2012/02/09(木) 00:52:54.06
>>481
MITやUCバークレーは理屈なき精神論でPythonを選んだのかな
483デフォルトの名無しさん:2012/02/09(木) 00:56:22.26
勝ち馬に乗るべき
「ドマイナー言語は使うべきではない」これは正しい精神論
484デフォルトの名無しさん:2012/02/09(木) 00:57:00.18
MITとかがPython選んだって何の話かと思ったら、教育用言語ってことね
そんなことで使う言語決めてんの?
485デフォルトの名無しさん:2012/02/09(木) 01:03:21.45
教育用とはまた短絡的な言葉だな
まあいいや。じゃあ、何によって使う言語を決めるの?
486デフォルトの名無しさん:2012/02/09(木) 01:08:52.84
>>482
さて、自分はPythonに詳しくないので知りませぬ
その理由を語るべきは、Python支持派ではないかと考えます

>>483
レミングのように?w
バブル時代の発想だね
487デフォルトの名無しさん:2012/02/09(木) 01:10:08.69
生産性、リソース使用量。
488デフォルトの名無しさん:2012/02/09(木) 01:12:34.92
今度はバブルだって。自分こそ論理性の欠片もない印象誘導だけじゃん
489デフォルトの名無しさん:2012/02/09(木) 01:16:30.66
「日本でPythonが流行らない」のは日本人プログラマのレベルが世界的に見てはるかに劣ってるからだろう
強いて言えば自省がない
そういう人たちには言葉を尽くしても無駄
490デフォルトの名無しさん:2012/02/09(木) 01:25:28.12
>>489
>日本人プログラマのレベルが世界的に見てはるかに劣ってるから

だよねえ、自分もそう思っていた時期はあったんだ
どうせRubyなんて極東の島国のそれも片田舎で生まれた超マイナー言語だし、
こんなのを好むのはかなり趣味性の強いごく一部のプログラマだけだよなぁ、なんて.....

それがどういうわけか、今では世界中のプログラマに利用されているし、
中には笑っちゃうくらい熱狂的なユーザもいる
実際、Ruby関連の新しい話題は海外発であることが多いし、
るびま(Ruby Managine)も海外記事の翻訳が多くなった

どうしてこんなことになっちゃったんだろ?
491デフォルトの名無しさん:2012/02/09(木) 01:27:41.93
開き直ったか(笑)
492デフォルトの名無しさん:2012/02/09(木) 01:27:46.23
>>489
なんとも斜め上的な考え方だねえ
493デフォルトの名無しさん:2012/02/09(木) 01:31:28.39
結局技術的優位性はないんか
494デフォルトの名無しさん:2012/02/09(木) 01:34:22.43
>>490
結局海外信者じゃん
日本が糞だから相対的に海外で盛り上がってるように見えるだけで
全体としては取り立てて言うほど凄くねえよ

>>493
技術が全て横並びなら、コミュニティでぱいそんの圧勝だけどな
495デフォルトの名無しさん:2012/02/09(木) 01:41:01.50
>>490
わろす
496デフォルトの名無しさん:2012/02/09(木) 02:00:31.05
>>494
>結局海外信者じゃん

なんでそんな風に認識しちゃうんだろ?w
>>490で書いた「かなり趣味性の強いごく一部のプログラマ」には、
もちろん自分も含めているよ
当時を振り返ると、現在のRubyの全世界的な展開が以外だったというだけ

あとRuby本体もそうだけど、標準ライブラリを開発した作者達も日本人であり、
それらを含めてRubyが世界に認められたという事実を見落とさないでほしいな
497496:2012/02/09(木) 02:01:50.97
訂正

X: 以外だったというだけ
O: 意外だったというだけ
498489:2012/02/09(木) 02:06:28.03
Rubyの話なんかしてないのに
499デフォルトの名無しさん:2012/02/09(木) 02:20:17.92
>>494
>技術が全て横並びなら、

さて、はたして技術面で横並びだろうか?
たとえば前スレ(昨年の年末)で議論された関数型プログラミングの話題だけど、結論は
「RubyおよびHaskellとMLでは簡潔に書けるコードが、
 Pythonでは可読性が悪いコードしか書けない(Pythonでも書ける、というレベル)」
だったよね(必要であればコピペするよ)

ここだけ取り出せば「Pythonは技術的にRubyより劣る」と見なせちゃうけど、それでもいいの?
500デフォルトの名無しさん:2012/02/09(木) 02:24:27.62
関数型プログラミング自体に優位性がないのなら仕方ないよ
それなら関数型言語は素晴らしいという結論になるが、現実問題として
RubyおよびHaskellとMLはトリッキーで扱いにくい言語という烙印を押されてるだけでは
501デフォルトの名無しさん:2012/02/09(木) 02:24:29.74
>>498
日本のプログラマが糞ばかりではない事の証明がRubyの存在なんだけど

では、>>489を添削しておこう

「日本でPythonが流行らない」のは
X: 日本人プログラマのレベルが世界的に見てはるかに劣ってるからだろう
O: 日本人Pythonプログラマのレベルが世界的に見てはるかに劣ってるからだろう
502デフォルトの名無しさん:2012/02/09(木) 02:27:12.81
Rubyが流行ったのはRailsを作った外国人のおかげ
>>490でも日本人Rubyプログラマはやる気ないって言ってるじゃん
503デフォルトの名無しさん:2012/02/09(木) 02:47:25.48
PHP厨の中にはPHPは素晴らしいと本気で思っている
どうしようもないのがたくさんいるから困るよ
504デフォルトの名無しさん:2012/02/09(木) 02:57:00.72
>>502
>Rubyが流行ったのはRailsを作った外国人のおかげ

以下の事実を忘れずに

・RubyがあったからこそRailsが生まれた
・そしてPythonからはZopeが生まれたけど盛大にズッコケタ
・そして今頃になってPythonではDjangoというRailsモドキを作っている

それから、古い記事だけど

・InfoQ: Ruby「出身」2008年8月11日
 http://www.infoq.com/jp/articles/coming-from-ruby

 誰が知っていたかというと?

 (...前略)ですから、確信がないのであれば申し上げましょう。
 Rails以前にRubyが無名であった、なんてことはありません!

 Railsが出る前、Rubyは日本国外でさえも未知の存在ではありませんでした。
 Dave ThomasとAndy Huntによる『Programming Ruby』の初版が出版され、
 英語圏(母国語、非母国語に関係なく)ではRubyへの関心が初めて急激に高まりました。
 DaveとAndyは、この本が出版されるもっと前からRubyについて耳にしていたはずです。
505デフォルトの名無しさん:2012/02/09(木) 02:59:09.85
これがruby信者
506489:2012/02/09(木) 03:02:03.53
Rubyの話なんかしてないのに
507デフォルトの名無しさん:2012/02/09(木) 03:02:32.72
海外は誰が使っているのか
わからんようなマイナーなやつでも
本出てたりするからな
508デフォルトの名無しさん:2012/02/09(木) 03:04:02.15
ruby信者が必死なのだけは伝わって来るな
509デフォルトの名無しさん:2012/02/09(木) 03:14:45.44
>>506
スレタイ嫁
ここは乱入/場外乱闘ありきのLLバトルスレだ
そんなにPythonだけの話がしたいのなら、巣にお帰り
510デフォルトの名無しさん:2012/02/09(木) 03:53:13.35
>>504
RubyがなかったらPython Railsができていたと思うよ
511デフォルトの名無しさん:2012/02/09(木) 04:47:45.83
Python なら Pails だろ常考
512デフォルトの名無しさん:2012/02/09(木) 05:02:59.69
信者にも自覚はあるんだな
ttp://python.matrix.jp/columns/column2/
513デフォルトの名無しさん:2012/02/09(木) 07:59:35.59
MLもHaskellも素晴らしいが
Rubyはうんこだろ
514デフォルトの名無しさん:2012/02/09(木) 08:14:27.47
RubyかPythonか迷ってたけど、このスレ見てたらPythonをやりたくなってきました
515デフォルトの名無しさん:2012/02/09(木) 08:18:59.66
いやっいやっいや
Rubyだろ女子高生的に
516デフォルトの名無しさん:2012/02/09(木) 08:38:05.26
Rubyは信者がキモイ
517デフォルトの名無しさん:2012/02/09(木) 08:38:55.11
>>514
このスレ的には「両方やっとけ」じゃね?
518デフォルトの名無しさん:2012/02/09(木) 08:40:52.35
両方やるのが一番無意味
519デフォルトの名無しさん:2012/02/09(木) 09:01:40.92
だが敵を知らずには戦えまい
520デフォルトの名無しさん:2012/02/09(木) 09:05:43.90
「二兎追うものは一兎をも得ず」って言うじゃん
「虻蜂取らず」って言うじゃん
521デフォルトの名無しさん:2012/02/09(木) 09:07:09.27
豚にPerl
522デフォルトの名無しさん:2012/02/09(木) 09:13:30.89
蛇(Python)に睨まれたPerl
523デフォルトの名無しさん:2012/02/09(木) 11:45:36.66
>>514
沢山の人がPythonをやりたくなって始める一方、やはり沢山の人が見限って去っていく。
トレンドは去る方。
524デフォルトの名無しさん:2012/02/09(木) 12:45:43.93
Pythonのユーザ数が今のRubyくらいになる頃には
Rubyは消滅してそうだけどね
525デフォルトの名無しさん:2012/02/09(木) 12:50:32.86
いや意味がわからない
526デフォルトの名無しさん:2012/02/09(木) 13:06:16.03
Ruby信者は英語が読めない書けないで
日本語情報のあるRubyしか使えないだけ
本当に憎いのはPythonじゃなくて英語
527デフォルトの名無しさん:2012/02/09(木) 13:39:11.30
pythonの方がrubyよりもライブラリ多いって話は聞くな
世界で人気なら、世界中でライブラリ開発されるんだから、そりゃそうだ。と思ったが
528デフォルトの名無しさん:2012/02/09(木) 13:54:13.62
ライブラリを書いても言語のバージョンアップについて行かないといけないし、
どこからどこまでのバージョンをサポートするか、という観点もある。
529デフォルトの名無しさん:2012/02/09(木) 14:43:08.70
ウェブはデパートのようなもの。もうすぐ死に絶える。
当然、ウェブ系言語も死に絶える。
530デフォルトの名無しさん:2012/02/09(木) 15:17:22.11
そのまえに2ちゃんねるがなくなるべき
531デフォルトの名無しさん:2012/02/09(木) 18:54:01.60
今後、リアルタイムでの処理が求められるようになると
遅いLL言語では問題な気がするのですが大丈夫なのでしょうか?
解決策はあったりしますか?
532デフォルトの名無しさん:2012/02/09(木) 18:56:58.22
リアルタイムというのは速い遅いじゃない

以上
533デフォルトの名無しさん:2012/02/09(木) 19:22:40.78
>>532
minecraftなどのオンラインゲームのサーバーはC++が主流らしいですがLLでも可能でしょうか?
534デフォルトの名無しさん:2012/02/09(木) 19:41:14.13
リアルタイムは可能だろ。
それより通信速度に左右される。
アクセスが集中したときに捌けるかは別問題。
535デフォルトの名無しさん:2012/02/09(木) 19:47:45.30
wikipediaやFreeBSDなど、luaの株価はじわじわと上がっている
5年後の主流は静的片付けの関数型とlua.c/c++。
.netやjvmは死に体
536デフォルトの名無しさん:2012/02/09(木) 20:15:24.73
C言語で1ms以内で終わる処理が、5〜10ms掛かったところで単独で見たら体感しては判らない。
円周率計算とかCPUを使い切るようなものでは10倍時間掛かっては遅さが体感できるが。
537デフォルトの名無しさん:2012/02/09(木) 20:24:08.43
関数型とC++はいったい何に便乗しているのか
538デフォルトの名無しさん:2012/02/09(木) 20:26:35.32
建国記念の日特番「天皇とは何か?」東浩紀×猪瀬直樹
http://live.nicovideo.jp/watch/lv80888861

【会場のご案内】
2012/02/11(土) 開場:19:50 開演:20:00


「建国記念の日」とは、
建国をしのび、国を愛する心を養う「国民の祝日」。

この日はかつて、
『日本書紀』が伝える初代天皇である
神武天皇即位の日とされた「紀元節」という祝日でした。
戦後、紀元節は廃止されるも、
1966(昭和41)年には国民の祝日として復活しました。

憲法では、
日本国と日本国民統合の「象徴」と規定されている「天皇」。
その地位は、主権者たる日本国民の総意に基づき、
国政に関する権能を全く有さないはずの「象徴天皇制」。

しかし、天皇をめぐる状況は、
日本人のアイデンティティーの探求とも絡み合い、
常に政治、社会、文化的な争点であり続けています。

そこで、ニコニコ生放送では、この建国記念の日に
あらためて、天皇とは何かを考えます。

出演は、東京都副知事の猪瀬直樹氏と、
批評家・作家、『思想地図β』編集長の東浩紀氏。
司会進行は週刊朝日の山口一臣氏です。
539デフォルトの名無しさん:2012/02/09(木) 21:59:14.15
>>510
>RubyがなかったらPython Railsができていたと思うよ

革新的な発明/発見/発想に対して、後になってから
「あんなのは俺にだってできた」と語るのは三流の証(あかし)
540デフォルトの名無しさん:2012/02/09(木) 22:11:56.78
どこに俺に出来たなんて書いてあるんだよメクラ
541デフォルトの名無しさん:2012/02/09(木) 22:15:42.57
>>540
文盲かよ
ポイントは仮定の話なら負け犬の遠吠えはいくらでもできるってとこだろ
542デフォルトの名無しさん:2012/02/09(木) 22:16:41.55
じゃあRuby信者が何を言ってもそれは負け犬の遠吠えになるじゃないか
543デフォルトの名無しさん:2012/02/09(木) 22:25:06.06
>>500
前スレの関数型プログラミングの議論の中で比較対象となった例題コードは、
条件分岐と反復という極めて単純なコードだ
それにもかかわらず、Pythonでは可読性の悪いコードしか書けなかったから、
「Pythonは関数型プログラミングに適していない」という結論になった
従って、トリッキーで扱いづらいという烙印を押されたのはPythonではないのかな

それとも、>>500は関数型言語/同プログラミングそのものを
「現実問題として扱いにくいパラダイムである」と否定したいのだろうか?
544デフォルトの名無しさん:2012/02/09(木) 22:27:27.59
>>542
負け犬の遠吠えとはZopeのこと?w
545デフォルトの名無しさん:2012/02/09(木) 22:31:42.01
>>539
RubyがなかったらDHHが作ったのはPython Railsだったと思うよ
って言った方がいい?
546デフォルトの名無しさん:2012/02/09(木) 22:32:44.46
>>543
前スレ知らんのでコード貼って
547デフォルトの名無しさん:2012/02/09(木) 22:34:54.79
このスレみている限りじゃ、Pythonって癖強そうだよね。
JavaとかC#使っている人だと Ruby のほうが良さそう。
548デフォルトの名無しさん:2012/02/09(木) 22:38:44.52
Java、C#、C++などC言語ファミリーはPHP
549539:2012/02/09(木) 22:43:52.61
>>540
>>539内にある「俺」とは、別に>>540を指している訳ではない

アイデアそのものは単純であっても、それを最初に見つけることが大切であるということ
550デフォルトの名無しさん:2012/02/09(木) 23:30:38.28
>>545
横レスだけど、Pythonってクラスがオブジェクトじゃなくて
Rubyのようなメタプロはできないと理解してるんだけど違う?
(まだPython勉強したことないから詳しくないんだけど)
それだと、作れなくない?
551デフォルトの名無しさん:2012/02/09(木) 23:31:19.34
>>RubyがなかったらPython Railsができていたと思うよ

に対して、

>革新的な発明/発見/発想に対して、後になってから
>「あんなのは俺にだってできた」と語るのは三流の証(あかし)

というのはつながらないと思うんだけど。

私じゃなくてDHHがRubyではない言語でRailsを作っていただろうということを
より明確にするために、

>> RubyがなかったらDHHが作ったのはPython Railsだったと思うよ

って書いたんだ。

だれが、どこで
「あんなのは俺にだってできた」と語っていると思ったの?
「だれが」「どこで」の2点を明確にしてレスしてよ
誰も語っていないことを、語ったかのように偉そうに〜〜と語るのは三流の証
って言ったの?メクラカス
552デフォルトの名無しさん:2012/02/09(木) 23:33:51.71
>>550
Rubyと同じ実装方法ではRails作れないかもね
別の実装方法を考えるだけでしょ

Rubyと同じ実装方法でRailsを作らないと、
PythonでRailsを実装できないって考えた理由は?
553デフォルトの名無しさん:2012/02/09(木) 23:43:40.40
>>545
仮定を元にした未来予測なら、のび太くんにもできる

・DHHがRailsの開発に着手した時点で、すでにPythonは存在した
・にもかかわらず、DHHはRailsの実装言語として(Pythonではなく)Rubyを選んだ、

というのが事実だ

のび太くん、もっと現実見なよ(AA略
554デフォルトの名無しさん:2012/02/09(木) 23:45:52.50
>>552
もし表層的なIFだけ似たようなものを作るということであれば、
理論的には、どんな言語でも実装可能なんだろうなぁとは思ってるんだけど、
メタプロがないと、かなり実装が大変なことになるんじゃなかと思って
555デフォルトの名無しさん:2012/02/09(木) 23:51:48.99
>>546
お題は、二分岐/多分岐/局所宣言の3つあって、
それぞれについてRuby/Standard ML/Haskell/Pythonでコードを示す

[二分岐]
==== Ruby: 前スレ>>682(上段) ====
 ys = xs.select { |x|
   if test
     if test_1 then test_1_1 else test_1_2 end
   else
     if test_2 then test_2_1 else test_2_2 end
   end
 }
==== Standard ML: 前スレ>>772 ====
 val ys = filter (
   fn x =>
     if test x then (
       if test_1 then test_1_1 else test_1_2
     ) else (
       if test_2 then test_2_1 else test_2_2
     )
 ) xs
(続く)
556デフォルトの名無しさん:2012/02/09(木) 23:52:05.07
PHPはCに似てるっていう奴がいるけど動作がメタメタなんだよ。
よっぽど変態文法のPerlの方がCに近く感じる。
557デフォルトの名無しさん:2012/02/09(木) 23:52:14.63
あーらら、話をずらしちゃった
反論できないのかね

>>504
> 以下の事実を忘れずに
> ・RubyがあったからこそRailsが生まれた

の「Rubyがあったからこそ」はおかしいと思って、
RubyがなくてもDHHはRailsを作っていたと思うよっていうために

>>545
> RubyがなかったらDHHが作ったのはPython Railsだったと思うよ
> って言った方がいい?

って書いたんだけど、最後の反論が

> ・DHHがRailsの開発に着手した時点で、すでにPythonは存在した
> ・にもかかわらず、DHHはRailsの実装言語として(Pythonではなく)Rubyを選んだ、

これか。
「Rubyがあったからこそ」っていうのは言い過ぎだと思うよって言いたいんだけど、
反論できる?知能障害起こさず続けれる?火病起こすようなら、もう止めるよ?

自分が何を言い出したかを無視して相手を貶めようと必死ですな
558デフォルトの名無しさん:2012/02/09(木) 23:52:52.67
(>>555の続き)

==== Haskell: 前スレ>>767 ====
 ys1 = [x | x <- xs1,
     if test x then
       if test_1 then test_1_1 else test_1_2
     else
       if test_2 then test_2_1 else test_2_2
   ]
==== Python: 前スレ>>695(上段) ====
 ys = [ x for x in xs
     if (
       (test1_1 if test1 else test1_2) if test else 
       (test2_1 if test2 else test2_2)
     )
   ]

(多分岐に続く)
559デフォルトの名無しさん:2012/02/09(木) 23:58:16.75
で、

だれが、どこで
「あんなのは俺にだってできた」と語っていると思ったの?
「だれが」「どこで」の2点を明確にしてレスしてよ
誰も語っていないことを、語ったかのように偉そうに〜〜と語るのは三流の証
って言ったの?メクラカス
560デフォルトの名無しさん:2012/02/10(金) 00:00:27.07
Pythonは書き方が普通じゃないからキモくて普及しない
561デフォルトの名無しさん:2012/02/10(金) 00:03:34.84
(>>558の続き)
[多分岐]
==== Ruby: 前スレ>>719 ====
 ys = xs.select { |color|
   case color
   when :green
     true
   when :yellow
     true
   when :red
     false
   else
     raise RuntimeError
   end
 }

==== Standard ML: 前スレ>>772 ====
 datatype Color = Green | Yellow | Red
 val ys = filter (
   fn x =>
     case x of
      Green => true
     | Yellow => true
     | Red => false
 ) xs
(続く)
562デフォルトの名無しさん:2012/02/10(金) 00:04:56.67
(>>561の続き)
==== Haskell: 前スレ>>767 ====
 data Color = Green | Yellow | Red
 ys2 = [x | x <- xs2,
     case x of
       Green -> True
       Yellow -> True
       Red -> False
]


==== Python: 前スレ>>728 ====
 ys = (x for x in xs
     if {
       'green': True,
       'yellow' : True,
       'red' : False
     }[x]
   )
(局所宣言に続く)
563 忍法帖【Lv=35,xxxPT】 :2012/02/10(金) 00:05:30.63
割り込みの術
忍忍
564 忍法帖【Lv=35,xxxPT】 :2012/02/10(金) 00:06:05.80
忍忍
565デフォルトの名無しさん:2012/02/10(金) 00:06:23.43
(>>562の続き)
[局所宣言]
==== Ruby: 前スレ>>710 ====
 ys = xs.map { |x|
   h = if x.first_page? then generate_header else nil end
   b = generate_body x
   f = if x.last_page? then generate_footer else nil end

   Document.new h, b, f
 }


==== Standard ML: 前スレ>>772 ====
 datatype 'a Option = None | Some of 'a
 val ys = map (
   fn x =>
     let
       val h = if is_first_page x then generate_header else None
       val b = generate_body x
       val f = if is_last_page x then generate_footer else None
     in
       (h, b, f)
     end
 ) xs
(続く)
566デフォルトの名無しさん:2012/02/10(金) 00:07:47.10
(>>565の続き)
==== Haskell: 前スレ>>767 ====
 data Option a = None | Some a
 ys3 = [fn x | x <- xs3]
   where fn x =
     let
       h = if is_first_page x then generate_header else None
       b = generate_body x
       f = if is_last_page x then generate_footer else None
     in
       (h, b, f)


==== Python: 前スレ>>714 ====
 ys = (Document.new(h,b,f) for x in xs
   for h in [generate_header() if x.is_first_page else None]
   for b in [generate_body(x)]
   for f in [generate_footer() if x.is_last_page else None])
(これで終わり)
567デフォルトの名無しさん:2012/02/10(金) 00:54:34.24
>>557,559
あーあ、これまでは冷静なカキコだったのに、ついには感情を爆発させちゃったのね....

>「Rubyがあったからこそ」っていうのは言い過ぎだと思うよって言いたいんだけど、

であるなら、それを>>545で書けばよかった
こちらはエスパーではないんでね
>>545の仮定を元にした主張は詭弁である、と言いたかったんだけど分かってもらえなかったようだ

もちろん>>504の「RubyがあったからこそRailsが生まれた」という意見は自分の主観であるけれど、
DHH自身はその著書の中で、
・Rubyのウリは簡潔さであり、アイデアを自然な形で表現できる
・Rubyのパワーによって、Railsの設計哲学であるDRYを実践している
と語っている
いずれにせよ、「DHHが(Pythonではなく)Rubyを選んだ」という事実に変わりはない
568デフォルトの名無しさん:2012/02/10(金) 01:02:52.71
自分に都合の悪いことは見ようとしませんか

>>559>>551の最後をコピペしただけなんだけどね

やれやれ
569デフォルトの名無しさん:2012/02/10(金) 01:40:13.03
実際にコード例出しての戦いは面白いな
あんまりないけど
昔あったマルコフ連鎖の実装合戦面白かった
偉そうなこと書いてるやつがコード実際に書くとぜんぜんダメだったり
570デフォルトの名無しさん:2012/02/10(金) 01:41:51.39
マルコフ連鎖がダメって高卒かよ
571デフォルトの名無しさん:2012/02/10(金) 01:49:59.27
そこまでは知らん
572デフォルトの名無しさん:2012/02/10(金) 02:03:06.89
デバッグの補助だと、bash,awk,sedあたり。
日常的に使わざるをえないならば、構文糖衣の多いperlがいい
下手にグルーだとかウェブ系だとかドメインを広げるとかえって使い勝手が悪い件
573デフォルトの名無しさん:2012/02/10(金) 02:20:19.58
>>567
>いずれにせよ、「DHHが(Pythonではなく)Rubyを選んだ」という事実に変わりはない

DHHは自分で積極的にRubyを選んだというよりは、達人プログラマーたちに
勧められたからRubyを選んだだけ。本人がそう言っている。

ただ、PythonでもRailsが生まれたかというと、そうは思わない。
1.years.ago みたいに組み込みクラスを拡張しまくるのはPythonではできないし、
PythonにはRubyのブロックがないからDSLの設計が大きく制限される。
だから自由度の高いRubyならRailsみたいな尖ったフレームワークが作れるけど、
Pythonだとおとなしいのしかできないから、世界を席巻するようなブームは起こせなかったと思うよ。
それを考えると、>>557
> ・RubyがあったからこそRailsが生まれた
は、わりと当たってる。
そういう意味では、Zopeが世界を取れずに失速したのは、RubyじゃなくてPythonだったからと言えなくもない。

という回答でいいかな?>>552

574デフォルトの名無しさん:2012/02/10(金) 02:46:22.32
Pythonでメタプロ出来ないと思ってる人がいるみたいだけど
なんでそう思うに至ったのかの経緯に興味あるな
池沼かもな
575デフォルトの名無しさん:2012/02/10(金) 05:29:46.32
その辺の経緯は何度か紹介されてるから
ぐぐれば出るはず……と思ったら出た
いくつか検討したが、Rubyが一番しっくり来たという話らしい

http://gihyo.jp/dev/serial/01/alpha-geek/0004
576デフォルトの名無しさん:2012/02/10(金) 08:05:09.60
>>566
コピペありがとう。

ぶっちゃけ殆ど差が無い気がするけど、なんで

> 条件分岐と反復という極めて単純なコードだ
> それにもかかわらず、Pythonでは可読性の悪いコードしか書けなかったから、
> 「Pythonは関数型プログラミングに適していない」という結論になった

って結論になったん?
577デフォルトの名無しさん:2012/02/10(金) 08:29:46.36
>>574 おまえが池沼かもな
578デフォルトの名無しさん:2012/02/10(金) 08:34:45.07
>>575
ただの一個人、しかも変人、の意見じゃん。しょぼ
579デフォルトの名無しさん:2012/02/10(金) 08:37:48.75
>>576
Pythonの3項演算子ifや内包表記のfor/inは
英語が読める人には自然に読めるが、
英語に不自由でifやforをプログラミング言語でしか
使わない人には奇妙に見えるらしい
580デフォルトの名無しさん:2012/02/10(金) 08:46:48.66
>>579
そーゆー問題じゃねえんだよあの三項演算子は…

そもそも、複雑に入り組んだ文を書くと
Python含めてどのプログラミング言語も
英語的になんて読み下せないワケで
だったら英語的である必要性は薄い
581デフォルトの名無しさん:2012/02/10(金) 08:49:58.26
そんなのばっかり書いてるから平日のこんな時間に
2chしてるんだよ。。。
582デフォルトの名無しさん:2012/02/10(金) 09:09:40.28
pythonの三項演算子はむしろ書く時に頭を使わなくて良い
Cのような書き方に慣れてる人は、単に慣れだけで批判してるんだろうけど
そもそもCの三項演算子は if-then の順じゃないから不自然
583デフォルトの名無しさん:2012/02/10(金) 09:16:41.40
いやif-thenの順と言うとおかしいか。でも特にネストして書く時はpythonの方が思考の流れ的には自然
Cは条件が先行してるから : の後ろが結果なのか条件なのか決まってなくて
(結果):(結果)になったり(結果):(条件)になるのは気持ち悪い
584デフォルトの名無しさん:2012/02/10(金) 09:19:24.56
値が先行して、その後ろが常にその値に対する条件になってる方が分かりやすい、と言いかった
585デフォルトの名無しさん:2012/02/10(金) 09:40:03.97
どっちも不自然だろ

haskellみたいに、ifが式ならそれでいいのに
586デフォルトの名無しさん:2012/02/10(金) 09:44:43.28
内包表記はリスト(集合)を辿るだけだし読みやすいと思うが
587デフォルトの名無しさん:2012/02/10(金) 09:49:32.59
>>573
>ただ、PythonでもRailsが生まれたかというと、そうは思わない。
>1.years.ago みたいに組み込みクラスを拡張しまくるのはPythonではできないし、
>PythonにはRubyのブロックがないからDSLの設計が大きく制限される。

ここは同意。Railsを作れるのは、Ruby以外ならLispかSmalltalkぐらいかな。
決まりきった書き方しか許さないPythonじゃ難しいと思う。

>だから自由度の高いRubyならRailsみたいな尖ったフレームワークが作れるけど、
>Pythonだとおとなしいのしかできないから、世界を席巻するようなブームは起こせなかったと思うよ。

RoRが世界を席巻したのは事実だけど、それは技術的な要素より偶然の要素が大きいと思うなあ。
つまりは運がよかった。

と、Zope使いが負け惜しみを言ってみる。なんでZopeは世界が取れなかったんだよクソ!
588デフォルトの名無しさん:2012/02/10(金) 09:49:46.95
>>583
ネストして書く時はインデントだろ・・・
インデント強制までしたのに何やってんだよ
589デフォルトの名無しさん:2012/02/10(金) 09:51:07.99
>>588
Cみたいなのは改行インデントしないと分かりにくいってことだろ
pythonはどっちでもいい
590デフォルトの名無しさん:2012/02/10(金) 11:58:00.93
英語に不自由なRuby使い可哀想
591デフォルトの名無しさん:2012/02/10(金) 13:28:19.02
英語が不自由でも使えるに越したことはないだろ
だってここは言語の使い手を比べるスレじゃなくて
言語そのものを比べるスレなんだぜ?
592デフォルトの名無しさん:2012/02/10(金) 13:29:52.62
自然言語の話を当て嵌めようとしても無理があるでしょ
593デフォルトの名無しさん:2012/02/10(金) 13:36:28.62
技術者なのに英語も読めないカスの意見など
聞くに値しない
594デフォルトの名無しさん:2012/02/10(金) 13:56:37.57
技術者なら英語くらい読めて欲しいが
PythonもRubyもエンドユーザを考慮した言語だと思うぞ
595デフォルトの名無しさん:2012/02/10(金) 14:37:40.87
>>574
>Pythonでメタプロ出来ないと思ってる人がいるみたいだけど

だれもそんなこと言ってないと思うけど。
#Rubyと比べるとできることに限りがあるのは事実だとしても。

なんでそう思うに至ったのかの経緯に興味あるな
池沼かもな
596デフォルトの名無しさん:2012/02/10(金) 15:04:36.43
>>577
その変人という評価は、彼にとっては最大限の賞賛に等しいと思われる

変人だからこそ、周囲の常識的には人々が考えもつかなかった革新的なアイデアを考案し、
それをRails実現という形で行動に移すことができた
597デフォルトの名無しさん:2012/02/10(金) 16:21:31.32
>>593
それで、Pythonって日本語使えるのかい?
598デフォルトの名無しさん:2012/02/10(金) 18:18:28.50
てめーら中学生レベルの英語もよめねーのかよ

単語がわかんなかったらググれカスども!
599デフォルトの名無しさん:2012/02/10(金) 18:26:49.17
勝ち馬に乗るべき
マイナー単語は使うべきではない
600デフォルトの名無しさん:2012/02/10(金) 18:44:15.30
>>599
つまり、英語もどきでプログラミングしろ、と。
601デフォルトの名無しさん:2012/02/10(金) 19:25:23.73
プログラムの可読性が低いと感じるとき、
自分が英語を読めないカスだから読み難く感じるのかもしれないという
可能性を考慮した方が良いよ
602デフォルトの名無しさん:2012/02/10(金) 19:27:38.65
よし、Pythonsitaは今後英語でカキコしよう。
603デフォルトの名無しさん:2012/02/10(金) 19:59:59.45
>>602
I'm very sorry.
I was completely forgetful of the fact that 
Ruby programmers in Japan CANNOT read English.
I didn't intend to humiliate you.
604デフォルトの名無しさん:2012/02/10(金) 22:29:37.03
>>603
必死だな。そんなにRubyとRubyistを貶めたいのか。
何がPython信者をそこまで必死にさせるのだろう。
PythonじゃRailsは生まれなかったと言われたことが、そんなに気に食わなかったのか。
605デフォルトの名無しさん:2012/02/10(金) 23:25:47.62
>>604
OK. I know why you hate Python so hard.
You can learn a programming language only when
there's detailed documentation in Japanese,
but Python doesn't provide it.
However, this fact implies that you can't compare
programming languages in an equitable manner,
because your prejudices come from your English skills.

You seem to hate Python, but actually you do hate English.
606デフォルトの名無しさん:2012/02/11(土) 00:21:11.69
頭デッカチなだけのボンクラ野郎どもの会話は、くだらねーし、つまんねー
607デフォルトの名無しさん:2012/02/11(土) 00:56:59.09
>>582
それはそれで英語の書き方に慣れてるからというだけでCのような書き方を批判してない?
608デフォルトの名無しさん:2012/02/11(土) 01:24:15.30
>>607
ちゃんと後のレス読めよ
609デフォルトの名無しさん:2012/02/11(土) 01:27:54.61
>>597
特に日本ではZope信者がRuby信者以上にキモい
610デフォルトの名無しさん:2012/02/11(土) 01:29:46.44
>>595
くやしかったんですね
わかります
611デフォルトの名無しさん:2012/02/11(土) 01:32:16.31
pealとかrubyを好むプログラマは暗号のようなコードを美しいと思っちゃうから話にならない
612デフォルトの名無しさん:2012/02/11(土) 01:33:44.73
便利な言い訳だな

客観的な指標で比較しないと意味ないやん
613デフォルトの名無しさん:2012/02/11(土) 01:35:45.51
英語がどうのと言っている人はRSpecはいいと思ってる?
自分は、そこ頑張らんでもと思っちゃって。
614デフォルトの名無しさん:2012/02/11(土) 01:38:35.67
いやだからさー、pythonは客観的に読みやすいって常識だろ?
pythonよりperl/rubyが読みやすいって奴いるの?
615デフォルトの名無しさん:2012/02/11(土) 01:42:06.24
>>614
心の中でそう思うのは自由だが、説得力はない
616デフォルトの名無しさん:2012/02/11(土) 01:42:55.81
>>608
すまん読んでなかった
頭の方だけ読んで分かった気になるのは良くないね
617デフォルトの名無しさん:2012/02/11(土) 01:45:51.68
いや、pythonが読みにくいと言ってる奴を見たことがない
618デフォルトの名無しさん:2012/02/11(土) 01:50:19.97
>>617
例えば「いや〜Pythonは読みやすいけど、Rubyの方がもっと読みやすいよ」
っていう誰かがここに出現したらどうするんだよ
オレが思うからPythonは客観的に読みやすい、なんていう主観的な主張を続けるのか?
619デフォルトの名無しさん:2012/02/11(土) 01:53:56.00
>>618
俺の意見じゃなくて一般論の話をしてるんだけど
読みやすいとかは数値化しずらいだろうが
どう見ても大多数の意見がそうなってるだろ
620デフォルトの名無しさん:2012/02/11(土) 01:57:16.98
>>605
Pythonは日本語のドキュメントあるよ。それも十分detailedなのが。
ttp://www.python.jp/doc/release/

> but Python doesn't provide it.
なんていったら、翻訳してくれた人たちに失礼すぎる。

なんでそう思うに至ったのかの経緯に興味あるな
池沼かもな
621デフォルトの名無しさん:2012/02/11(土) 01:57:19.38
>>576
3つに分けて返答するよ
[二分岐(>>555,558)]
・すでに指摘されているけど、Pythonのif式の構文は特異/異常なもの
 自分の知る限り、<then> if <cond> else <false> という
 構文を採用しているのはPythonだけ
・直感的に、Pythonの構文はフローチャートやPAD等の分岐図と一致しない
 特にこのような分岐がネストする場合には、それが顕著になる
 コード全体の構造を見れば、Pythonだけが異質なのは明白
[多分岐(>>561,562)]
・Pyhtonには多分岐式が存在しないため、ハッシュを用いた
 「トリッキー」なコードを書かなければならない
・もちろんRubyでもハッシュによる同様なコードを書けるが、
  ・ハッシュを使わなければ書けないPythonと
  ・ハッシュを使っても使わなくても書けるRubyとの間には
 表現力に雲泥の差があるのは明白
[局所宣言(>>565,566)]
・Ruby/ML/Haskellの間には
 それぞれメソッドチェーン/高階関数/リスト内包表記という差異はあるが、
 それ以外の全体的なコード構造に関しては類似性がある
・異質なコードはPythonだけであり、
 これはPythonに局所宣言(ブロック/let式/where節)が存在しないことに起因する

これらから「Pythonは関数型プログラミングには適さない言語である」という
結論に至った
622デフォルトの名無しさん:2012/02/11(土) 01:58:53.48
関数型プログラミングに適した言語なんて一般的には全然好まれてないじゃん
623デフォルトの名無しさん:2012/02/11(土) 01:59:07.22
>>619
>どう見ても大多数の意見がそうなってるだろ

それが主観的ってことでしょ。
主観的でいいなら、「Pythonの内包表記よりRubyのメソッドチェーンの方がわかりやすい」と思う人は多数いるよ。
624デフォルトの名無しさん:2012/02/11(土) 02:01:05.67
>>619
そ、そうか。カンファレンスでアンケートでも取ったのか?
625デフォルトの名無しさん:2012/02/11(土) 02:01:23.67
>>623
だから何?pythonがrubyより読みやすいのは事実だろ。何を否定したいのか分からん
rubyがpythonより読みやすいのなら、なんで「関数型プログラミング」にも適したrubyがpythonに負けてるわけ?
626621:2012/02/11(土) 02:04:00.13
>>621の[二分岐(>>555,558)]への補足として、
前スレでのPythonの異質さに関する解説をコピペする

>711 名前: 682 Mail: sage 投稿日: 2011/12/29(木) 15:05:28.17
>>>695のPythonコードが読みづらい原因はif演算子の構文にある
>条件判定が式である言語に限定して、それらの構文を比較してみる
>
>Ruby:
>  if 条件式 then 式1 else 式2 end
>Smalltalk:
>  条件式 ifTrue: [ 式1 ] ifFalse: [ 式2 ]
>Lisp:
>  ( if 条件式 式1 式2 )
>ML:
>  if 条件式 then 式1 else 式2
>Haskell:
>  if 条件式 then 式1 else 式2
>
>Python:
>  式1 if 条件式 else 式2
>
>普通の言語は「条件式 -> 式1 -> 式2」と左から右へ流れる(それが自然)
>それに対して「Pythonだけ」は「式1 <- 条件式 -> 式2」と
>左へ右へと行ったり来たりしないとコードが読めない
>
>プログラミング言語界の中で「Pythonだけ」が異端な存在で、可読性の悪い構文が採用されている
>これは明らかにPython開発陣の言語設計ミス、あるいは判断ミスだね
627デフォルトの名無しさん:2012/02/11(土) 02:08:44.16
>>626
お前その711の言ってることに賛成なの?
異端という言葉を使って一生懸命印象誘導してるけど、アホにしか見えない
こいつが自然と言ってるのは、それがCに似てるからに過ぎない
式に条件が後続する書き方が明らかに好都合
628デフォルトの名無しさん:2012/02/11(土) 02:16:01.85
>>627
>式に条件が後続する書き方が明らかに好都合

個人的には理解不能
伝統的なif文(あるいはif式)に対して
どういう利点があるのかさっぱり分からん
629デフォルトの名無しさん:2012/02/11(土) 02:20:38.02
まず一番左をみて条件式があるというのが気持ち悪い
hoge = 条件式〜 って条件式が長かったら右辺値がどんな値になるのか分かんねえじゃん
結局先に後ろを見てそれで条件式を見直すことになるだろ
630621:2012/02/11(土) 02:20:45.94
Pythonは英語風だから読みやすいという意見があるけど、本当だろうか?

  日本語:もし C であれば T さもなければ F。
   英語:If C then T, else F.
 ルビー語:if C then T else F
バイソン語:T if C else F
631デフォルトの名無しさん:2012/02/11(土) 02:27:29.52
if文を読むときに

ifが先頭・・・ああ、次の場合条件によって@かAのどちらかを実行しなさいってことね
ifが後ろ・・・ああ、@を実行するのね―――っと思ったら例外ありかよ!

みたいな感じ、個人の感覚としては


632621:2012/02/11(土) 02:28:04.76
>>627
「世界中の皆が使っているからPythonを使うべき」という主張は、
Python信者の理屈ではなかったのかな?

同じ理屈を当てはめると、条件式に関して異端なのはPythonのほうになるけど、
違うん?
633デフォルトの名無しさん:2012/02/11(土) 02:30:34.29
>>632
意味不明。どの理屈がどうだって?
634デフォルトの名無しさん:2012/02/11(土) 02:30:58.26
>>631
英語全く読めないでしょ?
635デフォルトの名無しさん:2012/02/11(土) 02:36:43.79
>>634
ああ、結局分かりやすさではなく英語に慣れてるかどうかの問題?
636デフォルトの名無しさん:2012/02/11(土) 02:37:37.60
>>630
英語:T if C. Otherwise, F.
python:T if C else F
637デフォルトの名無しさん:2012/02/11(土) 03:15:57.25
Pythonを分かりやすいと感じる理由を自分の理屈で持って解釈して主張する人もいれば
単に俺は英語に慣れてるから英語に近いPythonは英語に慣れてる分わかりやすいんだと、
突き詰めればそういうことにしかならない人もいるらしい、と、そんな感触
638621:2012/02/11(土) 03:38:05.29
>>631
Python信者の理屈とは「みんなが使っていれば、それは正しい」だろ
>>626のコピペを見れば、

 みんなが採用しているのがif <cond> then <true> else <false> であり、
 それは正しい

という帰結になるのは猿でも分かるよな?
639621:2012/02/11(土) 03:40:46.63
>>636
>>630は二分岐に関する「Pythonは英語風」に対する疑問であったけれど、
>>636へのレスに代えて、今度は別の切り口で疑問を提起してみる

まず、英語風(=自然言語風)というよりも、これは
「数学における定義と似ている」と言い換えた方が適切だろう
たとえば、[多分岐(>>561,562)]を数式として記述すると以下のようになる

 f(X) = T, if X is "Green"
    T, if X is "Yellow"
    F, otherwise

確かにこれは、Pythonの <true> if <cond> .... という構文と似ている
実際Haskell文化では、>>562(上段)よりも以下のような数式風のコードが好まれる

 f x
   | x == "Green" = true
   | x == "Yellow" = true
   | otherwise = false


では、自分はPythonに詳しくないので、>>562(下段)のコードを書き直してみてくれ
Pythonが英語風で関数型プログラミングにも適しているのなら可能なはず(他の人でもいい)

論よりコードだ
640デフォルトの名無しさん:2012/02/11(土) 03:47:38.01
後置ifは、他言語にもあるから別に変でも何でもない。

lenの方がよっぽどきもい。
__len__とか勘弁して欲しい。
641デフォルトの名無しさん:2012/02/11(土) 03:48:02.98
if <cond> then <true> else <false>
が判り易いなんて思い込みだろ
<true> if <cond> else <false>
の方がシンプルで良いじゃん

っていうか何で「ただの値を返すだけの記号」だと思えないんだろう
642デフォルトの名無しさん:2012/02/11(土) 03:50:50.25
>>640
同意

Python 始めて間もないとき
"hoge".len() とか
"hoge".length() とか
期待した結果が得られないのでめっちゃ悩んだ
len("hoge") なんてインチキというか目から鱗というか
C やってたら当たり前なんだろうけど
Ruby しか知らない人には習得は厳しい言語かもしれないな
643デフォルトの名無しさん:2012/02/11(土) 04:08:42.78
>>640
他言語にもあるのかよ。>>621に騙されちゃった
644デフォルトの名無しさん:2012/02/11(土) 04:13:37.65
lenという関数もその名前も別に不満はないが
なぜ文字列やリストオブジェクトのメソッドが__len__なのかは確かに理解出来ない
結局は関数のlenしか使わない
645621:2012/02/11(土) 04:21:48.61
>>640
>後置ifは、他言語にもあるから別に変でも何でもない。

それは話のすり替えだよ
後置if はRubyや他の言語にもあるけど、それらはすべて(式ではなく)文だ
分岐式としてのif構文が後置なのはPythonだけで、それは異端だというのが>>626のコピペ

>>__len__とか勘弁して欲しい。

だよな
__init__ とか勘弁して欲しい
646デフォルトの名無しさん:2012/02/11(土) 04:25:14.17
Cやっててもきもいよ。
ほかは、メソッドになってるのになんでこれだけ関数なんだ。
どっちかに統一してほしい。

647デフォルトの名無しさん:2012/02/11(土) 04:25:25.24
>>639
誰が、pythonが関数型プログラミングに適してるって?
なぜか、関数型プログラミングに適してるほうが勝利という前提で話を進めているけど
それは初めから詭弁だし、お前の文章自体が何かごちゃごちゃしてるのも、その特殊な脳内を表しているの?

よくpythonスレでもリスト内包にlambda式突っ込んでごちゃごちゃやってる人いるけど
無理せずに外に関数として定義してやれば何倍もスッキリするし、そうするべきだと俺は思ってるけど
lambda式自体は使うべきだけど無理して使う必要ない。読む方にも迷惑
648621:2012/02/11(土) 04:26:04.90
>>641
シンプルで良いのなら、>>639で希望したように、
ぜひ極めてシンブルな多分岐処理に対する>>562(下段)のトリッキーなPythonコードを
シンプルで美しいコードに書き直してくれ

繰り返すけど、論よりコードだ
649デフォルトの名無しさん:2012/02/11(土) 04:31:31.50
__init__や__main__は特殊な関数と明示してるから嫌いじゃない
__len__は別に特殊である必要がない

>>648
他のコード見ても何をやりたいのか分からん
650621:2012/02/11(土) 04:36:57.63
>>647
>誰が、pythonが関数型プログラミングに適してるって?
>なぜか、関数型プログラミングに適してるほうが勝利という前提で話を進めているけど

それは「Pythonは関数型プログラミングに適していない」という意見への賛同として
解釈してよいのかな?

>よくpythonスレでもリスト内包にlambda式突っ込んでごちゃごちゃやってる人いるけど
>無理せずに外に関数として定義してやれば何倍もスッキリするし、

まったくそのとおりだと自分も思う
実際、>>566(上段)のHaskellコードは、リスト内包表記内にあるごちゃごちゃしたコードを
where節を使うことで無理にせずスッキリした読みやすいものになっている
>>565のRubyやMLは内包表記ではないけれど、それぞれブロックとlet式を使ってスッキリしている
それに比べて、>>566(下段)のPythonコードはなんともごちゃごちゃした汚いコードだよね

え、Pythonって外で関数定義しないとスッキリさせることができないの?
いったい何のためにラムダ式(無名関数)があるんだろう.....
651デフォルトの名無しさん:2012/02/11(土) 04:39:30.69
>>650
お前がスッキリと言ってるものがどんな処理をしてるのか分からないから説明してくれよ
652デフォルトの名無しさん:2012/02/11(土) 04:41:17.23
>>650
関数型プログラミングには適してないんじゃね。望まれてもいないし
653621:2012/02/11(土) 04:56:47.53
>>648
>他のコード見ても何をやりたいのか分からん

まあ他の言語のコードが読めない、つまりPythonしか知らないのならしかたないなぁ....

というか、他の言語の経験があって、その上でPythonがイイ!と言えるヤシはいないの?


>>651
Python(>>566下段)
 リスト内包表記内にごちゃごちゃしたコードを書かざるを得ない

Haskell(>>566上段)
 リスト内包表記内のコードを(where節で)外に追い出しているからスッキリしている
654デフォルトの名無しさん:2012/02/11(土) 04:58:15.29
>>653
お前もpythonのこと知らないって言ってんじゃん
実際明らかにそうだし
数学的にって
f(X) = T, if X is "Green"
    T, if X is "Yellow"
    F, otherwise

def f(x):
  return True if x=="Green" \
  else True if x=="Yellow" \
  else False
こうだろ。何をさせたいのかさっぱり分からん
655デフォルトの名無しさん:2012/02/11(土) 04:59:50.43
>>645
まぁ、そういわれればpythonは異端かもなぁ。

if構文は改行しないとダメだし、演算子の方は後置を強制されるから統一感がないね。
ifをワンライナーで書けるか、演算子が前置できればいいのかも。

LLの中じゃ、pythonは嫌いじゃないけど、ところどころキモくてもどかしいところあるよ。
656デフォルトの名無しさん:2012/02/11(土) 05:05:00.80
>>639
Prologだと、

f(X) :- 'Green'(X).
f(X) :- 'Yellow'(X).

これはこれで多大なコストが掛かっているけど。
657621:2012/02/11(土) 05:06:52.02
>>652
了解した
もしそれがPython支持派の総意であるなら、これ以上はバトルスレで語る事柄ではないと思う
この話題は終わらせてもいいだろう
658デフォルトの名無しさん:2012/02/11(土) 05:08:50.13
逃げんなよ。関数型プログラミングで言語の優劣が決まるのなら
関数型言語の今の惨状は無い
659デフォルトの名無しさん:2012/02/11(土) 05:11:14.38
>>656 if ~ then ~ else ~ の場合はカットが必要なのでは? f(X) :- 'Green'(X),!. f(X) :- 'Yellow'(X).
660621:2012/02/11(土) 05:11:53.34
>>654
あ、スマン、>>653のカキコ内にあるアンカが間違っていた
訂正する

X: >>566
O: >>562
661621:2012/02/11(土) 05:14:10.19
>>658
逃げる気はないよ
Python信者が関数型プログラミングの議論を続けたいなら、こちらも望むところだ
662デフォルトの名無しさん:2012/02/11(土) 05:17:26.60
単純に学習コストだな。受け入れやすさ。
簡単に使えるようになって、やりたいことが出来るのならそれで問題ない
そうやって皆が使えば資料もライブラリも充実して、さらに学習コストが下がる

関数型プログラミング必須なんて有り得ないし
それで出来上がった「スッキリ」と言われるコードは意味不明だし
やはり一生普及しないだろうと実感した
663デフォルトの名無しさん:2012/02/11(土) 05:34:35.58
>>648
Pythonが特別トリッキーだとは思わないな
いまどきのjavascriptっぽくて好感が持てる
664656:2012/02/11(土) 05:35:19.42
>>659
すみません。間違えました。

f('Green').
f('Yellow').

ですね。カットを入れるかどうかは迷います。Xがどこかに行ってしまいました。
これが嫌なら、

f(X) :- 'Green'==X.
f(X) :- 'Yellow'==X.

かな。
665621:2012/02/11(土) 05:38:05.42
>>654
その文末にある醜い¥記号は何?
Cのマクロ定義なら分かるけど、なんでそんな記号を使わないとならんのだろ
インデント強制のPythonなら、(Haskellのように)インデントで書けないの?

あと、そのコードは未完成
その関数定義をラムダ式にして>>562の(ハッシュを使った)トリッキーなコードを書き換えてほしい
666デフォルトの名無しさん:2012/02/11(土) 05:43:26.06
javascriptで思い出したけど、
なにげに,CoffeeScriptがすごくよさそうだと個人的には思う。
667621:2012/02/11(土) 05:43:37.11
>>663
トリッキーであることそのものは批判していないよ

最初に以下の>>621で書いたように
>・もちろんRubyでもハッシュによる同様なコードを書けるが、
>  ・ハッシュを使わなければ書けないPythonと
>  ・ハッシュを使っても使わなくても書けるRubyとの間には
> 表現力に雲泥の差があるのは明白

Pythonが(ハッシュを使った)トリッキーなコードでしか表現できないことを問題視している
668デフォルトの名無しさん:2012/02/11(土) 05:49:36.48
(lambda x: x in ["Green", "Yellow"])で良いんじゃね
669デフォルトの名無しさん:2012/02/11(土) 05:50:30.20
ああ、問題を解決できてもダメなのか、関数型プログラミング至上主義的には
670デフォルトの名無しさん:2012/02/11(土) 05:55:27.43
関数型言語とか関係なくダメだと思うよ
というかPython的にすらダメじゃないの
671デフォルトの名無しさん:2012/02/11(土) 05:56:56.45
なぜ?"Green"か"Yellow"なら真、それ以外なら偽じゃないの
672デフォルトの名無しさん:2012/02/11(土) 06:06:43.50
トリッキーだと思わないと言っているのに
>トリッキーであることそのものは批判していないよ
とか論点逸らしひどす
673デフォルトの名無しさん:2012/02/11(土) 06:08:18.97
最初から詭弁による話題誘導しかしてないよ。一番最初から
674デフォルトの名無しさん:2012/02/11(土) 06:22:32.10
お前ら、Scala使えよ
実用的な関数型言語だ
RubyとかPythonとかどうでも良くなるよ。
675デフォルトの名無しさん:2012/02/11(土) 06:25:34.79
ScalaはJava臭が残ってるから好きじゃない
676デフォルトの名無しさん:2012/02/11(土) 06:29:27.42
RubyからScalaに乗り換えた15くらいの理由
ttp://wota.jp/ac/?date=20100426#p01
677デフォルトの名無しさん:2012/02/11(土) 06:34:58.63
まずはスレタイに Scala 入れてからだな
678デフォルトの名無しさん:2012/02/11(土) 06:40:43.46
Rubyはいらんだろ
679621:2012/02/11(土) 06:46:38.64
>>673
詭弁であると思うのなら、その時点で(=一番最初に)指摘すればいい
たとえば>>539では、>>510の主張が仮定を元にした詭弁であると即座に反論している
議論が進行してしまってから「一番最初から」うんぬん言うのは、
バトルスレでは自ら敗北を宣言したに等しい

では、>>643を添削しておこう

X: 最初から詭弁による話題誘導しかしてないよ。一番最初から
O: もうこれ以上は技術的な議論しても勝てそうにないので、印象操作しかできません(涙声
680621:2012/02/11(土) 06:55:09.24
>>672
>トリッキーだと思わないと言っているのに

あっそうか、Python(>>562下段)しか知らない蛙さんだったのね
ならばしかたないな....

Ruby(>>561上段)/ML(>>561下段)/Haskell(>>562上段)のコードが読める人なら、
単純にcase...という多分岐構文を使うだけなのに、
ハッシュを使わないと書けないなんてPythonとは変というか不自由な言語だなあって思うよ
681デフォルトの名無しさん:2012/02/11(土) 07:05:58.33
ん?
異質=トリッキー
だと思ってる馬鹿?
682デフォルトの名無しさん:2012/02/11(土) 07:22:44.59
621は2chに長文書き込んでる暇あったら英語勉強したほうが良いよ?
683デフォルトの名無しさん:2012/02/11(土) 07:26:19.43
キーワード引数をハッシュで代用してる
Ruby使いがハッシュをキモイって言ってもなぁ……
684デフォルトの名無しさん:2012/02/11(土) 07:30:17.42
ハッシュってキーを間違えた時
エラー出る?
685デフォルトの名無しさん:2012/02/11(土) 07:37:26.32
>>679
> 詭弁であると思うのなら、その時点で(=一番最初に)指摘すればいい
> たとえば>>539では、>>510の主張が仮定を元にした詭弁であると即座に反論している

>>504
>・RubyがあったからこそRailsが生まれた

>>510
>> RubyがなかったらPython Railsができていたと思うよ

>>539
> 革新的な発明/発見/発想に対して、後になってから
> 「あんなのは俺にだってできた」と語るのは三流の証(あかし)

>>510 を「あんなのは俺にだってできた」と語っていると考えたのは
馬鹿の証

ただ、証(あかし)ってかっこつけて書きたかったんでしょ。
バーカ
686デフォルトの名無しさん:2012/02/11(土) 07:41:31.82
ならない

キーワード引数をハッシュで模倣するのは
間違った引数を書いてもエラーにならないという
明らかな欠点が存在する
687デフォルトの名無しさん:2012/02/11(土) 07:46:02.36
>>665
ifが式のHaskell様の素晴らしいコード

s = "begin" ++ if True
                  then "foo"
                  else "bar"
    ++ "end"

答え:s = "beginfoo"
あれ?endは?
688デフォルトの名無しさん:2012/02/11(土) 07:54:27.17
>>683
一応2.0では本物のキーワード引数が入るっぽいよ
689デフォルトの名無しさん:2012/02/11(土) 07:56:04.39
とういかさ、なんでそういう基本的な機能を
最初に作らないの?
690デフォルトの名無しさん:2012/02/11(土) 07:59:45.72
>>686
ハッシュで分岐を表現する>>562と違って
ハッシュでキーワード引数を表現するのは
本物のキーワード引数より機能的に劣るってことか

異質とかトリッキーなんて主観よりも明確だな
691デフォルトの名無しさん:2012/02/11(土) 08:02:20.66
Pythonのインデント強制はなにか意味があるのかね?
インデント程度でコードが読みやすくなるわけ無いし。
強制されなくてもインデントするでしょ?

それよりか、スペース強制のほうがいいと思う。
たとえば × foo+bar、○ foo + bar こんな感じ。

英語文化的にこういう場合にはスペースを開けるのが普通。
そしてスペース強制と書いたけど、本当は、
「foo+bar」いう変数名として解釈される。

関数もオブジェクトという考えと同じように
記号もまた名前なんだよ。

692621:2012/02/11(土) 08:03:50.40
>>683
トンチンカンな指摘だなあ
Rubyには(Pythonの)キーワード引数に相当する構文は無いよ
Pythonのディクショナリを展開して関数へ渡す方法に相当するのが、
Rubyのハッシュによる引数渡しになる

>>684
(Pythonの)ディクショナリってキーを間違えた時エラー出る?

>>686,690
上で書いたようにディクショナリに相当するのがハッシュであり、
Pythonのディクショナリ渡しで間違ったキーを書いてもエラーにはならないから、
これまたトンチンカンな指摘だ
ただし、Pythonのキーワード引数そのものはRubyには無い優れた特徴だと思う
693デフォルトの名無しさん:2012/02/11(土) 08:13:35.20
Rubyではキーワード引数をハッシュで代用する話をしてるのに
何でPythonで辞書で渡す話にすり替えてるの?
Pythonにはキーワード引数があるんだから
キーワード引数を使いたい(引数を間違えたときにエラーにしたい)なら
辞書じゃなくてキーワード引数を使うよ
694621:2012/02/11(土) 08:18:15.25
>>693
すり替えたつもりはないよ
>>692にはPythonのキーワード引数は(Rubyには無い)優れた特徴であると
書いてあるのに、読めなかったのかな?
695デフォルトの名無しさん:2012/02/11(土) 09:51:05.87
引数の取り回しは、
オプション引数・デフォルト引数、キーワード引数、型チェック、バリデーション機能
くらいは言語仕様でどの言語も実装してほしいな
696デフォルトの名無しさん:2012/02/11(土) 09:54:49.33
そうだね
ブロック引数もどの言語でも実装してほしいよね
697621:2012/02/11(土) 10:08:24.71
そうだなw
でも、それを言い出すと

PHP: HTML内にコードを埋め込むのはLLならできて当然だよね
Javascript: 今の時代、デフォでWebブラウザ上でも動くのが常識だろ

などと言う輩が続出して、収拾がつかなくなると思われ
698デフォルトの名無しさん:2012/02/11(土) 10:11:40.70
まあ引数の話だし
最低要件PowerShellレベルってことで
699デフォルトの名無しさん:2012/02/11(土) 10:45:37.43
オプション引数(デフォルト引数)とカリー化の相性の悪さは異常
700デフォルトの名無しさん:2012/02/11(土) 10:57:52.50
>>665
ys = (x for x in xs
        if (lambda x :
            True if x == "Green" else
            True if x == "Yellow" else
            False)(x))
701デフォルトの名無しさん:2012/02/11(土) 12:05:42.87
実装してほしいとか言うなよ
それは日本語に翻訳してほしいって言うのと同じレベルの発想だ
702デフォルトの名無しさん:2012/02/11(土) 12:33:06.02
Rubyは書き捨てスクリプト専用言語だから
キーワード引数なんて要らない
あれは大きいプログラム用の機能だからね

当然トイプログラム専用言語Haskellにも要らない
703621:2012/02/11(土) 12:39:48.07
>>700
ありがとう
もしも今後関数型プログラミングの議論が再開してコードを引用する場合、
>>700のコードも忘れずに引用します
704621:2012/02/11(土) 12:43:56.75
>>702
だよね
RedMineみたいなプロジェクト管理ツールなんてちっぽけな使い捨てスクリプトだし、
Railsみたいなフレームワークもオモチャみたいなもんだしね

.... .... .... これでいいのかなw
705デフォルトの名無しさん:2012/02/11(土) 12:48:39.90
キーワード引数ってシェルコマンドから来た発想じゃねーの?
706デフォルトの名無しさん:2012/02/11(土) 12:57:13.47
>>704
その辺はRuby本来の使い道を既に外れてると思われ
707621:2012/02/11(土) 12:58:20.60
>>699
オプション引数・デフォルト引数・キーワード引数というのは、
それらを個々にひとまとめとした直積データ構造であると考えた方が自然な気がする
たとえばオプション引数は省略可能な要素から成るタプル型で、
キーワード引数はレコード型であると解釈する
708デフォルトの名無しさん:2012/02/11(土) 13:01:24.42
Ruby本来の用途を外れた使い方された挙げ句
GCが遅いおそい言われてるのを見ると
ちょっと可哀想ではある
709621:2012/02/11(土) 13:18:32.55
>>706
たとえ生まれが使い捨てプログラミング用途だとしても、
可能性があり実現に望ましい性質を持つ言語であるのなら、
どんな用途に使われようと周囲がとやかく言うべきではないと思う

>>706は、子供達を無理矢理自分の枠にはめようとする
逝き遅れたオールドミス数学教師(>>442)の発想だね

Rubyたん(>>437)は、
RailsでメタプログラミングをそしてRakeおよびRSpecで内部DSLという、
これまでにない新しい扉を開いた
まだまだ潜在的な可能性がRubyには残されている
今回議論になった「Rubyによる関数型プログラミング」もそんな可能性の一つ
まだまだ成長と進化を続けていくだろうと思う
710デフォルトの名無しさん:2012/02/11(土) 13:39:24.44
>>709
別に使われること自体は構わないけど
それを基準にするのはおかしくね?ってことだよ
711621:2012/02/11(土) 13:57:29.18
>>710
生まれが書き捨てスクリプト言語であることを基準にする
>>702の発想はおかしくね?ってことだよん
712デフォルトの名無しさん:2012/02/11(土) 14:30:37.38
まぁ、勝手に使っておいて文句ばっかり言うのは
うんkだな。
713デフォルトの名無しさん:2012/02/11(土) 14:36:27.02
>>711
まあそこはね
無くてもやれるが、その内ほしいな
714デフォルトの名無しさん:2012/02/11(土) 14:52:03.72
主要なものは既に存在する。
まだないのは、マイナーすぎて作れないもの。
マイノリティを肯定しないと作れない。
715621:2012/02/11(土) 15:13:20.36
>>714
そのとおりだと思う
おそらく、それには変人の発想(>>575,578,596)が必要になる
簡単に言うと、周囲のマジョリティーと安易に同調しない強い意志/自我を持つこと
そしてRubyスレによれば、どうやらRubyにはそんな変人達を引きつける魔力があるらしいw
716621:2012/02/11(土) 15:33:40.22
>>713
確かに>>695の中でRubyには欠けている
キーワード引数、型チェック、バリデーション機能は
(欲張りかもしれないが)Rubyにもほしいところだね

ただ、キーワード引数については、Ruby 1.9で順序付きハッシュが導入されたことだし、
Smalltalk(あるいはObjective-C)風のメッセージ式によるメソッド定義のほうが
(Pythonのキーワード引数よりも)可読性が高くて望ましいなぁ
たとえば、def put: str at: point; .... end みたいに
でも、Rubyの構文に大掛かりな変更が必要になるから、採用される見込みは無いだろうw

あと、型チェックとバリデーション機能についてはTestUnit風の
アサーションライブラリ関数で(暫定的に)対応できないかと開発を進めているところ
たとえばこんな感じ
 def put_at str, point
   ASSERT.kind_of str, String
   ASSERT.tuple_of point, [Float, Float]
最終的には、この型アサーション(表明)を関数アノーテーション(注釈)と見なして、
ドキュメント内に型式(あるいは自然言語風の解説)を自動生成することも視野に入れている
717デフォルトの名無しさん:2012/02/11(土) 15:52:16.64
お題って621がlambda式に条件分岐が必要なものを自分で考えたんだろうなあw
718デフォルトの名無しさん:2012/02/11(土) 16:13:29.15
Ruby をシェルの変わりに使いたいな

シェルだと、以下のような記述をして実行したとき
rm -rf ${TEMP_DIR}/*.*

変数を定義しているソースの取り込み忘れや、
変数のスペルミスがあったときに悲惨な結果になるんだよな
てかやっちまったんだよ……orz

719デフォルトの名無しさん:2012/02/11(土) 16:20:41.47
まあ型チェックもバリデーションも
Pythonならデコレータで簡単にできるんですがね
720デフォルトの名無しさん:2012/02/11(土) 16:22:25.98
621は人の話を聞かず、正反対の意味に曲解して話を進めるのをやめた方がいい
721621:2012/02/11(土) 16:55:30.71
>>717
そうだよ、今頃気が付いたのw
Ruby/ML/Haskellでは簡潔に書けるけどPythonではそうでないお題を選んでいる
つまり、Pythonは「どちらが関数型プログラミングに適しているか」という勝負に
負けるべくして負け、「不適格」という烙印を押されたことになる

>>720
前にも書いたけど(>>679)、もしも悪意のある曲解があるならその時点で強引にでも止めればいい
その判断が正当なものであれば、いくら強引でも止める行為を非難するヤシはいないはず
後になってから「xxすべき」を言い出すのは、敗者の泣き言(あるいは負け犬の遠吠え)だ

では、>>720を添削しておこう

X: 621は人の話を聞かず、正反対の意味に曲解して話を進めるのをやめた方がいい
O: 技術的な議論では自分の思い通りに話を進められないので、個人攻撃に移るよ
722デフォルトの名無しさん:2012/02/11(土) 16:56:39.82
>>703
せっかくpythonがクールでないというお題を考えたのに残念だったね
723デフォルトの名無しさん:2012/02/11(土) 16:57:07.50
>>721
>>700でちゃんと出来たじゃん。残念
724デフォルトの名無しさん:2012/02/11(土) 16:58:07.24
>>721
そういう議論の進め方が下衆だって言ってるんだよ
725デフォルトの名無しさん:2012/02/11(土) 16:58:29.46
荒らしに何を言っても無駄
726デフォルトの名無しさん:2012/02/11(土) 17:21:47.15
まあバトロワスレなんて基本はこんなもんじゃね
727デフォルトの名無しさん:2012/02/11(土) 17:43:01.03
QZはずっとここにいろ
ここQZ隔離スレにしてよ
728621:2012/02/11(土) 17:47:14.12
>>722,723
3つあるお題の内、多分岐については>>700がコードを示してくれたので
>>621の「Pythonではハッシュを使わなければ書けない」という主張を取り下げる

ただし、もし可能であったなら>>700のコードは前スレで示すべきだった
前スレのPythonな人も難しいと言われるリスト内包表記を使いこなすだけの技量はあったけど、
>>562(下段)のようなハッシュを使うコードしか思いつけなかった
そして今レスでも誰も>>562に対してコードで反論できずにいて、
>>639,665と誘導することによってようやく>>700の「ちゃんとした」コードが完成した

これは、Pythonによる多分岐のコード化が
いかに難解なものであるかを示しているのではないのかな?
Rubyなら簡単に書ける初歩的なお題なんだよ

あと、>>621の残る2つのお題、二分岐と局所宣言に関するPythonへの問題指摘に対しては
明解な反論が無いまま、>>650
 > それは「Pythonは関数型プログラミングに適していない」という意見への賛同として
 > 解釈してよいのかな?
という問いかけに対して>>652
 > 関数型プログラミングには適してないんじゃね。望まれてもいないし
と返答しているけど、別人さんなのかな?
それともPython支持派には意見の不統一があるのかな?

>>661で書いたように逃げる気は無いので、議論の続きを再開しても自分はかまわないよ
729デフォルトの名無しさん:2012/02/11(土) 18:01:41.70
>>728
どこが難解なんだよw
お前がpythonのことを1ミリも知らなかっただけじゃねえか
もう黙れ。二度と再開するな
730デフォルトの名無しさん:2012/02/11(土) 18:02:57.77
お題が悪い
pythonのlambda式が不便になることがあるのは事実だが、こういうパターンではない
おそらく不便という事実だけ聞いてこの問題を作ったんだろうけど的外れもいいところ
731デフォルトの名無しさん:2012/02/11(土) 18:07:32.90
らむだこりゃ
732デフォルトの名無しさん:2012/02/11(土) 18:09:49.97
                     /    ..::::::...ヾ,-┐:::::..  ヽ、
                    /::::::::    :::::::::::::::..ヽ|、::::::::...  ヽ、
 ラムだっちゃ♥         / ::::::::     、:::::::::::::::::...ヽ::::::::::::..  ヽ
                  / :::::   人、 | ヽ、_:::::::::::::: |:::::::::::::.  |
             ,イ´   |  :::ト、 |  `'-,r‐=,、ヽ、 ::: |::::::::::::::  |
           rv' l´    ヽ、:.| r-、     p ヽ `l ,ヘ:::::::::::::::::   |
            | |  |     ヾヽ、 ハ     ヾ_ノ .| |' .|::::::::::::::::::  |
''´ ̄ ̄`ヽ、、_   | |  |       ヽ、l ゞ    ー   | レ':::::::::::::::::::  |
´ ̄      ` r-L l  ',        |` 、       ,' |::::::::::::::::::::::  |
        _rヾニ `ヽ ',       ヽ、 r‐-ァ   /::|::::::::::::::::::::::::..  |
        ヾゝイ´ ,/  .',          ヽ、ゝ' _,.-;ノ:: |::::::::::::   ::::.. |
::..         ト ´ /....  'ヽ,、_     >r' /:: /:::::::::::::     :::  |
:         〉  .|:::::::::::......    `ー-‐'´,-/ /::::: / `ヽ、:::        |
::....    .:::::::::::|   |:::::::::::::::::,、-r―'''´ ̄ ,.-‐'´:::. /   |:::::....   .  |
:::::::::::::::::::::::::::::::::|   ',:::::::::::::∧ヾ V/―/:::::::::::  /     |:::::::::::.......:::.  |
:::::::::::::::::::::::::::::::::|    ',:::::::::::ト kl /三/::::::::::  /      ,':::::::::::::::::::::::  |
:::::::::::::::::::::::::::::::::|    ',:::::::::|ヾヾ|、 /:::::::::   ,イ      ,':::::::::::::::::::::::::  | |
:::::::::::::::::::::::::::::::::|    ',/ヽ__ヾ、|::::::   ∧/      /::::::::::::::::::::::::::  |.|.|
::::::::::::::::::::::::::::::::::',    !  /    ヾ:: ∠__/      /::::::::::::::::::::::::::  | ||
733621:2012/02/11(土) 18:37:08.10
>>729
いや、Pythonのことは部分的に知っているはずだよ
だって、Pythonの弱点を突けるコードを意図的に選んだのだからw

あと、>>658は「逃げんなよ」と言い、>>729は「二度と再開するな」と言う
同じ人ではないと思うので、別人さんでPython支持派内に意見の不統一があるのかな
いったいぜんたい、どっちにすればいいんだろう

関数型プログラミングへの適合性について議論を再開する or しない、
Python支持派内で意見を統一した上で、どちらにするのか返答を希望する

>>730
だから、もしもお題が悪いのなら、最初にお題が示された時点で(=前スレで)反論しないとね
議論が終わってから「xxが悪い」と言い出しても遅いよ
もし今から反論したいのなら、Python/ML/Haskellでは簡潔に書けるけど
Rubyではそうではない「単純明快な」お題を、Python/ML/Haskellのコードで示してくれ
論よりコードだよ

なお、議論の再開に関しては即答しなくともかまわない
たとえば次スレでバトルの第三ラウンドを始めてもいいよ
判断はそちらにあずける
734デフォルトの名無しさん:2012/02/11(土) 18:48:23.94
前スレも>>700も書いたのは俺
あのときハッシュを使ったのはRubyのコードが例外を投げてたから

最後に関数型っぽいコード
ys = filter(lambda x: x in ["Green", "Yellow"], xs)
735デフォルトの名無しさん:2012/02/11(土) 19:10:15.80
>>733
いや、お前の主張が間違ってたのだからそこで終了だろw
結局優位性すら認められずw
736621:2012/02/11(土) 19:17:12.53
>>734
>あのときハッシュを使ったのはRubyのコードが例外を投げてたから

お題のコードは変数宣言が欠けているから例外が発生するのは明白
こちらとしては、その程度の壁なら自力で対処できるくらい「Rubyを知っている」と思っていた

また、もしも例外発生を自力で解決できないかったのなら、
その時点でそれを言うべきだったと思うよ
そんな機会はいくらでもあった
例外うんぬんのいい訳は、前スレ(あるいは今スレ>>621)から>>700のレスまで
「ちゃんとしたコード」の完成に時間を要した理由にはならない

>ys = filter(lambda x: x in ["Green", "Yellow"], xs)

ys = xs.select { |x| ["Green", "Yellow"].include? x }
737デフォルトの名無しさん:2012/02/11(土) 19:24:56.68
「Pythonを知らない」奴がなぜ偉そうなのか分からん
738デフォルトの名無しさん:2012/02/11(土) 19:25:20.24
>>736
> お題のコードは変数宣言が欠けているから例外が発生するのは明白

そうじゃなくて、>>561のRubyコードはgreen, yellow, red 以外なら
raise RuntimeError の行で例外を投げてるだろ
739621:2012/02/11(土) 19:26:17.24
>>735
1つの主張が崩れても全体が否定されないよう、意図的にお題は3つに分かれている
残念ながら「Pythonは関数型プログラミングには不適格」という烙印は消えていないw

では、残る2つの主張を崩せる反論の準備をよろしく頼むぜ
議論の再開を待っているよ
740デフォルトの名無しさん:2012/02/11(土) 19:28:30.99
やはりPythonの解答が「明らかに」美しいな。この問題だと
741621:2012/02/11(土) 19:35:15.41
>>738
ML/Haskellといった静的型付け関数型言語は、green, yellow, red 以外なら型エラーになる
それに合わせてRubyは動的型付けだから例外を投げるコードにしている
それがお題だ(関数型言語は知っているんだよね?)

ただし、Pythonでは例外を投げるコードが難しいみたいだったから、
あの時はその部分について「見逃してあげた」だけの話

もし反論があるなら、>>700のコードについて、例外処理を含めて再実装してくれ
742デフォルトの名無しさん:2012/02/11(土) 19:38:43.73
>>741
>>562のPythonのコードも green, yellow, red 以外なら例外投げる
見逃してもらう必要は無い
743デフォルトの名無しさん:2012/02/11(土) 19:40:32.46
非現実的な馬鹿らしいお題だな
744デフォルトの名無しさん:2012/02/11(土) 19:48:13.07
>>737
同意するわ。
こいつPythonのプログラム読めて無いじゃん。
可読性を議論するレベルに達してない。
745デフォルトの名無しさん:2012/02/11(土) 20:06:42.60
PHP最強ということで結論が出たようだな。
746デフォルトの名無しさん:2012/02/11(土) 20:13:32.23
>>561>>562
ML,Haskell,Pyhtonは似てるけどRubyだけ異質で浮いてる。
はっきり言ってRubyだけキモい。
747621:2012/02/11(土) 20:13:33.28
>>742
あっそうなんだ、>>562でもハッシュを投げるんだね
失礼した、謝罪する

では、型エラーまたは例外発生をお題に含めるものとして、
>>621の「Pythonではハッシュを使わなければ書けない」という主張を崩すために、
>>700(あるいは>>734)のコードについて例外処理の実装を追加してみて欲しい

こちらで試したところ、>>700,734とも例外は発生してない
748621:2012/02/11(土) 20:17:06.28
>>740,746
そういった意見は、主観であり客観的な判定材料にならないことは
すでに結論付けられている
だから>>621では具体的で客観的な問題指摘を示した

したがって、同様なレベルの意見を希望する
749デフォルトの名無しさん:2012/02/11(土) 20:31:40.61
いまをときめくFacebookも、ブログシステムてして他の追随を許さないWordPressも
CMSとして最強の呼声高いDrupalも、みんなPHPで作られているんですね。
すごいよなぁ。
750デフォルトの名無しさん:2012/02/11(土) 20:35:29.04
PHP遅すぎてC++に変換したり
苦労しているみたいだけど
751デフォルトの名無しさん:2012/02/11(土) 20:38:45.64
え? ここLLのスレだよね?
752デフォルトの名無しさん:2012/02/11(土) 20:46:39.95
>>748
>>621は間違ってただろwさっさと訂正しろよ
753デフォルトの名無しさん:2012/02/11(土) 20:48:52.46
>>748
「ハッシュは異質・トリッキー」が主観で無くて何なんだ?

客観的と言うなら、ハッシュで分岐するのが
キーワード引数の例(>>690)のように
機能的に劣った点があることを示せ
754デフォルトの名無しさん:2012/02/11(土) 20:54:05.79
621が自分の主観を客観的を言ってるんだけど、何なの
755621:2012/02/11(土) 20:58:47.63
>>752
>>742から再実装されたコードが提示されたら、まとめて訂正するつもりだよん

今のままだと>>700のコードは例外を投げないから仕様不整合であり、
>>621の「ハッシュを使わなければ書けない」という主張は崩れていない
>>742が(仕様不整合を)見逃してもらう必要は無いと、明確に意志を示してくれたので、
それを尊重してコードの提示を待っているところ
756デフォルトの名無しさん:2012/02/11(土) 21:07:28.71
>>755
お前はコードの提示を待つ前に>>753に答えるべき
757デフォルトの名無しさん:2012/02/11(土) 21:09:31.44
長文=客観的
758621:2012/02/11(土) 21:35:08.04
>>756
では、>>753に答えよう(>>753は見落としていたので、指摘ありがとう)

まず、お題の題名が多分岐なのだから、Ruby/ML/Haskellのように
言語仕様に多分岐式を含む言語であれば、多分岐式を用いてコードを実装するのが当たり前
でもPythonは言語仕様に多分岐式を含まないから、
それをハッシュで「代用」しなければならない

次にハッシュで代用することの問題点を述べる
・Ruby/ML/Haskell
  予約語 case によってコードが多分岐処理の実装である事は一目で判断できる
・Haskell
  コードをじっくり眺めなければ、それが多分岐処理なのか、それとも
  本質的にハッシュを用いる処理なのかを判断できない
つまり、Pythonのハッシュによる「代用」は、可読性の悪化という影響をもたらす
759デフォルトの名無しさん:2012/02/11(土) 21:39:05.26
おおむねRubyしか使ってないけど
(趣味プログラマです)
他の言語を知るにつれて

Rubyってメタプログラミング力が弱いような気がしてくる
ちょうどいい感じに使いやすくメタプログラミングできるようになってるだけで
なんか、深い事しようとすると出来ないようなきがする

実際にはそこまでのメタプログラミング能力は要らないのだけど
ブログなどのネタなんかだと、他言語の方がダイナミックなこと出来るなぁ
などと思ってしまう

例えば、Rubyではスクリプトのパース時に細工したりは出来ないし
かといって他の言語に移ろうとかいう気は起こらないけど
760デフォルトの名無しさん:2012/02/11(土) 21:43:08.35
>>758
> 本質的にハッシュを用いる処理なのかを判断できない

これを主観という
761デフォルトの名無しさん:2012/02/11(土) 21:46:44.47
Rubyがプチヒットしたのは
主にRailsのおかげなんだろうけど

たまたま備わっていた
・完全なオブジェクト指向&オープンクラス
・DSLに向いてたブロック構文
・同メソッド呼び出し括弧の省略
・適度なメタプログラミング力
がマニアにうけたのかなぁ

島根県の公式サイト程度ならまだしも
イギリスの公式サイトがRuby製で製作中なんて
無茶しやがってとか思うけど
よくは知らんがクックパッドとか、そこそこ大きそうなサイトも運営されてるので
大丈夫なんだろうか
GitHubもRailsらしいが
762621:2012/02/11(土) 21:52:05.58
まだ時間があるようなので、>>758を続ける

次にハッシュを用いる事それ自身の問題点を示す
Pythonのハッシュは、そのキーとして用いれるのは不変なデータ型(数値/文字列/タプル)だけ
これは、このお題の入力値が「たまたま」文字列であったから何の問題も無いが、
課題をより一般化して、任意のレコード(オブジェクト/ハッシュ)が渡されたと「仮定」する
この場合、Pythonだと多分岐処理をハッシュでは実装できなくなる
これは「Pythonは拡張性に劣る」という欠点となる

また、Rubyではハッシュのキーとして任意のオブジェクトを用いることができるから、
多分岐処理をcase式とハッシュのどちらでも実装が可能になる
これは「Pythonは表現力に劣る」あるいは「ハッシュの機能性が劣る」という欠点となる

以上
763デフォルトの名無しさん:2012/02/11(土) 21:53:21.33
>>758
ハッシュで代用するというか、Visitorパターンだな
じっくり眺めなければ判断できないという批判は、全てのデザパタに当てはまる
764名無し~3.EXE:2012/02/11(土) 22:02:05.48
ざっと流し読みしたら、一人で頑張ってるのがいるようだけど
大好きなRubyたんのシェアが伸びるどころか落ち込んでるのが
余程気に食わなかったのかね
Railsがありながらシェアが伸びないのは何故なんだろうね
765デフォルトの名無しさん:2012/02/11(土) 22:04:17.12
>>755
def Raise(e): raise e
ys = (x for x in xs
            if (lambda x :
                True if x == "Green" else
                True if x == "Yellow" else
                False if x == "Red" else
                Raise(KeyError))(x))
766デフォルトの名無しさん:2012/02/11(土) 22:04:40.85
藪をつついてデザパタ全否定
767621:2012/02/11(土) 22:10:36.90
>>760
その判断が一目で(瞬時に)できるか、じっくり眺めなければならないかは、
プログラマの能力に依存する話

そして全世界のあらゆるPythonプログラマが優れた能力を備えていると仮定すれば、
瞬間的な判断の可否は主観と言えるだろう
でも現実は、そうではないハズだ(それとも、これすら主観であると決めつけるのかな?)
経験豊かなプログラマもいれば、ビギナーもいる
従って、これを主観と決めつけることはできないと判断する

また、可読性という評価基準そのものが主観性を含むものだ
「予約語caseがあれば分岐処理の始まりであると一目で分かる」と考える人は多いと思うが、
中には「caseを見落とすかもしれない」と屁理屈をごねる変な人もいるかもしれない
でも、これらはそれぞれの人達の主観であるから客観性は存在しない

では、本当に「可読性」を完全に無視していいのか?という話になる
Pythonの優れた特徴である可読性の良さという利点も無視されるけど、
それでもいいの?という意味だ

判断は>>760に委ねたい
768デフォルトの名無しさん:2012/02/11(土) 22:18:04.10
うんこ
769デフォルトの名無しさん:2012/02/11(土) 22:18:37.53
>>762
> Pythonのハッシュは、そのキーとして用いれるのは不変なデータ型(数値/文字列/タプル)だけ
> これは、このお題の入力値が「たまたま」文字列であったから何の問題も無いが、

いるよな。都合が悪くなると後から条件変えてくる奴。

不変なデータ型ってことにケチつけるなら、
まずHaskellでmutableなデータ型が入力値のときのコードを出せよ
770デフォルトの名無しさん:2012/02/11(土) 22:18:39.79
>>702
>Rubyは書き捨てスクリプト専用言語だから
>キーワード引数なんて要らない

冗談じゃない。
Rubyにも本物のキーワード引数が欲しいし、Matzもそう言っている。だからこそ2.0で導入される予定。

>あれは大きいプログラム用の機能だからね

冗談じゃない。キーワード引数は小さいプログラムでも実に役に立つ。
こんなこというのは、Pythonをまともに使ったことないんだろう。

キーワード引数は、Python使って嬉しかったことの筆頭。
しかしlambdaが文をとれないなど残念な面も多い。RubyのブロックがPythonにも欲しい。
771デフォルトの名無しさん:2012/02/11(土) 22:18:43.40
関数型言語のコードを一見して分かる優れたプログラマばかりなら
621の理屈は通るけどね
772621:2012/02/11(土) 22:18:56.77
>>765
コードありがとう

でも、このコードは外でRaise(e)という関数を定義しているよね
ここまで提示されたすべてのコードには、外部定義は一つもなかった
このままだと「Pythonは外部定義が無ければ書けない」という
批判材料を敵に与えてしまうことになるけど、それでもいいのかな?

もし可能であれば、外部定義の無いコードに書き直して欲しい
773デフォルトの名無しさん:2012/02/11(土) 22:19:55.73
>>772
外部定義をしてはいけない理由はなに?
明らかに全てのコードの中で一番スッキリしてるだろ
774デフォルトの名無しさん:2012/02/11(土) 22:20:40.61
>>772
Raise() は一度定義すれば何度でも使えるけど?
つまり一切のライブラリの使用を禁止ってこと?何の縛りプレイ?
775デフォルトの名無しさん:2012/02/11(土) 22:20:43.38
敵なんてどこにいるんだと思ったが、バトロワスレだからべつにいいか。
776デフォルトの名無しさん:2012/02/11(土) 22:23:53.83
>>775
敵はあなたの心の中に潜んでいるのだよ。
777デフォルトの名無しさん:2012/02/11(土) 22:24:51.58
たしかに
うんこ

言わざるを得ない
778デフォルトの名無しさん:2012/02/11(土) 22:25:30.92
今にして見れば、Rubyのコードが終わってる
779デフォルトの名無しさん:2012/02/11(土) 22:26:24.86
うんこーど
780デフォルトの名無しさん:2012/02/11(土) 22:26:33.28
Perlの話もしろよ
781デフォルトの名無しさん:2012/02/11(土) 22:28:45.39
>>772
SML の datatype や Haskell の data も外部定義
782621:2012/02/11(土) 22:29:09.41
>>763
>じっくり眺めなければ判断できないという批判は、全てのデザパタに当てはまる

「じっくり眺めなければ判断できない」ことが全ての言語に当てはまるのなら批判はしない
Ruby/ML/Haskellであれば予約語caseがあるから一目で判断できるのに、
Pythonは「じっくり眺めなければ判断できない」から批判されている
分かるかな?
783デフォルトの名無しさん:2012/02/11(土) 22:32:49.01
今にして見れば、Rubyのコードが一番終わってる
784621:2012/02/11(土) 22:35:01.27
>>769
では、バトル第三ラウンドでは、Haskellでも書ける(imutableな)レコード型を入力値とする
お題を準備することにしよう

もし不満であれば、>>769が別のPythonに有利なお題を準備すればいい
785デフォルトの名無しさん:2012/02/11(土) 22:35:27.55
>>782
予約語 if と True/False を見ても一目で判断できないなら終わっとる
ていうかお前以外誰も「一目で判断できない」と言ってない
お前しか批判してないんだから
> Pythonは「じっくり眺めなければ判断できない」から批判されている
みたいに伝聞のような書き方をするな
786デフォルトの名無しさん:2012/02/11(土) 22:35:51.72
>>784
お前お題の作り方下手糞すぎるからやめとけよw
787デフォルトの名無しさん:2012/02/11(土) 22:36:39.12
>>785
長文だから許されるらしいよw
788デフォルトの名無しさん:2012/02/11(土) 22:36:56.74
>>784
何でHaskellに合わせてルール決めるんだよ
789デフォルトの名無しさん:2012/02/11(土) 22:39:45.44
Haskellを巻き込むのはやめて欲しいなぁ。
LL同士で勝手にやってほしい。
790デフォルトの名無しさん:2012/02/11(土) 22:41:56.22
>>789
やってるのはRuby信者兼Haskell信者だけどな
791621:2012/02/11(土) 22:43:17.39
>>773,774
Ruby/ML/Haskellのような局所宣言が言語仕様に含まれていれば、
これまでのように局所宣言で書いてもいいし、
あるいは外部定義に書き直してもいい
つまり「表現力が豊かである」という利点になる

ここで、もし「Pythonが外部宣言が無ければ書けない」とすれば、
それは(上記とは逆に)Pythonの欠点となる
この判断は、すべて>>765が示してくれるであろう新しいコードに係っている
792デフォルトの名無しさん:2012/02/11(土) 22:47:07.45
それらコードを見て誰が「表現力が豊か」と思うんだろう
793デフォルトの名無しさん:2012/02/11(土) 22:49:58.16
>>791
だから SML や Haskell でも datatype や data を使わないで書けって
外部定義禁止なんだろ?
794621:2012/02/11(土) 22:51:40.58
>>785
このお題くらい単純なコードなら、誰でも短時間で判断できるだろう
でもコードの規模が大きくそして複雑になれば、誰も瞬間的な判断なんてできなくなるよ
可読性とは、そういった大規模開発で意味のある評価基準だ

というか、こんな反論しかできないとしたら、>>785は大規模ソフトウェア開発の経験ゼロだろ?
795デフォルトの名無しさん:2012/02/11(土) 22:52:03.60
一切の外部関数の使用を禁止して競う表現力の高さw
796デフォルトの名無しさん:2012/02/11(土) 22:55:26.82
機能を制限するのは、フェアじゃない気がするなぁ。
797デフォルトの名無しさん:2012/02/11(土) 22:57:11.35
>>794
お前以外はコードの規模が大きくなっても
一目で判断できると思うぞ
798621:2012/02/11(土) 22:57:43.84
>>786,788
だってバトルなんだから、こちらがRubyに優位な条件にするのは当然だろ
もしもPython支持派がお題を提示してくれれば、それに付き合うよん

では、新たなお題の準備、ヨロシクw
799デフォルトの名無しさん:2012/02/11(土) 22:58:53.67
>>794
> 可読性とは、そういった大規模開発で意味のある評価基準だ

大規模開発なのに外部宣言は禁止なの?www
800デフォルトの名無しさん:2012/02/11(土) 23:03:04.48
>>798
なんでRubyがクソに見えるお題作っちゃったの?
801621:2012/02/11(土) 23:04:36.45
>>793
ML/Haskellは静的型付け言語だから、データ型の定義は認めている
このバトルは Ruby vs. Python なんだから、些細な問題だろ
802デフォルトの名無しさん:2012/02/11(土) 23:07:09.83
>>641
いやいやそこは

<cond> if <true> else <false> then

だろ。
実装によっては

<cond> if <true> else <false> end

でもいいらしいけど。
803621:2012/02/11(土) 23:08:16.62
>>796,799
外部宣言を禁止している訳じゃないよ
>>791を読んでくれ

さすがに長文レスは疲れてきたぜw
804デフォルトの名無しさん:2012/02/11(土) 23:08:27.00
>>801
お前以外は外部定義した関数を使うのは些細な問題だと思ってるよ
805621:2012/02/11(土) 23:09:45.19
>>800
>.... がクソに見える

>>760によれば、これが主観というものらすい
806デフォルトの名無しさん:2012/02/11(土) 23:11:16.09
>>805
お前は自分のレスがクソみたいな主観だって認めてるんだな
その事に驚いた
807デフォルトの名無しさん:2012/02/11(土) 23:13:05.47
>>803
いや、関数内部でデータ型を定義できないのは
明らかに表現能力の制限だから
SMLやHaskellのことだけど
808デフォルトの名無しさん:2012/02/11(土) 23:14:56.82
つーかRubyのコードはホントひでーな
こんなクソコードをドヤ顔で貼ったんだと思うと笑える
809621:2012/02/11(土) 23:20:02.93
>>804
まあ、外部宣言の話は、>>765がコードを示してくれるまで待ったほうがいいんじゃね?
もしも>>765が外部宣言を使用しないようコードを書き直すことができるのなら、
Python陣営に不利な条件は完全に無くなって、
>>621にある3つの主張の中の一つが完全に崩れ去る訳だから
810デフォルトの名無しさん:2012/02/11(土) 23:21:41.92
標準ライブラリに特定の関数(この場合はRaise)が在るか無いかが
言語の表現能力を決めるらしい
811デフォルトの名無しさん:2012/02/11(土) 23:22:35.94
ねえねえ、Rubyは外部定義すれば「ちゃんと」書けるんだよね?
それならそうした方が良いと思うよ
812621:2012/02/11(土) 23:24:30.47
>>807
だってこれは Ruby vs. Python のバトルなんだもんw

ML/Haskellの表現能力に制限があっても関係ないだろ
813デフォルトの名無しさん:2012/02/11(土) 23:25:30.83
ユーザ定義関数を使用禁止の大規模開発www
814デフォルトの名無しさん:2012/02/11(土) 23:27:41.31
Rubyは結局Perlだから、書き捨てオレオレコードに向いてるって言えば良いのに
815デフォルトの名無しさん:2012/02/11(土) 23:29:36.90
unix系では外部関数どころか外部言語を平気で使うから
優れた言語を一つだけ決めるようなバトルは発生しないんだよな。

一般的に言うと文字列を多用する環境ではバトルがない。
S式やオブジェクトなど、文字列に代わるものを使い始めるとバトルになる。
816621:2012/02/11(土) 23:36:00.12
>>811
うん、書けるよ
でも外部宣言でRubyコードを書く気は無いよ

バトルなんだから、相手に有利なことをするわけないだろ
残念でしたw
817621:2012/02/11(土) 23:38:40.29
>>814
自分の思い通りに話を進められなくて、残念でしたw
818デフォルトの名無しさん:2012/02/11(土) 23:44:20.72
>>816
つまりRubyっていずれにしても汚いコードしか書けないから不利になるってことか
自分のお題で自分の首を絞めるなんてなあ
819デフォルトの名無しさん:2012/02/11(土) 23:55:18.54
>>809
ys = (x for x in xs
            if (lambda x :
                True if x == "Green" else
                True if x == "Yellow" else
                False if x == "Red" else
                {}[x])(x))
820デフォルトの名無しさん:2012/02/12(日) 00:02:34.21
どいつもこいつも時代が見えてない。
クラウドにおいては、PCはただの端末だ。
動画が見れるミニテルに過ぎん。
クラウドの真ん中に鎮座しているのはMapReduceだ。
もはやPythonやRubyの出る幕はない。
821デフォルトの名無しさん:2012/02/12(日) 00:14:47.14
>>719
デコレータ自体の表現力はいいと思うけど
型チェックやバリデーションのための機能としてみた場合、
なんか書き方が冗長すぎるなぁ
読むのが疲れる
822デフォルトの名無しさん:2012/02/12(日) 00:17:20.70
>>820
もしかしてMapReduceが万能の技術だと思ってる?
あれ、レスポンスタイムが重要なところには使えないんだが。
向いてるのはバッチ処理だけ。
823デフォルトの名無しさん:2012/02/12(日) 00:22:18.19
MapReduceはスケールしやすくて
意外に汎用性がある点で注目されたというだけで
それが全てかというと決してそんなことはない

例えばパイプラインとか、ステンシルとか、
他にも様々なパターンらしきものが見つかっている
824デフォルトの名無しさん:2012/02/12(日) 00:27:22.50
Pythonのlambdaは汚点でしょ、何故あんな中途半端な仕様のまま残ってるのか解らん
いっそ削除してしまえば「ローカル関数作れ」で統一されるという利点にもなるだろうに
825デフォルトの名無しさん:2012/02/12(日) 00:29:33.48
>>821
こんな感じ?

@typecheck
def f(x:int, y:int) -> int:
    return x + y

@validate(x=lambda x: -1 < x < 1)
def g(x):
    print(x)
826デフォルトの名無しさん:2012/02/12(日) 01:06:45.76
>>641
>if <cond> then <true> else <false>
>が判り易いなんて思い込みだろ
><true> if <cond> else <false>
>の方がシンプルで良いじゃん

何を根拠にそう決め込むのか?
おまえこそ思い込みだろww

>っていうか何で「ただの値を返すだけの記号」だと思えないんだろう

<cond> ? <true> : <false> を「ただの値を返すだけの記号」だと思えないやつが何言ってるんだw
Python信者アホすぎるww
827621:2012/02/12(日) 01:28:13.77
>>819
お疲れさまです

コードを拝見したところ、raise文の代用として、
空のハッシュを入力値で参照することでKeyError例外を投げる実装みたいですね
でも残念ながら、見逃してもらう必要は無いという貴殿の意志を尊重すると、
これは「例外を投げる」という意味では仕様不適合ではないけれども、
任意の例外を投げられるRubyに対して「Pythonでは決まった例外しか投げられない」という、
表現能力におけるPythonの欠点であると評価します

自分としては多分岐の評価項目については完全に引き分けであると判断して、
>>621から項目そのものを削除したいと考えているのですが、
このままでは>>621の改訂版に上記の評価結果を反映せざるを得ません

もし可能であるなら、任意の例外を投げられるコードへの書き換えを希望しますが、
コードの書き直しかそれとも>>819を最終完成品とするのか、どちらを選びますか?
後から非難されるのを繰り返したくないので、お手間をかけますが返答を願います
828デフォルトの名無しさん:2012/02/12(日) 01:28:45.71
>>862
「ただの値を返すだけの記号」だと思えれば良いなら、
条件分岐構文の読みやすさに差はなくて
慣れだけの問題ってことだな
829828:2012/02/12(日) 01:29:38.00
>>826の間違いだった
830デフォルトの名無しさん:2012/02/12(日) 01:33:33.19
>>827
>>700のコードで良いよ。任意の例外を投げれるし
で、「標準関数以外を使えない条件でのみ、投げられる例外に制限がある」と明記しといて
831デフォルトの名無しさん:2012/02/12(日) 01:37:08.14
>>824
代入文等の文を使えないのは関数型の原理主義的には正しい仕様。
832デフォルトの名無しさん:2012/02/12(日) 01:39:16.59
ああ>>765だったね、失礼

まあ、言語の表現能力とやらをどう判断するかは各人の自由だと思うので、
条件だけは正しく明記してください
833デフォルトの名無しさん:2012/02/12(日) 01:42:49.00
じゃあ今度は>>825を各言語で書いてみよう
834デフォルトの名無しさん:2012/02/12(日) 01:47:32.00
>>827
> 自分としては多分岐の評価項目については完全に引き分けであると判断して、

Rubyのコードはクソという意見多数なんだが、どうして引き分けなんだ?www
835デフォルトの名無しさん:2012/02/12(日) 02:02:18.33
>>831
でもそれって文への依存性が低いからこそ言えることじゃね?
本場の関数型ならlet式とか、分岐も式だったりするから実用になるけど
文への依存性が大きい現状のPythonで文が書けないってのは大きなマイナス点よ
836デフォルトの名無しさん:2012/02/12(日) 02:39:44.80
>>763
Vistorパターンはトリッキーで好きだが、難しくしてるだけだろ。
普通にポリモーフィズムでごりごりやった方が楽。
837621:2012/02/12(日) 02:51:02.36
>>830
了解しました
また、その補足文章をそのまま明記することを約束します

では、>>621の改訂に取りかかろうと思いますが、
少し疲れたのでこの辺で一時休息に入ります
改訂版のカキコまで、しばらくお待ちください
838621:2012/02/12(日) 02:55:18.38
いけね、>>832を見落としていた

>>832
了解しました
改訂版は>>765とし、条件は必ず明記します
839621:2012/02/12(日) 03:06:17.34
>>834
このバトルスレは討論により勝敗を決するものであり、多数決で決めるものじゃねえだろ

もしも多数決で決めたかったのなら、
最初に(前スレまたは今スレ>>625)それを主張して皆の同意を得ておくべきだったな
それを今頃になってのこのこ出てきて、多数決などと言い出しても遅すぎるわ

残念だったねw
840デフォルトの名無しさん:2012/02/12(日) 03:19:52.79
>>833
Common Lispで
(declaim (ftype (function (integer integer) integer) f))
(defun f (x y)
  (+ x y))

(declaim (ftype (function ((real -1 1)) *) g))
(defun g (x)
  (print x))

(g 1) => 1
となるが。
841デフォルトの名無しさん:2012/02/12(日) 03:30:12.69
多数決じゃ逆立ちしても勝ち目がないから、ノイジーマイノリティが勝つ設定じゃないと困るんだろ
関数型言語信者がよくやる手口だな

そんなことやってるという事実が既に負けなんだよね
比較の条件も厳選に厳選、限定に限定を重ねて、やっと優位を示したかと思ったら
クソコードだし、何をやりたいのか分からん
842デフォルトの名無しさん:2012/02/12(日) 06:42:46.88
>>802
馬鹿ですね
わかります
843デフォルトの名無しさん:2012/02/12(日) 09:14:00.97
僕 Python 信者
ここは LL スレだからしかたないかもだけど
Python vs Ruby っていう比較で Python を選んだ人は少ないんじゃないかな
Python 信者の半分は NumPy 信者で、その人たちは Ruby とか最初から眼中になくて
比較相手は Python vs R だと思う
844デフォルトの名無しさん:2012/02/12(日) 10:02:17.67
よく知らんけどScipyやMatplotlib見たかんじでは、RってよりMatlabじゃね

845デフォルトの名無しさん:2012/02/12(日) 10:09:08.63
>>844
金持ちだな
846デフォルトの名無しさん:2012/02/12(日) 10:35:49.63
>>843
Python信者じゃないけど、俺がPython使うのを
選んだ理由と全く同じだわ
847デフォルトの名無しさん:2012/02/12(日) 10:59:41.87
だってRって関数はいっぱいあるけどプログラミング自体は不便なんだもん
848デフォルトの名無しさん:2012/02/12(日) 10:59:48.20
>>825
そんな暗号の様なコードは読み手に不要な知識を要求するので可読性が低い
大規模開発ではこの程度のコード量の増加は誤差の範囲

def f(x, y)
    if !x.kind_of?(Integer) then
        raise TypeError
    end
    if !y.kind_of?(Integer) then
        raise TypeError
    end
    z = x + y
    if !z.kind_of?(Integer) then
        raise TypeError
    end
    return z
end

def g(x)
    if !(-1 < x && x < 1) then
        raise RuntimeError
    end
    print x
end
849デフォルトの名無しさん:2012/02/12(日) 11:00:34.09
>>833
PowerShell
function f ( [int]$x, [int]$y ) {
$x + $y
}

function g {
param ( [ValidateRange(-1,1)]$x )
$x
}
850デフォルトの名無しさん:2012/02/12(日) 11:01:51.99
カスrubyの言い訳が酷い
851デフォルトの名無しさん:2012/02/12(日) 11:25:09.46
>>831
Pythonてそういう原理主義を否定してlenとかjoinとかああいう仕様にしたんじゃなかったっけ?
852デフォルトの名無しさん:2012/02/12(日) 11:26:00.51
>>843,846
数値計算系はrubyは眼中に入らないほどの差がある・・・と(メモメモ
853デフォルトの名無しさん:2012/02/12(日) 11:28:10.78
>>852
お前Rubyとの比較じゃないんじゃないかってところは読めないの?
バカなの?
854デフォルトの名無しさん:2012/02/12(日) 11:32:22.36
>>853
いや、>>382も読んでたんで・・・
855デフォルトの名無しさん:2012/02/12(日) 11:45:27.02
PHPとJavascriptとRubyはこの世から消えて欲しいわ
856デフォルトの名無しさん:2012/02/12(日) 12:00:28.13
バイオインフォマティクスだと Perl > Python > Ruby かな。
857デフォルトの名無しさん:2012/02/12(日) 12:06:16.55
DelphiはDelphi言語で実装されてるし、VC++もC++で実装されてる。GHCもHaslellで実装されてるし、pypyもpythonで実装されてる。
rubyにはrubyで実装されたruby処理系って無いの?
858デフォルトの名無しさん:2012/02/12(日) 13:08:52.80
Rubyデバッガ
859デフォルトの名無しさん:2012/02/12(日) 15:03:12.53
>>857
rubinius
860Vintevecom(Yokohama)=娵十=TEN10(teto):2012/02/12(日) 21:29:02.15
嘩喃人が奪い、中国に送った警察と自衛隊の銃は アジア大陸の七百万人の命を奪った。嘩喃人の立て籠りの2年間に何人が犠牲になったかアジアに確認を。

嘩喃人の河馬兄弟が諦めず、止めない。
人質を捕り、立て籠りを続けながらハッキングをしつこく続けている。

皆、大正生まれの戦犯。原爆投下と枯葉剤を作った人間だ。

今も犠牲者が増えるばかりの 2-Hndred Yars' Wrの最中である事を日本人だけが知らない。
861デフォルトの名無しさん:2012/02/12(日) 22:54:32.85
平和なのもいいけど、退屈だなぁ、、、
862デフォルトの名無しさん:2012/02/13(月) 07:13:18.93
>>843 の改変版

僕 Ruby 信者
ここは LL スレだからしかたないかもだけど
Ruby vs Python っていう比較で Ruby を選んだ人は少ないんじゃないかな
Ruby 信者の半分は Rails 信者で、その人たちは Python とか最初から眼中になくて
比較相手は Ruby vs PHP だと思う
863デフォルトの名無しさん:2012/02/13(月) 07:29:39.88
pgr説
864デフォルトの名無しさん:2012/02/13(月) 08:04:27.55
RubyはPHP並にうんこ説
865デフォルトの名無しさん:2012/02/13(月) 09:03:39.33
>>862
最後の行はRails vs 〜とすべきじゃね?
866デフォルトの名無しさん:2012/02/13(月) 09:23:00.91
>>865
オリジナルの>>843が Python vs R だったから、それにあわせた
867デフォルトの名無しさん:2012/02/13(月) 09:43:41.12
           |;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ノ|
           |丶、 ;;; __;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;_,,: ィ";;_|
           ト、;;;;;;;;;;;;;;;` ` '' ー -- ‐ '' ";;;;;;;;;,:ィ;:;!
          ,';:``' ‐ョ 、 ,_ ;;;;;;;;;;;;;;;;;;;;;;;;;;; , - '"l;:;:;:;:l   だまりゃ!そのほう麿をなんと心得る!
          l;:;:;:;:;:;:;ミ   ` ` '' ー -‐ '"    ,リ;:;:;:l
          l;:;:;:;:;:;:;:ゝ   く三)   (三シ  `ヾ;:t、  恐れ多くも帝より三位の位を賜わり
         fミ{;:;:;:;:f'´  , -−-_,, _,ィ 、_,,ィ,.-−、  };f }
         l トl;:;:;:;:l  、,ィ或tュ、゙:ミ {,'ィt或アチ l:l,/  中納言まで勤めた麿の言うことを聞かなくば
         ゙i,tヾ:;:;:!  `ヽ 二ノ   ト ` ‐''"´  l:l:f
          ヽ`ー};:l       ,r'、   ヽ      リ_)  どのようなことになるのか分かっておるのか!
           `"^l:l      ,/゙ー、  ,r'ヽ    l
             ゙i    ,ノ    `'"  丶.   ,'    今一度しか述べぬ!心して聞くがよい!
               ゙l、   ′ ,, ィrェェzュ、,_ 〉 } /
              ',ヽ  ヘヾ'zェェェッ',シ' //ヽ
               } 丶、 ` ー--‐ '"'´,/ノ:.:.:ヽ
              /l   丶、      ,.イ:.:.:.:.:.:.:.:丶、、
            ,r'"^l !    ` ー‐;オ´:.:.:.:.:.:.:.:.:.,ノ  ,}、
       ,. -ァ=く(:.:.:.l  l      //:.:.:.:.:.:., - '"  ,/ ヽ、

何語で話すかにこだわっているうちは六流。
何を話すかにこだわって五流。
何を為すかに思い至ってようやく四流。
思うだけでなく、為せたならば、三流。
為したことを他人に評価されてやっと二流じゃ。
為したことを後世の人間に評価されて初めて一流となる。

主らはいつになったら六流から抜け出すことができるのじゃ。
868デフォルトの名無しさん:2012/02/13(月) 09:47:11.46
>>866
ありゃ、ほんとだ
脳内でNumPy vsに変換されてた
869デフォルトの名無しさん:2012/02/13(月) 09:59:27.07
>>867
麿もたまにはいいことを言うw
870デフォルトの名無しさん:2012/02/13(月) 16:59:19.41
まあRubyのコードは6流だったね
871デフォルトの名無しさん:2012/02/13(月) 19:21:25.79
>>867
おまけ。

下を向いて生きていれば六流。
下を向かずに生きて五流。
自分に目を向けて四流半。
上を向いて生きて三流半。

他人がどうのこうのではないわ!
まず、主自身に目を向けい!
872デフォルトの名無しさん:2012/02/13(月) 20:59:31.21
目は口ほどに物を言う、ってことは目も口も六流
873デフォルトの名無しさん:2012/02/13(月) 21:14:58.21
The eyes are the window of the soul. ・・・「目は心の窓
874デフォルトの名無しさん:2012/02/14(火) 05:58:08.31
875デフォルトの名無しさん:2012/02/14(火) 06:04:08.82
いちいち言い訳せんで
勝手に去れよ
876デフォルトの名無しさん:2012/02/14(火) 06:08:46.94
perlに嫌気が差した人は次の言語としてrubyはperl臭いから選ばないと
877デフォルトの名無しさん:2012/02/14(火) 07:33:39.19
>>876
同意
878デフォルトの名無しさん:2012/02/14(火) 11:56:29.41
で お前らちゃんとメシくえてんの?
879デフォルトの名無しさん:2012/02/14(火) 11:59:58.98
Rubyでは食えてない
Pythonでは食えてる
880デフォルトの名無しさん:2012/02/14(火) 12:12:19.93
咥えるって・・・
キャー///エッチー
881デフォルトの名無しさん:2012/02/14(火) 13:04:44.28
くわ・える〔くはへる〕【×銜える/×啣える/×咥える】
[動ア下一][文]くは・ふ[ハ下二]

1 口に軽く挟んで支える。「楊枝(ようじ)を―・える」「物欲しそうに指を―・えている」

2 引き連れる。伴う。
882デフォルトの名無しさん:2012/02/15(水) 08:15:29.00
>>862
Zopeもあったのに、最初から眼中にすら置いてもらえない Python カワイソスwww
883デフォルトの名無しさん:2012/02/15(水) 19:23:46.58
クソコードの後だから煽りも虚しいな...
884デフォルトの名無しさん:2012/02/16(木) 11:28:52.77
amazon
mixi
モバゲー
にちゃんねる
perlってこのぐらいか?
もう役目を終えつつあるな
885デフォルトの名無しさん:2012/02/16(木) 12:53:58.98
満を持していよいよ、Perl6 の出番か
886デフォルトの名無しさん:2012/02/16(木) 13:58:01.59
pythonもperlも仕事増やしたいから互換性なくしたんだろwwwwwwwwwwww
賢いなwwwwwwwwww
htmlも大幅に増やしたしなwwwwwwwww
887デフォルトの名無しさん:2012/02/16(木) 14:27:25.82
html5は増えたのもあるけど、減ったのもある。
タグ付けとデザインが完全に分離したから、ある意味すっきりしたともいえる。
888デフォルトの名無しさん:2012/02/16(木) 16:48:40.99
Perl5 はコンテキスト依存で 返り値が変わるのが
いまいち、ちゃんと把握してない
あと、リファレンスとかややこしい

Perl6にいたっては到底覚えられそうにもない(覚える気は無いけど)
大幅に増えた演算子をしっかり理解してないと
ソースを読むのもままならない
よくは知らんがAPLやJみたいな暗号言語に近づいた気がする
わかってる人にはコンパクトにコードがかけて効率がいいのかもしれないが
889デフォルトの名無しさん:2012/02/16(木) 18:41:13.11
結局、PHP最強ということか。
マゾっ毛でも無い限りPHPにしとけ。
890デフォルトの名無しさん:2012/02/16(木) 20:30:34.01
>>887
マークアップとスタイルの分離はXHTMLどころかHTML4の頃から意識されてたでしょ。
891デフォルトの名無しさん:2012/02/16(木) 22:08:12.90
>>890
でも、html4はfontタグでフォントや色を指定したり、tableタグのwidthでボーダーの幅を指定したりとかできたよね。
html5では、タグでこれらの指定はできなくて、デザイン要素は全てCSSで指定するようになったから、分離が徹底されてるよ。
892デフォルトの名無しさん:2012/02/17(金) 06:54:13.30
まあ、Perl5のコンテキストって、現状ほとんど使われて無くて、配列のサイズを取得する時ぐらいしか意識する必要ないけどね。
リファレンスはCのポインタが理解できる程度の能力があれば動って事内。
Perl6は型指定可能なスクリプト言語というのが非常に魅力的。
893デフォルトの名無しさん:2012/02/17(金) 08:25:34.11
>>891
HTML5 よりも HTML4 strict の方が徹底されています
894デフォルトの名無しさん:2012/02/17(金) 09:36:36.44
いーや、html5の方が徹底されてるよ。
895ぱーる列伝:2012/02/17(金) 12:56:31.21
LLの連中は人脈つくりに必死に献本送ってますね

トミタさん

トミタ「うひょおおおおおおおおおおおwwwwwwwwwwww人脈つくり楽すぎwwwwwwww
適当に本書いて、上層部Perl使いや、LL企業関係者におくりまくろうぜwwwwwwwww」

ってクールなツラして心の中で思ってるからしょうがねーよな

必死におこぼれにあやかろうと色々なやつが、同じLL使いを褒めあってる
ハテブとかなんかで

「尊敬するPerl使いリスト」みたいな

まじおもしれーわ
生き残りかけてる
896デフォルトの名無しさん:2012/02/17(金) 13:06:38.83
忍者か?
897デフォルトの名無しさん:2012/02/18(土) 09:49:37.64
>>848
>そんな暗号の様なコードは読み手に不要な知識を要求するので可読性が低い

言語仕様に型検査や検証機能が含まれていれば、それを「暗号」とは言わないし、
逆にユーザコードで表現(代用)しなければならないRubyよりも優れていると考える

>大規模開発ではこの程度のコード量の増加は誤差の範囲

開発規模とは無関係に、本質の実装コードが検査/検証コードに埋もれる点で、可読性に問題がある
たとえばこのお題であれば、メソッド f の(本質のコードとは) z = x + y であり、
同様にメソッド g であれば print x だけであるけれど、それが一目で認識しずらくなっている

自分なら>>825のお題について、(後置の)unless修飾子と(メリハリを入れる)空行を使って、
以下のように書く

(続く)
898デフォルトの名無しさん:2012/02/18(土) 09:50:19.16
(>>897の続き)

def f(x, y)
  raise TypeError unless x.kind_of?(Integer)
  raise TypeError unless y.kind_of?(Integer)

  z = x + y

  raise TypeError unless z.kind_of?(Integer)
  z
end

def g(x)
  raise RuntimeError unless -1 < x && x < 1

  print x

  nil
end
899デフォルトの名無しさん:2012/02/18(土) 12:16:14.51
There's more than one way to do it
900デフォルトの名無しさん:2012/02/18(土) 12:42:03.95
其れは方法が多い
901デフォルトの名無しさん:2012/02/18(土) 12:43:44.32
Here is the battle stage.
Let's fight!
902デフォルトの名無しさん:2012/02/18(土) 14:00:14.38
903デフォルトの名無しさん:2012/02/18(土) 14:35:27.58
theじゃなくてaだろ
904デフォルトの名無しさん:2012/02/18(土) 14:56:45.22
Pythonは見やすさ重視してるかなと思うけど、RubyとPerlは大差ない。
905デフォルトの名無しさん:2012/02/18(土) 17:20:21.02
>>897
Pythonも別に型検査などが言語機能としてあるわけではなく
単にデコレータを使えばそういうことに「も」書く側で対応できるってだけじゃん
そういうデコレータの汎用性はいいと思うけど、直接実装するのと比べるとやっぱりね

どこまでをどの程度の抽象度で表現できるようにするかってのは、難しいけども
906デフォルトの名無しさん:2012/02/18(土) 17:22:36.12
何この低レベルな争い、、、
907デフォルトの名無しさん:2012/02/18(土) 17:36:17.90
javaのクラスライブラリが使えるだろうjruby一択だろjk
pythonなんて、vbみたいに文法がシンプルな割には、
classに毎度毎度、selfと書かなければならないperl臭さがあってダメポ
実際問題、ハッカーの書いたスクリプト言語に、どれほどの信頼性があるのよ?って怖さがある
シンプルな言語でなければ、言語開発者たちが解析木なり構文木なり、
明文化されてないのを良いことに、バグ放ったらかしてそう
だから使うなら、シンプルなscheme系統が良いけれども
clojure/clojure scriptなんかは開発陣がなんかキモい
そんな理由でjavascriptとluaが大勝利
908デフォルトの名無しさん:2012/02/18(土) 17:42:15.36
変な理屈だなあ
909897:2012/02/18(土) 18:15:13.12
>>905
失礼、説明が足りなかった
自分がうらやましかったのは、f(x:int, y:int) -> int という型式風の関数アノテーション構文
で、それをデコレータと組み合わせると型検査/検証を簡潔に書けてイイ!と
(ただし、デコレータは一種のマクロだから「Rubyとは」相性が悪いように思う)
910デフォルトの名無しさん:2012/02/18(土) 18:20:13.58
rhinoが流行らなかったのは、javaのクラスライブラリとjsの相性が悪すぎたせい
rubyの方がpythonよりも言語の機能が豊富だしOOPとしては優れているのは誰の目にも一目瞭然
perlはもう…(笑)これから、4、5年ぐらいはjsが、かつてのperlと同じポストに着く。
廃れるときも、perlと同じ扱い。
javaは文法というか、色々と冗長すぎるので、
kotlinなりceylonなりポストjavaにjvmのメインストリームを奪われる。というか奪われろ。
関数型は大手ITの社内アプリなんかで徐々に使われだし、
ある程度の方法論とノウハウが蓄積後に業務アプリの開発で主流になる。
911897:2012/02/18(土) 18:35:54.36
>>907

全体としてはいくつか異論があるけれど、

>pythonなんて、vbみたいに文法がシンプルな割には、
>classに毎度毎度、selfと書かなければならないperl臭さがあってダメポ

ここだけは同意
912デフォルトの名無しさん:2012/02/18(土) 19:03:47.00
>>911
selfは慣れる。railsずっとやってたおれが保証する。よく忘れるけど。

それより、Pythonは親クラスのメソッド呼び出しがださすぎる。
super(ClassName, self).method() だっけ?最初見たときバカかと思った。
で、そんなはずはないと思ってもう一回みたら、やっぱりバカばかしかった。
はっきりいってPythonのsuperはPHP以下。Pythonでオブジェクト指向したくなくなる。

あとDjangoがいつまでたっても3に対応しない。Railsは早々に1.9に対応済というのに。クソったれ。
913デフォルトの名無しさん:2012/02/18(土) 19:08:24.43
Perl は5.8辺りで上手く枯れて来たなーと思ったところに色々突っ込んじゃった印象
まあ路線的には専門外だったWebから脱却して
ポストawkというかシェルのお供みたいな位置で落ち着きそうだなと思う
914897:2012/02/18(土) 19:10:31.61
(>>898の続きになる)

>>825はお題であるから>>898のコードが適切だと思うけど、
実際の開発で型検査/検証が必要であれば(>>716で簡単に紹介した)表明メソッドを使う

require 'tmdoc/tmstd'
ASSERT = TmStd::Assertion

def f(x, y)
  ASSERT.kind_of x, Integer
  ASSERT.kind_of y, Integer

  z = x + y

  ASSERT.kind_of z, Integer
end

def g(x)
  ASSERT.assert -1 < x && x < 1

  print x

  nil
end

メソッド Assertion.kind_of(およびassert)のコード定義については、以下を参照
http://www.h6.dion.ne.jp/~machan/tmdoc/example/tmdoc.book/html/tmdoc.src.tmstd.assertion.rb.html#tmdoc.src.tmstd.assertion.rb.32

(続く)
915デフォルトの名無しさん:2012/02/18(土) 19:11:56.46
>>912
まじPython2のsuperはアホ全開だよな
Python3だとsuper().method()だからマシだけど
916デフォルトの名無しさん:2012/02/18(土) 19:12:20.27
>>912
Pythonは多重継承あるから、勝手に継承元決められるより
親クラス明記のが楽かも…まあ、それでも色々くっ付き過ぎだけどw
917897:2012/02/18(土) 19:14:18.80
(>>913の続き)

実行結果は以下のようになる(等幅フォントを使わないとボックスは奇麗に表示されない)

irb(main):006:0> f("Hoge", 1)

+=== ASSERTION FAIL!! : A is a kind of E. ====
|[EXPECTED(E) TYPE]
| Integer
|-----------------------------------------------------
|[ACTUAL(A) TYPE]
| String
|[ACTUAL(A) VALUE]
| Hoge
+=====================================================
TmStd::Exception::AssertionFail: TmStd::Exception::AssertionFail
  from /opt/local/lib/ruby/site_ruby/1.8/tmdoc/tmstd/assertion.rb:55:in `kind_of'
  from (irb):4:in `f'
  from (irb):6
  from :0
918デフォルトの名無しさん:2012/02/18(土) 19:19:45.30
>>916
> Pythonは多重継承あるから、勝手に継承元決められるより
> 親クラス明記のが楽かも

ダウト
Python2でのsuperは親クラスじゃなくて自クラスを指定する
信者乙
#いやこの程度を間違えるなら信者ではないかも?
919デフォルトの名無しさん:2012/02/18(土) 19:22:06.73
>>916
親クラスを指定するんじゃないんだよ。それなら百歩譲って理解できる
そうじゃなくて自身のクラスを書かなきゃダメなわけ。例えばこんな感じで

class C(B):
    def meth(self, arg):
        super(C, self).meth(arg)

全く意味不明だろ?w
Pythonユーザの俺でも擁護できんわwww

(なお、Pythonのメソッド呼び出し obj.meth() は C.meth(obj) と等しいので
親クラスを選んで呼ぶのは普通に出来る)
920デフォルトの名無しさん:2012/02/18(土) 19:31:45.45
>>918-919
Ω<ナ、ナンダッテー

いや普段使わない言語に俄か知識でテケトーな事言ってスマンカッタ
921デフォルトの名無しさん:2012/02/18(土) 19:36:15.72
python使っててそういうコードに出くわした記憶がない
922デフォルトの名無しさん:2012/02/18(土) 19:37:10.33
>>912
>PythonのsuperはPHP以下

そんなこというと、Python信者が暴れるだろうが―!

ttps://twitter.com/#!/methane/status/169769965849817088
> Pythonだと、プログラムを綺麗にしようとするモチベーションが働くけど、
> perlやphpではそういったモチベーションが働きにくくてやっつけコードに
> なるのは、俺の個人的な問題なのか、ある程度言語自体が抱えている問題なのか?

ttps://twitter.com/#!/methane/status/169771873545097216
> php使うとcometとかWebSocketとか対応が難しいし、HandlerSocketの性能も引き出せないし、
> Fluentのphpクライアントも他の言語で普通にできているバッファリングが普通には出来なくて
> 苦労してるらしいし、
923デフォルトの名無しさん:2012/02/18(土) 19:38:52.74
ttps://twitter.com/#!/methane/status/169771970525790210
> 「新しい技術に挑戦する」ことを奨励する企業がphpばかり使ってるのは問題だよね。

Python信者の発言こそ問題だけどな。
924デフォルトの名無しさん:2012/02/18(土) 19:47:15.28
大昔にもツイッターのコピペばかりしてる奴がいたけど復活したのか
925デフォルトの名無しさん:2012/02/18(土) 20:56:41.67
>>915はアンチPythonのふりをしたPython信者
自演キモ
926デフォルトの名無しさん:2012/02/18(土) 21:30:44.44
>>909
> (ただし、デコレータは一種のマクロだから「Rubyとは」相性が悪いように思う)

デコレータはただの高階関数(に対する構文糖)
Rubyと相性が悪いとすれば、それは高階関数と相性悪いってこと
927デフォルトの名無しさん:2012/02/18(土) 22:59:25.08
>>905
もっともなご意見有り難う。そんな事言いだしたら、PerlだってMooseで型制約出来るもんな。切りがない。
928デフォルトの名無しさん:2012/02/19(日) 00:18:28.13
ttps://twitter.com/#!/methane/status/169774541797728259
> 社内でPythonをメインで使っていくぞーって吠えてphpをdisったりしてるの、
> 単にガキが暴れてるだけに見えるかもしれませんが、もともと僕自身が
> 引っ込み思案なので自分を追い詰めるために虚勢を張っているのです。
> 察してください。

ワラタw
Python信者が言い訳しとるww
929Python信者:2012/02/19(日) 00:49:15.04
>>918
馬鹿は黙ってろ

>>912
どうしてもPython2でその書き方が嫌なら
super(ClassName, self).method()
の代わりに
SuperClassName.method()
でもいい

さらに
どうせインスタンス作った後はsuper変えることなんてなさそうだから
__init__の中で
__super=super(ClassName, self)
とした上で
__super.method()
って書いても良い

何でobjectクラスの中でそれが定義されてないのかって突っ込むなら
Railsのまねで
object.__super=
930デフォルトの名無しさん:2012/02/19(日) 08:01:58.01
>>929
objectに属性追加出来ないだろ
本当にPython信者か?
931デフォルトの名無しさん:2012/02/19(日) 08:15:29.58
>>929
>どうしてもPython2でその書き方が嫌なら
>super(ClassName, self).method()
>の代わりに
>SuperClassName.method()
>でもいい

ださいことには変わりないけどな

>さらに
>どうせインスタンス作った後はsuper変えることなんてなさそうだから
>__init__の中で
>__super=super(ClassName, self)
>とした上で
>__super.method()
>って書いても良い

素人考えだな
それは継承を2段階行ったら破綻するやり方
932デフォルトの名無しさん:2012/02/19(日) 08:29:06.48
Pythonはこんなにダサいのに
いざコードを書かせるとRubyが圧倒的にダサいのは何故だろう?
933デフォルトの名無しさん:2012/02/19(日) 08:35:15.15
>>932
信者だから
934デフォルトの名無しさん:2012/02/19(日) 09:07:08.15
>>932
まったくの主観で笑えるw
Python信者がんばれ!
935デフォルトの名無しさん:2012/02/19(日) 09:11:41.50
>>928
>> 社内でPythonをメインで使っていくぞーって吠えてphpをdisったりしてるの、

disってるという自覚はあるのね
信者って、そういう自覚がないままに行動してると思ってた。

>>929
>super(ClassName, self).method()
>の代わりに
>SuperClassName.method()

SuperClassName.method(self) の間違いだろ
信者がそんなミスするなよな

936デフォルトの名無しさん:2012/02/19(日) 09:29:05.87
>>934
Ruby信者には>>898>>914がダサくないの?
937デフォルトの名無しさん:2012/02/19(日) 09:34:49.37
>SuperClassName.method(self) の間違いだろ
>信者がそんなミスするなよな

それはもちろん気付いてたが
単に()をmethodを代表するものとして付けただけだから
938デフォルトの名無しさん:2012/02/19(日) 10:49:38.33
>>937
苦しーw
そんな小さなミスすら、認めようとしないのか
こんな便所の落書きですら自分の体面を保とうとしているとは恐れ入った
939デフォルトの名無しさん:2012/02/19(日) 10:50:09.44
>>926
もしもPythonが高階関数との相性が良いのなら、
高階関数の合成演算(の構文糖)であるメソッドチェーンを
何の不自由も無く使えているはず
でも、現実にはPythonでのメソッドチェーンは使い物にならないから
(あるいは用途が極めて限定されてしまうから)、
「Pythonは高階関数との相性が悪い」とも言えてしまう

だから、>>909では、デコレータがRubyと相性が良くない理由を、
「デコレータが(構文糖である)マクロであるため」と書いている
分かるかな?
940デフォルトの名無しさん:2012/02/19(日) 11:33:07.96
>>939
その主張は「Rubyが高階関数と相性が悪い」の反論になってない

あとデコレータはLipsマクロほど強力じゃない。所詮はただの高階関数
941デフォルトの名無しさん:2012/02/19(日) 11:35:26.31
>>936
Rubyもださいね。Pythonのsuperと同じくらいださい。
942デフォルトの名無しさん:2012/02/19(日) 11:38:29.73
>>940
反論になっていないのなら、その理由をkwsk
理由なき主張は、単なる主観だ
943デフォルトの名無しさん:2012/02/19(日) 11:39:59.95
>>942
なんで高階関数に過ぎないデコレータがRubyと相性が悪いの?
もう何度も繰り返してるけどデコレータは高階関数だよ?
「マクロだから」的な反論は間違いだからね
944デフォルトの名無しさん:2012/02/19(日) 11:47:42.48
間違っているのはあなたです。
デコレータのメカニズムは高階関数ですけど、@ほげほげ、という記法は構文糖です。

この構文糖があるからこその「デコレータ」であって、この構文糖がなければ、
デコレータでもなんでもないただの高階関数です。
945デフォルトの名無しさん:2012/02/19(日) 11:49:43.28
お前ん中ではな
946デフォルトの名無しさん:2012/02/19(日) 11:50:08.52
>>944
じゃあ「ただの高階関数」なら使えるってことだよね?
だったら高階関数を使って>>914みたいなダサいコードを
もっと洗練させてよ
直視に耐えないレベルでダサいから
947デフォルトの名無しさん:2012/02/19(日) 11:52:07.09
自分が理解出来ない = ダサい
948デフォルトの名無しさん:2012/02/19(日) 11:57:15.37
>>943
単なる高階関数に過ぎないデコレータ的な機能は、
(Pythonと違って)高階関数との相性が良いRubyであれば
ユーザコードで書ける
(たとえそれが>>898>>914のようにダサいとしても....)

でも、(構文糖である)デコレータ構文そのものの導入は、
ただでさえ複雑なRubyの構文を一層複雑にさせるから、
採用される見込みはないだろうな、という話

関数アノテーションについては、(たとえ構文の追加が必要であっても)、
ぜひとも導入を検討してもらいたいと個人的には思っているけどね
949デフォルトの名無しさん:2012/02/19(日) 11:58:20.06
>>944
Pythonを知らなくてデコレータをマクロだと思ってたんだろ?
指摘されてから「高階関数だって知ってたし」とか笑えるw

じゃあもう一回聞くけど、何故Rubyとデコレータの相性が悪いんだ?
まさか「構文糖だから」か?
950デフォルトの名無しさん:2012/02/19(日) 11:58:53.21
まあ、そもそものRubyの構文がわるいんだろうな。
行き当たりばったりで作ったから、
新しい機能を入れる余地がない。

あー、また互換性切り捨てか。
951デフォルトの名無しさん:2012/02/19(日) 12:02:22.50
>>949
>>948を嫁
952デフォルトの名無しさん:2012/02/19(日) 12:03:36.94
>>950
>行き当たりばったりで作ったから、

そのとおり、Pythonの関数型プログラミング機能と同様に、
行き当たりばったりだね
953デフォルトの名無しさん:2012/02/19(日) 12:08:54.56
>>950
> 行き当たりばったり
> 互換性切り捨て

新旧スタイルクラスに3.0と、Pythonも大概だと思うが…
954デフォルトの名無しさん:2012/02/19(日) 12:33:10.84
950は、よりよい言語にするためだったら互換性は切り捨ててもいいという、
最近のLL系言語に蔓延している風潮それ自体を批判しているんだよ

冒頭のRubyは飾りです、デコレータだけに
955デフォルトの名無しさん:2012/02/19(日) 12:34:34.04
>>928
>ttps://twitter.com/#!/methane/status/169774541797728259
>> 社内でPythonをメインで使っていくぞーって吠えてphpをdisったりしてるの、
>> 単にガキが暴れてるだけに見えるかもしれませんが、もともと僕自身が
>> 引っ込み思案なので自分を追い詰めるために虚勢を張っているのです。
>> 察してください。

さんざん他の悪口を言っておいて、謝りもせず、なにが「察してください」だよ。
自分を追いつめるためなら何を言ってもいいと思ってんのか?
Python信者クズだな。
956デフォルトの名無しさん:2012/02/19(日) 12:35:22.33
pythonのデコレータ自体は高階関数だけど、
@なにがし、はデコレータで関数を置き換える別の機能だと思うけど、、、
957デフォルトの名無しさん:2012/02/19(日) 12:42:37.21
>>955
このスレのPython信者と一緒だね
958デフォルトの名無しさん:2012/02/19(日) 12:46:02.17
>>954
最後のオチ、ワロスw
959デフォルトの名無しさん:2012/02/19(日) 12:47:35.87
>>956
シンタックスシュガーだね
960デフォルトの名無しさん:2012/02/19(日) 13:16:12.46
デコレーションケーキ
961デフォルトの名無しさん:2012/02/19(日) 14:07:40.29
構文論と意味論がごっちゃになるバカとか、このスレにふさわしい隔離対象じゃあないか
962デフォルトの名無しさん:2012/02/19(日) 14:08:29.48
LL ではない重量級の言語は何メインで使ってる?
LL だけって人もいるかもしれないけど、大抵は重量級と LL の両方使うでしょ。
組み合わせに傾向が出たりしないかな?

自分は C と Python です。
963デフォルトの名無しさん:2012/02/19(日) 14:21:02.32
>>961
暴れているガキのことか?
うーん、いくらここが隔離スレだとしても勘弁して欲しい
ガキのお守りは疲れるから
964デフォルトの名無しさん:2012/02/19(日) 14:24:47.80
>>962
漏れは C と Ruby
ただしどちらの言語ともプラットフォームは UNIX(Mac or Linux) だけど
965デフォルトの名無しさん:2012/02/19(日) 16:10:41.76
「LL ではない重量級の言語」ってのがよくわからんけど、
Rubyや、Perlっぽい言語以外、という分類なら、CとかHaskellとか。

Haskellは慣れからくる惰性で使ってるだけだから、OCamlないし
遅延評価が必要ならもっと別の何かでも構わないと思う。
966デフォルトの名無しさん:2012/02/19(日) 18:11:06.40
>>948
仮に@なにがしの構文糖が使えないとしても、>>825のコードは殆ど冗長にならない

def f(x:int, y:int) -> int:
  return x + y
f = typecheck(f)

def g(x):
  print(x)
g = validate(x=lambda x: -1 < x < 1)(g)

高階関数と相性の良いRubyなら>>914はもっと簡潔に書けるでしょ
ASSERT.kind_of を毎回書くんじゃなくて別のメソッドに隠蔽すべき
967デフォルトの名無しさん:2012/02/19(日) 20:45:16.47
Rubyのメソッドは一級市民じゃないので高階関数とは相性悪いです
デコレータをRubyでやるなら動的なメソッドの再定義になりますね

元のメソッドを別名にしてそれをラッピングしたメソッドを同名で再定義します
def foo(x,y) x+y end
type_assersion(:foo, Integer, Integer)
見たいなのは実現可能です

順序を逆にして
直後に定義されるメソッドに対するデコレータみたいなのも書けなくはありません
type_assersion(Integer, Integer)
def foo(x,y) x+y end

ググって見つけたところだと
type_assersion(Integer, Integer) do
def foo(x,y) x+y end
def bar(x,y) x-y end
def baz(x,y) x*y end
end
って感じのがありました、これはRubyっぽい気がします

わざわざ型をチェックしたりする必要性はよくわかりませんね
そんなのは仕様とテストに書いてあれば十分な気がするので
968デフォルトの名無しさん:2012/02/19(日) 21:28:50.10
>>964
unix環境でcを使うなら当然ながらgdbは必須なので、
gdbの拡張用スクリプトに公式的に選ばれたpythonつかっといた方が
幸せになれるんじゃなイカ?

個人的な考えでは、gdbの拡張用スクリプトは、luaかguileにすべきだった。
インデントが構文の言語は、対話環境でイジるの面倒杉だし、OOPとしてのpythonは失敗策。
あれなら、まだperlを採用した方がマシ

s-expなんてemacsがあってはじめて幸せになれるようなもんで、
インタラクティブな操作に向くとは到底ながら思えないけれど、
デバッガにはgnu公式のスクリプトを採用した方が組織としての一貫性があった。
ソフトウェアに永遠の命をなどとスローガンを掲げているわりに連中は自らその道を外れた。

ここのところ話題に挙がらない後発のgroovyって流行ってんのかな?
mozillaのrustといい、perlのようなものから
rubyのようなものを生み出した功績は素晴らしいと思う
969デフォルトの名無しさん:2012/02/19(日) 21:44:06.10
>>968
元UNIX系だがgdbなんてほとんど使ったことのないオレが通りますよ。
(カーネル空間なんでgdbはパニックダンプ解析でしか使えないし・・・。)

関わって多言語は、
C(コーディング)、Sparcアセンブラ(デバック時)、Forth(レビュー対象)。
今はPerl、PHP、Javascript、Java、ActionScript、VBA、SQL、色々やってますが、PythonとRubyは未経験でつ。
970デフォルトの名無しさん:2012/02/20(月) 00:04:01.82
Klabっていつの間にかソーシャルゲーム屋になってたんだな。
971デフォルトの名無しさん:2012/02/20(月) 13:00:16.63
>>923
>ttps://twitter.com/#!/methane/status/169771970525790210
>> 「新しい技術に挑戦する」ことを奨励する企業がphpばかり使ってるのは問題だよね。

なにげに名言だな。
972デフォルトの名無しさん:2012/02/20(月) 13:05:20.73
phpって割と新しい言語だよ。
973デフォルトの名無しさん:2012/02/20(月) 13:06:21.76
言語は関係無ぇー。大事なのは挑戦者スピリットだ!
974デフォルトの名無しさん:2012/02/20(月) 23:21:57.20
Rubyって古い技術だよ。
975デフォルトの名無しさん:2012/02/21(火) 01:32:10.67
似たり寄ったりの手続き型で開発しても、技術的にみれば、どれも同じだろバカ
976デフォルトの名無しさん:2012/02/21(火) 06:26:21.29
海のものとも山のものともわからないのが最先端なのだ。
最先端は、どろくさいし、競争もはげしい。
エレガントとか、美しいとかねぼけたこといってたら最先端ではない
977デフォルトの名無しさん:2012/02/21(火) 06:34:52.53
小さくて速いのがいい
978デフォルトの名無しさん:2012/02/21(火) 09:38:46.57
お前のちんこみたいに
979デフォルトの名無しさん:2012/02/22(水) 02:59:05.81
clojureベースのスタートアップもあるみたいだな。(hacker newsのステマ)
けども、今一つメリットが見えてこないな。jvmが重要ならjrubyやgroovyの方がマシだし、
わざわざ積極的にlisp方言を採用する理由てなんだろう。

lispといえば、AutoCADやemacs,gimpといった革新的なソフトウェアを記述する事例が多いが、
今日日のLLってweb系のサービスと気の利く小さなツールばっかで革新的なデスクトップアプリってないのな
980デフォルトの名無しさん:2012/02/22(水) 03:17:58.57
ky
kitty
981デフォルトの名無しさん:2012/02/22(水) 05:01:03.74
>>975
>似たり寄ったりの手続き型

それはPythonやPerlのことかな?
たしかにPythonはベースの手続き型言語へ(>>950の言う)「行き当たりばったり」で
関数型言語機能を追加しているから、極めて単純なお題ですら素直に書けず、
「関数型プログラミングには適さない」という烙印を押された
982デフォルトの名無しさん:2012/02/22(水) 05:02:01.63
まだ生きてたのかコイツ。赤面して死んだのかと思ってた
983デフォルトの名無しさん:2012/02/22(水) 08:46:26.82
Python厨生きてたの?
984デフォルトの名無しさん:2012/02/22(水) 10:24:21.84
>>981
何度も繰り返し書けば事実になると思ってるの?
気持ち悪いヤツだなぁ。
某半島人かっつーの。
985デフォルトの名無しさん:2012/02/22(水) 15:14:04.58
ν速+に帰れっつーの。
986デフォルトの名無しさん:2012/02/22(水) 21:30:13.78
gimpってlispだったの?
987デフォルトの名無しさん:2012/02/22(水) 21:42:06.53
もともとclispで書いてたものがデカくなりすぎて、
cで書き直したんだと思っていたが、よーわからん。

てか、biglooがjavascriptにも対応しないかな。
988デフォルトの名無しさん:2012/02/22(水) 22:15:03.42
初期のgimpはMotifだったし、Cじゃねーの?
マクロ言語Script-fuはlispの系列だろうけど。
989デフォルトの名無しさん:2012/02/22(水) 22:22:28.02
下の翻訳を読んだ感じだとcommon lispで独自の言語つくる講義で燃え尽きて、
その後に制作したともとれる。誰か原文よんで(はぁと
ttp://www.geocities.jp/ss2pxd1c/gimp/gimp-introduction-history.html
990デフォルトの名無しさん:2012/02/22(水) 22:30:57.91
>ビットマップを表すのはネストしまくったリストじゃないのがいいね…
ここおもしろかったw
991デフォルトの名無しさん:2012/02/22(水) 22:43:40.89
992デフォルトの名無しさん:2012/02/23(木) 18:17:51.40
>>981
ふーん。じゃあ関数型プログラミングのお題(コード例はHaskell)

t f = f . f
x = t t t t (+ 1) 0

高階関数を素直に書けるなら余裕でしょ
993デフォルトの名無しさん:2012/02/23(木) 18:41:46.47
>>992
Python

def t(f): return lambda x: f(f(x))
x = t(t)(t)(t)(lambda x: x + 1)(0)
994デフォルトの名無しさん:2012/02/23(木) 19:10:22.69
>>992
OCaml

let rec t f x = f (f x)
let x = t t t t ((+) 1) 0
995デフォルトの名無しさん:2012/02/23(木) 19:50:39.61
どうでも良いけど、お題のためのお題しかないよね
関数型言語が力を発揮するのって、そういうオナニーだけなん?
996デフォルトの名無しさん:2012/02/23(木) 20:23:12.83
勝てない選択肢は選択しないという能力を発揮する
997デフォルトの名無しさん:2012/02/23(木) 21:07:56.56
from itertools import count
def prime(g, p):
for n in g:
if n % p:
yield n

g = count(2)
while True:
p = g.next()
print p,
g = prime(g, p)

998デフォルトの名無しさん:2012/02/23(木) 21:26:34.58
うんこっこ
999デフォルトの名無しさん:2012/02/23(木) 21:27:08.97
1000デフォルトの名無しさん:2012/02/23(木) 21:27:45.59
マンセー
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。