[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 12:00 / Filesize : 208 KB / Number-of Response : 987
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 09:58:56 ]
最強のLL=軽量プログラム言語は、どれよ?

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

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

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

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

■過去スレ
【Perl,PHP】LLバトルロワイヤル4【Ruby,Python】
pc12.2ch.net/test/read.cgi/tech/1234635513/

【Perl,PHP】LLバトルロワイヤル3【Ruby,Python】
pc11.2ch.net/test/read.cgi/tech/1215319832/

【Perl,PHP】LLバトルロワイヤル2【Ruby,Python】
pc11.2ch.net/test/read.cgi/tech/1209289408/

【Perl,PHP】LLバトルロワイヤル【Ruby,Python】
pc11.2ch.net/test/read.cgi/tech/1188997302/

862 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 00:02:57 ]
>>853
俺解釈・俺定義はチラシの裏でやってろよ

863 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 00:11:33 ]
>>853 みたいな奴よくいるけどうざいよなあ
ttp://e-words.jp/w/E38391E38383E382B1E383BCE382B8E382BDE38395E38388.html


864 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 00:18:32 ]
>>862-863
よっぽど悔しかったんだな

865 名前:デフォルトの名無しさん [2009/05/17(日) 00:19:35 ]
もうVisual Basicでいいよ

866 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 01:53:23 ]
元のレスは>838?
だとしたら「同等の機能の物は作れることもある、売り物としては成り立たない」が正解じゃね?

867 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 02:04:08 ]
>>864
まちがえちゃって恥ずかしかったの?

868 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 02:17:46 ]
Wikipediaだと全然違う説明だな
ってかWikipediaのが正しい説明だろ

869 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 02:24:46 ]
狭義とか広義とか理解できんのかとw
頭カチカチなのな

870 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 07:35:48 ]
>>869
恥の上塗りって言葉を知ってるか?



871 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 07:41:36 ]
どちらかがもう片方を内包していないから
狭義も広義も無いんだけどな

872 名前:デフォルトの名無しさん [2009/05/17(日) 08:45:49 ]
店頭販売されているものだけが、パッケージじゃないと思うぞ
#ProEとか置いてあるとこ、あるんかい みたいな

873 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 09:18:53 ]
パッケージソフトウェア、という成語があって、完成品(?)が箱に詰められて
流通を通して売られてるソフトウェアのこと。

874 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 09:29:19 ]
いいかげんだな、e-words。

875 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 15:33:09 ]
ソースコードがそのまま見られるスクリプト言語じゃパッケージソフトは無理なんじゃない。

876 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 15:35:11 ]
>>875
なぜ?
恥ずかしいから、とか

877 名前:デフォルトの名無しさん [2009/05/17(日) 15:47:35 ]
>>875
だろうね
基本はサポート料でもうけって感じだろうからw

878 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 15:54:48 ]
BASICでベタベタに書かれてた時代もあったんだから、いつまた先祖返りしても
おかしくないと思うけどなぁ。

879 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 16:25:19 ]
そもそもスクリプト言語は、サーバサイドが主だから、
パッケージなんて勝負する市場が違うわな

880 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 16:34:00 ]
HSPは?



881 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 16:36:07 ]
Eコマース、ECサイト向けのパッケージソフトなんてのもあるんだけどね。

882 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 17:06:34 ]
>>880
立ち位置的にはLOGOとかツクールみたいなものでしょ?
一種のDSLであって、ここで話題に上るような
汎用志向のスクリプト言語とは毛色が違うと思う

883 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 17:22:06 ]
>>882
なんやと。もういっぺんゆうてみい。

884 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 17:28:28 ]
>>882
汎用志向 っていうと、この業界じゃ別の意味になるんだが

885 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 17:30:34 ]
そらそうなるわな

886 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 17:43:31 ]
>>875
一つの知識として。Macだとスクリプトを包むことができるヨ。

887 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 17:47:35 ]
実務で開発してるわけじゃない、学生とかPG志望の人とかは
サーバサイドプログラミングって言ってもピンとこないんだろうな。

