【Perl,PHP】LLバトルロワイヤル4【Ruby,Python】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/02/15(日) 03:18:33エントリーは、
Perl、PHP、Python、Ruby、JavaScript・・・
さあ、死ぬまで語りやがれ!!!
0313デフォルトの名無しさん
2009/02/27(金) 02:37:03うんだから向き不向きってことね
ダイアログエディタみたいなGUIが向いてるものはどんどんGUI化すればいいが、
実際には既にかなりのものがGUI化されているだろう
それ以上は疑問だね
0314デフォルトの名無しさん
2009/02/27(金) 02:41:41それはGUIだからじゃなくてマウスだからじゃない?
0315デフォルトの名無しさん
2009/02/27(金) 06:29:26DesktopPC用には普及してないな
0316デフォルトの名無しさん
2009/02/27(金) 07:34:350317デフォルトの名無しさん
2009/02/27(金) 09:32:58そういって参入して死々累々なのがタッチパッドインタフェース。
タッチパッドが悪いというより、なぜか指で操作させようとするのが
敗因だと思うけど。ペン操作は普及したし。
0318デフォルトの名無しさん
2009/02/27(金) 09:41:48ペンタブレットはあれはあれで、実は「細かい点の操作」に弱いって欠点があるんだな。
マウスやタッチパッドは、ポイント→その位置から動かさないでクリックって動作がしやすいんだけど
ペンタブレットだとそうも行かない。一応、少しだけ浮いた状態でポインタが出るんだが、それでも狙った位置からはブレやすい。
0319デフォルトの名無しさん
2009/02/28(土) 00:38:29タッチパネルは、もし安く高性能なものが普及しだしたら、それなりに便利だと思う
マウスでクリックしすぎると指が痛くなってくるけど、そんなとき画面をペンでポチって
できるのは、作業中の気分転換にいいかもw
0320デフォルトの名無しさん
2009/02/28(土) 01:31:43何の話だっけ?
0321デフォルトの名無しさん
2009/02/28(土) 03:01:32PerlもPythonもRubyも大きなテコ入れをしている件について
0322デフォルトの名無しさん
2009/02/28(土) 03:10:31>2008年第4四半期の売り上げで、前年同期比965%増という大躍進を遂げているのはObjective-C。
>ほかにActionScriptも33%増と好調。逆に落ち込みが激しかったのはRubyで、51%減となっている。
>ほかに落ち込みの大きい言語としては「JavaScript(24%減)」、「Visual Basic(15%減)」、「Perl(25%減)」、「Java(12%減)」などがある。
http://www.atmarkit.co.jp/news/200902/27/langs.html
0323デフォルトの名無しさん
2009/02/28(土) 04:05:250324デフォルトの名無しさん
2009/02/28(土) 04:06:47ruby本の落ち込みは、railsは一時的なブームだったということかな?
Objective-Cはiphoneアプリの開発言語だよね。macの売り上げも伸びたんだろうね。
phpは相変わらず人気だね。
0325デフォルトの名無しさん
2009/02/28(土) 06:11:510326デフォルトの名無しさん
2009/02/28(土) 07:34:42コード補完機能を備えた優秀な開発環境があれば
別にコードが冗長でもかまわないわけだし。
Pascalみたいにコンパイル速度が速ければ
インタプリタである必要もないし。
Rubyで使い捨て以外のプログラム書く理由がないわ。
0327デフォルトの名無しさん
2009/02/28(土) 08:54:46iPhoneの影響か。
長らくNeXT及び、その後継であるMac OS Xの専用言語に近い状態だったが、2007年に入り、Apple社の携帯電話iPhoneにおいてCocoa touchフレームワークの記述言語として採用。習得者の人口が増える傾向にある。
0328デフォルトの名無しさん
2009/02/28(土) 09:05:040329デフォルトの名無しさん
2009/02/28(土) 10:28:12ちょっとググレば出てくる情報に3000〜円とか出したくないし。
まあ、手元においておきたいときも、ないことはないけど。
本が売れてるって、実は言語(フレームワーク)そのものが使いにくいからじゃね?なんてうがった見方をしてみたり^^;
0330デフォルトの名無しさん
2009/02/28(土) 10:40:550331デフォルトの名無しさん
2009/02/28(土) 11:52:140332デフォルトの名無しさん
2009/02/28(土) 11:57:000333デフォルトの名無しさん
2009/02/28(土) 12:12:560334デフォルトの名無しさん
2009/02/28(土) 13:17:15他言語でもRails風フレームワークも増えてきたし、
敢えてRubyにこだわらなくてもいいような。
0335デフォルトの名無しさん
2009/02/28(土) 14:14:09メンテナはすぐヘソ曲げるし、
コミュニティの殆どは「誰か働けよ、中傷してやるからよぅw」モードだし、
普通に考えてRubyに価値があるわけないよね。
0336デフォルトの名無しさん
2009/02/28(土) 15:27:46初めにやったもん勝ちなんだよな、こういうのは。
0337デフォルトの名無しさん
2009/02/28(土) 18:37:400338デフォルトの名無しさん
2009/02/28(土) 20:32:570339デフォルトの名無しさん
2009/02/28(土) 22:32:21Rubyの教祖様ってPHPをさんざん叩いてた人じゃないの?
当のRubyはそんな有様だから足引っ張ってんのか?ww
0340デフォルトの名無しさん
2009/02/28(土) 23:59:35関数は既に用意されてることが多いからやっぱ強い(自作関数だらけにもならんし)。
ヴォキャブラリーの力が圧倒的だから
まあウェブ用途では当面代替になりそうな言語はないね。
0341デフォルトの名無しさん
2009/03/01(日) 00:22:09パッと見でPHPって、Webで使う用のCにしか見えないんだけど
0342デフォルトの名無しさん
2009/03/01(日) 00:32:08PHPは歴史を引きずって関数が増えてるだけ。
末期のBASICを思い出すわ。
DB接続だけで6種類以上あったり、勘弁してくれ。
0343デフォルトの名無しさん
2009/03/01(日) 00:34:11PostgreSQLとMySQLしかつかってないが。
B→Cときた自分としては、PealやRubyってすごくソースが見づらい。
0344デフォルトの名無しさん
2009/03/01(日) 00:36:15動かせる鯖多い
phpの利点なんて他に無いでしょ
ライブラリなんてpythonだろうがrubyだろうがperlだろうが不自由しませんよ
phpは書きやすくはないと思う。むしろ他より疲れる。
よくも悪くも馬鹿正直な子のイメージ
0345デフォルトの名無しさん
2009/03/01(日) 00:45:37PHPは書きやすいから沢山の人が読めて、多くの鯖がサポートしてるんだが。
0346デフォルトの名無しさん
2009/03/01(日) 00:57:26PHPの方がゴージャスなのでしょうか。
0347デフォルトの名無しさん
2009/03/01(日) 01:04:24書きやすくないよ。PHP以外の言語やったことは?
0348デフォルトの名無しさん
2009/03/01(日) 01:04:57PHPで書き直すことになって俺の作業がすすまん。。。
0349デフォルトの名無しさん
2009/03/01(日) 01:24:37普通は逆じゃないか?
サーバ依存のPerlコードなんてどんなのがあるんだろう。
モジュールが入ってないとかそんな問題では。FastCGIとかそういう関係かな。
書き方があんまり古いから、いっそ書き直すってのならわからんでもないが、
PHPの古いコードを書き直すのも大概しんどい作業だから、それは言語のせいではないし。
PHPで書き直す必要のあるシチュエーションがあんまり思い浮かばない。
0350デフォルトの名無しさん
2009/03/01(日) 01:41:08サーバーの中のことはあまり知らないんだが、今あるWebサーバーを
CentOSに集約する作業で動かないのが出てくる
パーミッションやら権限やらパスやら書き直したんだがやっぱり動かないんだわ
大半はメール、あとはDBやら出力の文字化けたりとかそんなかんじ
バッチの書き直しが俺に来なかったのだけが救い・・・
0351デフォルトの名無しさん
2009/03/01(日) 01:57:49コード読まずに環境変えて動かんってそれは仕方がない。
Perlのせいではないぞそれ。
むしろPHPの方が、バージョンや設定の違いのせいで書き直しとか動かんとか多い印象。
また、例えば/etc/aliasesいじってメールアカウントを量産するとか、パイプなどで
コマンド直に叩いてるとか、そう言った感じのサーバ依存処理をごにょごにょされまくってたら、
もともとPHPだったとしても多分ひどいことになってるだろ
> サーバーの中のことはあまり知らないんだが
一番の問題はこれじゃないかと。
結局これである程度できてしまうのが、PHPの利点ってことになるんだろうか。
欠点と言うことになるんだろうか。
0352デフォルトの名無しさん
2009/03/01(日) 02:37:01鯖見てる人がPerl使える人だから上司もそうか、じゃぁ仕方ないで俺に来るんだよね。
メールは、ライブラリ入れてるんだけど動かないっていう状態。 俺はパイプとかさっぱり。
普通にPHPの文法でDBから引っ張ってきてメール送信するように書き直してるだけ。
PHPもDB入れ替えたからSQL全部書き換えなんだが全く手が付けられん状態。。。
0353デフォルトの名無しさん
2009/03/01(日) 06:00:02文字の取り扱いが大きく変わってるからその辺りだろうね。
直すのにそれほどの手間じゃないと思うけどそれを出来ない人に任すような会社であれば
どのみちPHPにしてしまった方がいいかもね。
0354デフォルトの名無しさん
2009/03/01(日) 07:07:35PHPは誰でも使えるJavaとかC#みたいな感じ。
しかし、仕様の変さでハマりどころの多さVBやVBA並w
0355デフォルトの名無しさん
2009/03/01(日) 08:45:27馬鹿じゃね
0356デフォルトの名無しさん
2009/03/01(日) 09:38:27プログラミングを学ぶにはパイソンかルビーのどちらかが良いと聞いて3日ほど調べてるんだけど
ルビーの方がわかりやすい解説を見つけられるんでルビーにします
0357デフォルトの名無しさん
2009/03/01(日) 10:04:040358デフォルトの名無しさん
2009/03/01(日) 10:32:400359デフォルトの名無しさん
2009/03/01(日) 11:02:50ルビーに比べたらパイソンの資料が少ないのは否めないな。
レンタルサーバーへのインストールはどっちも少なくてガッカリするが。
0360デフォルトの名無しさん
2009/03/01(日) 11:58:250361デフォルトの名無しさん
2009/03/01(日) 12:18:04この二つから選んだ次第です
0362デフォルトの名無しさん
2009/03/01(日) 12:34:04趣味なら何でもいいんじゃないか。
0363デフォルトの名無しさん
2009/03/01(日) 12:54:45重要なのは中身さ。
英語ふくめればPythonの濃さは異常だぞ!
濃さ(マニアックさ?)で言えば最強はperlだと思うけどw
0364デフォルトの名無しさん
2009/03/01(日) 13:02:14全部受け止めた上で「だがそれがいい」って自然体で言ってのけるからな。
指摘に対して必死になりがちなRuby信者やPython信者には無い強さがあるw
0365デフォルトの名無しさん
2009/03/01(日) 13:02:31やるならforthをやれ
0366デフォルトの名無しさん
2009/03/01(日) 13:02:330367デフォルトの名無しさん
2009/03/01(日) 13:03:070368デフォルトの名無しさん
2009/03/01(日) 13:21:07私も読みやすいというのは大きな利点じゃないかとは思ったんですよね
すでにあるものをもう一度一から作るような真似は避けろともありましたし
0369デフォルトの名無しさん
2009/03/01(日) 14:24:48PHP→Python←いまここ
PHPから入ると組み込み関数に頼りすぎて他の言語をやる時に散々なことになる。
0370デフォルトの名無しさん
2009/03/01(日) 14:25:04あのインデントが総てにおいて正しい、とまでは流石に言わないが
かなりの場面で通用する、それなりに正しいインデントが身につく
0371デフォルトの名無しさん
2009/03/01(日) 17:21:39プログラムできるとかいう以前の問題だろ
俺のスクリプトルート
BASIC→C→C++→VB→VBA→Perl→PHP←いまここ
文字列関数とか連想配列とかどんだけ便利(ry
0372デフォルトの名無しさん
2009/03/01(日) 18:29:08インデントって...。どんなエディタつかってんだよ
作りたいものがないのに入門したいなら、Cとscheme。異論は認めない。
0373デフォルトの名無しさん
2009/03/01(日) 19:11:28まあプログラムがどう実行されるかを理解するなら両者が基本だよね。
それ以前のプログラミング手習いの段階なら多分Py,R,JSあたりで打鍵に抵抗なくした方がいいが。
0374デフォルトの名無しさん
2009/03/02(月) 09:36:59どなたかご利用の方いらっしゃいましたら使用感を教えてください
0375デフォルトの名無しさん
2009/03/02(月) 09:43:310376デフォルトの名無しさん
2009/03/02(月) 09:44:33バージョン通りの動きをするだろ。
WEBシステムの実装言語として使うなら、本体よりもむしろFastCGIやmod_**の方の
設定の可否などが大きいはず。そういうことを聞いてるのかな?
0377デフォルトの名無しさん
2009/03/02(月) 09:46:38レンタルサーバの使用感ならhosting板、
CGIのバックとしての使用感ならwebprog板で訊いて下さい。
0378デフォルトの名無しさん
2009/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];
}
これ、いろんな言語で、なるべく簡潔に書くにはどうしたらいいだろう?
0379デフォルトの名無しさん
2009/03/02(月) 14:11:16Perlで
my %request = ('hoge'=>1, 'fuga'=>2, 'piyo'=>3);
my %a = (); my @keys = ('hoge', 'fuga');
@a{@keys} = @request{@keys};
ググってサンプルを見ながら適当に。なんかおかしいorもっと簡潔に書けるかも。
0380デフォルトの名無しさん
2009/03/02(月) 15:00:14Perl って、
・連想配列の引数に、配列を与えられるのか。すげー。
・変数名のプレフィックスが型によって違うから、目がちかちかするのう。
Perl講座 2章 [変数]
http://www.site-cooler.com/kwl/perl/2.htm
0381デフォルトの名無しさん
2009/03/02(月) 15:02:53PHP@プログラム板
http://pc11.2ch.net/test/read.cgi/tech/1232712334/341-
Pythonのお勉強 Part32
http://pc11.2ch.net/test/read.cgi/tech/1234716330/275-
0382デフォルトの名無しさん
2009/03/02(月) 15:07:09Rubyはなんかメソッドうにょうにょでできそうだけど、俺は知らね。
0383デフォルトの名無しさん
2009/03/02(月) 15:08:14配列周りでぼんぼことフラット化する癖は……
0384デフォルトの名無しさん
2009/03/02(月) 15:32:05http://www.aoky.net/articles/steve_yegge/tour_de_babel.htm
> Perlは夏の台湾の通りの上で破裂したマッコウクジラだ。はらわたがそこら
> 中に飛び散って、車や自転車や歩行者を覆っている。それがPerlだ。本当に
> チャーミングだ 。
(略)
> Perlがリスト処理をできないのは、リストを自動的に平坦にするという救い
> がたく愚かな決断をラリーが初期にしたことによる。そのため(1, 2, (3,
> 4))は不思議なことに(1, 2, 3, 4)に変わってしまう。あなたはこんな風になっ
> てほしいと思ったことはないだろう。しかしラリーがある日たまたま何かの
> 問題でそうなるのが都合が良かったため、それ以来Perlのデータ構造はまっ
> たくの破裂したクジラとなってしまったのだ。
0385デフォルトの名無しさん
2009/03/02(月) 15:38:56釣れますか?
0386デフォルトの名無しさん
2009/03/02(月) 15:55:14irb(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に変わっただけだな。
0387デフォルトの名無しさん
2009/03/02(月) 16:20:28request = { 'hoge' => 1, 'fuga' => 2, 'piyo' => 3 }
keys = ['hoge', 'fuga']
a = Hash[*keys.zip(request.values_at(*keys)).flatten]
0388デフォルトの名無しさん
2009/03/02(月) 16:26:37*keys の * ってなにをするものなの?
良かったら教えて。ググりようがないので。
0389デフォルトの名無しさん
2009/03/02(月) 16:38:22中を展開すると理解してる。ちょっと違うかもしれないけど。
こうすると分かりやすいと思う。
p [1, 2, 3]
p *[1, 2, 3]
0390デフォルトの名無しさん
2009/03/02(月) 16:53:460391デフォルトの名無しさん
2009/03/02(月) 16:56:04ごめん、やっぱりよく分からない。
p *[1, 2, 3] は動くけど、
*[1, 2, 3] は動かない。どうなってるの?
リファレンスのどこに載ってるか、教えてもらえるととてもうれしい。
http://www.ruby-lang.org/ja/man/html/
0392デフォルトの名無しさん
2009/03/02(月) 16:57:470393デフォルトの名無しさん
2009/03/02(月) 17:40:45> メソッド呼び出し のところ
そういうことか!やっとわかった。ありがとう。
メソッド呼び出し - Rubyリファレンスマニュアル
http://www.ruby-lang.org/ja/man/html/_A5E1A5BDA5C3A5C9B8C6A4D3BDD0A4B7.html
ちなみに Pythonだと、* で配列の展開、** で連想配列の展開になる。
>>> def hoge(a, b, c):
... return a
>>> hoge(*['a', 'b', 'c'])
'a'
>>> hoge(**{'a':1, 'b':2, 'c':3})
1
4. その他の制御フローツール
http://www.python.jp/doc/release/tut/node6.html#SECTION006720000000000000000
なるほどRubyにもあったのか。
正直に言うと、Hash[], Enumerable#zip, Hash#values_at とか、全部知らなかった。
Rubyってホントにメソッドが山盛りだな。
まあ俺が無知なだけか。
0394デフォルトの名無しさん
2009/03/02(月) 17:42:26>>392さんの通り。
http://www.ruby-lang.org/ja/man/html/_A5E1A5BDA5C3A5C9B8C6A4D3BDD0A4B7.html
多重代入でも最後のメンバー限定で展開できたり。
a, b, c = [1, *[2, 3]]
p a, b, c
http://www.ruby-lang.org/ja/man/html/_B1E9BBBBBBD2BCB0.html#a.c2.bf.bd.c5.c2.e5.c6.fe
多重代入の左辺と、メソッドの仮引数で意味が変わったりする謎アイテム。
0395デフォルトの名無しさん
2009/03/02(月) 17:44:060396デフォルトの名無しさん
2009/03/02(月) 18:00:39するような。
0397デフォルトの名無しさん
2009/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];
0398デフォルトの名無しさん
2009/03/02(月) 18:51:45何かと思ったが、これは C++0x か!
すげえ、こんな風に書けるようになるのか!
0399デフォルトの名無しさん
2009/03/02(月) 19:09:040400デフォルトの名無しさん
2009/03/02(月) 19:22:370xだとdecltypeだったりstd::for_eachだったりunordered_mapだったりすると思うわけだが。
ロジックはまるっきり同じ。
組み込みの連想配列を持っていてfor .. in相当の構文がある言語ならなんでもこの形式で書けるんじゃないのかな
0401デフォルトの名無しさん
2009/03/02(月) 19:25:21['hoge','fuga'].inject({}){|x, y| x[y]=request[y]; x}
0402デフォルトの名無しさん
2009/03/02(月) 19:40:53def func(x, y):
x[y]=request[y];
return x
reduce(func, ['hoge', 'fuga'], {})
なんで無名関数使わないのかって?
Pythonのlambdaは代入とかできないんだようるせえな。
いいんだよPythonでは名前空間の不足に困ったりしないから。
あと何でも一行で書こうとするのは悪い習慣。
0403デフォルトの名無しさん
2009/03/02(月) 19:56:39> いや、D。
なんだそうか。C++に連想配列リテラルが組み込まれたかと思って驚いちゃった
よ。恥ずかしいな。
D vs C++0x - プログラミング言語 D 2.0
http://www.kmonos.net/alang/d/2.0/cpp0x.html#initializer-lists
0404デフォルトの名無しさん
2009/03/02(月) 19:59:170405デフォルトの名無しさん
2009/03/02(月) 20:10:250406デフォルトの名無しさん
2009/03/02(月) 20:17:38$request = @{hoge=1; "fuga"=2; 'piyo'=3}
$a = @{};
echo hoge,'fuga' | % { $a.$_ = $request[$_] }
0407デフォルトの名無しさん
2009/03/02(月) 20:22:05dict(reduce(lambda x, y: x + [(y, request[y])], ['b','c'], []))
0408デフォルトの名無しさん
2009/03/02(月) 20:24:010410デフォルトの名無しさん
2009/03/02(月) 20:40:140411デフォルトの名無しさん
2009/03/02(月) 20:40:260412デフォルトの名無しさん
2009/03/02(月) 20:53:22■ このスレッドは過去ログ倉庫に格納されています