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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2007/06/02(土) 00:54:11
青春をともに過ごしたPerlの何がだめって言うんだよ〜
教えてくれ!
2008/07/23(水) 20:35:44
>>401
ユニコード ∋ UCS2, UCS4, UTF-7, UTF-8, UTF-16, UTF-32

確かに ユニコード≡UTF-8 は成り立たないが ユニコード≡UTF-16も成り立たない。

ゆえに「ユニコードはUTF-8ではない」が真ならば「ユニコードはUTF-16ではない」もまた真になる。

ユニコード∋UTF-16 をもって 「ユニコードとはUTF-16の事である」というのであれば、
ユニコード∋UTF-8 なので 「ユニコードとはUTF-8の事である」もまた真になる。

一般用語としてのユニコードがUTF-16を指すとしても、
UTF-8との比較対照としてUTF-16を扱う場合、ユニコードをUTF-16として語る事は
釣り餌以外のなにものにもならない。

UTF-8を使う事がどうしていけないのか、UTF-16がUTF-8と比較してどんな利点があるのか
具体的に例示しないのは、本人がユニコードとUTF-16とUTF-8について理解してないからだと思われ。

注1) ∋ は集合論の記号。右に列挙したものが左の集合の要素であるという意味。
注2) ≡ は集合論の記号。左右がまったく同じものという意味。
2008/07/23(水) 20:49:22
UTF-8は1バイト圏の人が嫌々国際化に対応した結果です
2008/07/23(水) 21:16:23
>>402
一般的にはUTF-32(CEF)じゃないのか?
2008/07/23(水) 21:29:42
シフトJIS が生まれる前のパソコンって、どんな漢字コード使ってたか知ってるよね?
そう、JIS漢字コード(JIS6226)だね。ちょっと常識すぎたかな。
UNIX も、マイクロソフトのBASICを乗っけたパソコンも、漢字はJIS漢字コードを使ってたんだよ。
ところが、これが非常に使いにくい。ASCII の1バイト文字とJIS漢字を共存させるのが、えらい苦労する。
そこで、ゲイツ一味が考え出したのが、シフトJISってワケ。
これは、JIS漢字コードに無理やり数値を足したり引いたり掛け算したり・・・
で、ASCIIコードと重ならないように工夫したコードなんだね。

UTF-8 ってのは、このシフトJIS のユニコード版と言えるかな。
笑われるのを覚悟で言って見れば、「UTF-8 とは、シフト・ユニコードである」 ってところだろうか。
(・・・あ、こんな言葉は無いから外では使うなよ。たった今オレが思いついた言葉だからね)
ユニコードと1バイトASCIIコードは共存できない。そこを、無理やり、数値を足したり引いたり掛け算したり・・・
で、ASCIIコードと重ならないように工夫したわけさ。ほら、シフトJISと状況が似てるだろ?

ということで、UTF-8 はシフトJISと同じ問題をはらんでいる。
つまり、コンピュータの文字の内部表現には向かない、って事。
たとえば、頭から10万文字めを取り出す、という処理を考えると、先頭の1バイトめから順々に数えなければ
10万文字目が特定できない。次の10万1文字めを取り出すには、またまた先頭の1バイトめから順々に数えなければ
文字が特定できないって事なのよ。大量の文字列を扱うのにはスピード的に不利なわけ。
ユニコードで内部処理していれば、こんな事にはならない。単なる文字の配列だから10万文字めだろうが10万1文字め
だろうが、素早くランダムアクセスできるからね。

いつまでも内部表現にUTF-8を使い続けるのは、問題を先延ばしにしているだけで、未来は破綻が待っている。
2008/07/23(水) 21:44:47
にもかかわらず、UNIX系OSがUTF-8に固執するのは、OSがC言語で記述されているから。
UNIXのシステムコールもC言語から呼ぶことになっている。
UNIXはすべてC言語が基本なんだね。

