【Perl,PHP】LLバトル ..
[2ch|▼Menu]
228:デフォルトの名無しさん
09/02/21 15:14:10
小飼も反論してるけど、なんだかなぁ。
「汚いったって英語や日本語ほどじゃない」はないだろ。

229:デフォルトの名無しさん
09/02/21 15:14:47
何を表現するかをより重視する人と、どう表現するかをより重視する人の差だな

230:デフォルトの名無しさん
09/02/21 15:20:36
仕事でPHP、趣味でRuby使っててどちらも悪くないと思っているんだが、
「PHPはもう終わり?」と言われても、「まあそうだよなあ」と思うが、
「Rubyはもう終わり?」と言われると、「何だと?」と思ってしまう

231:デフォルトの名無しさん
09/02/21 16:19:06
>>230
おれも仕事PHP趣味Ruby。
Rubyは始まってもいない。ただ、始まるかどうかも分からない。

232:デフォルトの名無しさん
09/02/21 16:33:26
むしろPHPはさっさと終わってほしい。
仕事で書いていてイライラしてくる。

233:デフォルトの名無しさん
09/02/21 18:02:38
Perl, PHP, Javascriptあたりは書いててイライラするなあ。
メインで使ってないから精神的健康は害してないが。

234:デフォルトの名無しさん
09/02/21 18:46:47
>233
JSはやれば出来る子だと主張したい

235:デフォルトの名無しさん
09/02/21 18:47:19
LLってるびまとはまた別の恥ずかしさだなw

236:デフォルトの名無しさん
09/02/21 19:04:14
で、お前らはRails好きなん?

237:デフォルトの名無しさん
09/02/21 21:29:56
     ,' /
     i .l
.    | 、
    、.\ ヽ
      、 \ . ヽ ._
         丶.   ‐  _
           ` ‐ _  (^o^)(^o^)
                  (ー(,, O┬O
                   ())'J_))
    「俺たちオワタ?」

    「ハジマル前からオワてたよ」

238:デフォルトの名無しさん
09/02/21 21:34:37
やはりスクリプト言語は用途限定でこそ光るものなんだ
RubyとPythonは失格
そのうちLuaにとってかわられるでしょうな

239:デフォルトの名無しさん
09/02/21 22:28:17
javascriptと言いたいところだが、良さそうな実装が見当たらない

240:デフォルトの名無しさん
09/02/21 22:59:11
なんかJavaScriptがマンセーされすぎてるような気がするが、そんなにいいのか?
門外漢からすれば、thisとかselfとかわけわからん
ソースもなんだかぐっちゃぐちゃになったのしか見たことないし
明確なclass(?)宣言が無いのでコメントで補完してるとか、なんだかなーという印象しか無いんだが

241:デフォルトの名無しさん
09/02/21 23:11:09
お前には関係ないから口を挟むな

242:デフォルトの名無しさん
09/02/21 23:18:46
議論も特に進行してないのに口を挟むなってのはおかしくないか
せめてくだらんレスするなって言ってくれ

大体、他の有象無象言語はともかくJavaScriptだけは、ブラウザ相手の
アプリ作ってれば関係ないって事はないな
是非ともJavaScriptの素晴らしい所を語って欲しいもんなんだが

243:デフォルトの名無しさん
09/02/21 23:47:09
javascriptは、さっさと規格を統一すべき
IEで見れたバス時刻表のサイトがFirefoxからは見れないって、どういうこった
規格化されない限りでは、JavaScriptには先がないな

244:デフォルトの名無しさん
09/02/22 00:11:18
ライブラリ使えば?

245:デフォルトの名無しさん
09/02/22 00:16:49
>>242
たとえば、emacsの中にlispが入っていたり、
ブラウザの中にjavascriptが入っていたりするけど、
アプリ毎に別の言語を作るのは無駄だから、
pythonやrubyをそういう所で使えば一番いいんだけど、
どうも使いにくいらしい。よく知らないけど。
で、javascriptなら実績あるしいいんじゃないかって話。

246:デフォルトの名無しさん
09/02/22 00:21:46
>>240
強い型としてのクラスなどなくても問題ないからその点は気にならないが、
for .. inに与えたものが適切なaggregateでないかもしれない、という恐怖に打ち勝つのはなかなか難しい。
Luaも似た実装だけど、この辺はどうやって解決してるん?

247:デフォルトの名無しさん
09/02/22 00:49:02
>>243
言語仕様はECMAScriptとして規格化されている。
「IEで見れたバス時刻表のサイトがFirefoxからは見れない」
というのはブラウザという実行環境による違いだよ。
ここもDOMという規格化はされているが、
それを超えた部分がブラウザごとに異なってくる。

クロスブラウザで統一させるには Java のようにコアライブラリや実行環境も含めて規格化しないと無理だね。

248:デフォルトの名無しさん
09/02/22 01:52:55
>>245
なるほど
組み込み用言語のお話でしたか
javascriptは何となくデファクトスタンダードっぽいってこと以上に組み込みの実績もあるってこと・・・かな?

言語体系や細かいシンタックス等の面ではどうなんだろ
恥ずかしながら今日初めてJavaScriptのそれっぽいリファレンスを入手した。ちょっと読んでみる
URLリンク(d.hatena.ne.jp)

249:デフォルトの名無しさん
09/02/22 06:56:11
thisやselfに相当するものは、ここのスレタイの言語は全部備えてると思うが…

250:デフォルトの名無しさん
09/02/22 07:26:50
JavaScript は this の中身がちょこちょこかわるのがなあ

251:デフォルトの名無しさん
09/02/22 08:51:49
>>249
URLリンク(d.hatena.ne.jp)
とか
URLリンク(d.hatena.ne.jp)
とか

252:デフォルトの名無しさん
09/02/22 09:33:53
>250-251
理解。確かにthisの扱いが違うことは意識せなならんね。
あとselfの他にも、JSは頻出パターンの多い言語だとは思う。
専用の構文を使わずに、既存の要素で色々やることになるし。

ただ俺はPythonの関数もどうかと思うんだよな…。
インスタンスとバインドされた関数(いわばメソッドのようなもの)と
バインドされてない関数が、表記に反して微妙に違うのがなんとも。

まあ、どの言語もやっぱり幾つかの問題はあるか。

253:デフォルトの名無しさん
09/02/22 11:12:38
俺の主観による事前の評判と感想:

- Perl - 汚いと評判で、実際に汚いがそれ以上に馬力があって便利
-- ソースはCobolを見るような気分になってきたが、仕事をやっつけるときに頼れる相棒
- Python - シンプルと評判だったが、#$%&の代わりに__XXX__乱舞でエエェー、クラスの実装でなめるなって感じ。馬力はOK
-- なんか不自然さとか後付感をPerl並に感じるが、パワーはあるので頼れる
- Ruby - 簡潔でエレガントと評判で、これは評判違わずだが馬力がいまいち
-- 簡潔かつ強力だが、馬力の凹凸がまだ激しく自分で結構補う覚悟がいる
- PHP - 言語以前という評判で、実際にも謎仕様多数だが、標準的構成で使える関数が充実+軽い
-- ウェブに超便利。ウェブ以外で使う奴は頭がおかしい

馬力ってのはライブラリの種類とか充実度とかパッケージ配布機構とか
全部含めた言語仕様の外側まで含めた仕事遂行能力のことね。

今はRubyメインPerl/PythonサブでWebだけたまにPHP使用の俺が書いてみる。

254:デフォルトの名無しさん
09/02/22 11:14:03
>>228
えー Perl を日本語でたとえると
あー なんというか んー こういうもどかしさを
んー 随所に感じるというか
あー うざいよね

255:デフォルトの名無しさん
09/02/22 11:27:49
>>254
Perl: 絵文字多数で読みにくい
Python: 妙に句読点とか三点リーダ(…)が多い
Ruby: 漢字が足りない
PHP: 文章になってない

256:デフォルトの名無しさん
09/02/22 11:56:58
ブラウザの組み込みでPHPっていうのがないかな
javascriptってChromでデバッグできる?

257:デフォルトの名無しさん
09/02/22 11:59:49
>Ruby: 漢字が足りない
わろs

258:デフォルトの名無しさん
09/02/22 12:48:59
>>253
>ウェブ以外で使う奴は頭がおかしい

バッチで超便利ですが(;´Д`)