俺もプログラマになろうと思った時、プログラマの世界とは
Visual云たらと、組み込みのアセンブラとかCが大半を占めてると思ってた。

ところが、いざ就職してみると、今までVisual云たらでやってたようなことまで
WEBに移行する流れになるほど、WEBの市場価値の向上して、PerlやPHPの案件で溢れだした。

WEBとは関係ないけど、あれほど学生時代馬鹿にしてたCOBOLが
実はかなりの巨大市場で、COBOL専門の会社には、安定した会社が多い事実にびっくりした。

888 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 17:54:33 ]
COBOLで作ったシステムは止められないシステムばかりだからな
ハードも異常に頑丈で全然壊れないから
昭和30年代に作ったシステムがまだ動いてたりするし

889 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 18:16:39 ]
ウチの職場はホスト使っているから売り上げが一番高い部署の
主要言語は確かにCOBOLではあるが、さすがに昭和30年代はないな。w

設計思想と言うか残骸があるのはあるが。


人にもよるから一概には言えんがCOBOLでメシを食うようになると
人間的にも使えないエンジニアになる可能性が99%くらいだしなー。

不具合がでても「昔からこうでした。使い方が悪い。俺は悪くない」
と無責任が発言がでるし、なぜかソレが通じる世界だし。w

そして安定している会社かどうかは微妙かな。
やっぱり今はオープン系にシフトしつつあるので、COBOLは
基本的にお先真っ暗だ。

890 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 18:24:39 ]
今後もCOBOLを積極的に展開していきましょうって話じゃなくて
COBOLのマシンは今後も動き続けるけど、
当時の技術者はどんどん死んでるから技術者が決定的に足りてないんだよな



891 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 18:25:47 ]
>ないな。w

こうやって書く奴が気持ち悪くて仕方ない。
ガキやニートならわかるけど。もしかしたらガキやニートかもしれんが。

892 名前:デフォルトの名無しさん [2009/05/17(日) 18:32:41 ]
俺なら月100万でCOBOLシステムの保守引き受けるくらいなら
半年1000万でCにシステム書き換える提案するけどな。
日本のCOBOL現象って、単にそういう気概がない奴多すぎ、
というだけのことのような。

893 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 18:34:43 ]
このご時世にその提案?ありえない

894 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 18:42:49 ]
COBOLからJavaやERPに置換するプロジェクトはよく見るけど
今更Cに置換するプロジェクトは見たことないわ

895 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 18:52:28 ]
速度が必要なんでしょ

COBOLから他のLLへ換える案件はおおいね

896 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 18:58:07 ]
LLへはねーよw

897 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 18:59:46 ]
まぁうちに来るってことはそこまで精度求められてないしww

898 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 19:05:37 ]
月100万の安い保守ってのがちょっとイメージ沸かないけど、
5000本くらいある紙時代か存在し資料もロクにメンテされてないCOBOLのプログラムを
半年1000万でやってくれる神級のエンジニアが実在するなら、今頃COBOLは絶滅している。


基本的にCOBOLのシステム移行はCOBOLのエンジニアが協力しないと
話にならないけど、COBOLのエンジニアは他の仕事ができないので、
自分の庭を守る為に、全力で妨害してくるから、いまだに日本は
COBOLの楽園なんだろう。

漏れも仕事でタマにCOBOLやらされるが、紙の資料がアテにならないので
ソースを読むしかないんだが、ソースのコメント欄ですら嘘が書いてあるので
COBOLerの仕事のいい加減サはハンパねぇ。

899 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 19:09:09 ]
>ねーよw
>ないしww
>ねーよw
>ないしww
>ねーよw
>ないしww
>ねーよw
>ないしww
>ねーよw
>ないしww
>ねーよw
>ないしww
>ねーよw
>ないしww
>ねーよw
>ないしww
>ねーよw
>ないしww
>ねーよw
>ないしww

900 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 19:10:31 ]
つまるところCOBOL時代から今の日本の柔らか産業のグダグダ感は始まっていたんだな。
もしCOBOLERがまともな仕事をしていたら柔らか産業の利益率は上がり
デスマーチが少なく労働・学習環境も整備され、
日本の柔らか品も世界の第一線で活躍していた。
団塊世代のプログラマには国家が損害賠償請求するべきなんじゃないか。