ところで、ユニコードの"ABC"という文字を、C言語のライブラリに渡すことを考えてみよう。
int fd = open("ABC", O_RDONLY);
ユニコードの"ABC" を受け取った open 関数はどういう挙動をするか?
ユニコードの"ABC" は char の配列 { 0x41, 0x00, 0x42, 0x00, 0x43, 0x00 } と解釈されてしまう。
(インテルCPUの場合)
ここで注意しなければならないのは、 0x00 は文字列の終端記号に間違われてしまうという事。
文字列に \0 が含まれていると、それが文字列の終わりという腐った約束ごとがあるから
結局、open 関数には "A" というファイルをオープンしようとするだろうね。

つ・ま・り、UNIX系OSは、どうあがいても、泣けど叫べど、絶対にユニコード化は不可能。
だから UTF-8 に固執してるんだよ。
くやしかったら 文字列の終端が \0 って言うクソ仕様を廃止してみろwww
407デフォルトの名無しさん
垢版 |
2008/07/23(水) 21:53:12
>>405
先頭から何文字目の文字とかを扱うのってそんなに重要か?

まあ、それが重要だとしても、UTF-16だって先頭から数えなきゃならない。
なぜならサロゲートペアってものがあるから。

そんなにユニコード完全準拠が必要だと思うなら、UTF-32(UCS4)を内部表現に使うように主張するべきじゃね?
2008/07/23(水) 22:02:14
>>405
> で、ASCIIコードと重ならないように工夫したコードなんだね。

重なってる。
2008/07/23(水) 22:03:56
>>406
うーん、C言語について、誤解してるようだが・・・。
\0というのは、別に、(0000 0000)bを意味して無いぞ。

オリジナルのC言語は6bit=1キャラクタのマシン(PDP-7)で動作していた。
それが今の8bit=1キャラクタのマシンに移植できたんだから、
16bit=1キャラクタだろうが、32bit=1キャラクタだろうが

C言語の言語仕様としては全く問題は無く扱える。

まあ、問題があるとすれば、
1キャラクタ(1Byte)=8bitを前提としたビットアクセス、 union、ポインタ操作などだけど、
その辺はフィルタ作ればソースから抽出するのはさほど難しくは無い。

2000年問題に対応した時の規模の修正で対応可能だろう。
2008/07/23(水) 22:05:23
>>407
UTF-32 って、後から出来た規格じゃん。
後出しジャンケンに勝ってたくらいでいい気になるなよ。
ぜんぜん普及してないんだし。
2008/07/23(水) 22:09:30
>>410
サロゲートペアに反論は?
2008/07/23(水) 22:12:12
>>409
ほうほうほう。それは勉強になった。
で?UNIXは、なぜ1キャラクタ16ビットや32ビットのCコンパイラを使わないの?
そうすれば数々のユニコード問題が一気に解決するじゃん。
そんな石器時代の石斧を持ち出して自衛隊に持たせても、北の侵略から日本は守れないぞ〜
2008/07/23(水) 22:13:41
gccのwchar_tは4バイトなわけだが・・
2008/07/23(水) 22:22:56
>>412
それこそ後出しジャンケンだろ。
UNIXにしても、Linuxにしてもユニコードが普及する前からやってるわけで、
最近は64bit対応とかワイドキャラ対応とかで順次対応が進んでる状況なわけだ。

少なくとも2036年問題対応の頃までには、longは64bitか128bitになってるだろうし、
必要性があれば、内部文字コードがUTF-32になってるかもしれない。

もっとも、charを16bit(32bit)にするアプローチがいいのか、wchar_tを標準にした方が良いのかは
十分議論を尽くしてないだろうから、wchar_tを文字列の標準にする方向になるのかもしれないが。
2008/07/23(水) 22:28:00
で?UNIXは、なぜ1キャラクタ16ビットや32ビットのCコンパイラを使わないの?
2008/07/23(水) 22:29:56
perl もC言語で記述されてるんでしょ?
だったら1文字16ビットや32ビットのCコンパイラでコンパイルした perl を使えばいいじゃん。
ユニコードとか utf8 とか、メンドクサイ事を考える必要無いじゃん。
なぜそれが出来ない?
2008/07/23(水) 22:35:44
何か痛いのが居るな
2008/07/23(水) 22:40:43
だから、サロゲートペアの反論は?

