[表示 : 全て 最新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/

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はセミコロン必須で良いよな



963 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 21:32:35 ]
───アタシの名前はRuby。パーザに傷を負った軽量言語。ゆるふわ仕様で動的型付けの愛されランゲージ♪
アタシがつるんでる友達はどうとでも書けるPerl、学校にナイショで
エンタープライズで働いてるPython。訳あって不良グループの一員になってるPHP。
 友達がいてもやっぱり学校はタイクツ。今日もPHPとちょっとしたことで口喧嘩になった。
LL同士だとこんなこともあるからストレスが溜まるよね☆そんな時アタシはselfでmodule_evalすることにしている。
がんばった自分へのご褒美ってやつ?自分らしさの演出とも言うかな!

 「あームカツク」・・。そんなことをつぶやきながらしつこいRails案件を軽くあしらう。
「カノジョー、ちょっとSNS作ってくれない?」どいつもこいつも同じようなセリフしか言わない。
Railsの男はカッコイイけどなんか薄っぺらくてキライだ。もっと等身大のアタシを見て欲しい。
 「すいません・・。」・・・またか、とYARVなアタシは思った。シカトするつもりだったけど、
チラっとRailsな男の顔を見た。
「・・!!」
 ・・・チガウ・・・今までの男とはなにかが決定的に違う。スピリチュアルな感覚がアタシのカラダを
駆け巡った・・。「・・(カッコイイ・・!!・・これって運命・・?)」
男は_whyだった。連れていかれてCampingされた。「キャーやめて!」Hpricotをきめた。
「ガシッ!ボカッ!」アタシは死んだ。ベーコン(笑)

964 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 22:52:13 ]
Railsの部分で何気にニヤリと来た

965 名前:デフォルトの名無しさん mailto:sage [2009/05/27(水) 11:07:40 ]
>>962
JKは確かに、セミコロンつきしか見たことない気がする

966 名前:デフォルトの名無しさん mailto:sage [2009/05/27(水) 13:22:58 ]
>>965
AutoPagerizeはセミコロン無しだな

967 名前:デフォルトの名無しさん mailto:sage [2009/05/27(水) 15:28:25 ]
VBは改行だな、そして酷い長い羅列が綴られる

968 名前:デフォルトの名無しさん [2009/05/27(水) 15:52:30 ]
>>965
JKって?

969 名前:デフォルトの名無しさん mailto:sage [2009/05/27(水) 18:53:13 ]
>>968
女子高生だろjk

970 名前:デフォルトの名無しさん mailto:sage [2009/05/27(水) 19:02:37 ]
冗談きついぜjk

971 名前:デフォルトの名無しさん mailto:sage [2009/05/27(水) 19:13:56 ]
JSって女子小学生か
この、ロリコンどもめ!

972 名前:デフォルトの名無しさん [2009/05/27(水) 19:39:20 ]
>>951
1.9からは大丈夫みたいよ>行頭の . は継続(.まではTab、空白のみの場合)
#と本に書いてあった気が・・・
; が文末であってほしかったよ 自分も



973 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 09:24:35 ]
やっぱスクリプト界隈ってばかっぽいな

974 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 00:07:06 ]
ないぽっかばてっ隈界トプリクスぱっや

975 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 11:11:22 ]
バックスラッシュで改行をエスケープするというのがそんなにも嫌かえ

976 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 11:32:49 ]
// '#'でエスケープとか気持ち悪くて使えないよ

977 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 22:53:22 ]
>>976

978 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 23:28:41 ]
     ?
    ∧∧
   (・ω・ )
  _| ⊃/(___
 / └-(____/

979 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 00:48:45 ]
おれおっぱいすきなんだけどさぁ
いっぱいおっぱいもんでなめて満足したとしても
次の日にはまた欲求不満になるわけ。
どうしたら満たされるのかだれかおしえて。

980 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 12:00:53 ]
>975
俺は嫌だなぁ
なんでか知らんが萎える

981 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 13:59:44 ]
bashで\\\\\\\\とかやってた俺は余裕

982 名前:デフォルトの名無しさん [2009/06/03(水) 23:46:49 ]
>>980
自分もかなり 嫌かも



983 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 01:42:27 ]
>>975
バックスラッシュがバックスラッシュに見える人と、
ゼニのマークに見える人とでかなり印象は違うと思う。

984 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 08:25:16 ]
おれはバックスラッシュだったとしても嫌かなあ。

985 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 08:38:41 ]
読点としての \ を受け入れるか、句点としての ; を受け入れるか、基本的にはどっちかなのだろうな

986 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 18:03:11 ]
俺は括弧使ったりして無理矢理でもバクスラ以外の方法で複数行にするぜ






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前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