901 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 19:13:27 ]
当事者は必死に働いて結果を出してきたんだ、ってことは忘れちゃいかんと思うよ。
ともあれ今日もオンラインは無事に動いているわけで。

じゃあ誰が戦犯なんだよと言われると困るけれども。

902 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 19:15:59 ]
おいおいまさかCOBOL使ってるのが日本だけだと思ってないよな

903 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 19:35:21 ]
ぶっちゃけ、今の時代
PG→SE→PL→PMとか、階級分けしてるのってCOBOL業界くらいだよな。
Windowsアプリにしろ、Webにしろ、PGがスーパーPGみたいになって
プログラミングから技術的な客先折衝までやって、営業畑の奴がPMやるとか普通だしな。
PGになって1,2年の奴に、プログラミング任せられるまともな案件がある業界なんてCOBOL業界くらい。

こないだF通の案件で、F通本社の20代前半社員が、開発経験もなしにPMを名乗って
F通子会社や協力会社のPGやSEを統括してたぜ。

904 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 19:55:03 ]
軍隊ではよくあること。

905 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 20:05:27 ]
>PG→SE→PL→PMとか、階級分けしてるのってCOBOL業界くらいだよな。

はぁ?
言語関係なく業務系や金融系だからそうなってるんだろ
リーダーとPGしかいないようなのはWeb系みたいなサイクルが短いところだ

906 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 20:10:52 ]
>>903
Javaでもウォーターフォールが普通だよ。
PLは外注、PGは孫請けってのも普通。
そのへんは、言語問わず昔から変わってないんじゃないかな。

907 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 21:00:02 ]
マ板でやれ

908 名前:デフォルトの名無しさん [2009/05/17(日) 22:18:43 ]
COBOLもLLバトルに参戦したのか?

909 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 00:55:23 ]
興味深い言語だけど面倒なんだよなあCOBOL

910 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 10:11:40 ]
COBOLは業務系でよく使う基本アルゴリズム知らないとダメだよ



911 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 10:39:42 ]
日が変わったらスレチ話題は止めようぜ。

912 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 14:39:52 ]
プログラムなんて基本覚えたらあと全部応用じゃん

913 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 14:40:32 ]
え?なんて?

914 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 16:45:52 ]
プログラムなんて基本覚えたらあと全部コピペ改造じゃん

915 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 17:26:27 ]
>>912
アセンブラさえあれば何でも作れるって主張か。正しいとはとても言えんが。

>>914
本当の基本だけでは、どれをコピペしてどこを改造すればいいかわかるまでに
死ぬかクビか結局理解不能かの三択。

916 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 17:31:02 ]
>>912
同意。

>>915
泳げない奴は沈めばいい。

917 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 17:34:22 ]
>>915
横やりだけど、
「一つ覚えてれば・・・」ってのは、この業界だとよく言われることだよ。

だからしょっちゅう採用言語を変える会社とか多いし。
最近だと、TwitterがRubyからScalaに変えたとか。
元から社内にScala使いがいっぱいいたとは考えにくいでしょ?

918 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 17:47:25 ]
関数覚えてられないんで逆引き辞書片手にプログラム組むとか普通の光景

鯖の設定と組み方と、SQLだけ覚えてれば何とかなるよっ!

919 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 17:52:36 ]
>>917
要求によって言語を使い分けるのとそのコストが低いことは別の話でしょ
Twitterは度々サーバに障害が出てたわけで、
開発言語を変えるコストが低くなくてもそれをする強い動機があった

920 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 19:06:12 ]
>>917
Twitterがrubyを採用した理由が知りたいね。
作るときにrubyを勉強してたから、とかそんな理由な気がしないでもないんだが。



921 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 19:08:56 ]
言語的に美しいからかもしれんが、
それよりも、Railsを採用したって感じ

922 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 19:27:27 ]
話題性と宣伝効果を狙ったのなら大成功だろ