UTF-32が後出しジャンケンだっていうけど、藻前が主張したいのはWindowsの実装こそ正義って話?
UTF-32なら藻前が言った先頭から何文字目とかの話に対応できるから、
藻前がその話を引き合いに出すならUTF-32を内部コードにするべきって主張するのが本当だろうって話なんだが?
2008/07/23(水) 22:41:45
Win厨必死だな。
2008/07/23(水) 23:08:22
合成や正規化の問題があるから、UTF-32にすればハッピーというのも何か
微妙な気がするんだが、
せいぜいサロゲートペアが消えるだけでしょう
2008/07/23(水) 23:16:38
1文字1Byteの国の連中(マイクロソフトを含む)が、1文字1Byteじゃ表現できない範囲をカバーするために提案したのがユニコード。
当初は何が何でも2Byteに収めようとかなり強引な事(見た目が同じ文字は1つのコードにまとめる等)を色々やってUCS-2を作り上げた。
それを表現する方法として作ったのがUTF-16。

でも1文字1Byteじゃ表現できない文字を扱ってる国からの反発がものすごくて、Unicode2.0では21bitに拡張され、結局32bitのUCS-4が作られた。
1文字1Byte圏批判をするなら、当初の頃Unicodeを2Byteに押し込めようとした連中を批判すべき。

UTF-8に対するUTF-16の優位性なんて、Unicode2.0誕生でサロゲートペアが出来て以後ほとんど無いのに、
妄想でUTF-16賛美UTF-8批判するヤツはオカシイと思う。


「Microsoftが採用してWindowsの内部表現になったからすごいんだ」と言いたいならはっきりそう書けばイイジャン。
2008/07/23(水) 23:19:54
UTF-16でサロゲートを見なかった事にするのが一番現実的
2008/07/23(水) 23:21:11
「UTF-32にすればハッピー」ってどこに書いてあるの?
2008/07/23(水) 23:24:59
>>423
> UTF-32なら藻前が言った先頭から何文字目とかの話に対応できるから
UTF-32にしようが、この問題はちっとも解決しないでしょ、ってこと
2008/07/23(水) 23:27:15
ASCII混在ファイルが現役で大量に残ってる間は、英字部分だけでもASCIIと互換性があるUTF-8を使うのが一番現実的。
HTMLだって、metaタグのcharset見て処理できるような仕様になってるのは、ASCII混在が前提になってるから。
2008/07/23(水) 23:29:07
>>424
ん?サロゲートが消えて1文字32bit固定になれば、
「単なる文字の配列だから10万文字めだろうが10万1文字めだろうが、素早くランダムアクセスできるからね」
が出来るようになるんじゃねえの?
2008/07/23(水) 23:39:10
>>426
UTF-32ならUCS-4の「コードポイント」を確かに32bitの整数一個で表現できるけど
Unicodeの仕様では、今や一つの「文字」が一つのコードポイントに
必ずしも対応しないわけですから、
> 先頭から何文字目
のような「文字」ベースの話では、どのみち問題はおきますよ、と言ってるんですよ
2008/07/23(水) 23:42:55
>>427
そうか。
つまり、>>405>>418もユニコードに関しては素人だって事ね。
2008/07/24(木) 00:21:06
encode,decode使ってればいまのとこそんなに困る事もないし
行き詰ったらラリーがどうにかしてくれるから
いい加減unicodeスレに帰ってください
2008/07/25(金) 09:32:05
え?今後は Perl 6 だから、 Perl 5.x での問題はなくなるんじゃないの?
まぁ、 Perl 5.x とそれで動くプログラムは切り捨てられるんだろうけど。
2008/07/25(金) 09:36:19
10000対1で、切り捨てられるのはPerl6
2008/07/25(金) 10:39:19
え?今後は BTX だから、 ATX での問題はなくなるんじゃないの?
まぁ、ATX とそれで動くボードは切り捨てられるんだろうけど。
2008/07/25(金) 12:54:25
え?今後は Vista だから、 XP での問題はなくなるんじゃないの?
まぁ、XP とそれで動くプログラムは切り捨てられるんだろうけど。
2008/07/25(金) 13:00:21
え?今後は 「ねんきん機構」 だから、 「社会保険庁」 での問題はなくなるんじゃないの?
まぁ、 消えた年金5000万件 とそを納めた被保険者は切り捨てられるんだろうけど。
2008/07/25(金) 13:19:32
つまんね
2008/07/25(金) 13:59:34
え?今後は Mach だから、 UNIX での問題はなくなるんじゃないの?
まぁ、 UNIX とそれで動くプログラムは切り捨てられるんだろうけど。
437デフォルトの名無しさん
垢版 |
2008/08/02(土) 01:11:14
「美しいコードを書けるからRubyを選んだ」---Ruby on Rails作者 David Heinemeier Hansson氏:ITpro
http://itpro.nikkeibp.co.jp/article/NEWS/20060620/241346/