259:デフォルトの名無しさん
09/02/22 12:53:08
>258
どんなバッチで使ってる?

260:デフォルトの名無しさん
09/02/22 13:20:49
>>259
DBから条件を抽出して、ファイルをゴニョゴニョするようなもの
別にPHPじゃなくても良いんだけど、他のライブラリ(Pear、CPAN)とか入れる手間が
他のものより比較的少ない分、他人に依頼しやすい。

261:258=260
09/02/22 13:27:51
言葉足りないから補足

>他人に依頼しやすい。

他人に設定・設置を依頼しやすいってことです。

262:デフォルトの名無しさん
09/02/23 10:10:31
JavaScriptでsprintfが無いのは、何か理由があるの?
スクリプト言語で文字列処理が面倒くさいってのは結構致命的だと思うんだが

大概ソースが汚く、というか読む気をなくさせるのは文字列連結がごちゃごちゃしてる部分だと思うんだ
さらに文字列内での変数展開もないときたら、これはなにかポリシーなのかとも思ってしまうけど、
規格に入らない理由とかあるのかな

263:デフォルトの名無しさん
09/02/23 10:34:18
>262
確かに何でだろうな。
数が少なきゃ、フォーマット文字列.replace()で何とかなるけど、ちと限界あるし。

264:デフォルトの名無しさん
09/02/23 18:39:53
javascript + PHPがおすすめ。
PHPはRubyかPythonに置き換えてもいい。

jsは今後絶対はずせなくなる。

265:デフォルトの名無しさん
09/02/23 18:57:42
>>262
むしろsprintfがあるほうが珍しいのでは。
シェア的には多数派だけど。w


266:デフォルトの名無しさん
09/02/23 19:10:06
>>262
オブジェクト指向だと文字列は普通に+で連結するだけじゃね?
ああ、%2.1dみたいな書式作りたいのか。


267:デフォルトの名無しさん
09/02/23 19:47:12
%2.1dって構文はありなの?

268:デフォルトの名無しさん
09/02/23 20:07:05
Pythonとかの%02dとかは普通にありがたいけどなぁ。
数字を文字に変換しなくても、そのままフォーマット変換できるのは楽は楽だし。
+の連結とは使い勝手が全然違うとオモ

269:デフォルトの名無しさん
09/02/23 20:07:40
>>266
書式もそうだけど、単純に見やすさ、いじりやすさもあるよ。
・・・オブジェクト指向って?
例えばRubyで悪いけど、

tag = '<input type="text" class="' + css_class + '" name="' + name + '" value="' + value + '" />'
tag = %Q'<input type="text" class="#{css_class}" name="#{name}" value="#{value}" />'
tag = '<input type="text" class="%s" name="%s" value="%s" />' % [css_class, name, value]

JavaScriptは一番上の書き方しかできない。
それが一番見やすい・いじりやすいっていう人が多数派なんだろうか

270:デフォルトの名無しさん
09/02/23 20:34:39
いや%dに"2.1"を指定するのはなんか違和感があった
%fならともかく

271:デフォルトの名無しさん
09/02/23 20:35:54
>>269
tag = <input type="text" class={css_class} name={name} value={value} />.toXMLString()

272:デフォルトの名無しさん
09/02/23 20:45:31
xml以外はどうしたらいいんだ?

273:デフォルトの名無しさん
09/02/23 22:32:25
>>272
name = 'John'
str = <dummy>My name is {name}.</dummy>.text()

XMLリテラルキモいw

274:デフォルトの名無しさん
09/02/23 22:54:20
JavaScript に strftime() が欲しい。

275:デフォルトの名無しさん
09/02/23 23:21:46
>>273
<>My name is {name}.</>
でOK
ちょっとだけキモさも和らぐw

276:デフォルトの名無しさん
09/02/24 01:38:44
URLリンク(d.hatena.ne.jp)
URLリンク(hacks.bluesmoon.info)

JavaScriptでsprintfとstrftime

277:デフォルトの名無しさん
09/02/24 12:38:01
>>275
HTMLのSCRIPTタグ中に書けないじゃん。

278:デフォルトの名無しさん
09/02/24 12:56:20
>>277
書けたよ (FireFox 3.0.6)

<script type="text/javascript">
var name = 'John'
var xml = <>My name is {name}.</>
alert(xml) // alert(xml.toString()) と同義?
</script>

E4Xっての初めて知ったけど、IEは対応してないんだ?

279:デフォルトの名無しさん
09/02/24 13:18:05
いつの間にかJavaScript勉強スレになってるな

280:デフォルトの名無しさん
09/02/24 19:10:58
>>278
htmllintとかでチェックすべき。

ブラウザは受け入れるだろうけど、
HTML(SGML)的には不法のはず。


281:デフォルトの名無しさん
09/02/24 22:52:51
XMLリテラルってscalaにもあるみたいね
これらの言語使ってる人、こんなの使ってる? (意味不明)
ヒアドキュメントより更にコードに違和感ありまくりで、あんまり
有り難みがないような気がする

282:デフォルトの名無しさん
09/02/25 00:30:22
>>280

<script type="text/javascript">
<![CDATA[
var name = 'John'
var xml = <>My name is {name}.</>
alert(xml) // alert(xml.toString()) と同義?
]]>
</script>

283:デフォルトの名無しさん
09/02/25 05:25:39
>>282
URLリンク(developer.mozilla.org)

>さらに CDATA セクション (<![CDATA[...]]>) は CDATA リテラルとしてパースされませ
>(HTML の <script> 要素は暗黙の CDATA セクションを作りますが、そこには明示的
>な CDATA セクションを含めることができないため、これは HTML において JS 構文エラーを引き起こします )。

284:デフォルトの名無しさん
09/02/25 08:09:15
>>283
XHTMLで書けばいいだけ

285:デフォルトの名無しさん
09/02/25 08:50:28
> XMLリテラルってscalaにもあるみたいね

V B . n e t  に も あ り ま す

C # に は あ り ま せ (

286:デフォルトの名無しさん
09/02/25 12:39:22
Rhinoってどうよ?

287:デフォルトの名無しさん
09/02/25 23:33:59
importClass(java.io.PrintWriter);
importClass(java.io.BufferedWriter);
importClass(java.io.FileWriter);

var file = new PrintWriter(
      new BufferedWriter(
        new FileWriter("sample.txt")));

file.println("Rhino犀強伝説");
file.close();


288:デフォルトの名無しさん
09/02/25 23:37:32
わざわざ冗長に書き過ぎじゃなかろうか、Rhino知らんけど

289:デフォルトの名無しさん
09/02/26 00:00:53
importClass(java.io.PrintWriter);

var file = new PrintWriter("sample.txt");

file.println("これだけでよかったのか、まだ勉強不足だ");
file.close();


290:デフォルトの名無しさん
09/02/26 00:03:39
それなんてJava、っていうネタじゃなかったのか

291:デフォルトの名無しさん
09/02/26 01:39:17
>>262
String.format()

292:デフォルトの名無しさん
09/02/26 01:53:16
C#?

293:デフォルトの名無しさん
09/02/26 02:05:08
>>291
[JavaScript-C 1.6.1 2008-03-01]

js> print("".toLowerCase)
function toLowerCase() {
[native code]
}
js> print("".format)
undefined

294:デフォルトの名無しさん
09/02/26 10:56:50
もう21世紀だというのに・・フォーマットとか小文字だとか大文字だとか・・だりぃな

295:デフォルトの名無しさん
09/02/26 11:17:15
デフォルトの書式を XML で定義しておくとか。
デフォルトで case insensitive にして必要に応じて case sensitive にするとか。

296:デフォルトの名無しさん
09/02/26 16:57:13
高水準言語

297:デフォルトの名無しさん
09/02/26 21:41:54
VB.NETは進化の方向性を間違えたなって思う。
C#と棲み分けするためにRubyやGroovyのような言語に進化するべきだったと思う。

298:デフォルトの名無しさん
09/02/26 21:47:31
C#やVBのM$言語もLLに入るの?
オープンソースかアカデミックな連中だけで盛り上がってて、
商用お断りみたいに思ってんだけど

299:デフォルトの名無しさん
09/02/26 21:49:45
Java系等のはカス扱いで。

300:デフォルトの名無しさん
09/02/26 22:11:26
>>298
いや入らない。
ただVBはLL方向へ進むべきだったという話をしているだけです。

301:デフォルトの名無しさん
09/02/26 22:21:34
LLの定義論うざい。
そもそもLLはRuby基準で立場が近いかどうかが問題だ。
厳密な定義は必要ないし、そもそもRuby使い以外はLLなんて言葉はつかわない。

302:デフォルトの名無しさん
09/02/26 22:23:42
なんかわけわかんねぇ文章だな。
Rubyに近いほど、よりLL。
あまりにもRubyより簡単すぎたらLLじゃない。

303:258=260
09/02/26 22:35:51
>>294
高校生のとき21世紀には、CADのようにGUIで部品を結線するだけでプログラムが
出来る時代が来ると思っていました。

304:デフォルトの名無しさん
09/02/26 22:44:49
デスクトップ時計とかカレンダーみたいな小物なら
C#ならまさにRADでポトペタ、プロパティ設定だけで
コーディングなしでできるがな。

(もちろん、色々細かいことやろうとしたらコーディングは必要だが)

305:デフォルトの名無しさん
09/02/26 22:55:31
HTML、MXML、XAMLとか画面を作るだけなら
プログラミング言語の出番では無くなりつつあるような。
もちろんポトペタを実現するソフトの力もあるけど。

306:デフォルトの名無しさん
09/02/26 23:55:19
>>303
それって、RPGツクールだけでRPGがとか、
シューティングツクールだけでシュー(ry
格闘ゲ(ry

というのと変わらん妄想な気がする。
結局こったことやろうとすると、ツール上でプログラミングしないといけなくなるんだよな

307:デフォルトの名無しさん
09/02/26 23:58:45
まあ、妄想とはいったけど今の段階ではということで、
30年くらい先は変わるんだと思う。
RPGツクールも新しいのは Ruby乗っかってるし、
ジャンル特化のゲームエンジンにちょっと汎用的なDSL入れた、見たいな構成なんて、
今時のゲーム開発じゃ珍しくない。

web周りがまだ続くんなら、ポトペタ系webフレームワークがでたっておかしくない。

・・・CodeGea(いやなんでもない


308:デフォルトの名無しさん
09/02/27 00:04:15
Plagger とか Yahoo! Pipes とか Popfly とかその辺のこと?

309:デフォルトの名無しさん
09/02/27 01:40:28
どんどん新しい技術が出てくる時代だからね。UI言語みたいなものよりテキスト言語じゃないと融通が
きかなくて対応できないだろうね。
でもいずれ何十年も先に技術も安定して規格化も進めば、UI言語みたいなものも発展できるかもね。

310:デフォルトの名無しさん
09/02/27 02:17:24
用途は限定されるけど、結線でUIを構築するなら、Quartz Composerってのがあるね。
文字列の回転角度などのようなプロパティは、直接指定する必要はあるけど、基本、結線するだけで、リアルタイムで結果を表示してくれるよ。

Mac限定だけど

311:デフォルトの名無しさん
09/02/27 02:21:08
ぶっちゃけGUIとCUIに向きと不向きがあるのと一緒で
何でもポトペタで楽にってのは幻想だと思う

マウスやゲームパッドで漢字の人名を入力することを考えてごらんよ
超面倒くさいだろ?
電卓だって、GUIの電卓よりCUIのがずっと使いやすい

312:デフォルトの名無しさん
09/02/27 02:31:44
グラフィカルな存在を扱うケースでは、グラフィカルに設計できるのが一番では
絵を書くときには誰だって筆を使う
PostScriptを直接書くというケースは多くないだろう

313:デフォルトの名無しさん
09/02/27 02:37:03
>>312
うんだから向き不向きってことね
ダイアログエディタみたいなGUIが向いてるものはどんどんGUI化すればいいが、
実際には既にかなりのものがGUI化されているだろう
それ以上は疑問だね

314:デフォルトの名無しさん
09/02/27 02:41:41
>>311
それはGUIだからじゃなくてマウスだからじゃない?

315:デフォルトの名無しさん
09/02/27 06:29:26
touch(panel/pad)て昔からあるけど
DesktopPC用には普及してないな

316:デフォルトの名無しさん
09/02/27 07:34:35
高いからだろ

317:デフォルトの名無しさん
09/02/27 09:32:58
>>316
そういって参入して死々累々なのがタッチパッドインタフェース。
タッチパッドが悪いというより、なぜか指で操作させようとするのが
敗因だと思うけど。ペン操作は普及したし。


318:デフォルトの名無しさん
09/02/27 09:41:48
タッチパッドはタッチパッドで、結構進化して来てるよ。iPhoneとか、なかなか面白い動きをする。
ペンタブレットはあれはあれで、実は「細かい点の操作」に弱いって欠点があるんだな。
マウスやタッチパッドは、ポイント→その位置から動かさないでクリックって動作がしやすいんだけど
ペンタブレットだとそうも行かない。一応、少しだけ浮いた状態でポインタが出るんだが、それでも狙った位置からはブレやすい。

319:デフォルトの名無しさん
09/02/28 00:38:29
タッチパネルとタッチパッドは別もんだな
タッチパネルは、もし安く高性能なものが普及しだしたら、それなりに便利だと思う
マウスでクリックしすぎると指が痛くなってくるけど、そんなとき画面をペンでポチって
できるのは、作業中の気分転換にいいかもw

320:デフォルトの名無しさん
09/02/28 01:31:43

何の話だっけ?

321:デフォルトの名無しさん
09/02/28 03:01:32
>320
PerlもPythonもRubyも大きなテコ入れをしている件について

322:デフォルトの名無しさん
09/02/28 03:10:31
米国でRuby関連書籍の売り上げが減速か
>2008年第4四半期の売り上げで、前年同期比965%増という大躍進を遂げているのはObjective-C。
>ほかにActionScriptも33%増と好調。逆に落ち込みが激しかったのはRubyで、51%減となっている。
>ほかに落ち込みの大きい言語としては「JavaScript(24%減)」、「Visual Basic(15%減)」、「Perl(25%減)」、「Java(12%減)」などがある。
URLリンク(www.atmarkit.co.jp)

323:デフォルトの名無しさん
09/02/28 04:05:25
まあ別にいらないしな

324:デフォルトの名無しさん
09/02/28 04:06:47
>> 322
ruby本の落ち込みは、railsは一時的なブームだったということかな?
Objective-Cはiphoneアプリの開発言語だよね。macの売り上げも伸びたんだろうね。
phpは相変わらず人気だね。

325:デフォルトの名無しさん
09/02/28 06:11:51
Rubyはソース嫁に辿り着く

326:デフォルトの名無しさん
09/02/28 07:34:42
Rubyは対話式インタプリタだから生きるものかもしれないな。

コード補完機能を備えた優秀な開発環境があれば
別にコードが冗長でもかまわないわけだし。

Pascalみたいにコンパイル速度が速ければ
インタプリタである必要もないし。

Rubyで使い捨て以外のプログラム書く理由がないわ。

327:デフォルトの名無しさん
09/02/28 08:54:46
>>322
iPhoneの影響か。
長らくNeXT及び、その後継であるMac OS Xの専用言語に近い状態だったが、2007年に入り、Apple社の携帯電話iPhoneにおいてCocoa touchフレームワークの記述言語として採用。習得者の人口が増える傾向にある。

328:デフォルトの名無しさん
09/02/28 09:05:04
Railsの流行も落ち着いてきたということだろう。もう4年もたつしな

329:デフォルトの名無しさん
09/02/28 10:28:12
オンラインで読めるマニュアルとかチュートリアル、解説サイトが充実していれば本なんかいらんけどなあ。
ちょっとググレば出てくる情報に3000〜円とか出したくないし。

まあ、手元においておきたいときも、ないことはないけど。

本が売れてるって、実は言語(フレームワーク)そのものが使いにくいからじゃね?なんてうがった見方をしてみたり^^;

330:デフォルトの名無しさん
09/02/28 10:40:55
それはうがってるんじゃなくて、(Ruby信者として)もがいてる感じ。

331:デフォルトの名無しさん
09/02/28 11:52:14
本買う行為はお布施だと思えば仕方が無いかな

332:デフォルトの名無しさん
09/02/28 11:57:00
ひたすらに現世利益を求める衆生にはそれがわからんのだな

333:デフォルトの名無しさん
09/02/28 12:12:56
お布施は信者以外には理解不能だからなぁ

334:デフォルトの名無しさん
09/02/28 13:17:15
Rubyとか互換性皆無で一年前の情報がゴミになるからな。
他言語でもRails風フレームワークも増えてきたし、
敢えてRubyにこだわらなくてもいいような。

335:デフォルトの名無しさん
09/02/28 14:14:09
教祖様は気分で仕様変えるし、
メンテナはすぐヘソ曲げるし、
コミュニティの殆どは「誰か働けよ、中傷してやるからよぅw」モードだし、
普通に考えてRubyに価値があるわけないよね。

336:デフォルトの名無しさん
09/02/28 15:27:46
PHPはやはり強いな。
初めにやったもん勝ちなんだよな、こういうのは。

337:デフォルトの名無しさん
09/02/28 18:37:40
Rubyの方が昔からあったような気がする

338:デフォルトの名無しさん
09/02/28 20:32:57
まあ、シェア奪ったもん勝ちってことだろ。

339:デフォルトの名無しさん
09/02/28 22:32:21
>>335
Rubyの教祖様ってPHPをさんざん叩いてた人じゃないの?
当のRubyはそんな有様だから足引っ張ってんのか?ww

340:デフォルトの名無しさん
09/02/28 23:59:35
PHPはウェブアプリのコーディングしてて「こんなのないかな?」っていう
関数は既に用意されてることが多いからやっぱ強い(自作関数だらけにもならんし)。
ヴォキャブラリーの力が圧倒的だから
まあウェブ用途では当面代替になりそうな言語はないね。

341:デフォルトの名無しさん
09/03/01 00:22:09
PHPよか、Rubyの方が柔軟に書けそうに見えるんだけど気のせいか?
パッと見でPHPって、Webで使う用のCにしか見えないんだけど

342:デフォルトの名無しさん
09/03/01 00:32:08
Web用のCだったら、今頃使いまくってるけどな。

PHPは歴史を引きずって関数が増えてるだけ。
末期のBASICを思い出すわ。
DB接続だけで6種類以上あったり、勘弁してくれ。

343:デフォルトの名無しさん
09/03/01 00:34:11
まぁDB周りはクラス作ったりしてまとめたりしてるわ
PostgreSQLとMySQLしかつかってないが。

B→Cときた自分としては、PealやRubyってすごくソースが見づらい。

344:デフォルトの名無しさん
09/03/01 00:36:15
沢山の人が読める
動かせる鯖多い

phpの利点なんて他に無いでしょ
ライブラリなんてpythonだろうがrubyだろうがperlだろうが不自由しませんよ

phpは書きやすくはないと思う。むしろ他より疲れる。
よくも悪くも馬鹿正直な子のイメージ

345:デフォルトの名無しさん
09/03/01 00:45:37
>>344
PHPは書きやすいから沢山の人が読めて、多くの鯖がサポートしてるんだが。

346:デフォルトの名無しさん
09/03/01 00:57:26
PHPとPerlのちがいはなにですか?
PHPの方がゴージャスなのでしょうか。

347:デフォルトの名無しさん
09/03/01 01:04:24
>>345
書きやすくないよ。PHP以外の言語やったことは?

348:デフォルトの名無しさん
09/03/01 01:04:57
Web鯖新調したら動かないって大概Perlで
PHPで書き直すことになって俺の作業がすすまん。。。

349:デフォルトの名無しさん
09/03/01 01:24:37
>>348
普通は逆じゃないか?
サーバ依存のPerlコードなんてどんなのがあるんだろう。
モジュールが入ってないとかそんな問題では。FastCGIとかそういう関係かな。

書き方があんまり古いから、いっそ書き直すってのならわからんでもないが、
PHPの古いコードを書き直すのも大概しんどい作業だから、それは言語のせいではないし。
PHPで書き直す必要のあるシチュエーションがあんまり思い浮かばない。

350:デフォルトの名無しさん
09/03/01 01:41:08
>>349
サーバーの中のことはあまり知らないんだが、今あるWebサーバーを
CentOSに集約する作業で動かないのが出てくる
パーミッションやら権限やらパスやら書き直したんだがやっぱり動かないんだわ

大半はメール、あとはDBやら出力の文字化けたりとかそんなかんじ
バッチの書き直しが俺に来なかったのだけが救い・・・

351:デフォルトの名無しさん
09/03/01 01:57:49
>>350
コード読まずに環境変えて動かんってそれは仕方がない。
Perlのせいではないぞそれ。
むしろPHPの方が、バージョンや設定の違いのせいで書き直しとか動かんとか多い印象。

また、例えば/etc/aliasesいじってメールアカウントを量産するとか、パイプなどで
コマンド直に叩いてるとか、そう言った感じのサーバ依存処理をごにょごにょされまくってたら、
もともとPHPだったとしても多分ひどいことになってるだろ

> サーバーの中のことはあまり知らないんだが
一番の問題はこれじゃないかと。
結局これである程度できてしまうのが、PHPの利点ってことになるんだろうか。
欠点と言うことになるんだろうか。

352:デフォルトの名無しさん
09/03/01 02:37:01
>>351
鯖見てる人がPerl使える人だから上司もそうか、じゃぁ仕方ないで俺に来るんだよね。

メールは、ライブラリ入れてるんだけど動かないっていう状態。 俺はパイプとかさっぱり。
普通にPHPの文法でDBから引っ張ってきてメール送信するように書き直してるだけ。

PHPもDB入れ替えたからSQL全部書き換えなんだが全く手が付けられん状態。。。

353:デフォルトの名無しさん
09/03/01 06:00:02
最近のCentOSではデフォでsendmailとpostfixが両方入ってるしMySQLは3系、4系、4.1系以降で
文字の取り扱いが大きく変わってるからその辺りだろうね。
直すのにそれほどの手間じゃないと思うけどそれを出来ない人に任すような会社であれば
どのみちPHPにしてしまった方がいいかもね。

354:デフォルトの名無しさん
09/03/01 07:07:35
>>341
PHPは誰でも使えるJavaとかC#みたいな感じ。
しかし、仕様の変さでハマりどころの多さVBやVBA並w

355:デフォルトの名無しさん
09/03/01 08:45:27
>>350
馬鹿じゃね

356:デフォルトの名無しさん
09/03/01 09:38:27
全くの素人です
プログラミングを学ぶにはパイソンかルビーのどちらかが良いと聞いて3日ほど調べてるんだけど
ルビーの方がわかりやすい解説を見つけられるんでルビーにします

357:デフォルトの名無しさん
09/03/01 10:04:04
ルビー

358:デフォルトの名無しさん
09/03/01 10:32:40
さあ、ソースコードをコンパイルする作業に戻るんだ。

359:デフォルトの名無しさん
09/03/01 11:02:50
>>356
ルビーに比べたらパイソンの資料が少ないのは否めないな。
レンタルサーバーへのインストールはどっちも少なくてガッカリするが。

360:デフォルトの名無しさん
09/03/01 11:58:25
なんかプログラミングしたいだけならschemeでもやってれば。マジレス

361:デフォルトの名無しさん
09/03/01 12:18:04
パイソンからジャバののちCかルビーからジャバののちCを学ぶルートがよいとありましたので
この二つから選んだ次第です

362:デフォルトの名無しさん
09/03/01 12:34:04
何のルートだw
趣味なら何でもいいんじゃないか。


363:デフォルトの名無しさん
09/03/01 12:54:45
>>359
重要なのは中身さ。
英語ふくめればPythonの濃さは異常だぞ!

濃さ(マニアックさ?)で言えば最強はperlだと思うけどw

364:デフォルトの名無しさん
09/03/01 13:02:14
真にディープなPerl信者は、言語の汚さをどれだけ指摘しても、
全部受け止めた上で「だがそれがいい」って自然体で言ってのけるからな。
指摘に対して必死になりがちなRuby信者やPython信者には無い強さがあるw

365:デフォルトの名無しさん
09/03/01 13:02:31
>>361
やるならforthをやれ

366:デフォルトの名無しさん
09/03/01 13:02:33
basic->asm->Prolog->FORTRAN->Pascal->Lisp->C->PL/I->C++->Smalltalk->Objective-C->Java->Perl->Ruby->PHP->Python->C#->JavaScript<-いまここ

367:デフォルトの名無しさん
09/03/01 13:03:07
ああforthもやったわ

368:デフォルトの名無しさん
09/03/01 13:21:07
やはりパイソンは良いですか
私も読みやすいというのは大きな利点じゃないかとは思ったんですよね
すでにあるものをもう一度一から作るような真似は避けろともありましたし

369:デフォルトの名無しさん
09/03/01 14:24:48
俺のスクリプトのルート
PHP→Python←いまここ
PHPから入ると組み込み関数に頼りすぎて他の言語をやる時に散々なことになる。

370:デフォルトの名無しさん
09/03/01 14:25:04
Pyは初心者にとっては字下げ矯正箸だな
あのインデントが総てにおいて正しい、とまでは流石に言わないが
かなりの場面で通用する、それなりに正しいインデントが身につく

371:デフォルトの名無しさん
09/03/01 17:21:39
いや、そもそもインデントもろくにできないなんて
プログラムできるとかいう以前の問題だろ

俺のスクリプトルート
BASIC→C→C++→VB→VBA→Perl→PHP←いまここ
文字列関数とか連想配列とかどんだけ便利(ry

372:デフォルトの名無しさん
09/03/01 18:29:08
BASIC->C->sh,awk,sed->elisp->Perl->Tcl->Python->Ruby->Java<-今ココ
インデントって...。どんなエディタつかってんだよ
作りたいものがないのに入門したいなら、Cとscheme。異論は認めない。

373:デフォルトの名無しさん
09/03/01 19:11:28
>>372
まあプログラムがどう実行されるかを理解するなら両者が基本だよね。
それ以前のプログラミング手習いの段階なら多分Py,R,JSあたりで打鍵に抵抗なくした方がいいが。

374:デフォルトの名無しさん
09/03/02 09:36:59
レンタルサーバーならさくらインターネットがパイソンもルビーも対応してるようですが
どなたかご利用の方いらっしゃいましたら使用感を教えてください

375:デフォルトの名無しさん
09/03/02 09:43:31
レンタル鯖板いけ

376:デフォルトの名無しさん
09/03/02 09:44:33
RubyもPythonも、インタープリタとして使うだけなら使用感も何もないのでは。
バージョン通りの動きをするだろ。

WEBシステムの実装言語として使うなら、本体よりもむしろFastCGIやmod_**の方の
設定の可否などが大きいはず。そういうことを聞いてるのかな?

377:デフォルトの名無しさん
09/03/02 09:46:38
>>374
レンタルサーバの使用感ならhosting板、
CGIのバックとしての使用感ならwebprog板で訊いて下さい。

378:デフォルトの名無しさん
09/03/02 13:54:25
以下の内容は、某スレに書き込んだものなんだけど、自分には結構面白いやり
取りになったので、いろんな言語でやってみたくなった。

ある大きな連想配列から、いくつかのキーを持つ要素だけを取り出した、部分
連想配列を作りたい。

// PHP版
$request = array('hoge'=>1, 'fuga'=>2, 'piyo'=>...
//これからキーが hoge, fuga の物だけを取り出すとすると、

foreach (array('hoge', 'fuga') as $param) {
$a[$param] = $request[$param];
}

これ、いろんな言語で、なるべく簡潔に書くにはどうしたらいいだろう?


379:デフォルトの名無しさん
09/03/02 14:11:16
>>378
Perlで
my %request = ('hoge'=>1, 'fuga'=>2, 'piyo'=>3);
my %a = (); my @keys = ('hoge', 'fuga');
@a{@keys} = @request{@keys};

ググってサンプルを見ながら適当に。なんかおかしいorもっと簡潔に書けるかも。

380:デフォルトの名無しさん
09/03/02 15:00:14
>>379
Perl って、
・連想配列の引数に、配列を与えられるのか。すげー。
・変数名のプレフィックスが型によって違うから、目がちかちかするのう。

Perl講座 2章 [変数]
URLリンク(www.site-cooler.com)


381:デフォルトの名無しさん
09/03/02 15:02:53
ちなみに、ほかに書き込んだのは

PHP@プログラム板
スレリンク(tech板:341-番)

Pythonのお勉強 Part32
スレリンク(tech板:275-番)

382:デフォルトの名無しさん
09/03/02 15:07:09
JavaScriptは多分愚直にループするしかないかな?
Rubyはなんかメソッドうにょうにょでできそうだけど、俺は知らね。

383:デフォルトの名無しさん
09/03/02 15:08:14
>>380
配列周りでぼんぼことフラット化する癖は……

384:デフォルトの名無しさん
09/03/02 15:32:05
バベル案内
URLリンク(www.aoky.net)

> Perlは夏の台湾の通りの上で破裂したマッコウクジラだ。はらわたがそこら
> 中に飛び散って、車や自転車や歩行者を覆っている。それがPerlだ。本当に
> チャーミングだ 。
(略)
> Perlがリスト処理をできないのは、リストを自動的に平坦にするという救い
> がたく愚かな決断をラリーが初期にしたことによる。そのため(1, 2, (3,
> 4))は不思議なことに(1, 2, 3, 4)に変わってしまう。あなたはこんな風になっ
> てほしいと思ったことはないだろう。しかしラリーがある日たまたま何かの
> 問題でそうなるのが都合が良かったため、それ以来Perlのデータ構造はまっ
> たくの破裂したクジラとなってしまったのだ。


385:デフォルトの名無しさん
09/03/02 15:38:56
>>384
釣れますか?

386:デフォルトの名無しさん
09/03/02 15:55:14
Rubyをよく知らない俺様が通りますよ。

irb(main):001:0> request = {'hoge'=>1, 'fuga'=>2, 'piyo'=>3}
=> {"fuga"=>2, "hoge"=>1, "piyo"=>3}
irb(main):002:0> a = {}
=> {}
irb(main):003:0> ["hoge", "fuga"].map{|x| a[x] = request[x]}
=> [1, 2]
irb(main):004:0> a
=> {"fuga"=>2, "hoge"=>1}

これではforループがmapに変わっただけだな。

387:デフォルトの名無しさん
09/03/02 16:20:28
Rubyは中途半端な私が通りますよ。
request = { 'hoge' => 1, 'fuga' => 2, 'piyo' => 3 }
keys = ['hoge', 'fuga']
a = Hash[*keys.zip(request.values_at(*keys)).flatten]

388:デフォルトの名無しさん
09/03/02 16:26:37
>>387
*keys の * ってなにをするものなの?
良かったら教えて。ググりようがないので。

389:デフォルトの名無しさん
09/03/02 16:38:22
>>388
中を展開すると理解してる。ちょっと違うかもしれないけど。
こうすると分かりやすいと思う。
p [1, 2, 3]
p *[1, 2, 3]

390:デフォルトの名無しさん
09/03/02 16:53:46
グモ

391:デフォルトの名無しさん
09/03/02 16:56:04
>>389
ごめん、やっぱりよく分からない。
p *[1, 2, 3] は動くけど、
*[1, 2, 3] は動かない。どうなってるの?

リファレンスのどこに載ってるか、教えてもらえるととてもうれしい。

URLリンク(www.ruby-lang.org)

392:デフォルトの名無しさん
09/03/02 16:57:47
メソッド呼び出し のところ

393:デフォルトの名無しさん
09/03/02 17:40:45
>>392
> メソッド呼び出し のところ

そういうことか!やっとわかった。ありがとう。
メソッド呼び出し - Rubyリファレンスマニュアル
URLリンク(www.ruby-lang.org)

ちなみに Pythonだと、* で配列の展開、** で連想配列の展開になる。

>>> def hoge(a, b, c):
... return a

>>> hoge(*['a', 'b', 'c'])
'a'
>>> hoge(**{'a':1, 'b':2, 'c':3})
1
4. その他の制御フローツール
URLリンク(www.python.jp)

なるほどRubyにもあったのか。

正直に言うと、Hash[], Enumerable#zip, Hash#values_at とか、全部知らなかった。
Rubyってホントにメソッドが山盛りだな。
まあ俺が無知なだけか。

394:デフォルトの名無しさん
09/03/02 17:42:26
>>391
>>392さんの通り。
URLリンク(www.ruby-lang.org)

多重代入でも最後のメンバー限定で展開できたり。

a, b, c = [1, *[2, 3]]
p a, b, c

URLリンク(www.ruby-lang.org)

多重代入の左辺と、メソッドの仮引数で意味が変わったりする謎アイテム。

395:デフォルトの名無しさん
09/03/02 17:44:06
ぐは。

396:デフォルトの名無しさん
09/03/02 18:00:39
交代リストからハッシュを作れるRubyの仕様は、古き良き時代のLISPの香りが
するような。


397:デフォルトの名無しさん
09/03/02 18:21:30
静的型の言語はお呼びじゃないか。
標準ライブラリのtemplateをひっかきまわすのは面倒そうなのでこれで。

int[string] request = ["hoge":1, "fuga":2, "piyo":3];
auto keys = ["hoge", "fuga"];

typeof(request) result;
foreach(i; keys) if(i in request) result[i] = request[i];

398:デフォルトの名無しさん
09/03/02 18:51:45
>>397
何かと思ったが、これは C++0x か!
すげえ、こんな風に書けるようになるのか!

399:デフォルトの名無しさん
09/03/02 19:09:04
しかしロジックは>>378のforループと変わっていないんだな。

400:デフォルトの名無しさん
09/03/02 19:22:37
いや、D。
0xだとdecltypeだったりstd::for_eachだったりunordered_mapだったりすると思うわけだが。
ロジックはまるっきり同じ。
組み込みの連想配列を持っていてfor .. in相当の構文がある言語ならなんでもこの形式で書けるんじゃないのかな

401:デフォルトの名無しさん
09/03/02 19:25:21
やった、RubyのEnumerable#injectで書けたよママン。

['hoge','fuga'].inject({}){|x, y| x[y]=request[y]; x}

402:デフォルトの名無しさん
09/03/02 19:40:53
Ruby の inject が使えるなら Python の reduce も使えるはずだ。

def func(x, y):
    x[y]=request[y];
    return x

reduce(func, ['hoge', 'fuga'], {})

なんで無名関数使わないのかって?
Pythonのlambdaは代入とかできないんだようるせえな。
いいんだよPythonでは名前空間の不足に困ったりしないから。
あと何でも一行で書こうとするのは悪い習慣。

403:デフォルトの名無しさん
09/03/02 19:56:39
>>400
> いや、D。
なんだそうか。C++に連想配列リテラルが組み込まれたかと思って驚いちゃった
よ。恥ずかしいな。

D vs C++0x - プログラミング言語 D 2.0
URLリンク(www.kmonos.net)


404:デフォルトの名無しさん
09/03/02 19:59:17
ちんこ

405:デフォルトの名無しさん
09/03/02 20:10:25
どれも別に短くはなっていない件について。

406:デフォルトの名無しさん
09/03/02 20:17:38
わざとキモく書いてみるテスト
$request = @{hoge=1; "fuga"=2; 'piyo'=3}
$a = @{};
echo hoge,'fuga' | % { $a.$_ = $request[$_] }

407:デフォルトの名無しさん
09/03/02 20:22:05
>>402
dict(reduce(lambda x, y: x + [(y, request[y])], ['b','c'], []))

408:デフォルトの名無しさん
09/03/02 20:24:01
dict(reduce(lambda x, y: x + [(y, request[y])], ['hage','fuga'], []))

409:402
09/03/02 20:36:40
>>407-408 まいりました。おまい頭いいな。

410:デフォルトの名無しさん
09/03/02 20:40:14
どれも大体分かるけど、>>406 だけ全然分からん。

411:デフォルトの名無しさん
09/03/02 20:40:26
何でも一行で書こうとするのは悪い習慣

412:デフォルトの名無しさん
09/03/02 20:53:22
python の dict って hoge.append('key', value) みたいなこと出来ないんですか?

413:デフォルトの名無しさん
09/03/02 21:00:10
>>406は言語すらわからん。
Perlっぽいが、動くとは思えん。これ何?

414:デフォルトの名無しさん
09/03/02 21:00:57
>>412
知らんけど、無さそうだね。
hoge['key'] = value じゃ駄目?

3.8 マップ型
URLリンク(www.python.jp)



415:デフォルトの名無しさん
09/03/02 21:03:00
>>407-408
最後にdictを使うのなら、injectじゃなくて、リスト内包表記やmapの方が素直
じゃね?Python本スレではそうなってた。


416:デフォルトの名無しさん
09/03/02 21:07:51
>>410,413
PowerShellですよ
どうせならはっきりキモイと言ってくれても私は一向に構わん
% は Foreach-Object というコマンドのエイリアスで
ハッシュテーブルへは配列表記プロパティ表記どちらでも可能なのでこんな感じでキモく書けます

417:デフォルトの名無しさん
09/03/02 21:16:02
>>412
{}.__setitem__(k, v)

418:デフォルトの名無しさん
09/03/02 21:16:44
>>412
>>414
hoge.__setitem__(key, value)

無理やりreduceで書くなら例えば
reduce(lambda d, x: d.__setitem__(x, request[x]) or d, ['hoge','fuga'],{})
こんな書き方になると思うけど、Python使いはこの例を普通こんな風には書かない

dict((k, request[k]) for k in ['hoge','fuga'])
のほうがずっと素直で短く読みやすいからね

419:デフォルトの名無しさん
09/03/02 22:00:38
>>416
なるほど、キモいけど面白れー!

420:デフォルトの名無しさん
09/03/02 22:15:29
>>418
内包記法はうらやましい

421:341
09/03/02 22:30:41
なんか、このスレでも結構盛り上がったかな。ありがとうございます。

ちなみに元の言語であるPHPにも、forループしかないわけじゃなくて、むやみ
やたらと沢山のarray関連関数がある。
URLリンク(jp2.php.net)

これを利用したら簡潔にならないかと思ったんだが、

array_intersect_key($request, array_flip(array('hoge', 'fuga')));

関数名の長いせいもあって、どうも垢抜けないのう。

422:デフォルトの名無しさん
09/03/02 22:47:33
Python人口多いな。
Perl とか Ruby とか、もっと面白いことできないの?

423:デフォルトの名無しさん
09/03/02 22:52:03
「面白いこと」を定義してください

424:デフォルトの名無しさん
09/03/02 23:00:41
じゃ、Rubyで。>>387とあんまり変わらないか。
Hash[*['hoge','fuga'].map {|x| [x, request[x]]}.flatten]

個人的には、リスト内包表記より、Rubyのmapとブロックのほうが好きだな。


425:デフォルトの名無しさん
09/03/02 23:06:06
>>423
Rubyはさておき、Perl だったら、とにかく変態的なことをしてほしい。
ほかの言語だったらありえないようなこと。

426:デフォルトの名無しさん
09/03/02 23:13:37
>>423
スレリンク(tech板:412番)
>中二設定豊富

427:デフォルトの名無しさん
09/03/02 23:15:50
>>425
>>379の縦横無尽の記号乱舞リスト展開くらいではまだ足らんと申すか

428:デフォルトの名無しさん
09/03/02 23:21:58
>>427
いや、逆。あれで火がついちゃった。Perlすげえ。
もっと何か見せてほしい。

429:デフォルトの名無しさん
09/03/02 23:26:58
目的と手段を取り違えている典型的な例だな

430:デフォルトの名無しさん
09/03/02 23:30:32
>>424
> 個人的には、リスト内包表記より、Rubyのmapとブロックのほうが好きだな。

ブロック内に複数行でも書けるから、凝ったことがやりやすいよね。

Pythonのリスト内包表記だと、長くなるとだんだん読み書きしづらくなる。
そのうち業を煮やして、手作業でforループに書き換えることに。
そのときの面倒さと言ったら。
これって俺だけ?

431:デフォルトの名無しさん
09/03/02 23:31:11
つってもありゃイディオムだしな。
リファレンスでごちゃごちゃしたって簡潔にも面白くもならんだろうし。
他の例のようにループ(?)にするとこんな感じかな。

my %a = map { ($_, $request{$_}) } ('hoge', 'fuga');

432:デフォルトの名無しさん
09/03/02 23:31:22
perlのハードルがあがっているところ普通で申し訳ないが
面白そうなので俺も書いてみた。
for(keys %request){if(/hoge/||/fuga/){$r{$_}=$request{$_};}}
grepで出来んかな

433:デフォルトの名無しさん
09/03/02 23:32:24
>>429
ええそうです。手段のためなら目的を選びませんとも!


434:デフォルトの名無しさん
09/03/02 23:43:30
あー、やっと気づいた。>>407-408って、Schemeとか関数型言語で多用される
「継続渡し」スタイルだ。
だから副作用の書けないPythonのlambdaでも、ちゃんと結果を累積できるんだ。


>>426
Haskell わかんないから君が書いてよ。

435:デフォルトの名無しさん
09/03/02 23:45:22
>>431>>432を合わせて無理矢理grepも使ってみた

my %a = map {$_, $request{$_}} grep {/^hoge|fuga$/} keys %request;


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5383日前に更新/221 KB
担当:undef