【えっ】Perlに未来はあるのか?【終わり?】

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2007/06/02(土) 00:54:11
青春をともに過ごしたPerlの何がだめって言うんだよ〜
教えてくれ!
2007/06/04(月) 07:52:48
無駄にならんから続けろ。
2007/06/04(月) 10:52:21
perlの知識が無駄になることはないだろ。
もっといいものがこれから出てくるだろうが、
いざというときに計算尺が使えれば役に立つ。
2007/06/04(月) 15:33:10
perl?ムダだろ。
2007/06/04(月) 22:33:03
無駄だ。ruby覚えるよりはマシって程度。
2007/06/04(月) 22:37:43
覚えるも何も、最初からできるものだろ。PerlもRubyも。
2007/06/04(月) 22:52:15
何もかもが無駄
73デフォルトの名無しさん
垢版 |
2007/06/05(火) 00:43:31
偉そうに馬鹿野郎!
2007/06/05(火) 00:46:32
偉そうなのも無駄
75デフォルトの名無しさん
垢版 |
2007/06/05(火) 16:13:30
別に言語の種類なんてどうでもいいでしょ。肝心なのは目的のソフトを
作成する際にどれだけ的確でかつ修正にも柔軟な処理をかけるか?の
能力。結局は、オブジェクト指向や変数のカプセル化とかそういったところに
たどり着いてしまうんだけど、まぁ、そこまで知っていれば、簡単なプログラム
をつくる際でも、やりやすいよ。

とっかかりとしてperlは十分によい言語だと思うよ。
76デフォルトの名無しさん
垢版 |
2007/06/05(火) 16:41:58
>>75
今どんな言語やってますか?
77デフォルトの名無しさん
垢版 |
2007/06/05(火) 16:48:57
Rubyだろ。
78デフォルトの名無しさん
垢版 |
2007/06/05(火) 23:46:19
Base64さえ作れないへたれがCPANからあさりながら使うへたれ用言語です
2007/06/06(水) 00:28:36
ワンライナーとしても使い捨てスクリプトとしてもPerlよりRubyのがいいと思うよ。

初めて覚えた言語として、その手の仕事は4年間Perlに任せっきりだったけど
Ruby使い始めてからPerl使うことはなくなったなー。
短くかけるんだよ、Rubyは。Haskellが異常に短くかける理由に近いと思う。
(クロージャが手軽・組み合わせて使える汎用的な標準ライブラリの関数やクラス)

文法がCライクだったらもっと流行ってた気がする。主流にならないかな。
80デフォルトの名無しさん
垢版 |
2007/06/06(水) 20:58:20
Perlは今バブル気味で、へたれでも職があっていいぞ。
2,3年Perlやって、2.0できますみたいに言っとけば、
あほでも飯が食える入れ食い状態。
2007/06/07(木) 13:59:04
JavaFXで、不等号!=が<>になってるのとか、まじ勘弁。

&& → and, || → or, ! → notは、
やらない方がいいとはいえ、まだ許容範囲だけれど。
2007/06/07(木) 16:59:57
古きよきBASICを髣髴とさせる演算子。すばらしい
2007/06/07(木) 22:29:49
>>80
そんなにPerlの募集はないぞ
2007/06/07(木) 22:32:59
うん。はっきりいって無い。Ruby以上に無いかも。Pythonといい勝負。
2007/06/07(木) 22:40:47
そもそもスクリプト系言語で一番仕事にありつけるのって何よ?