DHH:いろんなPerlソースを見ていると,頭が爆発しそうでした。
なぜかというと,どのコードを見てもスタイルがそれぞれ違って,
正しいのはどれかがわからない。
それぞれおもしろいんだけど,自己主張が激しすぎると感じました。
一方で,Rubyで書いたものはどれも,
同じことをする場合はだいたい似たように見える。
この「統一感」がすごく重要でした。
2008/08/02(土) 03:49:14
そりゃPerlにくらべりゃな・・
2008/08/02(土) 07:32:10
>>437
そのURLのページに、そんな文章ないんだが・・
2008/08/02(土) 09:14:40
そこで Perl6 ですよ。
2008/08/02(土) 09:37:55
Lakeの書式見てRubyイイと言い出す人間は多いな。R&Rもそのクチじゃないかな。
442デフォルトの名無しさん
垢版 |
2008/08/02(土) 11:03:56
一つの動作を色々な書き方ができるほうがいいのか
一つの動作なら同じ書き方で統一するほうがいいのか
これは価値観の問題じゃない?
2008/08/02(土) 11:10:00
まぁそうだが、同じ動作なら読むほうにとっては後者が歓迎されるんじゃね
2008/08/04(月) 00:18:55
統一感を求めるならPythonのほうがよくね?
2008/08/04(月) 03:27:14
Pythonも使ってるけど、コンソールコピペで叩けるような長文ワンライナができないと面倒な感じ
その意味ではまだRubyかな
SpiderMonkeyあたりがコンソールライブラリ充実したらRubyとか糞とか言える日が来るかもしらんけど
2008/08/04(月) 07:08:53
>>440
ますます迷走してるし
2008/08/04(月) 09:47:30
今から初めてプログラミングをする人が選ぶならば、PerlとRubyどちらがいいと思う?
ただし、職業としてでなく、あくまで自分で使うため。
書籍も多数発売されて、Rubyを学ぶ環境は問題なくなりつつあるよね
Perlとは違った意味でRubyにも将来性の不安というのはあるけれど…