923 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 23:58:23 ]
>>920
そうに決まってるだろ。Railsが流行ってたころだし。
で、次はScala。どう考えても趣味としか思えないwww

924 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 00:00:34 ]
ネタないな〜

日記

ちょっと最近いろいろ行き詰まり気味なので、気晴らしにJavaの勉強を始めた。
Swingアプリつくるの面白い。
レイアウト?んなもん、部品がそれなりに収まって並んでりゃいいんだ。
・・・
ぶっちゃけ、LLでGUIツールキットをごにょごにょして頑張って使ってる人が
なんつーかほんっっっっっとうに、コアな趣味でやってるんだなーとか思った。

925 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 01:36:28 ]
まあ、LLがGNU風に言えば「LLのLは機械に重いが人間に軽いのL」の略だとすれば
本当の意味でのLLの元祖かつ今もなお王道を行くのはJAVAなわけで。

926 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 01:41:37 ]
そこで良いとこどりのJythonやJRubyですよ

927 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 01:53:40 ]
単純に、どこで「楽」するかだけの違いだったりするってのは真理だと思う

928 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 11:41:22 ]
お前ら、他スレで爆釣りするときは、もう少し控えめにしてもらえませんかね…

717 名前:デフォルトの名無しさん[sage] 投稿日:2009/05/24(日) 07:46:16
<?php
foreach (range('a', 'z') as $letter) {
print $letter;
print "<br>";
}
?>

こういうことができるのが、PHPのすごいところ。

おなじことをperlでやったら、正規表現を駆使した
渾身の一作で、何十行
書かないといけないことやら。

723 名前:デフォルトの名無しさん[sage] 投稿日:2009/05/24(日) 08:43:56
>>717
何がすごいのかわからんけど。

('a'..'z').each{|x|puts x}

724 名前:デフォルトの名無しさん[sage] 投稿日:2009/05/24(日) 08:48:57
>>723
だからさ。
そういう書き方すると、
なにをやっているのか、意味が
まったくわからないわけじゃん。

929 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 11:42:15 ]
会場はこちらです。
PHP@プログラム板
pc12.2ch.net/test/read.cgi/tech/1232712334/717-

930 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 12:02:01 ]
しかしPHPのrangeはクソだよな



931 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 13:28:54 ]
rangeなんてあったのか。初めて知った。

932 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 14:05:06 ]
>>928
むしろその処理を一行で出来ないスクリプト言語が知りたいわw

933 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 16:28:20 ]
もっともだ
誰かアセンブラ版頼むw

725 :デフォルトの名無しさん :sage :2009/05/24(日) 08:49:35
>>717程度の話ならどの言語で書いても数行じゃないか
数十行になるのはアセンブラくらだよ

934 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 19:15:24 ]
携帯で画像をランダム表示したいのですが
どのようなスクリプトが使えるのでしょうか?

935 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 19:25:22 ]
うわマルチだったのか
答えちゃったよ

936 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 23:28:42 ]
書くならこうじゃねーの?

<?php implode("<br>", range('a', 'z')) ?>


937 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 01:33:44 ]
'<br>'.join(map(chr, range(97, 123)))

938 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 01:39:19 ]
こうじゃないの?
<?=implode('<br>', range('a', 'z')), '<br>' ?>

Cで書いても三行だしなー。
for(int i = 'a'; i <= 'z'; i++){
printf("%c<br>", i);
}

939 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 01:47:22 ]
>>938
<?から始めてることからして、Cの場合は
#include <stdio.h>
とか
int main(int argc, char **argv)
{
}
とかも含めるんじゃないのかな。
(まあ「とか」というよりこれだけだけど)

そうなるとJavaやC#はさらに不利だ。

940 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 03:06:07 ]
Rubyの each の魅力がいまいちピンときてなかったけど、
最近javascriptのprototype.js いじっててようやく分かった。

p (1...101).
map{|v|v*v}.
delete_if{|v|v%100/10%3!=0}.
reverse.
join('-')

こんな感じに、配列に対する処理をパイプみたいに
継ぎ足していけるのは直感的でわかりやすい。
まぁ、この場合eachよりmapのほうが役立つけど。

