【Perl,PHP】LLバトルロワイヤル7【Ruby,Python】
最強のLL=軽量プログラム言語は、どれよ?
エントリーは、Perl、PHP、Python、Ruby、JavaScript・・・
さあ、死ぬまで語りやがれ!!!
■LLとは?
軽量プログラミング言語(Lightweight Language,LL)とは、取り回しに優れ、
コードの作成や修正が容易と見なされるプログラミング言語のことを指す。
ここでいう「軽さ」はプログラマの負担の軽重を指し、
実行速度に優れているという意味ではない。
現在の水準では
・インタプリタ
・動的型
・正規表現
・関数オブジェクト
などを利用できるものがLLと呼ばれることが多い。(Wikipediaより)
■過去スレ
【Perl,PHP】LLバトルロワイヤル6【Ruby,Python】
http://pc12.2ch.net/test/read.cgi/tech/1244166510/ 【Perl,PHP】LLバトルロワイヤル5【Ruby,Python】
http://pc12.2ch.net/test/read.cgi/tech/1238720336/ 【Perl,PHP】LLバトルロワイヤル4【Ruby,Python】
http://pc12.2ch.net/test/read.cgi/tech/1234635513/ 【Perl,PHP】LLバトルロワイヤル3【Ruby,Python】
http://pc11.2ch.net/test/read.cgi/tech/1215319832/ 【Perl,PHP】LLバトルロワイヤル2【Ruby,Python】
http://pc11.2ch.net/test/read.cgi/tech/1209289408/ 【Perl,PHP】LLバトルロワイヤル【Ruby,Python】
http://pc11.2ch.net/test/read.cgi/tech/1188997302/
2 :
デフォルトの名無しさん :2009/07/25(土) 11:48:28
>>1 Lispも入れろっちゅうことですよ アホー!
Lispは"Perl、PHP、Python、Ruby、JavaScript・・・"のなかの "・"です。 信者とアンチがうざいから名前を出さないわけではありませんのでご了解をお願いします。
4 :
デフォルトの名無しさん :2009/07/25(土) 12:59:52
これはハスケルを締め出そうという陰謀のスレね…こわい
>>4 >>3 のLispのところをハスケルに置き換えてください。他の言語も同様です。
マイナーな言語を使う人は劣等感から妄想を抱きがちですが決してそういう意図は
ありませんのでご了解をお願いします。
では、死ぬまで語りやがるよう お願いします。
なお私は1ではありません。でしゃばってすみません。
D言語はLLですか?
いえ、ダメ言語です
8 :
デフォルトの名無しさん :2009/07/25(土) 15:07:58
LLは lua & Lisp の事です D言語は入る余地無しです
え、Lispに一番近いとまで言われたPythonってなんだったの
Lispに近いって、どういう事? おままごとか、せいぜいCADのマクロぐらいにしか使えないって事?
関数に関数を渡したり、関数の中で関数を定義したり、関数が関数を返したりする事。 大雑把に言えばLispに近いほどJavaから遠くなる傾向がある。
他にLispっぽいとか言われるのは、JavaScriptとかRubyとか 基本的には褒め言葉 強力なリストであったり、高階関数であったり、GCであったり パワーのある言語だねって
関数系は遅延評価が(どういう風に使えばいいのかが)よくわからない。
Javaだってインナークラス使えば同じことができるぞ。
15 :
デフォルトの名無しさん :2009/07/25(土) 18:01:05
高階関数は使い出すとクセになるな Lisp使うとjavaは要らんとつくづく思うよ
16 :
デフォルトの名無しさん :2009/07/25(土) 19:13:09
pythonやrubyで√2の小数点以下100桁を求めるとしたらお前らどうよ?
いい感じだよ。
Python >>> from decimal import Decimal, getcontext >>> getcontext().prec = 101 >>> Decimal(2).sqrt() Decimal('1.414213562373095048801688724209698078569671875376948073176679737990732 4784621070388503875343276415727')
19 :
デフォルトの名無しさん :2009/07/25(土) 19:57:38
まだやんの? 最強は機械言語でいいじゃん
20 :
デフォルトの名無しさん :2009/07/25(土) 20:01:42
import使われるとなんかズルされた気がするよ。
√2 = r と置いてみる ↓ (r * 10^100)^2 = r^2 * 10^200 ≒ 2 * 10^200 となる整数 (r * 10^100) を探してみる ↓ (r * 10^100) / 10^100 がたぶん求める答え ひょっとすると 10^101 かもしれないがそれは後で検証
>>> def r2(m): ... p = 2*10**m ... for i in xrange(p): ... if (p-3)*10**m <= i*i and i*i <= (p+3)*10**m: ... print i ... >>> r2(4) 14142 14143 >>> r2(5) 141421 141422 >>> r2(6) 1414213 1414214 >>> r2(7) 14142135 14142136 遅いわwww
>>> r2(100) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 3, in r2 OverflowError: long int too large to convert to int
このスレもレベル下がったな 糞スレ決定だろ
27 :
デフォルトの名無しさん :2009/07/25(土) 23:16:08
28 :
デフォルトの名無しさん :2009/07/25(土) 23:38:56
√(10+3√(97+56√3))
遅延評価って if( hoge() or hogehoge() ) って時に、hoge()がtrueならhogehogeが実行されないってことだしょ? 短絡的に考えれば、hogehoge()を実行しなくていい時ってことでいいんじゃない。 どっちも確実に実行したいなら、ifに掛ける前に代入しておけばいいだけだし
は?
ははは
あっ、ごめん 俺おもいっきし間違ってる?
それは短絡評価。
foo( bar() + baz() ) って時に、普通の言語ならbar()+baz()をそれぞれ呼んで計算してから その結果をfoo()に渡すのに対して、遅延評価のある言語だと いきなりfoo()に「bar()+baz()」っていう「式」を渡す んで、bar()+baz()の値が実際に必要になるまでは式のままで評価されない あと、無限リストなんかも扱えたりする (1〜∞)の中から、条件に合致する値を抽出し、さらのその2番目から10番目を抽出する なんて処理がマジで言葉通りに書ける
35 :
デフォルトの名無しさん :2009/07/26(日) 06:37:40
>>22-23 せめてニュートン法くらい使えよw
>>> def r2(m):
... p0 = 2*10**m
... p = p0
... while(not ((p0-3)*10**m <= p*p and p*p <= (p0+3)*10**m)):
... p = (p*p + p0*10**m) / (2*p)
... print p
...
>>> r2(4)
14142
>>> r2(10)
14142135623
>>> r2(100)
14142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727
前置記法って何でLispしか無いんかね?
37 :
デフォルトの名無しさん :2009/07/26(日) 07:01:42
>>34 >あと、無限リストなんかも扱えたりする
>(1〜∞)の中から、条件に合致する値を抽出し、さらのその2番目から10番目を抽出する
>なんて処理がマジで言葉通りに書ける
整数nについて,各桁の数の階乗の和S(n)を考える.たとえば,n = 145 とすると,
S(145) = 1! + 4! + 5! = 1 + 24 + 120 = 145
となる.このように,S(n) = n となるn(n≧0)のうち3番目と4番目を抽出せよ.
これを遅延評価でおながいします.
ああ、Lispスレの929か。
39 :
デフォルトの名無しさん :2009/07/26(日) 08:08:24
だいたい、「遅延評価でおながい」って、何をおながいするんだ?
41 :
デフォルトの名無しさん :2009/07/26(日) 08:40:47
平方根はこんな感じ ↓ (labels ((nxt (x v) (/ (+ x (/ v x)) 2))) (defun sqp (n e) (do* ((x1 n x2) (x2 (nxt x1 n) (nxt x1 n)) (err (expt 10 (- 0 e)))) ((< (abs (- x1 x2)) err) (truncate (* (expt 10 e) x2)))))) > (sqp 2 100) 14142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727
42 :
デフォルトの名無しさん :2009/07/26(日) 08:46:33
>>40 ハスケルでお願いっていう意味じゃないの?
>>39 では50番目から100番目まで。
というのはおいといて”マジで言葉通りに書ける”とあるから1−2番目を計算せずに
いきなり3番目を取り出せるのだろうな。処理系内部では一所懸命計算やるだろうけど。
>>35 の説明で遅延評価をはじめて知ったんだけど処理系にバグを仕込むために考え出さ
れた仕様ではないだろうか。
「4っつ」って珍しい書き方だな。
>>43 え、もしかして、なんか言質とってツッコミ入れて恥かかせたがってる?
「言葉通りに」というところを取り上げて何か言いたかったら、元の「言葉」を正しく読み取らなきゃダメよ。
よく2chの情報はいい加減とか、正しくない情報が多いとか言われるけど、 僕にとっては大事な情報源です。 たまにはボロクソ言われることもあるけど、みんな親切に教えてくれる。 いつもありがたいと思ってる。
>>46 そんな気はまったくない。
>>35 には感謝してるよ。よそで”遅延評価というのはだな・・・”
とか言ってみたいほうだから。元の「言葉」を正しく読み取ったらどえなるのだ。
うわ。アンカー間違えた
>>34 だ。最後”どえなるのだ” じゃねえ ”どうなるのだ” だった。
tail $ take 10 $ filter func [1..] とかそんな感じのことじゃねーの?
>>48 > 元の「言葉」を正しく読み取ったらどえなるのだ。
「(1〜∞)の中から、条件に合致する値を抽出し、さらのその2番目から10番目を抽出する」
これが元の言葉だよね。
「”マジで言葉通りに書ける”とあるから1−2番目を計算せずに」って、それは元の言葉にある
「条件に合致する値を抽出」する途中の段階を、そっと見て見ぬフリしてない?
遅延評価って、例えば現在の時間を内部でパラメータとして使うような関数だと、 いつ評価されるん?
現在時間を使うなら「時間を得る」部分だけはその時点で評価されて それ以外の処理は後回しじゃね?
>>51 見て見ぬフリはしてない。「条件に合致する値を抽出」するところは処理系が
3番目が必要になったときに1−3番目を計算して3番目を返すと解釈している。
だからプログラマはいきなり3番目を取り出せると想像したんだけどこれで
合ってるんじゃないか。
遅延評価と、クロージャとかカリー化を統一できそうだな。
>>52 Haskell では IO モナドでそのへんをうまくやってる
とんだすれ違いスレだな
すれちがい通信か
>>16 を
>>26 のアルゴリズムで書いてみたわ。
泥臭い方法だけど、桁が増えても計算量が線形増加だからいいかも。
30行くらいだけどソースいる?
plz
62 :
59 :2009/07/26(日) 21:16:15
def kaihei(n, k): stack = [] keta = 1 while n >= 100: stack.append(n % 100) n = int(n / 100) keta = keta + 1 else: stack.append(n) dlist = list(range(10)) dlist.reverse() baikon = 0 rem = 0 result = "" while (keta > 0 or (keta <= 0 and -keta <= k)): if keta == 0: result += "." keta = keta - 1 if(len(stack) > 0): rem = rem + stack.pop() for i in dlist: if(rem >= i * (baikon + i)): result += str(i) rem = (rem - i * (baikon + i)) * 100 baikon = baikon * 10 + i * 20 keta = keta - 1 break print(result)
63 :
59 :2009/07/26(日) 21:24:32
>>> kaihei(2, 100) 1.4142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727 ちなみに、整数しか対応してない。 一部の名前が、開平とか桁とか倍根とかそのままローマ字になってるけど、そのあたりは勘弁してくれ。 かわりに桁合わせをちゃんとしたから。
クスクス
>>43 横レスだが
drop 49 $ take 100 $ filter (\x -> (foldr ((+) . product . enumFromTo 1 . read . (flip (:) [])) 0 . show) x == x) [1..]
直感的に書くとこんな感じかな?
49と100の部分を変えればどうとでも書けるよ。
>>65 サンクス!
haskell知らないから間違っているかもしれないが49までの計算結果を捨てる
のを明示しなきゃいけないということですね。
>>34 を読んだら 2..10 という感じで書けると思っていた。
>>66 そうですね。
でもたとえば「それが50番目である」ことを示すには前の49個の計算が
必要なわけで、それを省略することは遅延評価といえどできない。
遅延評価なのは100以降を計算しないこと。
自分で2,10を引数にとる関数を作ればもちろん2..10みたいに書けるよ。
PHPで無料レンタル鯖のいいとこ&有名なとこあります?
俺んち
養殖ならノルウェー辺りが有名だな
73 :
デフォルトの名無しさん :2009/07/27(月) 23:44:17
It has already been out.
「ポーズとってください」って言われたんだろうなw 『まつもとゆきひろ コードの世界』でも「私だって恥ずかしい」とか書いてた
その記事おもしろかったねー。いろんな話が凝縮されてて。
プログラマーって見栄え悪いのばっかだな。
見栄えで稼ぐ商売以外は似たり寄ったりだよ。
>77 運動不足が職業病だからな。
まっつんはちょっと痩せればそれなりにダンディになるとは思うが。
全員、顎髭を伸ばせば、かっこがつくよ。
They should be skin head.
83 :
デフォルトの名無しさん :2009/07/29(水) 19:12:58
Python 3.1からifとかforとかけっこう変わるんだね。 修正がめんどい orz
85 :
83 :2009/07/30(木) 01:26:38
しかし、3がリリースされた直後に3.1を四月馬鹿ネタにするってのもなんかセンスが微妙だな Python 4とかなら微笑ましいんだが。 Pythonってそんなにバージョンアップしないもんなの? Perl6がリリースされた後でPerl 6.2の話題とか、多分普通に信じるぞ。
Pythonのメジャーバージョンは1、2、3、3.1、3.11、3.12、3.13、3.14、3.141と増えていくからな
クヌース先生の美学だよなあ……
90 :
デフォルトの名無しさん :2009/07/30(木) 13:39:23
エイプリルフールネタを一見それとはわからない状態で いつまでもWeb上に残しておくなんて、はっきり言って悪だろ。 それでwebなんちゃらなんて会社の代取とか笑えねーって。
日付みればわかるだろ。アホか
実際、真に受けてるやつがいるだろ。アホか
ひとりのアホの面倒をみるためにみんなが犠牲にならなければならないのかよ
>>95 犠牲て。
ネットにデマを流すときはそれなりの
配慮があってしかるべき。jk
4/1のエントリって時点で、それなりの配慮はしてるわな。
4/1に書かれた記事は全て疑わないといけないのかよ
とうぜんだろ
どっかのバカがやってるならともかく、 プロフィールにそれなりの肩書き書いておいて あんな感じじゃ、いろいろ神経疑われるわなw
Pythonian: モンティパイソン精神なのでそんなの余裕で笑ってスルー Rubist: エープリルフールネタなんだからあーたらこーたら Perler: ネタを見逃して話題に乗れない
>>101 いや、きっとdankogaiなら、
dankogaiならネタを見逃すはずがない。
LLTVまで残り1ヶ月を切りました。 盛り上がって参りましょう!
すみません。 ところで僕は中学生のころ、いじめられっこでした。 一番ひどくいじめられた放課後、先生が見るに見かねてとめてくれて 家の帰りもずっといっしょでした。そのとき、川原で先生と一休みしたんですが 先生がこんなことをいっていました。 「人間ってのはひどいもんだ。 こんな鼻くそより汚い。」 私はいまだに鼻くそより汚いという比喩がうまく理解できませんが、 そんな比喩にまで使われた鼻くそをいまだに食べています。私はRubyプログラマーです。
そのコピペなんかいみあんの?
例えばこれを実行すると結果が何になるか、すぐにわかる? @int i=0;if(i=1){puts("1");}else{puts("2");} Aint j=0;for(;j>0;++j){}
109 :
デフォルトの名無しさん :2009/08/02(日) 02:02:48
分かるよ。 1,1 が表示される。 2,for文は実行されない。
俺は後者はとっさに判らないな 単項++演算子の戻り値はアテにすべきじゃないと思ってる 自分じゃそういうコードは書きたくないね
単項++の戻り値は使われていないわけだが…
ごめんなさい間違えました
i=1が(文脈によっても)何を返すかは、言語によってブレがあるな。
BASIC系は文脈で比較か代入かが決まることが多いね 本家はLET省略不可だからLET文以外代入だけど Javaは代入文自体の戻り値はCと変わらんが if文がbooleanしか受け付けないからエラーだな
116 :
デフォルトの名無しさん :2009/08/03(月) 09:39:57
所謂覆面算で 英字一文字がそれぞれ異なる一桁の数字(0-9)で表されるとき one + nine + twenty + fifty = eighty となる組み合わせを検索してください 各行の先頭の文字は0以外です
それって正解は「そんな組み合わせは無い」で合ってる?
pythonスレで答え出てなかったっけ?
ごめんあった、何故かone+nine+twenty+fifty+eighty=eightyで計算してた俺の馬鹿〜 selects([], _). selects([X|XL],YL) :- select(X,YL,L), selects(XL,L). check(O,N,E,I,T,W,Y,F,G,H,ONE,NINE,TWENTY,FIFTY,EIGHTY) :- ONE is O * 100 + N * 10 + E, NINE is N * 1000 + I * 100 + N * 10 + E, TWENTY is T * 100000 + W * 10000 + E * 1000 + N * 100 + T * 10 + Y, FIFTY is F * 10000 + I * 1000 + F * 100 + T * 10 + Y, EIGHTY is E * 100000 + I * 10000 + G * 1000 + H * 100 + T * 10 + Y, ONE >= 100, NINE >= 1000, TWENTY >= 100000, FIFTY >= 10000, EIGHTY >= 100000, EIGHTY =:= ONE + NINE + TWENTY + FIFTY. solve(ONE,NINE,TWENTY,FIFTY,EIGHTY) :- selects([O,N,E,I,T,W,Y,F,G,H],[0,1,2,3,4,5,6,7,8,9]), check(O,N,E,I,T,W,Y,F,G,H,ONE,NINE,TWENTY,FIFTY,EIGHTY). ?- solve(ONE,NINE,TWENTY,FIFTY,EIGHTY). ONE = 984, NINE = 8584, TWENTY = 364832, FIFTY = 75732, EIGHTY = 450132 ; false.
120 :
デフォルトの名無しさん :2009/08/03(月) 13:24:34
prologだっけ?
Prologだよ 手続き書くのは面倒いが 覆面算とかはむしろこの言語の十八番だと思う
122 :
デフォルトの名無しさん :2009/08/03(月) 15:29:28
>>121 おすすめのProlog実装を教えてください。
あとおすすめの教科書もあれば。
とりあえずはSWI-Prologで良いんじゃないかと 教科書は…Prologスレのテンプレに載ってるやつ片っ端読むのが良いんじゃない? 日本語で書かれてるやつだけ読んでもそれなりには解るかと ちなみに今回のコードは「Prolog 覆面算」でググって出てきた SEND+MORE=MONEYのコードを元にして改変したものだったりする 自分で書いたコードは遅すぎて話にならんかったw
124 :
デフォルトの名無しさん :2009/08/03(月) 15:51:51
metafontとかでも解けそうな気がするな。 くりあがりの処理がミソかしら。
>>123 a+b+...+c=x の形になる任意の式を与えて
解いてもらうようにするにはどうすれば良いですか?
>119 みたく答えになりうる値を全部列挙するワケにはいかないだろうから モジュール使うほうが良いんじゃないかな ?- use_module(library('clp/bounds')). ?- 3 + X + 4 #= 19. X = 12. っていうか、Prologってこのスレで扱って良いものなのかな
>>123 さんくすです。swi-prologをインストールして勉強することにします。
>>126 他の言語よりも分かりやすく短く書けるのならそれはLL
この手の問題だと、論理型が得意だったって事
読めないからよく解らんのだが、119のコードって他言語に直訳できないの?
アセンブリ
119って式が変わったら毎回書き換えるしかないんかな
汎用性は無いだろうね ただコード自体が式を列挙してるようなコード…つまり入力データみたいなコードだから Prolog的には下手なことするより最適な方法かも知れん
>>130 論理型言語を、そうでない言語に直訳
するのは基本的に無理。
論理型言語には、処理順序とかまったく
ないし、根拠となる条件式に基づいて
解を求めることしかできない。
>>132 式を他の言語で解釈して、
ソースを機械生成すれば。
ロンリーロンリーロンリーロリー
TOMOちゃんじゃないか!
どっちにしろマシン語になるんだから、無理なわけないだろ。
>>140 誰がそんな話をしたんだろうか
ある言語を使うってことは、その言語の制約内のことしかできないってことだと単純にわかるだろ
ここで話題に上がるような言語は、大概昔ラリーさんだかが言った、
「簡単な事は簡単に、難しいことは可能に」
って作られてるから、とりあえず何でも可能な気がするだけだ。
どっちかっつーと、Prologは制御可能なフレームワークって感じ。 普通の言語は流れそのものを書くが、Prologの場合は 基本的な流れはProlog処理系が既に持ってて、ちょいと書くだけである程度勝手に動くものを コードで制御してやると流れが変わって、複雑な動作ができる。 だから元々Prologが持ってる流れに近い動作は簡単に、遠い動作は面倒になるし 流れそのものが明快なものに対しては、それをそのまま書けば良い手続き型言語に対して 「既にある流れをどう変えればその流れになるか」と考えなくちゃいけないからしんどい。
>>142 PrologはDSLの一種と使った方が良いと思う。
正規表現とかSQLとかの仲間。
とはいってもPythonにprologモジュールが入ったりすることはないよね 広めたかったら他のプログラミング言語用のライブラリだ、って割りきっちゃったほうがいいのかな
145 :
デフォルトの名無しさん :2009/08/06(木) 09:42:30
On LispにLispで書かれたprologが載ってたな。 結構すくないコードで書かれてたよ
何気に欲しいな、Prologモジュール
何気に欲しいな、Prologモジュール
>>147 インストール済みのPrologを利用する
薄いラッパーだったら、自分ですぐ
作れんじゃね?
149 :
デフォルトの名無しさん :2009/08/06(木) 23:29:52
保守
Pythonって何で「普通に」文字列内で変数展開できないの? 3.0でもformat()とlocal()必要だし。どういう方針なんだろ。誰かおしえて。 これさえできればPython使いたいんだけど。
文字列内での変数展開なんて一部LLを除いたらおもいっきり邪道だと思うが。 PythonはReconstruct Cを目指した正統派LLというポリシーだからなあ。
LLといってもいろいろあるけど、変数展開はスクリプト言語的な機能だよな。 位置づけ的には Java系カッチリ言語 <- Python ... Ruby . Perl -> シェルスクリプト系テキトー言語
変数展開があると、普段から変数に変な記号つくしな。
>>151 >Pythonって何で「普通に」文字列内で変数展開できないの?
なんでだろうね。
Rubyのように文字列中に任意の式を埋め込めるようにするには、パーサをおもいっきり書き換える必要があるからめんどくさいけど、
変数展開ぐらいならできてもいいよね。
s = "x=${x}"
とか。
s = "x=%{x}" % locals()
とかかっこわるいわ。
eval
「変数展開をしないで文字列を書くときはシングルクォーテーション」とか 文字列書くときのルールを無駄に増やすのはPythonらしくない それに比べりゃlocals()かっこわるいなんてw
>>159 > 文字列書くときのルールを無駄に増やすのはPythonらしくない
なんという・・・クマー
>>159 r"..." とか u"..." とか """...""" とかあるのに、なにがPythonらしくないだよ
信者乙
Python-Devでは5年以上前に議論された話題だよ。 変数展開はいつ評価するの?パース時?それとも実行時? gettextと組み合わさったときはどういう挙動するの?そのほかの文字列メソッドとは? セキュリティも怖いよね? 結局、文字列に format() メソッドを追加するのが一番汎用的で強力。 変数展開は str.format() よりも限定した状況にしか対応できず、 そんな限られた状況で 「format(vars())」 程度のタイプ数を削減するためだけに 言語規則を複雑にするメリットを見いだせなかったので却下された。
> gettext… 意味わからん。 変数展開って言語構造レベルの機能だから メソッドには展開後の文字列が渡るだけでしょ
>>163 "$foo value is $bar"
というメッセージを国際化したくなったとき
gettext("$foo value is $bar")
って出来ないでしょ?
str.format() メソッドなら
gettext("{0} value is {1}").format(vars())
できる。 .format() の方が汎用的。
>>164 gettext('$foo value is $var');
>>165 gettextっていうのは渡された文字列をキーにして、
現在の言語の翻訳文を持ってくる。
それだとgettext()に渡される前に変数展開されてしまうから、
キーとして利用不可能。
>>166 リテラルの変数展開は普通、展開・非展開を使い分けるための記法が用意されてる。
PHP なんかだと ' では変数展開されず、" では展開される。
ただ結局HTMLみたいなののためなら、 テンプレートエンジン使う→変数展開イラネって話になる。
ほー、sprintf()じゃなくて%なのか。 perlにもformat/write有るけど、ほとんど使われてないね。 仕様がアレだからか。
170 :
デフォルトの名無しさん :2009/08/12(水) 22:36:37
で gettext() なんか使わないほうがよい?
使うのは構わんけど、そういうのに限って英語も日本語も中途半端なソフトが出来上がるからなあ。
>>162 >変数展開はいつ評価するの?パース時?それとも実行時?
解析はパース時、値の評価は実行時。
つまり "foo=${foo}." というリテラルがあればパース時に "".join(("foo=", str(foo), ".")) に変換してくれればそれでいい。
#いくらなんでも、これくらいのことがわからないPython開発陣ではないだろ。162は分かってないかもしれないけど。
>gettextと組み合わさったときはどういう挙動するの?そのほかの文字列メソッドとは?
>セキュリティも怖いよね?
どれも意味不明。セキュリティって何だよ。変数の埋め込みができたらセキュリティ上問題になるのか。珍説すぎる。
自分ででっちあげた理由を、さもPythonでの公式見解みたいな言い方するのはやめて。自分だけの仮説なら、そうとわかる書き方にしようぜ。
> 結局、文字列に format() メソッドを追加するのが一番汎用的で強力。
> 変数展開は str.format() よりも限定した状況にしか対応できず、
> そんな限られた状況で 「format(vars())」 程度のタイプ数を削減するためだけに
> 言語規則を複雑にするメリットを見いだせなかったので却下された。
これソースある?実際に却下されたというソースがみたい。
それから変数を埋め込みたいのは、タイプ数削減もあるけど、わかりやすさ・読みやすさのためでもあるんだけどな。たとえば
"{0}: not found (file={1}, line={2})".format(name, file, line) より
"${name}: not found (file=${file}, line=${line})" のほうがわかりやすい。
もちろん短いことも重要。
"{name}: not found (file={file}, line={line})".format(**locals()) ← これ、いけてないよな。実行時にパースしてるから遅いし。
>>164 >"$foo value is $bar"
>というメッセージを国際化したくなったとき
>gettext("$foo value is $bar")
>って出来ないでしょ?
gettext()使うときに、だれもこんなことしないって。gettext()の引数はキーなんだから、こんなところで埋め込もうとは誰も考えない。
こじつけもいいところ。
str.format()のほうが汎用的なことと、埋め込み文字列がほしいこととは別の話だよ。
.format()をなくしてかわりに埋め込み文字列を導入しようという話ではない。
.format()もいいけど埋め込み文字列も欲しいよねという話なんだけど、信者にはわかってもらえなさそう。
ところで、最近なんでRubyが失速してきたんだ? RoRバブルの崩壊でJAVA・PHP・Pythonあたりへの対抗力の限界が露呈された、ってところ?
175 :
151 :2009/08/13(木) 00:09:36
うおおお、なんかみんな語ってる! やっぱり言語仕様を複雑にするほど必要としてないって判断なんですかね。 まあ、オライリーのPythonチュートリアルで勉強中ですが、 クラス部分の実装の仕方に惚れたので、Python使ってこうかと思います。 あと、Pythonは正規表現がモジュールってところがいいですね。
そもそも、変数展開ってそんなに使う?
俺はPerlでもsprintf、RubyでもString#%使うなぁ
178 :
デフォルトの名無しさん :2009/08/13(木) 00:27:33
複雑に変数を埋め込むような場合は普通の文字列連結よりは見やすくなるね。 でも当然文字列のパースが入るからパフォーマンスコストは数倍になる。 最初は変数埋め込みばっかしてたけど最近は極力使わないようにしてる。
179 :
デフォルトの名無しさん :2009/08/13(木) 00:45:17
文字列のパース?そんなんコンパイル時だけだろ パフォーマンスにほとんど影響しない
え?
Python的にTemplate/substitute機能ってどうなん?
>>167 ああ、そういう意味ね。で、結局gettext()で得られたメッセージに対する
変数展開は行われないんだ。
Perlみたいな変数展開を .format() や % で置き換えることはできるが、
逆は不可だ。言語仕様としても、 .format() や % は通常のメソッドや
演算子オーバーロードの範囲で実現できるのに対して、Perlみたいな
変数展開は言語仕様を汚さないと実現できない。
>>182 gettextで得られたメッセージに対する変数展開ってどういう意味?
勝手にやられるとうざいから、formatが良い落としどころだと思うけどな。 gettextって print _("hoge: %s, %s") % (x, y) ってやるだろうから、こいつに関しては展開要らない。 シェルスクリプトなら変数展開ほしいけど、pythonでほしいと思ったことってあんまり無い。 複雑になるなら"%(name)s" % locals()とかテンプレート使うなりする。 (awkでもprint "hoge" $1 "hoge" でいいし、、ちょっと複雑になってもprintfで事足りる)
>>178 >でも当然文字列のパースが入るからパフォーマンスコストは数倍になる。
やっぱりこいつわかってないよ。文字列リテラルが変数埋め込みをサポートしている言語なら、
コンパイル時に一度行なわれるだけだから、パフォーマンスに影響なんかあるわけない。
「パフォーマンスコストは数倍になる」とか無知もいいところ。
実行時に毎回パースして遅くなっているのは format() のほうだろ。
"{foo} is {bar}".format(**locals())
これをformat()が毎回パースしてるんだから、パフォーマンスコストが悪いのはどう考えてもこっちのほう。
Perl の "$foo is $bar" のように文字列リテラルが変数埋め込みをサポートしている言語なら、
コンパイルした時点ですでにパースは完了しているので、毎回パースする必要なんかない。
ところでセキュリティーの解説はまだなの? なんで変数の埋め込みができるとセキュリティ上問題になるの?
しっかり解説たのむぜ
>>162
変数埋め込みだからセキュリティー上問題っていうのは何かあるのかな 意図しない埋め込みが起こるかもしれないぐらい?
sprintfやformatではおこらない、何か
変数埋め込みがセキュリティ的に危ないのなら、LLに限らずどの言語も危ないことになるな すばらしい発見なのでさっさと報告してくれ
190 :
162 :2009/08/13(木) 10:33:50
>>186 >>178 は俺じゃねーよ。
Python-dev では変数展開がプロポーズされてから、
>>162 のような議論があった、
というだけの話だよ。別にPerlやRubyや
>>186 の提案している仕様に脆弱性がある
というわけじゃなない。詳しく知りたかったら2002年の1月と6月のPython-dev過去ログ読め。
以下てきとうに要約。
*どの変数を展開するのかが実行時に決めると、安全じゃない文字列に対して危険
*なので導入するとしたらコンパイル時に $"${foo + bar} is $baz" が
(str(foo + bar) + " is " + str(baz)) に変換されるという仕様はどうだ。
これならセキュリティの問題は無い。
*でも、 % に比べると変数展開時にどの範囲の変数が利用されるのかわかり難いよね
*そんな仕様じゃgettextみたいなケースで使えない
*gettextを、 gettext("$foo is $bar", foo=hoge, bar=hage) みたいな仕様にしたら?
*言語仕様汚してそんな汎用性の無い機能入れるより、汎用的なテンプレートライブラリ
入れたほうがマシだ。
あと、MLでの議論の結果変数展開の代わりに選ばれたのは .format() や % のほうじゃなくて
Templateのほうで、こいつを使うとパースは一回で済むから、繰り返し使う場合は
こっちを使うべきだな。
PEP292でPEP215のセキュリティに言及してる部分がさっぱり分からん。 いやみっぽく書かれてるのは分かるけど。
いやだから gettext で変数展開は使わんと何度いったら…
>>192 だから、gettextでは使わないみたいに使える状況が限定される
変数展開より、広い状況で使える Template の方が良いよねっていう
議論をしてるんだってば。
>>193 意味がわからん。
それとも単に歯応えしたいだけ?
意味がわからん。
いい歯ごたえ!
リテラルでしょ? たとえば、辞書のキーに使うこともあんまり無いだろうし、 特に問題無さそうだけどね。
歯応えwwwwwwwwwwwwwwwwwwwwww
マジレスすると、口答えと歯向かう、がごっちゃになったんだろ どっちも上から目線ではあるけど、それは敢えてだろうな
言いたいことは察せられる 「噛みつく」なら適切かと思う。表現って難しい
>186-189 C言語のprintfにはセキュリティホールがあるけど LLでその書式文字列攻撃がどこまで応用効くか俺は判らんな。 ただ、printf/sprintf/format/% の書式指定文字列に変数埋め込みを使っちゃうと 予想外の挙動を招いてしまう可能性が高いのは間違いないよ。
そういや、ここのPythonユーザはみんな3.x使ってるの? 俺は本業Java趣味Pythonってこともあって、今日から移行することにしたんだが。
仕事2.5、趣味2.6だよ。 3.1は入れてあるけどほとんど使わない
特にprintfとprintで混乱したことは無いな。 予想外の挙動ってのがあるのか。 pythonこえー。
>>193 >だから、gettextでは使わないみたいに使える状況が限定される
>変数展開より、広い状況で使える Template の方が良いよねっていう
>議論をしてるんだってば。
gettext使う場合こそすごく限定されるだろ。使わない場合のほうが圧倒的に多い。
特殊な事例をさも一般的なことのように見せて反対するのはバカのすること。
>>201 >ただ、printf/sprintf/format/% の書式指定文字列に変数埋め込みを使っちゃうと
>予想外の挙動を招いてしまう可能性が高いのは間違いないよ。
それ、変数埋め込みに限った話じゃないし、変数埋め込みの欠陥ではない。
結局、なんとかしてPythonの仕様を正当化したいだけの信者にしかみえない。
いまのpythonにどういう風に導入したらいいと思う? uとかrのまねして、e""みたいにすれば、影響範囲は少なそうだけど。 効率を考えなければ、Template("文字列").safe_substitute(vars())とかに置き換えればいいのか?
207 :
デフォルトの名無しさん :2009/08/14(金) 10:10:12
208 :
193 :2009/08/14(金) 11:06:30
>>205 gettextは目的が明確な専用ツールだし、言語仕様ではなくライブラリ。
それに対して、文字列に対して変数を展開するのは汎用的な要求で、
言語仕様に組み込むとすれば(PerlではなくPythonでは)できるだけ汎用に
いろんな目的に使えることが要求される。gettextと同じレイヤで語れない。
で、Templateならgettextに対応できて、Perl/Ruby方式変数展開では
対応できない。ならば汎用でしかも言語仕様を汚さないで済む方が良い、
というのがPython的な判断。
実際に string interpolation に対して gettext で使えねーと反論しているメールは
こちら。
ttp://mail.python.org/pipermail/python-dev/2002-January/019523.html
209 :
193 :2009/08/14(金) 11:20:41
ちなみに、gettextはリテラル以外の文字列に対する変数展開がほしいという 要求のわかりやすい例であって、gettextのためだけに interpolation が却下された 訳じゃないぞ。
>>206 既に str.format(**vars()) で実現できる以上、言語仕様を汚して15タイプを
削減する提案が通る見込みは無いだろうな。
あったらときどき便利な機能を言語仕様に際限なく組み込んでいけばPerlに
なってしまう。
俺的にはstr.format()で満足。信者だからかな?w
おまえらお盆に何やってんだ
センスが悪くて誰もやらないようなことを持ち出して、 それを出来ないように蓋をするのがPython流なんだと理解した。
はいはい
別に蓋してない気がするけど。元々できないんだし。
216 :
201 :2009/08/14(金) 23:05:48
>205 俺自身はRubyがメインだし、Pythonを正当化したワケじゃなく >186-189の疑問に判る限りで答えただけ。 何がなんでも正当化したいなら「変数展開とeval()組み合わせたら〜」とか言ってセキュリティーホールがあるって主張するし わざわざ「printf/sprintf/format/% の書式指定文字列に変数埋め込みを」という限定を入れたりしないよ。
実際、変数展開ある言語だと何かもやもやするから、 Pythonにはいらんな。
組み合わせるまでもなく evalだけでセキュリティホールだな
まあ、「何がなんでも正当化」をするなら、って話だからw
俺もない方がいいと思う。それこそがPythonの存在理由と思うから。Perlみたいな言語はPerlだけでいい。
Perl my $price = 100; print "price = $price"; PHP $price = 100; echo "price = $price"; Ruby price = 100 print "price = #{price}"
JavaScript price = 100 print "price = " + price そろそろJavaScriptに、変数展開もsprintf相当の機能も ないことに誰か言及してあげてもいいと思うんだ
>>210 >言語仕様を汚して
このへんが信者だよな。
全然目的が見えない。
JavaScriptを使う理由って、ブラウザ上で動くスクリプト言語が事実上JavaScriptしかないってだけだからな。
結局そこは、ブラウザの政治力学なのでしょうがない。
JavaScriptの近年の過大評価って、不良の善行、落ちこぼれの平均点みたいなところがあるよな。 最初はあんなにダメな子だったのに…という。
政治力学がよく解らんが、ブラウザとしてはそんなに多数の言語をサポートしたくないんだろう HTMLとJSだけサポートするから、あとはサーバ側でやってよっていう あんまり馬鹿でかいエンジンになられるのも嫌だから、俺はそれで良いと思う
>>229 サポートしたくないもなにも、誰も立候補してない
JavaScript、結構トリッキーなことが出来て面白いぞ。
言語としてはかなり先進的な方 あの普及率で、例えばクロージャが使えるのは珍しい
233 :
デフォルトの名無しさん :2009/08/15(土) 13:01:24
【Javascript,Perl,PHP】LLバトルロワイヤル7【Ruby,Python】
ウェブブームに便乗して注目されだした途端に起きた JavaScriptの言語仕様を讃えれば通っぽいという風潮には飽き飽き。
235 :
デフォルトの名無しさん :2009/08/15(土) 13:13:37
JavaScriptダメな子 JavaScriptやればできる子 JavaScriptでもやっぱりダメな子
Firefox上のJSはかんりできる子なんだけど IEのJSがそこそこだから全体的に評価が引っ張られてる感じ
えぇっ? イベントやDOMとかで無く、言語のレベルで違いってあった? パフォーマンスとかって話?
debugger
239 :
デフォルトの名無しさん :2009/08/16(日) 00:33:06
getter/setterや分割代入なんかもIEにはまだ無かった気がする あと、E4X
iteratorとかgeneratorとかクロージャ記法とか 要はjs1.7以降の新機能
バージョンの違いか。理解しました。
まあIE6で動作しないと不可なんだけどね
244 :
デフォルトの名無しさん :2009/08/20(木) 19:03:45
コンマを1つ付けただけで動かなくなるIEに絶望した。
245 :
デフォルトの名無しさん :2009/08/20(木) 19:11:48
CやJavaの流れで付けても動いてよとは思うが、仕様的にはIEが正しいぽいな。
やっとIE6を捨てる流れになってきてるね
ブラウザ依存のサイトなんてうんこだよ。
コストや表現力って問題があるんだよ。 ぶっちゃけ、一通りの記述で済めば特定ベンダー以外のみんなが幸せになれるんだ。 それを阻害するブラウザこそがうんこだよ。
結論としてはブラウザは全部うんこ
全機能を完全な形の完全な見栄えでIE6にも提供する無論追加料金なしとかアホなことが蔓延してるからだ イマイチ外見に基本機能プラス程度でいいのならやってやるさ いまさらIE6使ってる一般人向けサイトなんてケータイサイトをCSSで光らせる程度でいいんだよ
結論としては http/javascript は全部うんこ
そのうんこをこねくりまわして納期までになんとかすんのが俺らの仕事
>>251 一応言っておくと、MSが想定する「一般人」は、大抵IE7か8を使ってる。
自動アップデートだし。
微妙すぎる自称玄人もしくは自称マニアのみが、IE6。
あとはまあ、会社でIE6縛りってのもあるっちゃあるが、それは好きで
やってる訳じゃないし、個人批判の対象にはあんまりしたくはない
IE6って、Windows98とかMeとかの古いPC使ってる人なのかと思ってたが マニアが使ってるの? なんかピンとこないな
ネットバンキングとかの主要サービスでも IE6しか対応していないというところがあるよ。
うちの出先は全てにおいて2k/IE6前提
IE6ってまだトップシェアじゃないっけ?
勘弁してほしいよね
IE6ユーザが減ってきてるのはありがたいが、HTML5の動きを 誰かに止めて欲しい。なんでXHTMLじゃないんだよw
HTML5でもapplication/xml+xhtmlなxmlで文章を書けてそれはXHTML5と呼ばれる XHTML2固有の機能が使いたいというならもっともだけどなんかあったっけ
application/xhtml+xmlだった
>>264 まあ、IEは8になってもそれを解釈できないんだけどな
これはIEというよりはWindowsも含めた問題かもしれんけど
>>262 xは規約がガチガチすぎたわりには
使い勝手がよくなかった。
初心者向きでもなかったし、
HTMLというのはもっと気軽に書けるべきもの。
xhtmlの存在意義はxmlパーサでパースできることかと htmlのいいパーサがあればそれでいいんだけどね
> 初心者向きでもなかったし、 > HTMLというのはもっと気軽に書けるべきもの。 という思想の人が、入れ子が互い違いになってたり、 どうにもパースに困るようなコンテンツの量産を奨励するわけですね。
手軽に書きたい人は手書きで書くなよ。
そーいやホームページビルダーってまともになったの?
むしろ、手軽に書きたいから手書きなんだが
HTML5はムダにアグレッシブすぎるよね。 誰得つか、理想論すぎる印象が強い。 成功しないと思うんだが。
俺はWYSIWYG嫌いだったし、手書きも面倒だと思ってたから タグエディタっての使ってたな 基本機能としては普通の色分け付きエディタなんだけど 各種タグ補完やタグの一覧からの選択ができて 各タグごとのオプションがダイアログでも弄れたり、整合性チェックやプレビューのついてるやつ
>>266 html5が初心者に優しいかどうかと言ったら全然そんなこと無いと思うけど
そもそもhtmlの仕様上タグを省略してよい箇所を完全に把握できる時点で初心者じゃない
ブラウザ間の解釈の相違もあるし初心者こそタグの省略をすべきではない
>>272 xhtml2と比較したらまだマシだろw
それに実装を先行させてるからそれほど仕様と実装が乖離するとも思えない
xhtml2は本当に誰得だったな。 5はIE以外ではすぐに実装されるだろうな。
HTML5はブラウザベンダー主導で策定していて、 複数のブラウザで実装されたら仕様にするというやり方にしているので、 XHTML2のようなことにはならないかと。
そうやってがんばってHTML5がリリース されても、どうせIE+SLが勝つ気がする。
278 :
デフォルトの名無しさん :2009/08/25(火) 10:20:57
SLって何かと思ったらSilverlightか。
279 :
名無し学生 :2009/08/25(火) 10:37:16
Visual Basic の課題で困っております。 誰かお答えください。本当に助けてください。 1.Visual Basicの関数で数値を文字に直すCStr()とStr()の違いについて 2.戻り値の違いが確認できる方法を考え、戻り値の違いについて実際に確認し、 その確認方法と違いを具体的に述べよ。 注意:実際にやったことと、確認した違いを簡潔かつ具体的に書くこと。 3.下記の計算結果などから、Visual Basicで計算できる数値の桁数について考察をまとめ、 何故そのような制限があるかについて理由を答えよ 1) 48 x 100 - 81 2) 12 ÷ 9.3 x 247 3) 0.2 - 12 ÷ 69 4) -12 ÷ 100 + 100
280 :
デフォルトの名無しさん :2009/08/25(火) 11:22:29
>>279 help読みなよ。
学生なんだから、その位やりさない
課題でVBはねーよ
人イネ〜!? LLTV開催中‼
ですねー。そういう国ですからね。 向上心あるプログラマなら飽きちゃうと思う。
政治的発表だよ。そういうのはw
東京だからなー。 新幹線か飛行機になる。 知り合いが居れば別だろうけど、こっち方面では居ないし。
HSPもいちおうLLだよね?
あーうんまあ一応は
特定用途(ミニゲーム)のための言語だし、グラフィックライブラリが重視されてるし、まあ良いんじゃない
DSLとLLって直行する概念?
ぶっちゃけDSLは言語ではない。
>>293 Languageと付いている以上「言語」には違いないと思うが。
汎用プログラム言語ではない、というのが適切かと。
そもそも、プログラミング言語ってなんで必要なの?って話だよな。 RADが発達すれば将来的には図だけでプログラミングできるんだろうし。 言語ベースってのがいまいち間違った発想な気がして。
うん、20年前くらいから同じようなこと言ってる たぶん、20年先も同じようなこと言ってるはずだ
>>295 それはないと思うw
未来はTV電話だ!みたいな発想だと思われw
一応、JavaBeansのような感じで ・ 部品を作るプログラマ ・ 部品を利用する一般ユーザー に二極化するだろうとは予想されている 極めて明快視覚的に自由に結合・動作可能なライブラリってことだな でも、野良ライブラリとか自作ライブラリとか作る人はやっぱ 言語ベースで従来型のプログラミングしてるはずだ
我々が相手に何かを伝えたいとき、 口頭にせよ文章にせよ、使うのはもちろん言語だろう であれば、計算機に対して同じ方法をとるのは自然な発想ではないか グラフィカルな記述の最大の問題点は、記述密度が低いことだろうなあ フローチャートぐらいじゃ文字に勝てない もちろんメリットが生かせる部分では、どんどん採用されていくだろうが
アニメとかドラマとか、そういうのでわかりやすく表現されてはいるけど 結局中身を理解しないといけないのは変わらないんだよね ロボットの行動プログラムとして一部あるぐらいしか有効利用されてるのが思いつかん
分岐条件を表現できない時点でゴミ まあ、天才のブレイクスルーに期待してみよう
>>298 低俗な話になるけど、
ニコニコのMADややる夫のAAとかの世界だと(意図しない)二極分業化がかなりすすんでるよな
あのあたりが流行るのって一重に素人でも扱える「部品」がそこらへんに転がってるからだと思うんだ。
今でもライブラリは転がってるけど、
素人が利用できる部品ってどれくらいあるんだろう。
>>299 >>301 つうかフローチャートは再利用を前提としていない時点でゴミ
分岐とループぐらいは書けるよ そういう部品が用意されてるから
条件分岐の記述と分岐条件の記述にはウンコとウコンくらいの違いがある
現状で図だけでプログラムできる言語はあるけど 全ての分野において使いやすいもににはなっていないしならないと思う
低能言語使ってる俺らが部品ってことはないしょ
> 730 名前:デフォルトの名無しさん [sage]: 2009/09/14(月) 15:34:52 > Python 3.0 は過去のしがらみを捨てた大掃除なんだから、比べるとしたらRuby 1.9じゃなくてRuby 2.0だろ常考・・・ Python 3.0は順調に出たから、ぜんぜん順調じゃないRuby 2.0なんか全く比較にならんだろ。
Python 2.x と Python 3.0 両方で動くプログラムを書くのが難しいのは最初からそう 設計されているからで、この点は Ruby 2.0 に近い。 単に、Pythonの大掃除が決行された時期と Ruby の大掃除が決行される時期が 違うだけの話。 なので、Python 3.x と 2.x 両方で動くプログラムを書くのが Ruby 1.9 と 1.8 両方で 動くプログラムを書くのが難しいというのは、 Python が Ruby よりも互換性を軽視する 根拠にはならない。比較するなら Python 2.7 と Python 2.6 にしておくべき。
そういう見方でなんでPythonとRubyを比較せにゃならんのか解らんが。 メジャーバージョン違いとマイナーバージョン違いは全然意味合いが違うだろうに。 そもそもRubyは「その時楽しければいい言語」なんで互換性でPythonと比較するのは 間違っていると思う。
310 :
308 :2009/09/14(月) 23:45:57
>>309 バージョン管理スレで、Rubyの方がPythonよりもバージョン間の安定性があるという
ことをPython3を引き合いに出して主張する人がいてね・・・
Rubyは脳力消費が低い言語だお
Rubyはやたらと重かった記憶しかないんだが 何かと勘違いしてるのかもしれん・・・
信者がうざい三大ソフト Ruby Sai メタセコ
RubyはWeb2.0のSaaSをクラウドするのに最適な言語
ユビキタスしたいときはどれがいいですか?
>>312 処理系は重いね。でも書くときは楽だなあ。
やたらメソッドチェーンするお陰で、カーソルを前に戻す頻度が少なめ。
Pythonのやり方も解るんだけどね。あっちのが安全性は高いだろうし。
サクッと書くのはRuby、スクリプトなんだけどカッチリ書くときはPython使ってるわ。
>>316 括弧いらんおかげでメソッドチェーンは本当に書きやすいけど、
その代償に括弧がメソッドコールじゃないし、関数がオブジェクトじゃないから
__send__とか。。。ここらがPythonの方が決定的に好きなところ。
StringクラスがあるのにSimbolはクラスじゃないんかい、みたいな。
Rubyは、「こういう場合はこう書きたい」という感覚を重視して、 Pythonは全体の整合性を重視している感じだね。
F#も()付けないようだな。
そこでまったくパラダイムの違う言語を例に挙げてもだな・・・ OCamlは()無しですごく一貫性が取れてるだろ。
Haskellもだよ。
問題にしているのは括弧があるかないかではなくて一貫性であって、 括弧が無い代わりにほかの部分にしわ寄せが行っていたら意味が無い。 x = y (言語によってletなどがつく) という構文でyを関数呼び出しとして 扱うのは、例えば y = 3 としたときにすら y が 3 を返す関数になる、 手続き言語的な変数の無い関数型言語だから一貫性が取れている。 Rubyの場合、yが何かによって x = y の意味が変わってしまう。
そういうのはPerlから受け継いでるんだろうな。
Rubyで関数呼び出しを括弧必須にしたところで、メリットがあまり無いんだよなあ。 Ruby的には関数はオブジェクトでは無く、オブジェクトの機能でしか無いから 括弧無しの動作はエラー以外には取れない。 「関数オブジェクトを取り出す」なんて操作にすると文法自体にメスを入れることになる。 ちなみにPythonの場合、関数呼び出しに括弧が要る、というよりは オブジェクトに対して呼び出しを試みるのが括弧、というのが正しいと思う。 括弧を付けない場合が関数オブジェクトの取り出しなんじゃなく 普段から関数オブジェクトを取り出していて、そこに括弧を付けて呼び出してる。 でも関数がオブジェクトではないRubyの場合、そうはいかない。 関数はオブジェクトの機能でしか無いので、関数を実装したオブジェクトを取り出すことになると それこそ文法が崩壊してることになる。
つまりRubyにはファンクタしかないってことなのか?
真の意味での関数オブジェクトは無いと思うよ。 一応、似たことができるようにProcとかMethodとかUnboundMethodってクラスはあるけど これらは、単独でオブジェクトとしては存在しえない関数をラップする為のクラスだし。 当然ながら、これらにラップされた関数を呼び出すには 括弧を付けてもダメで、call()などのメソッドを呼ばなきゃならない。
真の意味でもなにも、ないよ。 括弧を付けてもダメなのは、文法上の理由もあるけど。 (Javaも同じだけど、関数(手続き)オブジェクトという存在がないことを前提に 言語がデザインされている)
>>328 >(Javaも同じだけど、関数(手続き)オブジェクトという存在がないことを前提に
>言語がデザインされている)
Procがあるから、関数オブジェクトが存在しないというのは言い過ぎじゃないかな。
正確には、メソッド名と変数名の名前空間が分けられている、といったほうがいいような。
やっぱり、 y = f(x) F = f なら Y = F(x) だな。
Y = y ということだろう
ひとまわり大きくなるってことかと思った
335 :
デフォルトの名無しさん :2009/09/18(金) 01:50:33
俺が無知だっただけかも知れないけど、$_POSTで受け渡しの文字化けを調べていたんだけど、 「無」という文字(1字文字列)を受け取って正規表現で文字列の前後の空白を除いたら、本当に 「無」(つまりnull)になってしまって、エラー表示されまくりだった。 試しにPHPで構築されている、とあるサイトの入力欄に「無」の1文字だけ入力して送信したら見事に エラーになったみたいで(画面が真っ白)処理が止まってしまった。 EUC-JPからUTF-8にconvertするときにおかしくなっているような気がするが、原因はよく分らん。 誰か手練の人がいたら解明して欲しい。
>>335 1.PHPのMLにでも投げろ
2.WebProg板に適当なスレがあるだろ
3.せめてその正規表現とやらをさらせ
そのあとで、このスレでの有用なレスを期待してくれ。もしかしてマルチ?
337 :
デフォルトの名無しさん :2009/09/18(金) 02:32:30
>>336 メーリングリストでは参加しているPGの数が少なくて、というか初耳という奴が多かったので
こっちに出してみた。正規表現は
$title = preg_replace('/^[ ]*(.*?)[ ]*$/', '$1', $title);
$_POST で $title の奴を受け取って正規表現で半角と全角の空白を除去。
その後echoで表示させたら無表示。文字化けだったら?なんだけどnullなのでなんの表示も無し。
mb_convertで色々試しても反応無し。
「無」の文字だけなのよ。「鼻」とか「法」「院」だったら?なんだけど、「無」のときはnullに
なってしまってる。よく分らん。
338 :
デフォルトの名無しさん :2009/09/18(金) 02:40:27
追加 空白除去の正規表現がおかしいと思ってオミットしたら、「無」の受け渡しが ?で表示された。だからたぶん「無」の1文字をPOSTで渡して正規表現で空白除去するところで おかしくなっているのだと思う。 だって適当に探ったPHPで構築されているサイトで「無」を入力したらおかしくなったもん。 ここなら見てる人が多いかなっと思って聞いてみたの。
>>334 平鍋はまともだけど
まつもとは自分勝手で
顧客のこと全然考えてないってことが分かった
何を今さら。
自分勝手ぶりはGvRも似たようなもんだろ。 どちらもコミット拒否権持ってるし。
コミット権は自分勝手とは言い切れないが 平鍋が「顧客の満足」を強調しているのに Matzは「自分の満足」しか表明していない件
>>342 役割分担して答えてるからそうなるよね。
まぁそうでなくても俺言語作者なんてそんなもんだけど。
344 :
デフォルトの名無しさん :2009/09/19(土) 01:03:45
>>295 >RADが発達すれば将来的には図だけでプログラミングできるんだろうし。
それ10年以上前にも言われていた。
結局、図でのプログラミングって特定用途限定なんだよね。
そのうち詩でプログラミングできるようになるよ
マルチタッチのディスプレイがマウスくらい普及するころには、図によるプログラミングも一派的になるかもね。 そして、文脈によって太矢印の解釈が違う言語とか、楕円を多用するために見た目がスカスカになる言語とかが登場する。
0が偽じゃないなんて・・・めんどくさい!
"0" が偽なのもめんどくさいけどな。
>結局、図でのプログラミングって特定用途限定なんだよね。 用途限定なんだろうけど、SQLは実現しているんじゃね? Eclipseでもソレっぽいプラグインとかあるし。 ただ、SQLを直打ちでテキストで適度に整形した方が図よりも理解しやすい場合が多い。
>>348 文字列を判定に噛ましてるのがアホなだけじゃん。
それは単純なSQLだけだろ。ORMだって、浅いレベルならSQLまったく意識せずに済むし。
プロパティにundefinedが代入されていることがあるのもめんどい
俺銀行で芸術的なクエリ見た事あるな。 Access+ODBC(OracleやDB2)だったけど。 普通のプログラマには銀行の要求する算術を理解できないので、 行員がクエリを作ってたりするけど、かなり感動を覚えた。
Accessのクエリエディタはホントすばらしいと思う ただ、ブラウザとVBエディタが何とかなって欲しかった
SQLをプログラミング言語って言う香具師は HTMLもプログラミング言語だと思ってそうだな
VBには芸術的な「マクロの記録」があるだろ あれこそ究極のイメージプログラミング
ガラクタ箱の中身という意味ではどれも同じ
ポカーン?
>>355 OracleのSQLなんかはチューリング完全なんだがそれでもプログラミング言語でない?
HSPもチューリング完全です(^o^)
brainfuckのインタープリタもどこかで見たな
>>356 あれは良いよねぇ。
いったんあれで操作して関数名を調べてから,
WIN32Ole で書き直したりしてる。
HSPとRubyってどっちがいいの?
びっくりするくらい頭の悪い聞き方だな
367 :
デフォルトの名無しさん :2009/09/19(土) 14:29:36
Ruby, Phthonのことを書いてね。
友達にHSPかRubyがいいと勧められたので・・Perlもいいかなと思ってます。
VBでいいんじゃね?どうせWindowsでしょ? あえてHSPを選択する意味ってどんなのがあるんだろう。
>SQLをプログラミング言語って言う香具師は アレは構造化照会言語(w)であってプログラムとはちょっと違うだろ。 手続きを記述すると言う意味においては似てるだろうけど、 集合論でデータを操作する事に特化しているから、 従来のプログラムとかの経験がない人でもそこそこにコード(?)が書けるのがメリット。 個人的にはTrueとFalseとNullの概念がある偉大な言語とは感じるが。
今にはじまったことじゃないが、相変らずGoogleのプロダクトはいまいち感かもしだすなあ。
>>365 今すぐ自分の役にたつもの作りたいならHSP
時間がかかってもいいから人の役に立つもの作りたいならRuby
おまえらそんな糞なものすすめんなw
まぁ一生そこから出てこないってんならHSPやRubyもありかもな でも他の言語もやるかもしれないならその2つは止めとけ 害にしかならん
>>362 bit演算はまだ?
間違えた
アホだorz
Noop Yeah, perhaps.. I personally find it more readable and I think there is good precedence for it in python and ruby, but totally understand the other view... As far as xor, nand, etc, if we were to have "and" and "or" and if we aren't afraid to add keywords, why not? :) if foo and bar: if not foo: On an sort of related note, I always liked being able to give the conditional at the end: foo = 2 if bar; // Ruby style foo = 2 if bar else 0; // Python style where else is required, which I find super annoying sometimes bar = 1 unless foo; // Ruby style unless, though I find if not easier to deal with than unless in my brain bar = 1 if not foo; This gets to ternary expressions, which can be more readable this way as well... foo = 1 if bar else 2; foo = 2 unless bar else 1; // Probably unnecessary Otherwise I guess we would use (a ? b : c) ?
I like the gabrielh's vote to put the conditional at the end: foo = 1 if bar; I'd also like to suggest my favorite looping construct from Pick Basic (yes Basic): loop { x = doSomething(); } while (!x) { doSomethingElse(); } putting the test in the middle of the loop allows you to dispense with any setup code for the loop that has to be repeated within the loop -- it all goes before the test and will be executed again for each iteration.
An array is essentially a function that takes a numeric parameter and returns a value. A Map can also be viewed as a function that takes an object (usually a String) argument and returns an object. They are essentially parametrized objects. Why can't we unify the syntax? A template (Generics) takes a parameter and behaves like a function also. Can we then move toward a syntax similar to the following? Array(Int) factorial = {1, 1, 2, 6, 24, 120}; Int fourth = factorial(3); // fourth == 6 Object myObj = myMap("myKey"); We can standardize this feature for all classes by using a special method: class TableRow() { String get(String name) { /* Return field name as a String */ } String get(Int i ) { /* Return field i as a String */ } } TableRow row = getNextTableRow(); String city = row(5); // city == "Alexandria" String country = row("Country"); // country == "Egypt" This is especially useful if we can extend the syntax to set values and not only retrieve them. The syntax might then look like this: class TableRow() { String get(Int i) { /* Return field i as a String */ } void set(String value, Int key) { /* The first parameter is the new value */ } } TableRow row = getNextTableRow(); String city = row(5); // city == "Alexandria" row(5) = "Ankara"; // row(5) is mutable of course String town = row(5); // town == "Ankara"
>>380 これはPythonに欲しい。
>>381 array[index] と map[key] を関数のようにみせるために
array(index) と map(key) のように書くのか。
そのせいで代入が array(index) = value とか、きもいわ。
オブジェクトの参照を返す関数で hoge(fuga) = hage っていうのは他の言語でも有な気がする pythonの codecs.getreader('utf-8')(file('test.txt')).read() みたいなのも当初はきもいと思ったけど慣れたらそうでもないし Javaでも結構こんな書き方しなくね?
array(index)は今のPythonでも可能だろうけど(callの挙動を弄るだけ) array(index) = value はかなり無茶なことになるな BASICみたく配列の添字が括弧なのか、それ?
>オブジェクトの参照を返す関数 この辺がキモなのかな 言語仕様によっては無理筋過ぎそうだけど よくわからん
VBでも hoge.item(n) = x の場合 itemが配列なのか関数なのか 区別出来ないっていうか意識しなくて良いようになってるのでは
そのうちmutableかimutableかが判らなくなる気がする
>>383 やっぱ普通に hoge(fuga).Value = hage とかじゃないとキモく感じるわー
NoopはGAE/bigtable専用言語なのかと思った
391 :
デフォルトの名無しさん :2009/09/20(日) 00:51:57
またおまえら新しいものに手出すのか。他にやることがあるだろうw
新しい言語がでてきて既存の言語と競争することで、既存の言語も改良されるのだったら歓迎だよな。 新しい言語万歳。
プログラマー的発想だな。。作業員の覚える作業内容が増えるだけ。 経営者的にも、今の開発環境は各種技術が乱立してて、設計も人員リソースも 計画がたてづらい。 プログラマーにしてもスキルセットとかキャリアプランをたてづらいし、 転職の際の壁になることが多いし。 なんでも言語できますって奴は、器用貧乏な奴が多いよ。数理処理とかレンダリング とかネットワークとか専門的なことできなくって、結局WebとかDBとか誰でもできるとこ やることになる。
だな。 393みたいに他の言語を迎合してたらバトルロワイヤルになってないな。 けしからん。
>>394 ウチの会社のメインは汎用機で金融系なトコなんだけど、そういう考えが強く、
結果オープン系の技術力が他の会社に比べて著しく劣っている。
で、世の流れで営業がオープン系をねじ込んできて、導入したら障害が大量発生。
エンジニアは老害と偽装派遣ばっか。
地獄だよ。
まあ研究職と人身売買業種とは別に考えろよ。
それにここはプログラム板でプログラマーが多いのは当たり前。
398 :
デフォルトの名無しさん :2009/09/20(日) 12:34:30
>>347 俺は真偽と0、nil系は別もの派だからオケー
Webは新しいこととか、他より見劣りしないようとか営業的圧力が強いからなあ。 なんとかしようと開発は、流行りのその辺に転がってるOSS使って、 はりぼてにノリを塗りたくってる感じ。
問題はその営業が顧客の押しに弱かったりすることだな Perlで案件取りにいったのに帰ってきたらJavaになってたときは怒鳴り散らした
Javaがいいなんて言う顧客なんているんだ PHPがどうしても嫌だという顧客は多いが
ディスプレイタッチパネルでやる予定が、いつの間にか別の小型端末からの入力まで入ってたからな その頃はJavaやってなかったから、最初の見積もりから3倍ぐらになるかな、といっただけで青ざめてた
>とかネットワークとか専門的なことできなくって、結局WebとかDBとか誰でもできるとこ >やることになる。 Webはドカタな現場が多いとは思うが、案件の規模がでかい(億を越えるケース) とかだとDB部分は相当なエンジニアでないと参加できないけど。 DBが誰でもって発言が出てくる辺り相当に底辺しか知らん印象があるが。
誰でも最低のことは出来るが、最高のことが出来るまでには相応のスキルが必要ってのと 誰でも要件を満せて、天井もすぐ、っていうのとの区別がつかない奴って絶対いるよな。 「ウェブなんて小学生でも出来るんでしょ?」とかほざく頭の悪いおっさんとか。
そもそも、全く新しいアルゴリズムの開発なんて仕事はめったにないしな。 五十歩百歩だよ。
>>403 前に流体とか応力計算とかやったけど、理系で大卒のそれなりの人じゃないと無理。
DBとかは短大文系でもやらせりゃ1年でできるようになるからね。
>>406 >DBとかは短大文系でもやらせりゃ1年でできるようになるからね。
この発言が
>>404 のほんといい実例だよな
※ExcelDBを含む
DBを「使ったことある人」と「使いこなせてる人」の差は広すぎる。
DB設計のためにはモデルを作り上げる能力が必要だが、 流体にしろ応力計算にしろ、先人の作り上げたモデルを利用できれば十分だからな。
>DBとかは短大文系でもやらせりゃ1年でできるようになるからね。 Accessの話でもしているのか? このニートは。
410は406へのカウンターなんだろうと思いつつ そんなことはないと言ってみる
413 :
デフォルトの名無しさん :2009/09/21(月) 01:43:48
1年はかかり過ぎだろどうみても
ExcelとかAccessなら1年で出来なきゃアフォだろうな。
DBってもともとデータ処理を簡単に扱えるようにしたアプリだからな。 誰でも使えないとそれはそれでおかしい。
ExcelやAccessはマクロ言語を内蔵していて、GUIパーツも使えるわけで、ウェブアプリより応用範囲が広い。
サクサク作れるのは良いけど いまだにソースやオブジェクトの管理が改善されないので大規模化するとカオスになるよ
ソース埋め込みだからね
どのくらいの規模からカオスになる? 大規模っていうのは人によって全然違うから、いちおう聞いてみる。
カオスになるのは規模関係ない。
機能が増えて、メンテナンス性を上げようとクエリやら関数を共通化しようとしたあたりからカオスだな
自分で作ったフォームと良く似た機能のフォームを ソースをちょっとだけ変えて2つ目を作るとき それなりのプロジェクトでは共通部分を親クラスにして それぞれが継承したりするもんなんだが Access/Excelでは良く似たフォームを もう一度最初から作るしかないのか
423 :
デフォルトの名無しさん :2009/09/21(月) 16:14:34
いや、コピペするからそんなことないよ
そして後日修正漏れが発生するのですね、わかります。
425 :
デフォルトの名無しさん :2009/09/21(月) 16:50:42
最近はdiffを使いこなしてるから修正漏れはなくなったよ。 diff -rbw これの意味分かるかい?へへへ
-uは付けないの?
427 :
デフォルトの名無しさん :2009/09/21(月) 18:40:59
<>の方が好きだからつけないよ patchとか使わないし
フォームの継承はマジで出来ませんか?
Excel VBAとかって使ったことあるけど、バージョン管理ソフトで差分管理できなくて大変だった。 ソースをdiffれねえw
俺もDB定義書をSQLにするようなのを書いて使ってるんだが、その辺が不満 コピペで無理矢理SVNに突っ込むって以外に、何か方法はないのかな
Flashもソース管理できないから大変。プロジェクトファイルのバイナリ1個しかはかねえし Flex?だとファイルがバラになるからいいんだけど
Office2007でxml形式で保存したらsvn/diffに合いますかね
>>431 Flashはソースをテキストからincludeする方法があるからまだましかと
ちょっとめんどいけど
>>432 ODFにしてもそうだけど、最終的にはzipでまとめてるから
既存のバージョン管理システムとは相性悪いんじゃないかな
>>432 >>434 圧縮されてるんだよな。
しかもデータがでかいとロードが時間掛かりすぎるから、バイナリ形式で保存したりするし。
RubyをVisualBasicの代わりとして使えないかなと考えている。 VisualBasicは進化の方向性を致命的に誤ったと思うのだよね。 旧VB6のポジションが空いている。 VB.NETに代替に成りきれていないでしょ? そこにRubyが入れないかと、そう思った次第。
Pythonでもいいや
>>436 Rubyはよいのだが、GUI付くんのどうする?オススメライブラリ教えて欲しい。
web系ならRailsでも使ってwebインターフェスにすればいいかもしれんが。
GUIなら、VB.net、というかC#でいいしな・・・
>>438 大抵の人の言う「GUI」は「(見慣れたWindowsの)GUI」なんで
とりあえずVisualuRubyじゃない?
VisualuRuby昔使ったけど イベントやらなんやら色々書き足さなきゃいけなくて 結局自分でAPIゴリゴリ読んだ方が速いってことで VisualuRuby使うのやめちゃったな WIN32API/WIN32OLEだけで殆ど問題ないし ところでRubyから.NET呼べたっけ?
IronPythonを思い出してあげてください…。
VisualuRubyかサンクス、試してみるワー
>>441 俺はIronRubyに期待
言語の機能もあるけど、GUIアプリ作るなら、VisualStudioを超えないとな。まあ、C#は凄くいいと思うけど。
そうすると最終的にTcl/Tkが候補に挙がってくるわけだ
そういえば動的VBというかVBxの話はどうなったんだろね
Win/UNIX問わずGUIが充実したスクリプト作ったらそうとううけるね。
つPython 実際、海外だとそういう用途に使われてるしな・・・
現状で GUI アプリを作りやすい LL は何なの?
>>447 いや、やっぱ結局Win32呼ばんとできんこといっぱいあんのよ
つTcl
>>449 例えばどんな事?
今wxPythonをやってるんで気になる
>>451 今Dockableウィンドウとか使ってるけどたぶん無理でしょ。
つかオーナードローもできないのがほとんどじゃない?
あとIEコンポーネントもイベントシンクとか上手く使えなさそう。
まあ膨大なWindowsの機能をすべてラップするってのも無理な
話だと思うから、CとかDllを簡単に呼べるスクリプトがあったら
使いたい。
ctypes
Pythonは標準ライブラリにctypesがあるのが強いよね。 if sys.platform == 'win32' とかして WinAPI 呼ぶコードを混ぜた クロスプラットフォームアプリが書ける。
wxPython 使いやすいね GUI を XRCed で作って ほぼ完全にコード部分と切り離せるのが素敵
>>456 昔VBで書いてたら、結局こんな感じのAPI呼び出しばっかになって
C++で書けばいいじゃんってなったよ。defineとか自分で書くのばからしいし。
Python3の普及度はどんなもんかね。
この間落としたWindows版はなんか2.5だった 何故だったんだろ
Snow Leopard にしたら 2.6.1 だ
sed,awkってLLにはいるん?
sedはプログラミング言語とは言えず微妙な気がする awkは初期のLLと言えるんじゃね
awkはいまだにワンライナーで使うなあ。
俺はハードなCUI使いじゃないので、 ipythonをshellにしてipipeとか使うよ
で、LLってなにwに戻ると
最近思う。 「やっぱ、perlでいいや」
perlはなんか昔は良かったみたいな気分になるなw
perlはなんか昔は酷かったみたいな気分になるなw
LLでがっつりしたもの書く気しないし、汎用作業はperlでいいや ガワが必要になったらtcl/tkでいいや
470 :
デフォルトの名無しさん :2009/10/07(水) 02:07:50
WEBプログラミングでの利用を前提に考えた場合Pythonってどうだろう。
標準で cgi wsgi フレームワークでは django TurboGears pylons plone zope テンプレも ORも いっぱいある
472 :
デフォルトの名無しさん :2009/10/07(水) 04:20:53
なせかPではじまるのが3つ Rではじまる天の邪鬼がひとつ
>なせかPではじまるのが3つ Prolog、Pascal、PL/Iですね、わかります。
スレタイ1000000回読んで出直せ
>>470 Webアプリに関して言えば、PHPやRubyの方がいい気が
根拠を述べろよ禿
サンプル多いもん 土台からして、PHPはサーバ屋さん任せにできるところは多いしもともとフレームワークみたいなもんだし、 Rubyなら、Railsの情報の豊富さも、CGIとしての利用例もそれなりに。チュートリアルもあるし。 間違いなくPythonの取っつきにくさは一段階上だよ Windowsサーバでならちょっとは状況は違うのかな?
cgiとしての利用例ならPythonにでもいくらでもある。 あとは、Railsに情報が集中しているRuby vs Django/Pylons/TurboGears/etc... に 情報が分散しているPythonの違いになるけど、ぶっちゃけたいした差じゃないな。
CGIとフレームワークって、viとEmacsみたいなものなの?
違う。 なぜならCGIとframeworkでは聖戦にならない。
>間違いなくPythonの取っつきにくさは一段階上だよ W
俺はPerlが一番取っ付きにくかったなあ
483 :
デフォルトの名無しさん :2009/10/07(水) 12:30:52
WEB業界ではPython浸透してると思うよ。 今日本でPythonが注目されてるのはGoogleAppEngineの成果も大きいし。
プログラミングはCGIの改造から入ったから、Perlが一番できるなー その後、Rubyを勉強したけど、Rubyのほうがよさそうな感じ。
CGI ≒ perl
PerlやらPHPでWEBアプリが作りやすいってのは、みんな最初そこから入るからだろ? パーミッションの設定やらなんだかんだ、フリーのアプリをなんとか動くように頑張って、 その後いろいろ改造して・・・ってな段階を踏んでるから。 大抵、基礎の筈のHTTPプロトコルの詳細やApache等Webサーバの仕事・設定を知るのは それなりになんか書ける様になってから。そういう人がかなり多いという。 だから、全くの一からの取っつきやすさの議論ってのは、あんまり意味が無いと思う。 取っつきやすさって要は、どれくらいそれを触り、動かそうとする動機があるかってだけじゃん。 何がいいたいかというとPerl難いよめんどいよってことだ。なんだあのデリファレンスって。
>>485 そう認識してる馬鹿が多いという点は同意
webアプリしか書いたことのない人 あるいはwebアプリからプログラミングに入ったひとに 質問なんだけどデスクトップアプリって書ける? or書きたいと思う? or書けるようになるまでに違和感なかった?
>>488 画面を作るのが楽(簡単、ではなく)なら書けるだろうし書きたいだろうな。
JavaのSwing使って掲示板もどきなら書けた。
デスクトップアプリってのが何を指すのかよくわからんが、CUIで例えばncursesで
オセロとかなら、入力やら表示やらの段階で簡単に挫折出来る自身がある。
あと、やたら数を数えたり足し算引き算しまくるような記述が必要ないなら。
とにかく数を数える、数を指定する、数を覚える、という作業が面倒くさいイメージ。
って、隣の隣の兄ちゃんが言ってた。俺だけど。
>>488 >>484 だけど、C#で挫折したわ。
趣味でPerlやRubyでCGIプログラミングするのがやっと。
491 :
デフォルトの名無しさん :2009/10/07(水) 15:06:13
>>485 やってた頃はcronでたたくscriptが多かったな
後は mail受信->DB登録を書いたりとか
#PerlでCGI書くのはあまり好きじゃなかったよ
>>488 今どんなOS/言語使っているか、どのOS/言語を対象に考えているかが
無いと、なんとも言えないと思う
Postでパラメータ拾ってくるのとは違うけど、それ以降は同じだよ
#画面出力は色々はコンポーネント使うことになると思うけどね
>>486 @{$hash->{key}} …つまり $hash->{key} (もしくは $list->[idx] )と @{array_ref} の2つさえ判れば
デリファレンスは意外と何とかなる…気がする、逆に $$hash{key} とか考えると混乱する
493 :
デフォルトの名無しさん :2009/10/07(水) 16:55:21
>>490 簡単な本を1冊こなして、オライリーのプログラミングC#やれば
そこそこ、いけると思うのだが
#後者のみでも可。ある程度の大枠つかまないと、使えないと思うよ
c#の構文そのものと.Net Framework 使いこなすのとは違うから
メインがウェブで、たまに頼まれてWindowsフォームのアプリ作るけど、HTMLに慣れてるとGUIを組み立てるのが面倒だな。その分、操作性が高いもの作れるけど。 後はウェブの場合、RDBMSに頼りすぎるっていうか。
っXAML
また、perl本 買っちゃったよ。。
続・はじめてのperl ずっと 初心者卒業できないんだ
お前らもっと異宗教どもを口汚くののしらないとだめなんだぜ。じゃないとバトルでロワイヤルじゃないんだぜ。
ケンカはやめて(><)
バトルロワイヤルと言うよりは、暖を囲んで愚痴を吐いて励ましあってるよな。。。
う、うん……
>>501 お前、俺に・・そんな・・ハア・・・言葉浴びせる・・ハアハア・・ないで;ください、お願いします。
RubyとPythonを足して2で割ったような言語を教えてほしいな…っと
>>499 RubyとかPythonのほうがいいんじゃない?
Schemeだろjk
509 :
デフォルトの名無しさん :2009/10/09(金) 18:41:32
とりあえずPythonやっとけば仕事でも趣味でも困らない。
PythonとSchemeとJavaScriptをやってる。LL界隈では無敵だじぇ
pythonが使われてるところってあるの? 少なくとも日本ではほとんどないんじゃないかな。
>>512 Windows では DropboxやBitTorrent が有名だけど、いろんなゲームで
組み込まれててたり、縁の下で力持ってる。
LinuxはもうPython無しが苦行なレベル。
LinuxはPerlとPythonがほぼ標準で入ってるよね
Perlなら大分前から商用含めてUnix系OSにはデフォで入ってる気がする Pythonはさすがにそこまででもない
メジャーなディストリで、Python無しでもインストールできるのってDebianくらいじゃね?
う、うん……(´・ω・`)
windowsに標準搭載されれば爆発的にヒットする?
WSHが爆発的ヒットしてないのを考慮するとおそらくヒットしないだろうな。。
PowerShell!!
会社で買ったHPのWindows PCにこっそり入ってた>Python なにに使ってるんだ?
Thinkpad X200 にも入ってるぞ C:\Program Files\Common Files\Lenovo\Python24 ほんと、OSに標準搭載にしたらいいのにな。 でも、WinXPみたいに長寿命なWindowsが出ると、ずっと古いPythonに対応しないと いけないのが面倒そうだ。
MSが搭載したらIronPython
Macが標準でインストールされているのはRubyだっけか?確か
>>525 日本語大丈夫か・・・?
Macにも標準でPython入ってるよ。wxPythonとかまで入ってたはず。
すのうれぱーどにて $ /usr/bin/python --version Python 2.6.1 $ /usr/bin/php -v PHP 5.3.0 (cli) (built: Jul 19 2009 00:34:29) <略> $ /usr/bin/ruby -v ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0] $ /usr/bin/perl -v This is perl, v5.10.0 built for darwin-thread-multi-2level <略> $ which wxPerl wxPython wxRuby /usr/bin/wxPerl wxPython not found wxRuby not found
>>514-515 うに系でPython使うのはGUIの小物ツールに多い気がする
設定ファイル弄るツールとかに多くね?
んだから玄人向けの環境ほど見ないが、簡単に使える系の環境だと多そうだ
>>528 yumとか、iotopとか、コマンドラインツールもPython系大量
530 :
デフォルトの名無しさん :2009/10/10(土) 19:39:14
| ̄ ̄ ̄ ̄ ̄ ̄ ̄| | 次でボケて! | |_______| .. . ハ,,ハ || . . ( ゚ω゚)|| . / づΦ
>>1 > 最強のLL=軽量プログラム言語は、どれよ?
>
> エントリーは、Perl、PHP、Python、Ruby、JavaScript・・・
> さあ、死ぬまで語りやがれ!!!
コンパイルして EXE ファイル作れるのは、どれですか?
>>531 貴方がコンパイラさえ書いてしまえばどの言語でも可能です。
>>532 スミマセン
いまからどれ学ぼうか考えてる初心者なんですが、直ぐにEXEファイル作れるのは、どれですか?
>>533 exeファイルを作るのにコンパイラが必要だと思っているようだが、
hspみたいにインタープリタとスクリプトをセットにしてexeを生成できるパターンもある。
pythonとか。
hspって何だか意味もわからない厨房ですが、pythonならオケってことですね
perlでもrubyでもできるよ
なんか気になってググってたらどの言語でもexeに変換できそうな気がしてきたw
>>537 Perlで昔からできてたんだから、後発の言語のコミュニティが似たようなものを作らないはずがない
目的はパスワード含んだソースの隠匿です ダンプしたら中身が見えちゃうニセモノのEXEじゃダメです
EXEにしても中身が見えるモノなんだが。
Zend Guard でも買え。
なでしこ のEXEは、中身見るとそのままスクリプト見えます! 始めはVBSでスクリプトをエンコードしたら、簡単にデコード出来てしまいました、容易に見られちゃう いま色々と調べてみたら、アイロンpythonでEXE作れそうなので、それを試してみます
なんかちょっと勉強になったわ
ソースの隠蔽が可能な言語ってC/C++以前の年代の言語だけなのかな。
パスワード含んだソース というのを何とかしたほうがいいかも
インタプリタ言語から実行可能ファイルを作り出す簡単な方法として 対象スクリプトを起動するためのインタプリタと一体化したファイル にする、という方法を選んだだけで、VMコードやネイティブコードを 吐くようになってればCと同程度の隠蔽は可能。単にそういう方法を 採用しなかったというだけ。 実行時に決まる部分が多い言語だとなかなか難しいところもあるがな。
C/C++の年代ってまだ終わってないぜ
Access で作ったパスワード掛けた業務データベースのフォーム入力を従業員にさせたいのですが パスワード解ると、DAOで接続してテーブルデータ全て見られちゃいますので パスワード知らせずに、パスワード掛かったAccessアプリをスクリプトで起動させたいのです 始めはVBSで起動スクリプト組んでエンコードしましたが、簡単にデコードされちゃう事が解りました 次にVBでEXE作って一応解決しました 今風なスクリプト言語を新たに学ぼうと思い、どうせなら同じ用途にも使えるもの選ぼうと考えました 先日RCがリリースされたPowerShell2.0を色々と弄って見ましたが、ソースの隠匿は無理のようでした
悪い事は言わんから素人がそういうヘンテコな実装をするのはヤめといた方がいい。 マトモなエンジニアにそういうシステム全体から設計してもらえ。
Accessねえ…
Access自体が隠蔽を前提にしてないからなあ…
>>549 パスワードによる情報保護や複数人でのデータアクセスの場合、普通はRDBMSを用いて実装する。
Accessはフロントエンドしては優秀なツールだと思うが
>>549 の利用方法はヘンテコと言うか
パスワードをアプリに埋め込んだ場合、パスワードがデコードされる可能性は常に0ではない。
バカにするワケではないが、Accessで済む程度の業務データなんざ、ゴミみたいなモノだろうから
妙な小技使わない方がマシだな。
つか、そういうのはOSのアクセス権でやっとけば済む話じゃないのか?
根本的な物事の解決方法がイカれている印象。
つか、んなもん使ってる業務あるんだw
AccessのVBA部分にパスワード掛けるってのはダメなの?
Accessでももう少しマシなアクセス権管理できなかったか
557 :
デフォルトの名無しさん :2009/10/11(日) 12:40:40
アクセスできるからAccessなのにアクセスできないAccessなんかNon-Accessだろ。
いやそういうのはいい。
mde
560 :
デフォルトの名無しさん :2009/10/11(日) 16:34:35
どうしてこうなった
>>527 wxPython は独立したコマンドじゃくてスクリプトに取り込むモジュールだ。今のOSXには最初から入ってる。
wxRuby も似たような感じだろう。
Perlの場合は wxPerlっていう別コマンドでないと実行できないんだな。
だからperlで十分だっての
PHP、割りと嫌いじゃない
俺も。 というかC使いとかの人は一番慣れやすい。 PHP使いはウェブPHPで、他はC/C++でとか両刀的な人が多いけど Ruby/Python使いは割となんでもこれ一つでやる、って人が多いな。
Ruby、Python、どっちが日本語対応が良いの?
>>565 それはPHPがWeb以外にむいていないから。
まあ真のPHP厨はなんでもPHPでやろうとするけど。
>>563 十分って言い方だと、Perlは劣っている前提みたいにならないか?
Perlは劣ってるっての
そういうことにしたいのですね。
そういうこと
>>566 Ruby
Pythonのソフトはいつもマルチバイトがらみでトラブル起こす。
そうでもない。 Pythonでトラブルが起きるのはプログラマが正しい使い方を分かってないから。 (日本では少ないが欧米だとそれなりに経験のあるプログラマでもバイト列と文字列の区別のついていない人が結構いる) 少し前だったが、俺が各言語でのファイルシステム関連の多言語対応状況を調べたときはPyhtonが一番よくできていたと思う。 次点でrubyだったがUnicodeのファイル名の扱いに若干難があった。PHPとPerlはもはや論外。
欧米というか特にアメリカ人な。 本当にZの後に文字がないと思ってるんじゃないかって連中が存在する
Pythonの「暗黙に失敗するよりも明示的にエラーになるほうがいい」というルールが
結果的に
>>573 みたいな印象を受けている。
UnicodeEncodeError, UnicodeDecodeError はPythonで頻繁に見る
ことになるエラーだけど、文字コードに関する設計ポリシーを持ったときにこのエラーは
ポリシー違反している箇所を報告してくれる頼もしい見方になる。
中途半端にうまく動いていくれる代わりに、ShiftJISのファイルの中にUTF-8が混じる
ことがあるのに比べるとPythonの方が安心できる。
>>577 (少なくとも)ActivePerlがファイルを開く際にCreateFileAをうちぎめで使ってるので移植性を考えると避けたい。
ファイル名として与える文字列にUTF-8フラグ立てても変わらない。カスすぎる
ちなみに、PHPはファイル名を文字列と見なしていないので、
自分でファイル名をShifit_JISとかにエンコードする必要がある。
もはやウンコのレベル
>>578 Windows限定で、日本語ファイル名限定かよ。
>>579 RubyはPythonみたいにCreateFileWを使ってくれるん?
>>580 日本語というか、Unicodeファイル名だな。
W系APIを使っている=Windowsでの動作がきちんと考えられていると
判断されても仕方ない。
>>573 >Pythonのソフトはいつもマルチバイトがらみでトラブル起こす。
それは誤解
漏れもpython初心者の頃はなんだこりゃと思っていたが
理由がわかるとちゃんと使えるしよくできてる
windows のコマンドプロンプト はやく UTF-8 に対応してくれないかなぁ
>>583 一応 chcp 65001 したら utf-8 になるけど、問題が多すぎて使い物にならないね。
WriteConsoleW を使って utf-16 を出力できるようにするのが一番いいんだろうけど、
あまりにも標準入出力の概念からずれるから、sys.stdout.write()を置き換えるのは
難しい。結局、 pywin32 の console を使うのが正解だと思う。
>>584 標準入出力にUTF16はよくないのでは。
ASCII互換じゃないし、表現できない
文字があるでしょ。
>>585 WindowsのW系APIが受け取る文字列がUTF-16だから、UTF-16で表現できない
文字列はそもそもWindowsが表示したりファイル名に使ったりできない文字列だよ?
perlは、windowsで使わない!! それでよし!
そーだ。perl以外は、いらん! マルチバイト処理もEncode覚えれば不自由ないし。
>>583 PowerShell標準で付くんだから、必要ないだろ
ISEもあるんだし
使いたいの使えばいいじゃないか じゃ話が終わるので、 負荷を心配しないである程度大きめなものを、急いで作りたいなら、Railsが使えるRuby 負荷を気にしたり、高速に作りたいなら、Perl 「俺Python使い」と、かっこつけたいなら、Python 外注に安く作らせたいなら、PHP
外注に安く作らせるならPHP。 それ以外は全部PythonとC。
>>582 誤解じゃねーよw
俺がいいたいのは問題起こすPython製アプリの話と、それが原因となっている言語の問題。
プログラマの心遣いとかの話じゃない。
逆に、.NETアプリはマルチバイトで問題起こすの見たことない。
UNICODE前提のせいかしらんが・・・(.NETの仕様はあまり知らんので俺に突っ込みされても困るけど)
>>584 あー、そういや、
>>573 でRubyって書いたけど、コマンドプロンプトと文字コードの相性最悪なの忘れてたわw
UTF-8でRSpecとautotest(autospec)でまともにテストもできないwww
俺は出力時にSJISに変換してるw
>>589 PowerShellだと文字コード周り解決するのか?ちょっと入れてみるか
>>592 > プログラマの心遣いとかの話じゃない。
プログラマの心遣いの問題ですね
CでUnicode対応アプリも書ければ、いわゆる「駄目文字」で問題を起こすアプリも書けるのと同じ
ただ、Javaや.NETのようにテキスト=Unicodeと割り切ったほうが
心がけの悪いプログラマでも問題を起こしにくいのは確かで
Pythonも3.xからはそうなりました
Java/C# 内部エンコーディングUTF16で固定。入出力時に外部エンコーディング指定して必ず変換。 Python uを付けた文字列はUTF16固定。付けないと任意?設定だっけ?内部的に混在するので扱い注意。 Perl Cと同じで任意だっけ?wideはなしだっけ? こんなんだっけ?もう面倒だし、Java/C#式の内部固定がぐちゃぐちゃにならなくて一番いい気がするけどどうなん?
>Python > uを付けた文字列はUTF16固定。付けないと任意?設定だっけ?内部的に混在するので扱い注意。 >付けないと任意?設定だっけ? ソースの先頭2行目に # -*- coding: utf-8 -*- などと書くと そのコードでエンコードされたバイト列になる >内部的に混在するので扱い注意 混在っつっても明示的にuが付いてる訳でそこは平気 どっちかというとprintでuの付いている文字列を出力すると 暗黙にデフォルトのエンコードに変換されてコンソールに出力されるが pythonに慣れずに(perlとかと同じ感覚で)ごっちゃにしたバイト列の方をprintすると よくここでエンコードエラー/デコードエラーになる つまり文字列とバイト列の違いは意識する必要がある あとpython3で改善されてるはず
>>595 >あとpython3で改善されてるはず
だからといって 2.4.x - 2.6.x が劣ってる訳じゃないけどね
2.3.x 以下は糞
>>593 もしかして、プログラマ性善説主義者か?お前w
そんなのは言語仕様のレベルで都合のいい方向に傾けておくべきこと。
プログラマーなんて信用しちゃいけないよ。
あのリーナス・トーバルズすら、エンコーディングに無関心なのか git がマルチバイトを考慮しない仕様(バイナリとして扱う)
心遣いの問題とか言いいながら、永遠にマルチバイト対応がクソなC言語製やPythonアプリでも使ってろや
>永遠にマルチバイト対応がクソな kwsk
597は言語がサポートしてないとなにもできない厨。
いや、gitは確かにウンコ。 これはリーナスのおっさんが新しい方式について行けない老害だったから。 hgもウニコードの扱いが糞で、これもプログラマのセンスがなさ過ぎる。 Python3の文字列にバイナリとしてアクセスする方法をよこせなどと言っていた。 一方bzrは同じPythonだが上二つと比べて格段にエンコーディング周りのポリシーが優れてる。
>>594 uがついたのが文字列で、ついてないのはバイト列。
世の中には、どうしてかこれを区別できない連中が多すぎる。
uがついてるのはリテラルのときじゃね? str = u"ahoaho" ってしたらstrがなにかわかんなくね?
正直スクリプトはこの辺がごちゃごちゃしすぎてて全然LLじゃねー Javaのがはるかに楽
>>602 その場合strの値はunicode型で、uをつけなかったときはstr型になる。
型が違うと当然、相互の演算に制約を受ける。
Pythonの型付けは強い方だから、perlやPHPに慣れてる人だと引っかかるのかもしれないね
JavaはcharがUCS2だと割り切っただけだろ。 サロゲートペアで泣きを入れることになっても知らんぞ。
>>606 ユニコード操作するときってサロゲートペアはあんまり気にならないものだよ。
UTF32でも結局のところ合成文字を考えないといけなくてコード単位ごとに処理できない
Pythonは2.6でも from __future__ import unicode_literals したら、 "foo" が unicode になって、代わりにバイト列は b"foo" しないといけないようになるよ。
WindowsでPerlは確かにCreateFileAなのがダメだ。 Win32API::FileのCreateFileWを使えば簡単に呼べるんだが Windows用のコードが増えちゃう。 decodeされてる文字列がそのまま、ファイルテスト演算子やPath::Class, IO::All等で使えるといい。 現状そうなっていないので、B::Hooks等を使って作ろうと考えたが時間がとれん。 PerlIO::fseは今一歩だ。 でも、だれかがやってるれるんじゃなかろうか。 現状はencode("cp932", "...")渡してる。
>>566 1.9ならRuby圧勝だが、1.8ならPython勝利。
pythonのバージョンは?
具体的にRuby 1.9はPython2/3に比べて何がいいの?
全然使ってる人がいなくてかっこいい
後発組だけあって、いいとこ取りが可能
そんな抽象的な発言はいいから、具体的に何がPythonよりも優れているの? Python/Java/.NET の文字列=Unicode方式は十分ベターな解として 受け入れられていると思うんだけど、それよりも良い物なんだよね?
文字列のインスタンス毎にコードセット情報が付いていて、 言語やライブラリはコードセットについて暗黙の前提を一切持ってない。 プログラム本体が基本的に使う文字コードはUTF-8だけど、2ちゃんねるの datファイルを扱うクラスの中だけはShift-JISに、とかそういう設計が普通に できる。 コードセットインディペンデントと言って、一昔前に文字コードに興味のある Unix屋が集まれば必ず、理想の処理方式として話題になった方式なんだが。
結局、標準ライブラリ内に文字エンコーディングに関する情報をばらまかないといけない不便な方式。
perl以外の言語の必要性が分からん!
JavaはBOMをゴミ扱いするのが嫌
javaってLLか?
objectです
primitiveもあるから
Python3 > Ruby1.9 = Python2.6 > Python2.5 > Python2.4 > Ruby1.8 > Python2.3
Curl
625 :
597 :2009/10/15(木) 13:50:49
>>599 「俺が」じゃなくて、海外のアフォどもがなw
求人でRUBYとPHPで検索かけたらPHPの圧勝。
そりゃ求人ページが.phpなだけ。
それだけ需要が有るって事じゃね? RUBYよか。
COBOLみたいな人気だよな。どう見ても
COBOL W
php きらいだが、php + netbeans 便利だな。
632 :
デフォルトの名無しさん :2009/10/17(土) 03:08:14
どの辺が?
↑ リモートデバッグっていうやつ perl cgiでできんのかな
printデバグ + tail -f でそれほど困らないと思うのだが サーバで動くアプリでデバッガって、どうやったって面倒くささが先に立つような
php 大きらいだが、php + netbeans は、わりと面倒ではなかったよ。 しかし、printデバグ + tail -fで十分だな
VisualStudioとかに慣れてて、php仕事に移行して何がつらかったってprintfデバッグだったわw DOS時代から入ったけど、その時すでにIDEだったからprintfデバッグなんて、perlでCGI(笑)作ったときくらいしかやったことなかたからひどかった しかも、phpの挙動不審さが輪をかけてた 今なら、NetBeansでデバッグできるのか・・・ 今度試すか
俺はそもそもあんまりバグ無いからなあ・・・
>>636 そもそもが組み込み向けのLuaやスクワールと比べたらなあ…
>>638 そういう問題じゃないだろ
あろうがなかろうが、やらなきゃならん。普通は。
GUIのあるアプリケーションだとIDEがあった方がいいけど、ウェブならテキストエディタとprintデバッグで十分だろ。
う、うん……(´・ω・`)
デハゲしたいわ
GUIもCUIも関係無いだろ。
ああ、でもJavaScriptの場合、IDEがあった方がいいな。IDEというか、Firebugみたいなツール。サーバサイドの場合、高度な仕組み用意するまでもないからな。
eclipse + EPIC は、使い物になるのか?
あたし学生だけど、仕事現場ってxUnitつかわないの?
>>649 GUIでデバッグができるので重宝してるよ
>>651 千差万別。このスレの話題でも出てたように、コンソールでtail -fしかデバッグ環境が無いものもある。
デバッグの話が出てるけど、 バグ潰しって普通テスト書くもんじゃないの?
初心者だから、普通がわからん!!
テストって言っても、ウェブの場合、結局ブラウザ通さないとダメでしょう。処理が複雑な場合は、セレニウム使ってる。簡単なのは目視。
>>655 意味が分かる前にやめておけw 全然すすめられない。
知ってはいたけどブラウザー依存はかなり多いのね。特にjavascript。
Firefoxだけ解釈が違うものがいくつかあって、対応しなくてもいいことになったが、今後の事を考えると怖い。
テストをすすめない?なぜ?
いや、仕事として薦めないってだけ。 テストはやらなあかん。
友愛とUIを掛けてるのか
つーか、テストってそういう環境依存テストばっかりだからなw LL使うような仕事はw
わかんないんです(><)
そもそもマトモな仕様書がない状態で開発させられるからな。 多分こんな感じで動けば自然な動作だし使いやすいだろうって作って、クライアントに検収出すと、それで通るからな。 そんな実態でユニットテストなんて意味持たない。
ブラウザのUIをテストするのに、 xUnitとかをどう使えばいいのか。
>>664 >わたしは無能で土方作業をしています。
まで読んだ。
666
さくら鯖使ってsend_mailで送信元のアドレスを変えたいんですが
変わりません。
php.iniをこんな感じにしたのですがどうすればいいでしょうか?
[mail function]
; For Win32 only.
SMTP = smtp.xxxx.sakura.ne.jp
; For Win32 only.
sendmail_from =
[email protected]
さくらサーバって、Windowsサーバだったのか。知らんかった。
gtkチュートリアルのサンプルコードを見比べてみて、rubyが一番まともに見えた
よし、そのまま仕事の案件として昇華するんだ
なんとなく phpって嫌いだ 好きにになる方法を教えてくれ
やだ
>>675 ホワイトスペースやブレインファックでCGIを書く
phpの利点を教えてしい
デザインとロジックを近くに配置することで、非常に高いメンテナンス性を得られます
681 :
デフォルトの名無しさん :2009/10/22(木) 23:20:02
何で近いとか遠いがメンテナンス性に関係するん? 疎や密じゃないん?普通
マジレスする殿方って……
JavaScriptの悪口はそこまでだ
どんな超反応だよw
>>678 変数宣言をせずに、好きな型を代入できること。
それはぶっちゃけここでいうLLの全てに当てはまるので、特にPHPの利点じゃない
ガ━━(゚Д゚;)━━ン!知らんかった。 じゃあ何でもいいや。
Pythonは互換性がごにゃごにゃになったのでもう使う気がしないんだが。 いまさらPerlってのもなあ・・Rubyとかいや論外かな。 JavaScriptはいいよね、でもサーバサイドがなあ。 大体今こんな感じに思う。ろくな選択肢がないね。
>>685-686 いや、もうちょっと微妙な話をするなら、確かにPHPが一番お手軽とは言えるかもよ。
次点がRuby・Python、ちょっと下がってJavaScript、ずっと下がってお情けでPerlと
言って言えなくもない > 変数宣言と代入のお手軽さ
ただそれに伴う副作用の話とかすると順位とか単純につけられるもんじゃないって
ことなんだろうが。・・・詳細は俺に聞くなよ?
Pythonの互換性云々を言うヤツがJavaScriptはいいよね、って正直信じられん。
PerlもPythonもRubyも変革の途上だから互換性で言えばどれも微妙な感じ
じゃあ速度を取って Perl で。 とか言えないよなぁ。
速度優先ならPythonだろ
確かにPerlは速度で言えば速いと思う… だが、やっぱ今となってはやや使いにくい Perl6で一旦整理するんかねえ
新参優先がPythonで古参優先がPerl Perlを始めるなら早いほうが良い Pythonは乗り遅れても古い仕様はすっきり切り捨てられているはずなので問題ない
>>695 Perlの場合乗り遅れると逆に新しい方の仕組みについて行けなくなるよ。
697 :
デフォルトの名無しさん :2009/10/23(金) 14:41:22
Perl5 までは、それ以前の文法や意味を尊重して発展してきた Perl6 は Perl5 までの文法や意味を殆ど亡き者にしている Perl6 が完成しても Perl5 は、別言語として発展していって欲しい
Perl5を簡単に消せるならPythonがこんなに苦戦するわけがない
Python がアホほど速ければっ!
Perlはautomakeやら、spamassassinやらで使われてる。 Pythonはgnomeで使われてる。 Rubyも意外な場所で使われてる。 進む方向を決めて好きなのを選べばいい。
PerlはPlack/PSGIとかAnyEvent, Coro辺りが ワクワクすると思うんだがどうよ。
phpは?
Perl6使うくらいなら、Rubyいくわ
php5とphp6の相当の違いはびびった。 別言語並みの改変じゃねーか('A`)
PHPにはよくあること
>>701 イベント駆動型も含めて、コンポーネント化・スレッド(コルーチン)・分散処理って
Javaを別角度から追いかけてるようにも見える。
Perl/PSGI,Python/WSGI,Ruby/Rack
このあたりはPythonが一番進んでるんじゃないか。
>>706 >イベント駆動型も含めて、コンポーネント化・スレッド(コルーチン)・分散処理って
>Javaを別角度から追いかけてるようにも見える。
んー、JavaじゃなくてPythonじゃないかな。スレッドはJavaだけど、コルーチンはPythonのgenerator相当だし。
あとスレッドとコルーチンは別物だと主張したい。
>Perl/PSGI,Python/WSGI,Ruby/Rack
>このあたりはPythonが一番進んでるんじゃないか。
だね。もとはPythonのWSGIがあって、それをRubyがパクッて、さらにそれをPerlがパクった。
>>707 あれ、Pythonのgeneratorは互いにyeild出来たっけ?
PythonのgeneratorはPerlのCoro::Generator相当だと思うが。
>>650 Railsアプリで、Rubyのコマンドラインデバッガ使って、Railsのソース追ってた時はマジ発狂しかけたww
Rubyの動的な言語の仕様とRailsの黒魔術的ソース構造と、コマンドラインでのデバッグの組み合わせは、
一人のデバッガーを容易にかつ精神的にも死に追いやることを理解した
>>708 >あれ、Pythonのgeneratorは互いにyeild出来たっけ?
すまん、呼び出し側に戻ることしかできない
>PythonのgeneratorはPerlのCoro::Generator相当だと思うが。
そうかも
>>700 spamassassinをPythonで書き換え中
VBSじゃダメなん?
適材適所
pythonやperlと比べたときのrubyのドキュメントの少なさときたら
IronPhthon2.0はexe作れなくなったのですか?
RubyはAPIが見れない人にはキツい
APIを見るって何だよw
何だよと言われましても
ソースの中を見れってこと?API見るって、普通、そういう使い方しないのでは。
うむ
あぴぃぃ
俺も普通そういう使い方しないと思う。 「API出せ」とか言ってるのと同じくらい意味不明。
Pythonが成功したのはPerlよりC言語に文法が似ているから。
似ているか? オフサイドルールとか def なんちゃらとか、全然違う様な気がするけど
それはあくまで見た目上の話 本質的な文法はCとかなり似てる
本質的な文法とは例えば? 変数の前に$がいらないとかw?
本質的な文法とは何ですか? レキシカルアナライザとパーサの用語で説明してください。
Javaが成功したのもC言語に文法を似せたから。Pythonがもし インデントをやめ、Java/C#/ECMAScriptと同様の文法を採用 していたら、世界制覇できてた。
たらればをいくら言っても意味ないし
:
self なんかも C++ の this とはかなり違う
でも
>>725 の言いたいことはなんとなく分かる
C との類似度でいえば
C - Python - Ruby - Perl
php は似て非なるもの外見とは裏腹の全く別物
PerlがCに似てるとか無いわー
PerlがCに似てるなんて誰も言っとらんが
外見が似てればいいんだよ。実際PHPのシェアはPythonより大きいだろ
似てる人はどこが似てると思うのかを言ってほすい。
そんなこと言ったら、全部BASIC系だよな。これ。
こういうときはALGOL系というのではなかったか?
>>739 お前はAlgol系列とBASCI系の区別もつかんのか
>>739 ブロック化、再帰呼び出しのサポートからすればAlgol系だけど、
sh,bash,cshの違いはどこだみたいな話になっとるの。
>実際PHPのシェアはPythonより大きいだろ Linuxの鯖だとPythonは嫌でも入っているがPHPは選択しないと入らない気がするが。
JavaはC++じゃなくてVBに似てると思うんだが 漏れだけ?
予約語類はC系に準拠しているし、 言語仕様もおおむねC++を弱めたり改良したものだと解釈できるから C++に似ていると評されるのは妥当だと思う 近年のVBは話が逆で、むしろJavaから影響を受けてるっぽい
イディオムが貧弱で 無駄にソースが長くなる点では 似ていると思う
つまりPerl最高ですね。 わかります。
PHPはJavaScriptがPerlを喰って突然変異を起こした上にC++まで飲み込もうとしてる雰囲気w
JavaもPHPも、書き方が愚直に見える。 だから、Perlが好き。
PHPはあらゆる言語の悪いとこどりをしているのではないかと感じる。
PHPは月100円のレンタルサーバでも動くとか、ファイル1枚にまとめる事が出来るとか、何かしらエラーメッセージがブラウザに出るとか、いろいろとメリットはある。
PHP Java VB saiko
>750 >何かしらエラーメッセージがブラウザに出るとか python も先頭に import cgitb; cgitb.enable() 書いておくといい
>>750 一番目以外はどの言語でも同じだと思うが
他の言語だと、テンプレートファイルを用意したり、エラー処理の為の記述が必要になる。
抽象木レベルでは、構造化以後の言語はみな同じだろ。 Forth以外。
文法解釈では確かにForthは変わってるよな
757 :
デフォルトの名無しさん :2009/10/27(火) 12:16:34
でも、VMのレベルでなら FORTH と Java は同じ
>>724 「API出せ」はよくいうぞ。webサービスでAPIないサービスにあったら、必ず言うことにしてる
>>753 1番目は相当でかいだろ
まあ、もちろん用途にもよるけど。
Ruby≒Railsは最悪な点。100円/月でpassengerインスコ済みは見たことない
フレームワークで言われちゃうと CakePHPやCatalystやDjangoはどう?と聞きたくなるけど。
>>759 どうでもいいが今のCatalystはMoose使ってるから、
CGI環境では使いものにはならんな。
もしCGI環境でCatalystと似たようなフレームワーク使いたかったら、
発展途上だけどkayacのArkを使うのが良いと思うな。
まあ簡単なアプリならPSGIアプリケーションにしとくのが吉ってとこか。
CGIでフレームワーク使う理由って何?
>>761 システムよりもコンテンツに注力できる。
意味がわからん そのCGIってのはFastCGIとかを前提としてるの?
糞なフレームワークに振り回されるのと、俺流でがんばるのには微妙な駆け引きがある。
>>764 俺流で糞なフレームワークもどきのものを作ると良い床鳥で馬
一回フレームワーク使うと、いちからCGIで構築とかやっとれん
フレームワークもCGIでは
同列に並べるもんではないよな
C使ったらアセンブラには戻れんって言ってるようなもんか
とかいいつつ、試しに聞くんだが、 PHPやPerlやRubyでwebサービス動かす仕組み全般のことなんていうの? 一昔前なら、イコールCGIといってもよかったが、CGIて今はもう個人くらいしか使わないしな。 「LAMP」は環境と仕組み全部入りだから何か違うし、Google app engineとかも入らないし。
フレームワークとは言わないな〜 Ruby on Rails のRailsがフレームワークであって、Rubyの総称では無いし。 スクリプト言語じゃないの?perl、PHP、rubyと言えば分かってもらえるだろうし。
Webアプリケーション ゲートウェイ インタフェース とか言ったらそれっぽいかな。
web2.0 ajax
WSGI だな
777
また python 厨の荒らしですか
>>772 が言ってるのは、WebサーバーとWebアプリを繋ぐ手段でしょ?
CGI は Common Gateway Interface だったんだから、 Gateway Interface が
一般用語だと思うよ。
>>779 Gateway Interfaceかなるほど。
ただ、いや、なんというか、昔あったCGI≒Perlみたいなのをイメージしてるの。
スクリプト言語環境+上で言うGateway Interfaceというか。
webアプリっていうと、アプリ環境全体をさすけどそうじゃなくて、スクリプト側のこと
CGIもスクリプトそのものを指す言葉じゃないけどな
CGIはSSIに対して付けられた名前のような希ガス
perlで書かれたプログラムでの他人のバグを探すとか、想像すると嫌すぎ ライブラリとの直交性と可読性、ドキュメントの量、ユーザ数から、 OSS界隈は今後ともどもpythonが勝利 言語の機能や速度がどーこーよりか、平均以上のプログラマの貢献が重要 そして、rubyが勝てない理由
煽りじゃないよ 隠さず言うよ rubyがんがれ
クラスが使えない言語は滅ぶべき
bless {}, __PACKAGE__;
クラスが使えないのもアレだが ActionScript3のように、1ファイルに1クラスしか定義できないっつうか ファイル名に依存するっつうか
>>787 別ファイルにしてインポートすればよかったような
1ファイルに1クラスしかつかえない言語?wwワロタそんなのあるのかw
Java様がお怒りの様子です
791 :
デフォルトの名無しさん :2009/11/03(火) 22:47:55
Javaは複数クラス書けるぜ?
書けるっちゃ書けるが、ファイル名と同一のクラスが存在することが好ましいとされてるな
好ましい/好ましくないの話じゃなくて
出来る/出来ないの話をしているんですが?
と
>>787 様がおっしゃっています
AS3は1ファイルに複数クラス(Internal Class)定義できるぞえ
AS3がダメなのはむしろこういうところ ・privateなコンストラクタが作れない ・オーバーロードができない ・ジェネリクスがない 全部ECMAの影響だと思うが、4(草案)がポシャったんだから、 もう独自路線を突っ走って欲しい 言語仕様自体は、PHPよりだいぶマシな作りだと思う
>>795 そんなの、別にダメじゃねーだろ。
たぶんC++の影響を受けすぎ。
オーバーロードもできない静的型付け言語なんて・・・
Haxe使っとけ。
rubyって島根の奴が1人でシコシコ作ってると思うと 本当にスタンダードになるの?とか思っちゃうよなぁ。
Linuxだってもともとはフィンランドのヲタクが・・・
厳密には今のRubyも1人で作ってるわけじゃないしなあ
Rubyスレで必死な奴を引き取ってくださいw
フィンランドのオタクって、OO嫌いなんだっけ? C++プログラマをこき下ろした記事はみたことあるけども、 スクリプト言語に関して、なにかしら記事かいてるの見たことないな
>フィンランドのオタクって、OO嫌いなんだっけ? >C++プログラマをこき下ろした記事はみたことあるけども こういう理解になるのが空恐ろしい
C++はOOPL好きでも酷評したくなる言語だと思うぜ
それじゃ、どう解釈したらいいんだ プロジェクト全体がゲロゲロのウンコになるって書いてたぞ
C++って作者自身が否定していた言語だったと思うが
C++は書かないといけないコードの量を増やしてプログラマが職を失わないように配慮したすばらしい言語なんですと言っていた
>>808 ,809
それは誰かが書いたネタであって、作者自体は否定しているはずだぞ
C++から見たらJavaはOO的に優れているというよりかはGCを評価しているフシがあるからな。
C++: ゲロまみれのウンコ Java: 綺麗なウンコ
813 :
デフォルトの名無しさん :2009/11/04(水) 22:25:26
汚物は消毒だな
Javaが綺麗とか冗談www
C++より綺麗だよ。
どっちも糞だけどな
どんな言語でもPHPよりましだと思ったでござるの巻き
そもそも純粋にOOな言語がいいならJAVAとか使えばいいわけで C++使うのは他のパラダイムで書きたかったり速度が必要だったりする場合だな
いちばん書くコードが少なくて済むのはどれ?
python
確かに書かないが
見た目が綺麗になるのはpythonだろうな
>>820 言語レベルではRuby
モジュール使っていいならCPANがあるからPerl
phpは基礎(言語設計)が腐ってるからどうしようもない。
またこの話か PHPはその目的に特化されている たまたまその上に乗っかってるものがちょっぴりギガ盛りでちょっと溢れてちょっと漏れてるだけだ
wiresharkなりgimpなりOOoなりで遊びたい。 windowsや*nixの間を行ったり来たりしたい。とか考えたら、とにかくpythonの一択
Javaの、あの長ったらしい文はキモイ
phpってファミコンに拡張音源とかチップのせてまでいろいろやってる感じ。 もうライフゼロだから
馬鹿め
アホのいい見本だな
PHPって文法はアレだけど実装の性能はそこそこいいよ そうでなかったら大規模なサイトで実績挙げてないから
低スキルでも開発できてそこそこ速く動くのが良い
ロジックに捉われず、流れで書けるところが良い。 今は可読性重視だよねー
>> 83 大規模なサイトでは、PHPはテンプレートとしてしか使ってない場合が多い。 ロジックは他の言語で実装されてる。
WikipediaもPHPだけど部分的にはC++で書かれてるね。 PHPで書いてしまった拡張機能がいっぱいあるせいでPHPを捨てられないでいるだけなんだけどね。
捨てる事ができたら結局C++って事か?
>>840 それはどうだろうね。
C++がネイティブ言語のうちC++と相互運用しやすいという理由で選んだわけだろうけど、
もしかするとPHPを捨てたら今度はC++を捨てたくても捨てられない状態になってるかもしれない。
まぁ速度と効率でいくとC++辺りで落ち着くだろうねぇ
PHPが好まれるのは、mod_phpの取り扱いが簡単なのに処理が速いからだと思うよ。しかも安い。 JavaとかPerlとかは面倒だからね。知識が要求されるし。Windowsだとお金がかかるし。
DBと連想配列の相性の良さは異常。
そう、言語自体のよさではなくて、mod_phpのお手軽さでウケてるんだよね。
環境が安くて、敷居が低いってことだよな なんか聞いたことあるフレーズだと思ったら、VBか・・・ 一時期のDelphiもだ
いまだと ruby なんかも
RubyはUNIX色が比較的強いから、Perl寄りじゃないかねえ。
>>848 そういうイメージをRubyに持ってる人多いけど、実際は全然お手軽じゃないよ。
RORでまともなサービス立ち上げるとなると、
スレッド起動できないmongrelをポート単位でいくつも起動して運用しなきゃいけなかったりで
敷居が低いとは言い難い。
開発はしやすくて良いんだが、デプロイのことまで考えると悩ましい。
同じことさせるのでも、他言語(他フレームワーク)より重いから結局台数増やさなきゃいけなかったり。
それはRoRの問題であってRubyの問題じゃねえし
Rails周辺のことでなければ
>>848 は一体何を指して敷居が低いといったのか
mod_phpだとかの話の流れだしな
Passengerなら敷居が低いと言えるのでは?Windowsで動かんらしいけど。
言ってみたかっただけっていうことなら、 俺も 「それはRoRの問題であってRubyの問題じゃない」 とか言ってみたい
言えばいいじゃない
lol
perl2rubyとか機械的なものでもそういうのがあれば便利なんだけどな 人任せだがどこかにないもんか
vmでいいじゃん。ソースコードレベルで変換する意味がわからない
861 :
デフォルトの名無しさん :2009/11/16(月) 16:52:22
質問: PHP で、クラスの中からメンバ変数 x を参照するときは、 $this->x のようにします。 でもいちいち $this->… と書くとくどいし、 見通しが悪いコードになる。 これを回避する方法はありますか?
「Python信者とRuby信者による戦争で200レスぐらい埋まるのを見たいです」 としか読めなかったw
PHPはダメだな。やっぱPythonこそが至高
Pythonが一番いいって言ってる人って、仕事で使ってるの? 使ってるなら、自分が作ったサイトとか晒してみてくれるとうれしい。 なんか見たことないんだが・・・
Python仕事で使っているしサイトでも取りあげているけど、ここで晒す気はないなぁ。
> なんか見たことないんだが・・・ 何使ってるかって見て分かるもんなの? CGI、PHP、JSP、ASP.NETみたいにURLに拡張子がつく系は俺でも見て分かるが 他はよう分からんわ
>>866 いや、そういう意味じゃなくて
「この会社はPython使ってる」だとか、「このサイトはPythonで作られた」とか
そういう話を聞いたことないし、今まで関わったエンジニアにPython使いがいないっていう意味。
それはそうと、cgiと拡張子が付いてたら言語が分かる貴方はエスパーだと思う。
>この会社はPython使ってる だったらGoogleで十分だろ。
>>867 ああ、cgiって拡張子だとわからんねw
>>868 何が十分なのか分からないんだが。実績の話じゃないし。
このスレでPythonが一番と言ってる奴はgoogle社員なのか?
>>870 2chで自分の社名出したいヤツいないから、「俺の会社でPythonで○○作ってる」は言い難いだろうな。
Google App Engine でできてるWebアプリたくさんあるし、Webアプリ以外でOSSはたくさんあるし。
この前のPython Hack-a-thon では90人弱のPythonistaが集まったから、
そこに行けばいくつも社名聞けただろうけど。
>何が十分なのか分からないんだが。実績の話じゃないし。 実績の話じゃないなら、何を知りたいんだ? Pythonで構築されたサイトならググレカスで終わるが。
Rubyは「これはRubyで作られてます!」となぜか宣伝してたりするのが目につくけど Perl,PHP,Pythonはそれほど自己主張はしてない感があるな。
PHPで作ったら極力それを隠すしな
>>873 マカーがmacを自慢するようなモンじゃね?
>>873 語弊があるが、Rubistはよくも悪くも自己主張したい人が多いみたいね
PHPは拡張子でわかるし、CGIといえばPerlの時代が長かったからかPerlも明示してないのが多い
Pythonは…なんでだろうw
やればいいじゃん
いや、ここ君の日記帳じゃないんで 情報が埋もれるだけだからマジ勘弁して
>>876 つmod_rewrite
PHPerが一番使ってるし妙に詳しいってのは公然の秘密
PHP以外は、ぶっちゃけPATHINFOでも全然おkってメンタリティが多い、様な気がする
拡張子なんて関係ないだろ・・・ 拡張子phpで、中身は他言語なんてApacheの設定一行じゃねーか
何その保守管理泣かせ
要素が見える事が怖いんだけど・・・
エレメントが見えることがどうしたんだ?
私はCGIの拡張子は付けずにapacheのconfにforcetypeでCGIの動作をするよう書いてる
小、中規模のWebアプリをいくつか作らなければならないが、 同僚がどうしてもPerlが良いという。 Perl - 枯れてて信頼性がある Java - 信頼性がない Python - 知らん Ruby - 論外 PHP - Perlの子分だから、まぁ許せる という事だそうなのだが、どうも今更PerlでWebは俺は抵抗を感じる。 上記の理由にも非常に違和感を感じるが、どう理論立てて反論していいか解らん・・・。 漠然と、Perlは書き捨てのスクリプトなら書きやすいとは思うが、 それ以外に向いてると思えない。 Perl以外を推めるのに、どう説得すれば良いと思います?
PerlにあってJavaにない信頼性って何ものなんだろう。 ウェブアプリを作るにあたって、Catalystなりのフレームワークを使うなら別にいいのでは。 オレオレフレームワークや素のCGIで作る気なら、その後の保守に困るだろうね。 その同僚がずっと面倒みるならいいけど。
889 :
887 :2009/11/18(水) 00:45:29
そうなんです、それ(信頼性)が説明できなくて・・・。 Catalystも、例えばRailsと比較して、書かなくてもいいことを書かせてる、 と思えてしまい、あまり好きではないです(これは完全に自分の好みですが)。 もっとも、Catalystを使う事すら視野に入れてないようでしたが。
同僚は根拠出してきてないんでしょ 議論にならんじゃん
PHPはCの子分ではあってもPerlの子分ではありません。 どっちかと言うとRubyのほうがPerlの子分と言えるでしょう
結局まともな言語が一つもないって事でおk? 今ここで挙げられた欠点を補うようなそれなりの言語作れば決定打になるんじゃね。
Luaこそ至高。Lua以外のLLは勉強しなくて良い
>>891 部分的に文法は似てるとはいえCとは全く異質のものじゃない?
Perlのモジュールだったから子分って表現したんだろうと思うけど。
まー、その中ならPHPかなー。 入社1年目の人にみっちり教えたら書けるようになったし。
意味不明。
>>890 それはどっちとものようだが。w
一方はぜひPerlと主張し、他方はなんか
違和感があるからと言い訳を探す。
この争いだったら、ぜひと言ってるほうが
勝つべき。
898 :
デフォルトの名無しさん :2009/11/18(水) 19:30:44
yum が python製である件について
>>887 まず、そこに挙げられている言語なら、どれも十分枯れている。
どの言語でも、枯れたバージョンと枯れてないバージョンがあり、枯れたバージョンを使うならどれも同じぐらい枯れている。
もちろん枯れてないバージョンを使えばバグにぶつかる可能性が高いのも、どの言語でも同じ。
たとえばPythonは2.5系と2.6系はどちらも枯れている。3.xは枯れてない。
PHPは(私見だが)5.2.11は十分枯れている。5.3はまだ枯れてない。
Rubyは、1.8.6はすごく枯れている。1.8.7も十分。1.9はまだ。
JavaはJava5とJava6は十分枯れている。Javaが枯れてないというなら、その根拠を示すよう、その同僚とやらに聞いてみろ。
大事なのは枯れているバージョンを使うことであって、言語じゃない。
あと、枯れ具合を気にするべきは言語じゃないくて、フレームワークやライブラリのほう。
かりに「枯れているから」という理由でPerlを選んだとしても、Moose使ったら意味がない。
また言語のバグよりもフレームワークのバグの方がずっと多いので、フレームワークの枯れ具合を気にしてないのに言語の枯れ具合を気にするのは、はっきりいってバカ。
まとめ:
・枯れているバージョンを使えば、どの言語でも十分枯れているし信頼性はある。
・気にすべきはフレームワークの枯れ具合であって、言語のではない。
・・・とりあえず、これで言語を選ぶ理由として「枯れ具合」を持ち出すのは止めさせられるだろう。
>>894 それ言うとPHPer(笑)がファビョるよね。
RubyやPythonが問題外なのは当然であり格下のPerlがルーツなのは
自尊心が傷つくらしい。
>>887 Ruby論外っていうPerl使いは、大抵、Rubyを使ったことない奴。ちゃんと調べたこともない。
簡単。お子様仕様。お遊び。とか勝手にイメージ持ってたりしてる。
Rubyが流行った理由がRailsだから、簡単というのは合ってはいるんだが、
Perl使いも結局、RailsインスパイアなCatalyst使うわけで。
902 :
887 :2009/11/18(水) 22:04:20
様々な意見、ありがとうございます。とても参考になります。 違和感がある、と言ったのは、特にJavaが信頼性がなくて、 Perlが信頼性があるとの意見です。 Javaは基幹系に使われてるのは見聞きますが、Perlで、というのは聞いたことがないですし。 PerlはMoose使わないとまともにClassっぽいものも書けないし。 枯れを気にするよりも、自分のプログラム技術の方を心配しろとも思ってます。 Perlは単純に今の時代のWeb作成には、多言語に比べ劣っている、 というのが、私のPerlを回避したい理由です。 実は同僚と言っても、かなり年上で反論し難いので自分の意見が言えなかったことも ありますが、明日、意見交換会を行うので、勇気出したいと思います。 PHPは学びやすい言語で、私もそれなりに好きなんですけども、 ところどころ、致命的に好きになれない部分もあるので、 Ruby、Javaを押したいと思っています。 Pythonも個人的には気になりますが、名前が(うちでは)あまりにも知られていないので・・・。 Rubyをなぜかすごい嫌ってるんですよね・・・。なんでだろ・・・。
>>902 いや、まあ、ここだけでもつっこんでみるけど
> Rubyをなぜかすごい嫌ってるんですよね・・・。なんでだろ・・・。
自分のレスを3回くらい読み直して、嫌らしいところが全くないって断言できるんなら、あんたには
それは一生わからんだろうと。
Perl使いでRubyを嫌ってる人間のほとんどは、言語そのものを嫌ってるわけじゃなかろうと思う。
> PerlはMoose使わないとまともにClassっぽいものも書けないし。
「まともにClassっぽいものを書けな」きゃそれでだめってのも能力の幅的にどうかという見方も
あるっちゃあるだろうしなあ、とも思った。
LLには信仰心の問題もあるからな でもJavaをweb用途に使うことの善し悪しは別として、 信頼性がないとかいいきっちゃう人の言うことには耳を貸したくないね。 金が掛かるとかならまあわからんでもないけどw
rubyは僕みたいな糞でも使える神言語
俺も糞だけどPythonのほうが使いやすかったな
>>898 それがどうかしましたか?
>>902 あなたの意見を総合的にまとめると
Ruby より Python を使った方が良いと思う
908 :
887 :2009/11/18(水) 22:40:38
同僚がRubyをすごい嫌ってることと、自分が嫌らしい人間だということの 関連性が解りませんが、Perlは自分もリアルタイムで使ってますので、 嫌いではありません。 それでも、Catalystを使うのと、Railsを使うのではRailsを使う方が、 コードの書きやすや、見やすさから良いと思いました。 Classっぽいものを書けない、というのは一例です。 ここがダメ、あそこがダメ、と書いても冗長かと思いましたので。 当然、Ruby含め、他の言語も一長一短で、Perlの事だけ悪く言ったと思われたなら、 申し訳ないです、すみません。
>>908 いやらしいとかはどうでもいいけど、Rubyを推すとして1.8なの?1.9?
ぶっちゃけその辺には興味がある
910 :
887 :2009/11/18(水) 22:47:36
Railsだもんね その辺が微妙なんだわな。スレタイ的に喧嘩腰に行くとw
>>908 その上司は Ruby を嫌ってるんじゃなくて
お前を嫌ってるんじゃないのか? w
913 :
887 :2009/11/18(水) 22:54:22
>>912 それはあ・・・、いや、実はもう一人Java派の同僚と
その人が揉めてまして・・・。
その時自分は日和って、「自分は何でもいいです」というコウモリ君になりました。
Java厨はすっこんでろ。スレ違い
質問を勝手に自分の理解できる範囲の問題に解釈し直すのはいくない
>>913 同僚A=Perl派-(もめてる)-Java派=同僚B
質問者=観戦者=Ruby派
ってところか
参戦するつもりが無いならRubyはあきらめろw
もうJavaでいいな。Perlの人はその会社では辛そうか 会社ってのは人が作るもんで、むしろJavaとPerlのエキスパートという ニッチで頑張ってもらいたいもんだができるかな
所詮、雇い主との相性
JRubyで丸く収まるんじゃね?
なんという落としどころw Perl野郎全敗なだけじゃないか。納得しそうで怖いわw
PHPは豚肉や牛肉まで入ったちゃんこ鍋という感じw
スリッパも入ってる病み鍋だろ
闇鍋にスリッパというのは、年齢を感じてしまう
結論:perl5でpythonばりに綺麗に書けばいいんじゃないかな。
$hoge->{moge} この時点で拒否反応が出る人がいるからむりっぽ
hoge.moge のタイプ量の3倍はあるからな
Shiftキー入れても2倍にしかならなくね?
そうやって打ってそれを変換するスクリプトをperlで作れば良いじゃない
質問どうぞ
>>926 これってなんていう言語?見たことない。PHP?
Perl、PHP、Python、Rubyとメジャーなのは一通り触ってきたはずなんだけど・・・。
( ´д)ヒソ(´д`)ヒソ(д` )
( ´д)ヒソ(´д`)ヒソ(д` )( ´д)ヒソ(´д`)ヒソ(д` )
Perl
$hoge = { moge => 1 }; print $hoge->{moge};
Love Wicket 2008/10/21 11:40 Railsのブームが終わってしまったので、必死こいてユーザーを引きとめようとしているように思えますね。 Railsがすごいという事で使ってみたが、生産性が良いなんて全く感じなかったです。 scaffoldで簡単な雛形を作る所まではいいが、それ以降は生産性があるとは思えないですね。周りからもよく聞きますし。 まともなIDEもないからひたすらしこしこコーディングをしないといけないし... 結局、新しい物好きのお宅が、自身が先端を行っているという事を主張するための道具になっているのと、Railsで儲けようと企てた連中に乗せられていたんだと思う。 やはりPythonとPHPとJavaでしょう。
ブームに乗って押し掛けてきた連中に迷惑してたってのを知らんのかね。
「私はわかりやすいRubyアンチです」という自己紹介だろw
phpだって変数に変なの付くんでしょ?
rubyもへんなのあるよ @とか$とか#とか
:が付くリテラルとかあるよね
IDEからはいったプログラマw
>>943 DOS時代からIDEばかりだよ俺はw
PerlでCGI(笑)やってたときは、エディタしかなくて気が狂いそうだった
ああ、エディタつっても、Vimとかemacsじゃなかったんだんだよな、当時。今から思うとソーセージ使って置けばよかったわ・・・
スレタイに入ってるLL系の言語使うときに、 IDE使ってる人ってどれくらいいる?
PHPはEclipseのプラグインが良くできてる あとのはテキストエディタでもそんなに変わらんイメージ まあ書くソース量の問題なんだろうけど
DOS時代のIDEってTurbo Pascalか?
>>946 RubyとかRailsでコード書くのに、NetBeans使ってる
>>948 Quick Basicの後に、Turbo C使ってた
昔のBASICも、一応IDEしてたよなそういや
TurboCの統合環境はCOM実行形式がギリギリ書けるぐらいだったな。 メモリが足らなさ過ぎた。つーかmakeが走らなかった気がする。
それは既にCでは無い気がw
tinyモデルかな セグメントモデルが4つもある時点でCじゃないな
A ドライブに TurboC を入れて B ドライブに ATOK の辞書ファイルを入れていた。
ATOK使いにくいからWXIIとか使ってたわ
>>955 EMSメモリとかにATOKの辞書を乗っけたとき感動した
4MBってすげぇとか
958 :
デフォルトの名無しさん :2009/11/25(水) 19:56:47
で、結局結論として、LL最低は何なのよ。
perl
低レベルさに定評のあるLua
Google で使われている Python ハッカー御用達の Perl 現在主流の PHP となると、消去法で Ruby なのか
Matzと愉快な仲間たちに仲間入りしたければ。
Rubyは仕事で名前を聞いたことがない。 誰か大規模案件でもっと喧伝してくれよ。
965 :
デフォルトの名無しさん :2009/11/26(木) 12:46:11
最低のLLならば Perl に決定だな。 どうしても設計の古さは否めないし。 Perl6 は、別言語だし。 次に良くないのは、 PHP だね。 とりあえず動く物を作った的な設計の悪い所は、徹底して悪いし、しかもコアの部分だから変え辛いけど、 良い設計を取り入れての進化が結構早くて挽回してきてるように思う。 他はどっこいどっこいだな。 Python は、堅苦しい感じもあるけど、それは、意図してそうしてて、それが良さなんだし。
966 :
デフォルトの名無しさん :2009/11/26(木) 12:55:14
Perl6 は、別言語というか、まだ正式伴じゃないか
何に重点を置くかでどれが最低が変わるね
Rubyは重いのが最大の欠点か
重い時点で終了じゃね?
Rubyはメモリーもよく食うよね
その辺はほら、プログラミングの楽しさでカバーですよw
972 :
デフォルトの名無しさん :2009/11/26(木) 16:52:40
言語を利用する技術者の平均レベルで考えたら、PHPは最低だろうな。主に職業グラマ PerlもPythonも海外での知名度は高い。と、人が増える分だけ平均レベルも下がる。 世界的に見たときRubyなんてのはマイナー言語だとすると、 それを見つけて使い出した国外の技術者たちのレベルは高くなる。 技術者の平均レベルで考えたらRubyが最高になるか?オタク度ともとれるが
まあいまや趣味ウェブ製作者にも「タグ」として紹介されてたりするからねえ
つまり、HTML すらまともにわからない奴等のための言語、ってことか。
それはそれで大きな武器の一つだな。 その尻拭い的な仕事が回ってくる人には気の毒だが。
978 :
デフォルトの名無しさん :2009/11/27(金) 09:50:28
Ruby は、処理が重い位しか欠点が無いか。 処理が重いというのは、言語としての本質とは関係無いな。
>>978 Pythonと比べると、実績が少ない、ライブラリが少ない、動く環境(OSという意味でなく
GAEやOpenOffice、ゲーム等に組み込まれていてユーザーが利用できるという意味)
が少ない、Linuxでプリインストールされていない、仕様の安定性に疑問をもたれている、
Windowsではどれをインストールしたらいいのか判らない、etc, etc...
言語の本質じゃないとはいえ、環境面ではかなり出遅れてるから、Pythonよりも
生産性が高いと言い張れないようじゃPythonを押しのけての普及は無理なんじゃね?
Ruby はフレームワークが Rails 一択しかないのも最悪。 好きじゃないから。Merb が Rails に統合されてがっかり。
よくRubyの参考書籍がPythonより多いっていうのを利点に挙げる人がいるけど 大き目の本屋に行けば確かにある んでもよく見るとRailsブームに乗ったような糞本が多い 間違えないでほしいのは、全てのRuby本は糞っていってるわけじゃない。 まともな本の冊数は、結局Pythonと変わらないのではないか、という事。
RubyはBTSみたいな社内で動かすアプリはあるけど、 不特定多数に提供するWikiやblog、ECみたいな 実用アプリがほとんどないこと。 あと、無料サーバで動かすには重くて制限が厳しいこと。 Rubyは「理想的」だが「現実的」ではないと感じる。 Rubyユーザもピュアな学生みたいな夢見る子が多すぎる。
983 :
デフォルトの名無しさん :2009/11/27(金) 10:33:28
>>979 確かに環境で比較すると、Ruby が最低なのは、否めないな。
PHP は、 Web アプリ開発の分野ならば、最も良い環境ではないだろうか。
他の分野も含めてという事なら、歴史が長い分、 Perl が有利な筈だ。
しかし、今は、Python が、かなり追い上げている状態なのだろうか。
boost に Python との連携をするためと思われるモジュールがあった。
そう言えば、RPGツクールがRubyを使っているようで、驚いた覚えがある。
言語が恋愛なら、Rubyはギャルゲーみたいなもんだな。
Ruby は CGI でもまともに動く、 もしくは Rails がまともに使える無料環境があれば化けると思うけど、 ない限りは、いくら言語が美しくても駄目だと思う。
>>983 最後の一行で気を抜くな
ちゃんと空白入れろ
xreaでは動くよ そもそも、rubyでスクリプト組んでCGIで使おうなんて考える奴は、無料環境で何とかしようなんて思わないのではないか。
そして次スレという奴を立ててくる
O2
バージョン管理にHgってかい。
>>987 Ruby使うためだけにさくらの月500円レンタルサーバ借りた
Railsは動作上無理だが、サイト(上で利用するデータ生成)のプログラムをRubyメインにできるという点でまあ満足
でもrubyインタプリタの起動を厭ってSSIとシェルスクリプトを併用しまくってるのが我ながらなんとも
いやだってレンタルサーバでHTML返すためだけにruby(しかもrubygemsつき)を起動するなんてなんか間違ってるじゃん?
Ruby は 5年前も現在も 5年後もプログラマの手元でのみ使い倒されるベター Perl Web アプリケーションがないと負けだというのなら、生まれた時点でたぶん Ruby は負けてる sed や awk で作られたプログラムって何があるんですか、みたいなもんだと思う 狙ったのかどうかはわからんが、うまい位置につけたなと そういう意味で、わざわざ Ruby で Rails やってる人は負け組
そうそう、使い捨てじゃないプログラムをRubyで書くとかありえん
>sed や awk で作られたプログラムって何があるんですか、みたいなもんだと思う >狙ったのかどうかはわからんが、うまい位置につけたなと 漏れはそういうケースはRubyよりもPythonを選んでしまうが・・・。 と言うか少しでも他人が読んだり再利用する可能性がある場合はPythonで 自分以外絶対使わないと言うケースがRuby。
他人が読んだり再利用する可能性があるものにPython選ばないだろ。 (日本での)知名度、利用度的に。
windows上だとLLよりpowershellのほうが使い勝手良くなってきた
チェック
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。