実はどちらも勉強するが正しいのかな
2008/08/04(月) 10:11:43
どっちもやれよ。
2008/08/04(月) 10:51:22
でもそれじゃ話が進まない。
どちらか一方をと言われたら?
2008/08/04(月) 11:05:44
どっちもやれ
2008/08/04(月) 11:22:29
では、どちらを先にやりましょうか
2008/08/04(月) 14:11:01
php
2008/08/04(月) 16:26:25
perlとphp長いことやってきたけどやっぱいろいろできるperlのがいいな
2008/08/04(月) 17:53:41
>>451
perlとruby
2008/08/04(月) 18:34:44
>>447
Perl
2008/08/04(月) 23:34:29
perlの将来性は確かに不安だ
だが、rubyやpythonに将来性があるかといわれると、それも大いに疑問だな
phpは立ち位置が違うから比較にならない。上の3つのどれかを知っていても別に覚える意味はあると思う。
457デフォルトの名無しさん
垢版 |
2008/08/05(火) 00:27:50
迷ってる暇があったらとっとと習得すればいいだろ。
今週はPerlをマスターして、来週前半でRuby、後半でPythonを
マスターすれば良い。
458デフォルトの名無しさん
垢版 |
2008/08/05(火) 01:05:52
Perlに未来があるとすればUnicodeを捨てて、もとのPerlに
戻るのみ。
幸いにも癌は取り除きやすいようにパッケージされている。
2008/08/05(火) 05:49:44
>>457
どんだけ記憶力良いんだよ
2008/08/05(火) 05:53:55
Rubyだけやった方がいい
Perlやって変なクセつくより、オブジェクト指向のRubyだけを勉強した方がいい。
多けりゃいいってもんじゃないんだよ。
2008/08/05(火) 21:02:07
PerlをいやになるぐらいやってからRubyのほうが感動するらしいぞ。
2008/08/05(火) 22:34:56
その頃にはRubyがあるかどうか…

あっても大幅に仕様変更しているだろう
2008/08/06(水) 07:47:51
>>461
今、Perlを嫌になるほどやれるシチュエーションってないな。
もうPerlでCGIって時代でもないし。Perlのwebフレームワーク使った案件もないし。
せいぜいワンライナーとかチョンプロぐらい。
2008/08/06(水) 09:59:50
この板別に職業プログラマだけとは限らんのよ?
2008/08/08(金) 22:15:05
Rubyもまたいずれ暴走するんだろうな
2008/08/08(金) 22:20:55
「仕事でやむをえず」以外に、いまさらPerlなんぞを使う理由って何かあんの?
趣味ならもっとマシな言語を好きに選べるのだし、選んだほうが幸せになれるだろ

まあPerlは非常に広い範囲で使われてるから、知っておくと便利は便利だが
それを言うならもっと先に学ぶべき言語はいくらでもある
2008/08/09(土) 08:33:28
>>466
webならPHPってこと?でもPHPから入らないほうがいいって意見もあるんだよねえ
さすがにCじゃ荷が重いだろうし…となると、やっぱりRubyってならない?
2008/08/09(土) 12:56:50
Perl6ついに今年のクリスマスにα版が?
http://rikunabi-next.yahoo.co.jp/tech/docs/ct_s03600.jsp?p=001357
2008/08/10(日) 11:54:05
>>468
な〜んだ。それって、Perl6が発表された時がクリスマスって言ういつもの話じゃないか。

それよりも、Perl6の日本語の情報がほしいお……
2008/08/10(日) 16:22:17
ウェブなら、PHPかPerlでいいんじゃない。モダンなスクリプト言語ならPythonってなるだろうし、Rubyにはメリットというか、存在意味を感じない。
2008/08/10(日) 17:43:34
>>470
RGSSやるならrubyを勉強するしかないお
2008/08/11(月) 08:44:01
>>470
ラリーが言ってるんだから例年のクリスマスよりwktk出来るだろ
2008/08/11(月) 08:48:43
wktkって…
過去に書いたコードが死ぬ日がそんなに楽しみですか?
2008/08/11(月) 14:52:14
use perl5とか出来るんでしょ
475デフォルトの名無しさん
垢版 |
2008/08/11(月) 14:57:09
ruby perl 比較 python ruby perl ruby perl 違い ruby perl php ruby perl 速度
2008/08/11(月) 15:49:46
これから書くコードのことを考えてwktk出来るだろ
2008/08/11(月) 20:38:13
>>474
親切な管理者の場合はそうだろうね
2008/08/11(月) 20:39:21
>>476
君みたいに趣味でやってる人はいいけれど、
また作り直すなら、perlにこだわるより、将来性のある言語を選択するんじゃないの?
2008/08/11(月) 20:39:39
↑は一般的な話ってことね。
2008/08/11(月) 21:21:08
いや、でも Perl6 が発表されれば、それが一番将来性のある言語になるんでないの?

>>474 確かに use perl5; は必ず欲しいよね。
2008/08/11(月) 21:26:09
>>480 Perl6 が発表されれば
C++ 同様に Perl6 の仕様についてこれない落ちこぼれも発生するんだが
2008/08/11(月) 21:27:02
母数が激減してるので大丈夫です
2008/08/11(月) 22:46:06
>>478
選択なんぞせずに、どれもこれも使えばいいだけやん。
2008/08/12(火) 02:00:20
>>483
んでも、1つのプログラムならどれかひとつを選択する必要があるだろ?
その選択を、あえてperlにする必要はもうなくなったなって事だろう。
2008/08/12(火) 03:38:23
>>478
「言語の将来性は俺が作る!」という気骨のあるハッカーはいなくなってしまったのか……
2008/08/12(火) 08:58:57
>>485
いや、世界中のどこかにいるんじゃね?

もっとも企業ではもっと現実的な選択をする場合がほとんどだと思うけど。
2008/08/12(火) 12:42:41
>>481 そんなのいつものことですよ
2008/08/12(火) 14:11:15
Perl = webプログラミング

まぬけな考えだな。
2008/08/12(火) 14:51:38
Perlは凡プログラマにとっては糞言語
IOCCCやゴルフ好きのハッカーにとってはいいオモチャ

不幸にも、凡プログラマ以下の人間に使われていることが多いのが日本の現状だが
2008/08/12(火) 20:18:16
今はphpにシフトしてるから大丈夫です
2008/08/12(火) 22:31:45
webだけならそれでいいが…
perlの真髄は文字列やディレクトリの操作だ
2008/08/12(火) 22:49:57
Windows版のPerlとPHPはファイルパスをANSI文字列で扱っていて、
CP932に含まれない文字を含むファイルやディレクトリにアクセスできず困っています。
2008/08/12(火) 22:59:54
Windowsではただでさえ糞なPerlがゴミカスレベルになるんだから
違う言語使えよ
494デフォルトの名無しさん
垢版 |
2008/08/13(水) 02:01:42
>>8
へぇへぇへぇ
495デフォルトの名無しさん
垢版 |
2008/08/18(月) 16:39:04
Perl のオレオレるーる - 冬通りに消え行く制服ガールは、夢物語にリアルを求めない。 - subtech
http://subtech.g.hatena.ne.jp/cho45/20080818/1218995299
496デフォルトの名無しさん
垢版 |
2008/08/25(月) 05:07:00
http://pc11.2ch.net/test/read.cgi/php/1212947304/
2008/08/27(水) 23:54:08
parrotのリリースはなんでこんなにのんびりしているんだ?
498デフォルトの名無しさん
垢版 |
2008/08/28(木) 05:24:37



merb
http://wiki.merbivore.com/pages/tutorials
2008/08/28(木) 05:30:08
>>497
> parrotのリリースはなんでこんなにのんびりしているんだ?

クレクレ君ばかりで作業者が足りないんじゃね?
2008/08/31(日) 05:32:36
Perl5.12は、名前付きプロトタイプとかmethodの導入とか、
色々あるらしいね
なんだかgiven/whenと同様に、ソースフィルタが出回る機能は
実装しちゃえみたいな感がなきにしもあらずだけど
2008/08/31(日) 08:27:47
Perl6って、いつまで経っても普及しないIPV6と同じ運命になりそう
IPV4と同じくPerl5が延々と使い続けられる
2008/08/31(日) 09:56:14
IPv6には代替がないから、
v4使い続けるか、移行するかしかないが、
Perl6、Perl4の場合、他にも言語は幾らでもある。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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