pythonで同じことをやろうとすると、join(reversed(filter(map...
という風に、思考の順番と記述の順番が逆になってしまう。
そういうクラスを作れば、pythonでもRubyと似た記述が可能になるけど 、
Array型に最初から仕組みが組み込まれているRubyのほうがこの点は優れている。

あと、python の lambda 式は ruby のブロックや、javascript の無名関数
と比べると不自由を感じることがある。
高階関数に、処理をリテラルで記述する場合にちょっと不便。



941 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 03:58:02 ]
Common LispのCLOSもチェーンが逆方向になるんだよな
読みづらいなあとか思ってたら、dan氏も同じようなことを考えていたらしい

>Lispは、その構造上、オブジェクト指向は極められても、オブジェクト思考には向かないのだ。
>なぜか。述語が必ずリストの頭となるからだ。
(以下略)
ttp://blog.livedoor.jp/dankogai/archives/51087431.html

・・・・というか、そもそもの数学で、
重ねられた関数の表記が右から左になってしまうのが
全ての始まりだと思う
y = f(x), z = g(y) ⇒ z = g(f(x))

942 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 04:40:38 ]
>>941
教育指導要領を改訂して小・中・高の数学の教科書を全て
ポーランド記法にすれば無問題。

10年もたてば若い世代はf->gの処理順をg(f(x))と逆順に
表記するのがあたりまえと感じるようになるだろうし、
様々なプログラミング言語との相性も抜群なので日本の
IT競争力向上に貢献すること間違いなし。

943 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 06:04:12 ]
>940
Pythonのリスト処理は
・単純にリストの要素に対して関数を適用する場合、mapやfilter、reduceなどを使う
・リストの要素に対して、式や、単純には引数として渡せない関数などを適用する場合、内包表記
・実行制御や条件分岐などを行なう場合は、ローカルな関数を作って対応(Rubyでいうproc利用)

って3段階になると思う。
正直、mapやfilterでlambdaが要る場面って少ないと思うよ。
内包表記か、それでダメなら関数作っちゃったほうが簡潔な気がする。

あと、どちらかと言うとリストの処理に関しては「新しいリストを返す」より
「既存のリストを変更する」ほうが素直に書ける気がする。

944 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 06:26:02 ]
Rubyのクロージャ利用、特に{|x| ...}型の記法は記述がシンプルで
文字数も少ないのがメリットだと思う。
>>948みたいに色々な方法があるのは良いんだけども、結局記述
がシンプルでないと見通しが悪くなるので、>>940のメソッド
チェーンのような活用がし難いと思う。

Ruby使っている人がjQueryと使うと「マシになったな」と思う
一方で「functionうぜ〜」と思うことも少なく無いかと。

あとリスト処理が破壊的か非破壊的かは、場面によるかと。
どちらが良いとは一概に言えないなぁ。両方必要。

945 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 09:19:54 ]
>>940
その「繋ぎ感」の気持ちよさは認めるけど、読み書きしやすさとは違うんじゃないかな。
長い処理は適度に切って変数を使うPython流も、長くなりそうで実際に書いてみると
大して長くならないし、あんまり繋げすぎるよりも読みやすい。

a = [v*v for v in range(1,101) if v%100/10%3 == 0]
print '-'.join(reversed(a))

PythonもML上でRubyのブロック記法が提案されたけど、ブロック記法の利点を示す
例として挙げたサンプルコードがことごとく同等にスマートなPythonicなコードで
反論されて、Pythonにはブロック記法いらないという結論になった経緯がある。

lambda もそうだね。関数内でローカル関数が定義できて、Pythonの関数は
「関数専用の名前空間」なんてキモい仕様になってなくて普通定義するだけで
変数に関数が代入されるから、mapにもfilterにも定義した関数を渡せば良い。
lambda を使う大抵の場面はリスト内包で代用可能。 Python3 からは辞書も
集合も内包表記が使えるから、本気で lambda の有効な場面が無くなる。

946 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 09:28:26 ]
ラクダ本で、初めてシュワルツ変換見たときは感動したなあ。