今年や去年の話じゃないかもしれんが
本屋に行ってもPerlの本を見かけることがホント少なくなった
掲示板も日記もブログで代用できて
CGIとしての需要がなくなったんだろう
2007/06/07(木) 23:14:49
スクリプトとしてはPHP辺りか?
2007/06/07(木) 23:32:01
ttp://labs.cybozu.co.jp/
この辺とかではPerlは熱そうだが・・
2007/06/08(金) 08:09:17
今時perlでCGIはないだろ?
PHP, Java2EEの時代じゃないか?
2007/06/08(金) 19:31:02
いまどきC言語で盛んに開発が行われているのを考えると。
一度天下とって普及しちゃった言語はそうそう簡単になくならない。
2007/06/09(土) 01:08:52
C言語も盛んって感じでもないな。
保守が中心。業務系で新規でCはほぼ無い。
91デフォルトの名無しさん
垢版 |
2007/06/09(土) 01:15:24
やっぱこれからはRubyなのか?
興味ないこともないよ、日本人が開発したって言うしな
だがPerlを捨てはしない
Perlはすでに身体に馴染みすぎており、俺の青春だからだ!!
2007/06/09(土) 01:22:50
これからはRubyがくるかは限りなく怪しいが、Perl6が出てもよろしく。
2007/06/09(土) 02:15:01
>>89
COBOLやFORTRANでもすらなくならないくらいだからな。
94デフォルトの名無しさん
垢版 |
2007/06/09(土) 16:23:15
しょせんおもちゃですよ
2007/06/09(土) 16:32:02
しょりゃ、一度何か使われたものはなくならないだろう

しかし、流行り廃りはあるね
2007/06/09(土) 16:33:38
COBOLとかいつの時代の古代遺産だよw



今保守やってっけどさ、最近の言語で書き直したほうが総合的には安く上がると思うんだよな。
2007/06/09(土) 16:35:16
>>96
それは、さすがにない
2007/06/09(土) 18:13:53
昔COBOLer


今PHPer
2007/06/10(日) 01:35:07
>>97
クリティカルじゃないのに、COBOLで組んであるやつは
全部書き直した方が安くなる場合もあるよ。
100デフォルトの名無しさん
垢版 |
2007/06/13(水) 08:04:36
PERLは一生不滅ってことでOk??
2007/06/13(水) 19:07:39
おk
2007/06/18(月) 12:16:01
JavaFXのselect operator

function factors(n) {
return select i from i in [1..n/2] where n % i == 0;
}

ちょっときついなあ。慣れても可読性が上がらない感じ。
Haskell: [n | i in [1..n/2], n%i == 0]
2007/07/06(金) 23:49:12
一応、擁護派。
UNIX系システム管理の世界の者ですが、perl無しでは考えられんとです。
perlの正規表現は便利で手放せないが、実はコレが意外と遅くてリソース喰う。
ギガ単位のログを相手に戦う時なんかは、なるべくunpackやsubstrを使ってパターンマッチ
を行うとよいね。
2007/07/07(土) 18:42:18
非効率極まりない正規表現を書いてるんじゃないか
2007/07/09(月) 20:57:56
まあ、パフォーマンス相手のときは、
無理やり正規表現で絞らないで、プログラムコードで
補助してあげるといいよね。
2007/07/16(月) 16:00:22
>>103
数年前に商用 UNIX にもデフォルトで Python が付いて来るようになってから
おいらは変節してしまいますた
2007/07/19(木) 15:12:42
> プログラムコードで補助してあげるといいよね。

意味不明ですね。w
2007/07/25(水) 21:20:01
そうですねw
2007/07/26(木) 00:02:48
ああ、それはね

m{^(ab)(cd)} ⇔ ,
2007/07/26(木) 00:05:10
…と、途中で送信されてしまった。すまない。

たとえば:

m{^(a.)(.b)}

と書くなら、素直に

m{^a.} and m{^.b}

こう書いてしまったりするような手法を取ったほうが、
パフォーマンスがあがるってことを言いたかっただけ。
2007/07/26(木) 00:10:06
うわあ間違いw
^(?=a.)(?=.b)の間違いです ('A`) うわぁ…
2007/07/28(土) 13:06:25
でも初学でPerlは厳しい気がする。
変な癖のコード見てそれが自分の基底に定着したらまずい。
Perlはある意味上級者向け言語。
2007/07/28(土) 14:01:08
>>110
それ本当に速くなりますか?
2007/07/28(土) 19:53:02
>>113
意味としての高速化パターンの指針を書いただけで、
このパターンで速くなるかどうとかは知らない。
もっとも、再コンパイルさせないとか色々もっとやるべきこともあるわけだし。
2007/07/29(日) 22:15:28
速いかどうかって、ふつーベンチ取ってからいうことだと思うんだ。
頭悪いのもいい加減にしてもらいたい。
2007/07/30(月) 20:50:51
>>115
単なる手法や方針にそのようなことを言われても…。
まあ、無価値だと思うならスルーしてくれ。
2007/07/30(月) 21:27:21
せめてその指針が有効である根拠を示してくれないと、おまじない以上にはならないだろ。
2007/07/30(月) 23:09:13
そこまで言うなら、↓。相当適当。
もっと効果的な場面があるだろう。適当に考えてください。

use Benchmark qw(:all);

srand 1; @variation = a..z; @lines = map {join '', (map {$variation[rand() * @variation]} (1..200))} (1..1000);

timethese 5000,
{'complexRegex' => sub { m/^(?=abcdef)(?=ghijklm)/o for(@lines); },
'simpleRegex' => sub { m/^abcdef/o && m/^ghijklm/o for(@lines); },
'simpleRegex2' => sub { m/^(?=abcdef)/o && m/^(?=ghijklm)/o for(@lines); },
'singleRegex' => sub { m/^(?=abcdef)/o for(@lines); },
'singleRegex2' => sub { m/^(?=ghijklm)/o for(@lines); }};

Benchmark: timing 5000 iterations of complexRegex, simpleRegex, simpleRegex2, singleRegex, singleRegex2...
complexRegex: 2 wallclock secs ( 1.81 usr + 0.00 sys = 1.81 CPU) @ 2757.86/s (n=5000)
simpleRegex: 1 wallclock secs ( 1.28 usr + 0.00 sys = 1.28 CPU) @ 3903.20/s (n=5000)
simpleRegex2: 2 wallclock secs ( 1.91 usr + 0.00 sys = 1.91 CPU) @ 2621.92/s (n=5000)
singleRegex: 2 wallclock secs ( 1.83 usr + 0.00 sys = 1.83 CPU) @ 2735.23/s (n=5000)
singleRegex2: 2 wallclock secs ( 1.83 usr + 0.00 sys = 1.83 CPU) @ 2735.23/s (n=5000)

>>117
まあ、色々言ってくれるのはいいんだけど、あなたの方で
理由もってきて否定するなり肯定するなりしてくれてもいいじゃない。
2007/07/30(月) 23:34:59
> まあ、色々言ってくれるのはいいんだけど、あなたの方で
> 理由もってきて否定するなり肯定するなりしてくれてもいいじゃない。

どんだけゆとりなんだよ。
2007/07/30(月) 23:37:53
>>119
悪いな、ゆとりは俺の2年下からだ。
もうお前はPerlについて話たいわけじゃなさそーだからこれで終わりな。
2007/07/31(火) 04:11:27
>>118
そのコードで何を計測しているつもりなんだ?

#!/usr/bin/perl -w
use strict;
use Benchmark qw(timethese);

my $i = 0;
my $str = join '', 'a'..'m';
my @line;
push(@line, $str), substr($str, 0, 0, chop $str) for 1..1000;

timethese(-5, {
  re1 => sub { /^(?=(?:abcdef|ghijklm))/ and ++$i for @line },
  re2 => sub { /^(?=abcdef)/ || /^(?=ghijklm)/ and ++$i for @line },
  re3 => sub { /^abcdef/ || /^ghijklm/ and ++$i for @line },
  idx => sub { index($_, 'abcdef', 0) == 0 || index($_, 'ghijklm', 0) == 0 and ++$i for @line },
});

@line = ();
push @line, join '', map +('a','b')[ rand 2 ], 1..10 for 1..1000;

timethese(-5, {
  re1 => sub { /^(?=ab..)(?=..ab)/ and ++$i for @line },
  re2 => sub { /^(?=ab..)/ && /^(?=..ab)/ and ++$i for @line },
  re3 => sub { /^ab../ && /^..ab/ and ++$i for @line },
  idx => sub { index($_, 'ab', 0) == 0 && index($_, 'ab', 2) == 2 and ++$i for @line },
});
2007/07/31(火) 06:18:05
>>106
俺も似たようなもんだけど、正規表現まわりだけはPerlで。
2007/08/01(水) 23:25:07
>>118
アホ?
2007/08/02(木) 02:44:45
> まあ、色々言ってくれるのはいいんだけど、あなたの方で
> 理由もってきて否定するなり肯定するなりしてくれてもいいじゃない。

ヒステリックな人でつね。www
2007/08/04(土) 10:01:59
ゆとりじゃない=天然->救いようが無い
2007/08/04(土) 10:16:29
>>118
・?=はもし必要なければ、ないほうがいい
ってだけで、
・|を分解すると速いってのは
むしろ否定されているのでは?
2007/08/12(日) 22:42:35
先生!
ゆとりはかわいくありませんが天然はかわいいと思いますっ!
128デフォルトの名無しさん
垢版 |
2007/08/13(月) 17:00:49
なんか楽しそうなお話なので、参加せてください。

 「|」は遅い。

これ常識ですよ。何も、>>118>>121 みたいな小難しいコードを書かなくても
ストップウォッチで計れば十分。否、腹時計でも十分っすよ。
あまりにも速度の差が歴然としすぎていて、今まで時計で計った事なかったなぁ・・・

遅い根拠は、regexp のソースコード読めば分かります。
もっと言えば、自分で regexp もどきでも作ってみればわかります。

まず簡単な例・・・C言語には strstr() って関数がありますよね?
文字列Aの中から、文字列Bが含まれる位置を返す。正規表現なしの単純な機能です。
これと同じものを自分で書いてみてください。簡単に書けると思います。初歩の初歩です。

では、これを拡張して、正規表現の | が使えるようにしてみてください。
(正規表現には、他にも*とかありますが、今回はとりあえずは | だけでいいです)

コードを書いてるうちに気づくはずです。「こんなメンドクサイ事するより、strstr() && strstr() でいいじゃん! 」
そうです。絶対そのほうが安くて早くてウマイんです。

ではなぜ、正規表現に | があるのか?それはですね、「1行で書きたいから」
コマンドラインから sed とか grep とか、あるいは perl のワンライナー使うときは、どうしても1行で書く必要があります。
でも、perl のスクリプトは2行でも3行でも分けて書くこともできるわけですから、| を使うメリットはあまり有りませんね。

人間止めますか、それとも|使いますか?
2007/08/17(金) 08:37:03
正規表現使えない奴はばかです。
2007/08/17(金) 09:08:08
状態遷移マシンも知らない奴はばかです。
2007/08/21(火) 18:34:44
>>128
なんかつまんなそうお話なので、参加せてください。

実装依存のチューニングは下らない。

これは常識ですよ。一般的には1個の正規表現が1回の処理で何百回も実行される事はないですし、
何十メガバイトものデータを処理する事も滅多にありません。
実装の多少の遅さはマシンパワーに任せて、読み易く修正しやすいコードを書く事こそが、
仕事の効率を上げる事につながる事は歴然としすぎています。

仕事の効率が上がる根拠は、自分が昔書いたコードを読んでみればわかります。
もっと言えば、他人のマジカルなコードを読めばわかります。

自分が昔書いたコードやら、他人が書いたマジカルなコードは、
読んで理解するのに時間がかかります。ぱっと見て複雑だとか、下手だとかを含めて、
読めば読むほど自分の理解できる書き方に全て書きなおしたくなる事が多いでしょう。

では、それを全部自分が良いと思う書き方になおせば良いのでしょうか?
そうではありません。

チューニングは要点だけでいいんです。何度も繰り返すループとか、データの規模がでかい部分とか、
そういう部分だけをチューニングして他は読みやすさに徹する。
修正するときは、絶対そのほうが安くて早くてウマイんです。

ではなぜ、チューニングの議論が起きるのか?それはですね、「虚栄心を満たしたいから」
コードの隅々までチューニングされたピカピカなコードへの憧れから、チューニングしたコードを書きたくなるのです。
でも、プログラミングの目的は正確に動くコードを作ることですから無駄チューニングをするメリットはあまりありませんね。

無駄チューニングやめますか?それとも人間やめますか?
132デフォルトの名無しさん
垢版 |
2007/08/22(水) 00:06:24
> 一般的には1個の正規表現が1回の処理で何百回も実行される事はないですし、
> 何十メガバイトものデータを処理する事も滅多にありません。


自分の尺度でしか物を見る事ができない。視野の狭いヤツの代表的な例。
世の中には、さまざまな人が居て、さまざまなデータを、さまざまな方法で処理している。
キミは自分の目の届く範囲だけが「世界」だと思い込んでやしないか?
2007/08/22(水) 00:39:21
最近、1個の正規表現が1回の処理で7000000回実行される処理をしています。
2007/08/22(水) 11:29:49
>>131
一行で要約すると「富豪プログラミングのおすすめ」

ちなみに>>118の問題は速くなってないこと。
2007/08/22(水) 11:58:42
>>128 >>131
なんか面白そうなお話なので、参加せてください。

strstr() && strstr() は長い。

これ常識ですよ。何も、>>128>>131 みたいな小難しい話を書かなくても
文字数数えれば十分。否、ぱっと見でも十分っすよ。
あまりにも文字数の差が歴然としすぎていて、今まで数えたた事なかったなぁ・・・

Perlプログラミングの最大の目的はいかに文字数を少なく処理を書くかですよ。
読みやすさなんか関係ないです。長々とコード書いて腱鞘炎にでもなったらどうするんですか?

人間止めますか、小難しい話やめますか?
2007/08/22(水) 14:40:41
>>135
一行で要約すると「Hmm... Looks like a unified diff to me...」
2007/08/24(金) 20:31:50
> 自分の尺度でしか物を見る事ができない。視野の狭いヤツの代表的な例。
> 世の中には、さまざまな人が居て、さまざまなデータを、さまざまな方法で処理している。
> キミは自分の目の届く範囲だけが「世界」だと思い込んでやしないか?

そういう発言をする意図を教えてください。
2007/08/24(金) 20:58:49
>>132

>チューニングは要点だけでいいんです。何度も繰り返すループとか、データの規模がでかい部分とか、
>そういう部分だけをチューニングして他は読みやすさに徹する。
>修正するときは、絶対そのほうが安くて早くてウマイんです。

ここを読めば藻前の指摘がいかに視野の狭いものか分かるんじゃないか?

>>131は「『人間止めますか、それとも|使いますか?』は言いすぎだ」って意図で>>128を皮肉って書いたんじゃねえの?
2007/10/20(土) 16:15:46
Parrotの時代が来ても(来るのか?)Perl5が動くのを当てにしてるからこそ、
Perl5のアプリやモジュールをガンガンエネルギー費やして書いてるって奴いる?
どうせ、(Parrot上で動くのではない)Perl5をシステムから削除できる日なんて来ないよな。
SVK便利すぎてワロタ
140デフォルトの名無しさん
垢版 |
2007/10/25(木) 10:55:52
5.10期待age
2007/10/25(木) 11:54:24
一行野郎的でもrubyに負けると聞いたよperl
2007/10/26(金) 14:51:14
rubyは盛んだけどperlって沈む一方だよね
2007/10/26(金) 23:58:26
perl大好き!
偉そうに最低とか言ってるやつもいるけどお前につくれるのか?と問いたい。
(他の言語も同様)

言語よりもへぼな設計の方がよっぽどパフォーマンスに影響するしね。
144デフォルトの名無しさん
垢版 |
2007/10/27(土) 00:29:09
ただ、履歴書や経歴書やスキル表に「prel」とか書くなよ。
ふつう、「バッチファイル」と書かんだろ?それと同じ。
そんなの、できた当たり前のものだからだ。
就職の面接時にも決して「perl」は口に出してはならない。
不採用フラグが立つ。
2007/10/27(土) 00:34:07
例えば XML::Validator::Schema の作者ともなれば別だけど…
2007/10/27(土) 00:35:24
>>144
まぁ「prel」と書いてあったら確かに俺は落とすだろうな。
2007/10/27(土) 01:00:44
確かに、prelはできた当たり前のものだもんな
2007/10/27(土) 01:12:52
例えば Plagger の作者ともなれば別だけど…
2007/10/27(土) 07:09:07
自信を持ってPerlと書いてくるんなら、作ったものを見せて欲しいとは思う。
採用するかどうかは別としてな。
150デフォルトの名無しさん
垢版 |
2007/10/27(土) 18:06:04
Perl6 を Perl (perl) の名前で押し通すのはやめてほしいな。
ださださだけど OPerl (operl) [オパール]とかにしておいて
ほしい。
もちろんラクダは旧世代系専用ね
2007/10/27(土) 22:01:37
書くことないから言語名とか書くんじゃないかな
中にはよほど自信があるケースもあろうが
2007/10/27(土) 22:32:26
履歴書に使える言語書くのは普通だろ(何をもって使えるかは別として)。
ただ、Perlだけが書かれていたら、ちょっと気になるな。
CやJava、VBやPHPなんかだと、それしか出来ないのねとしか思わないんだけど。
2007/11/01(木) 11:03:51
飯食って生きていくだけの金がもらえれば、言語なんてどうでもいいんじゃね?
2007/11/01(木) 16:42:45
まあそうね。
まっとうなサンプルコードとまっとうなドキュメントがあれば1週間で慣れるだろうし。
2007/11/02(金) 03:39:23
まっとうなドキュメントなんか読むヒマあったら、ソースコード読めばいいよ。
2007/11/02(金) 10:53:12
え、BNFじゃなくて?
2007/11/05(月) 20:28:55
ソースコードとかBNFだけ読んでもそれが何をするか分からんだろ。。。
$_の存在とかを解説されず悟って理解できるやつはあんまいないだろ。。。
2007/11/06(火) 10:46:54
> $_の存在とかを解説されず悟って理解できるやつはあんまいないだろ。。。

。。。
2007/11/06(火) 11:38:04
釣られてやるか。

少なくともBNFではシンタクスしか理解できんわな。
セマンティクスはBNFでは表現できないし、理解できない。

ソースを読めるかどうかは、前提となる技術や理論や知識を読み手が持っているか
どうかにかかっているが、ソースがモデル化している概念や仕様に関する
知識が零である場合、ソースを読んでそれを再構成しようとするのは非常に
難しくなる。それが複雑であればあるほどに。

>>155-156は口だけ厨房だな。
2007/11/06(火) 13:38:11
はいはいよかったね。ぼくちゃんおりこうさんだね。
2007/11/08(木) 03:32:02
http://upup.s13.dxbeat.com/up/up2544.jpg
162デフォルトの名無しさん
垢版 |
2007/11/09(金) 04:38:28
バベル案内
http://www.aoky.net/articles/steve_yegge/tour_de_babel.htm
Perlもまた、間もなくなくなる。
2007/11/09(金) 05:56:49
(・∀・)ニヤニヤ
2007/11/12(月) 01:05:52
なんか最近autrijusが飽きてどっか行ったように見えるんだが・・・、
2007/11/12(月) 09:24:11
というかPerl6コミュニティに人がいない…
166デフォルトの名無しさん
垢版 |
2007/11/12(月) 16:20:45
ユニコード化に失敗したのが致命的。
EUCコード専用言語なんて誰もつかわないよ。
2007/11/12(月) 16:42:51
Unicode化は最も成功している言語の一つだけど…
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況