947 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 09:35:12 ]
>>944
このあたりにも Python と Ruby の違いが出てるね。
Python は . (ドット) 演算子を基本的に属性アクセスにしか使わない。
関数呼び出しの()も省略できない。だから、
a = b.c が、
Python なら、 a = getattr(b, 'c') と一意に確定するのに対して、
Ruby は、 bオブジェクトのc属性なのか、b() が返したオブジェクトの c 属性なのか、
b() が返したオブジェクトのc メソッドを呼んでいるのか判らない。

948 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 09:54:20 ]
Rubyに属性はないが?

b.c の、b がローカル変数か、レシーバを省略したメソッド呼び出しか確定しないのは
確かだが、 .c は基本的に .c() の括弧を省略しただけだぞ?

949 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 10:18:44 ]
>>948
なるほど、だから . を連発しても意味ワカメにはならないのか。

950 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 14:08:39 ]
Pythonのドットは属性アクセス。
括弧が付くとオブジェクトに対して「呼び出し」を試みる。
メソッドは呼び出し可能なオブジェクトと束縛された属性。
呼び出せる属性を簡単に作るする方法として、class内でdefを使う。

Rubyのドットはメソッド呼び出し。
属性に近い存在であるインスタンス変数には、直接外部からアクセスすることはできない。
属性のように見えるのは「インスタンス変数にアクセスするメソッド」の呼び出し。
「インスタンス変数にアクセスするメソッド」を簡単に作る方法として、attr/attr_reader/attr_accessorがある。



951 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 14:26:36 ]
俺は全体的にはRubyは好きなんだけど >940 はやらないなぁ。
ドットはできれば先頭に書きたい。前の行の続きだよって言いたい。
でもそれやると前の行の末尾の改行で文が切られちゃうんだよなぁ。
>940 もdat見ると2行目からインデントしてるみたいね。

952 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 14:36:57 ]
>947
その例だと c は確実にメソッド呼び出しで、b に関しては
その部分だけでは判断できないな。
有効なスコープ内でローカル変数 b への代入が行なわれていればローカル変数
そうでなければメソッド呼び出しとして扱われるハズ。

953 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 08:45:35 ]
>>951
Rubyは文末に . おかないとエラーでるよね…
セミコロン ; なし文法の弊害か

954 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 10:43:26 ]
>>953
JavaScriptはセミコロン無しでもいいけどコロンを行頭に置けるよ

955 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 10:47:07 ]
()なしってPerlをマネたのか知らないけど、これはそうしない方が良かったんじゃないかなあ。

956 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 11:09:40 ]
>>954
あれ?そうなんだ…。構文解析(字句解析?)の都合なのかしら

957 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 11:41:36 ]
Rubyの場合は、いつでも、そこで文が終わりそうなところで改行がくると
文が終わってしまって、式として . が続いてくれない。

JavaScript の場合は return とか限られたところでしかそういう風には解釈しない。

こんな感じかな。おもいつきで書いてるが。

958 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 11:56:14 ]
JSの場合は

www.mozilla-japan.org/js/language/js20/rationale/syntax.html
>改行におけるセミコロンの挿入
> JavaScript プログラムの先頭から n 番目までのトークンは文法的に正しいが、
> n+1番目のトークンが誤っていて、且つ n 番目のトークンと n+1番目のトークンの間に改行がある場合は、
> パーサは n 番目のトークンと n+1番目のトークンの間に VirtualSemicolon を挿入してからプログラムをもう1度パースしようとする。

となっている。こういう仕様はRubyも導入してそうなもんなのに不思議だな

959 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 15:16:15 ]
Rubyのパーザは既にカオスになってるからなあ
あんまり手を入れたくないのかな

960 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 15:25:26 ]
いやjavascriptのそれはそんなキレイな仕様でもないだろ



961 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 18:37:50 ]
>>958
それはそれでややこしいんだよね。

きれいに並べて書こうと、C/C++みたいな
つもりで適当に改行をいれると、なんか
わけのわからないことに…。

セミコロン必須でいいじゃんか、もう。jk


962 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 19:21:17 ]
PythonやRubyならともかく、JSはセミコロン必須で良いよな






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<208KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef