探検
Perlについて
2008/08/04(月) 20:58:41
質問スレはあるけど、Perl自身について語るスレがないので、立てました。
427デフォルトの名無しさん
2011/10/02(日) 00:48:53.80 > そもそもカプセル化すら出来ないMoose系を使う気にもならんが
Perlはそもそもカプセル化できない言語なんだが・・・
Perlはそもそもカプセル化できない言語なんだが・・・
428デフォルトの名無しさん
2011/10/02(日) 00:50:03.20 EncodeとDBI以外はなくともなんとかなる。
429デフォルトの名無しさん
2011/10/02(日) 00:51:02.85 飛行機はなくともアメリカにいける
430デフォルトの名無しさん
2011/10/02(日) 00:51:57.05 それは無理だろ、そういうことを言ってるんじゃない。
431デフォルトの名無しさん
2011/10/02(日) 00:53:35.48 船の遅さを知っていれば、船を勧めるなんてことはしないのだが。
一つのことしか考えられない馬鹿
一つのことしか考えられない馬鹿
432デフォルトの名無しさん
2011/10/02(日) 00:54:38.70 >>426
{ package Mos ; use Moose; has 'x' => ( is => 'rw', isa => 'Int' ) ;}
{ package MosX ; use MooseX::InsideOut; has 'x' => ( is => 'rw', isa => 'Int' ) ;}
{ package Mou ; use Mouse; has 'x' => ( is => 'rw', isa => 'Int' ) ;}
{ package Mo ; use Moo; has 'x' => ( is => 'rw', ) ;}
{ package Obj; sub new { bless { x => 10, @_[1..$#_]}, shift } }
{
package Cap;
use Scalar::Util qw(refaddr);
my %h ;
sub new{ my $s = bless \my $o, shift; $h{refaddr $s} = { x => 10, @_ } ; $s }
sub DESTROY{ delete $hash{refaddr shift @_ }; }
}
package main;
use strict ;
use warnings ;
use Data::Dumper ;
use Benchmark qw( timethese cmpthese ) ;
cmpthese timethese ( undef, {
mos => sub { my $x = Mos->new( x => 30 ) },
mox => sub { my $x = MosX->new( x => 30 ) },
mou => sub { my $x = Mou->new( x => 30 ) },
mo => sub { my $x = Mo->new( x => 30 ) },
cap => sub { my $c = Cap->new( x => 30 ) },
cont => sub { my $c = Obj->new( x => 30 ) },
});
{ package Mos ; use Moose; has 'x' => ( is => 'rw', isa => 'Int' ) ;}
{ package MosX ; use MooseX::InsideOut; has 'x' => ( is => 'rw', isa => 'Int' ) ;}
{ package Mou ; use Mouse; has 'x' => ( is => 'rw', isa => 'Int' ) ;}
{ package Mo ; use Moo; has 'x' => ( is => 'rw', ) ;}
{ package Obj; sub new { bless { x => 10, @_[1..$#_]}, shift } }
{
package Cap;
use Scalar::Util qw(refaddr);
my %h ;
sub new{ my $s = bless \my $o, shift; $h{refaddr $s} = { x => 10, @_ } ; $s }
sub DESTROY{ delete $hash{refaddr shift @_ }; }
}
package main;
use strict ;
use warnings ;
use Data::Dumper ;
use Benchmark qw( timethese cmpthese ) ;
cmpthese timethese ( undef, {
mos => sub { my $x = Mos->new( x => 30 ) },
mox => sub { my $x = MosX->new( x => 30 ) },
mou => sub { my $x = Mou->new( x => 30 ) },
mo => sub { my $x = Mo->new( x => 30 ) },
cap => sub { my $c = Cap->new( x => 30 ) },
cont => sub { my $c = Obj->new( x => 30 ) },
});
433デフォルトの名無しさん
2011/10/02(日) 00:55:24.36 技術論をしたいので、ドキュメントに書かれていない良さ
を売り込んで欲しい。
を売り込んで欲しい。
434デフォルトの名無しさん
2011/10/02(日) 00:55:24.23 注意
1. 型チェックなどの実装がしてない分、contが有利である
2. その代りハンデ用にカプセル化の実装を含めた => cap
cont => perl本来の記法。
cap => スタンダードなカプセル化を行なったもの。
mos => Moose
mox => MooseX::InsideOut(準カプセル化。これが実用速度なら…)
mou => Mouse
mo => Moo
# 実行結果
Benchmark: running cap, cont, mo, mos, mou, mox for at least 3 CPU seconds...
cap: 3 wallclock secs ( 2.93 usr + 0.18 sys = 3.11 CPU) @ 254233.76/s (n=790667)
cont: 3 wallclock secs ( 3.18 usr + 0.00 sys = 3.18 CPU) @ 456449.69/s (n=1451510)
mo: 2 wallclock secs ( 3.21 usr + 0.00 sys = 3.21 CPU) @ 326740.81/s (n=1048838)
mos: 3 wallclock secs ( 3.20 usr + 0.00 sys = 3.20 CPU) @ 11670.94/s (n=37347)
mou: 2 wallclock secs ( 3.10 usr + 0.00 sys = 3.10 CPU) @ 423771.94/s (n=1313693)
mox: 3 wallclock secs ( 3.20 usr + 0.00 sys = 3.20 CPU) @ 11024.69/s (n=35279)
Rate mox mos cap mo mou cont
mox 11025/s -- -6% -96% -97% -97% -98%
mos 11671/s 6% -- -95% -96% -97% -97%
cap 254234/s 2206% 2078% -- -22% -40% -44%
mo 326741/s 2864% 2700% 29% -- -23% -28%
mou 423772/s 3744% 3531% 67% 30% -- -7%
cont 456450/s 4040% 3811% 80% 40% 8% --
1. 型チェックなどの実装がしてない分、contが有利である
2. その代りハンデ用にカプセル化の実装を含めた => cap
cont => perl本来の記法。
cap => スタンダードなカプセル化を行なったもの。
mos => Moose
mox => MooseX::InsideOut(準カプセル化。これが実用速度なら…)
mou => Mouse
mo => Moo
# 実行結果
Benchmark: running cap, cont, mo, mos, mou, mox for at least 3 CPU seconds...
cap: 3 wallclock secs ( 2.93 usr + 0.18 sys = 3.11 CPU) @ 254233.76/s (n=790667)
cont: 3 wallclock secs ( 3.18 usr + 0.00 sys = 3.18 CPU) @ 456449.69/s (n=1451510)
mo: 2 wallclock secs ( 3.21 usr + 0.00 sys = 3.21 CPU) @ 326740.81/s (n=1048838)
mos: 3 wallclock secs ( 3.20 usr + 0.00 sys = 3.20 CPU) @ 11670.94/s (n=37347)
mou: 2 wallclock secs ( 3.10 usr + 0.00 sys = 3.10 CPU) @ 423771.94/s (n=1313693)
mox: 3 wallclock secs ( 3.20 usr + 0.00 sys = 3.20 CPU) @ 11024.69/s (n=35279)
Rate mox mos cap mo mou cont
mox 11025/s -- -6% -96% -97% -97% -98%
mos 11671/s 6% -- -95% -96% -97% -97%
cap 254234/s 2206% 2078% -- -22% -40% -44%
mo 326741/s 2864% 2700% 29% -- -23% -28%
mou 423772/s 3744% 3531% 67% 30% -- -7%
cont 456450/s 4040% 3811% 80% 40% 8% --
435デフォルトの名無しさん
2011/10/02(日) 01:01:31.77 418の反論/反応きぼんぬ
436デフォルトの名無しさん
2011/10/02(日) 01:08:16.94 反応も何も、速さと開発効率、両方の面から考えろ
速い方法が必ずしも最善ではないことは
この業界の常識だろとしかw
速い方法が必ずしも最善ではないことは
この業界の常識だろとしかw
437デフォルトの名無しさん
2011/10/02(日) 01:10:26.54 あと、ひとりよがりの略しかたはやめろ。
コードの見やすさを全く考えていない、
他人が読むことを全く考えてない
素人にしか見えんぞ。
コードの見やすさを全く考えていない、
他人が読むことを全く考えてない
素人にしか見えんぞ。
438デフォルトの名無しさん
2011/10/02(日) 01:16:58.14 モダン派が何を言いたいのかはっきりしなかったけど418を
見て思ったのは、
「青らくだ本に載っているモジュールは古いから使うな」
ってことを言いたいのか?
それならそろそろ第4版が出るから、モダン派もそうでない派も
足並みが揃うんじゃないか?
見て思ったのは、
「青らくだ本に載っているモジュールは古いから使うな」
ってことを言いたいのか?
それならそろそろ第4版が出るから、モダン派もそうでない派も
足並みが揃うんじゃないか?
439デフォルトの名無しさん
2011/10/02(日) 01:17:58.54 普通にMouse使えばいいじゃん、
開発効率、Mooseと同じで速いんでしょ?
開発効率、Mooseと同じで速いんでしょ?
440デフォルトの名無しさん
2011/10/02(日) 01:20:16.62 >>437
すまんね、公開するつもりのなかった個人の導入検討メモだ。
すまんね、公開するつもりのなかった個人の導入検討メモだ。
441デフォルトの名無しさん
2011/10/02(日) 01:21:10.10442デフォルトの名無しさん
2011/10/02(日) 01:21:55.41 Mooseでおまじないしてないと10倍の差が出るからなー
443デフォルトの名無しさん
2011/10/02(日) 01:23:51.94 必ず __PACKAGE__->meta->make_immutable; を書く。
書かないとか駄目。絶対。
書かないとか駄目。絶対。
444424
2011/10/02(日) 01:26:39.15 「おまじない」の存在は知らなかった(恥)
Mouseより速くなるの?
Mouseより速くなるの?
445デフォルトの名無しさん
2011/10/02(日) 01:28:15.29 試してみそ。
446デフォルトの名無しさん
2011/10/02(日) 01:37:41.25 おまじないしても、良くてもMouseの十分の一くらいの速度だ
447デフォルトの名無しさん
2011/10/02(日) 01:40:12.26 あらためて、MouseじゃなくてMooseを薦める理由は?
448デフォルトの名無しさん
2011/10/02(日) 01:40:15.79 > __PACKAGE__->meta->make_immutable;
なんかやけに泥くさいな。こんなやぼったいマジナイがいちいち必要なのか、モダーンなPerlってやつは。
なんかやけに泥くさいな。こんなやぼったいマジナイがいちいち必要なのか、モダーンなPerlってやつは。
449デフォルトの名無しさん
2011/10/02(日) 01:41:46.32450デフォルトの名無しさん
2011/10/02(日) 01:43:29.15 それにLarryは今、ブレスしてないんだし...
451デフォルトの名無しさん
2011/10/02(日) 01:55:34.23 例えばJcode2.xは内部でEncodeを使っている訳だけど、使うと
418は反対するの?Encodeよりも後にできたのは、便利で必要
だからだと思うんだけどな。
418は反対するの?Encodeよりも後にできたのは、便利で必要
だからだと思うんだけどな。
452デフォルトの名無しさん
2011/10/02(日) 02:07:18.46 >>451
Perl 5.8.0 より、Jcodeの全機能は Encode module を通じて
Perlに標準装備となります。Jcodeのメンテナンスは旧Perlのために
今後も続けていく所存ですが、最新のPerlをお使いの方には、
より高機能、高 性能、そしてなんといっても標準装備の Encode の方をお薦めします
Perl 5.8.0 より、Jcodeの全機能は Encode module を通じて
Perlに標準装備となります。Jcodeのメンテナンスは旧Perlのために
今後も続けていく所存ですが、最新のPerlをお使いの方には、
より高機能、高 性能、そしてなんといっても標準装備の Encode の方をお薦めします
453デフォルトの名無しさん
2011/10/02(日) 02:13:04.12 でも便利なんだよね、Jcode。Encodeにはない良さがある。
それに内部ではお勧めのEncodeを使っているわけだし。
それともJcode相当のコードをアプリケーション内に自分で
書くのはOKってこと?
それに内部ではお勧めのEncodeを使っているわけだし。
それともJcode相当のコードをアプリケーション内に自分で
書くのはOKってこと?
454デフォルトの名無しさん
2011/10/02(日) 02:16:38.97 いや、作者がEncodeの方をお勧めしますって言ってるからw
455デフォルトの名無しさん
2011/10/02(日) 02:17:40.70 それはJcode2.xがまだなかった頃の話なんじゃね?
456デフォルトの名無しさん
2011/10/02(日) 02:23:58.35 それにEncodeが日本語以外にも対応できるのは分かるけど、アプリ
を書くオレ自身が日本語しか対応していないわけで ^_^;
自分の読めない言語で、うっかり f*ck you みたいな出力をして
しまったら嫌だしなあ。
を書くオレ自身が日本語しか対応していないわけで ^_^;
自分の読めない言語で、うっかり f*ck you みたいな出力をして
しまったら嫌だしなあ。
457デフォルトの名無しさん
2011/10/02(日) 02:29:15.09 モダン派も避けるPerl5.14www
458デフォルトの名無しさん
2011/10/02(日) 02:39:17.38 実態としては、
文字コード周り・・・Jcodeモジュール
日付まわり・・・localtime
データベース・・・DBIモジュール
フレームワーク・・・CGIモジュール
オブジェクト指向・・・bless
テンプレートエンジン・・・printf
こんなところかな。
文字コード周り・・・Jcodeモジュール
日付まわり・・・localtime
データベース・・・DBIモジュール
フレームワーク・・・CGIモジュール
オブジェクト指向・・・bless
テンプレートエンジン・・・printf
こんなところかな。
459デフォルトの名無しさん
2011/10/02(日) 02:54:22.73 テンプレートエンジン・・・format
だろ
だろ
460デフォルトの名無しさん
2011/10/02(日) 03:26:16.98 >>455
読める?
> Jcodeのメンテナンスは旧Perlのために
> 今後も続けていく所存ですが、最新のPerlをお使いの方には、
> より高機能、高 性能、そしてなんといっても標準装備の Encode の方をお薦めします
読める?
> Jcodeのメンテナンスは旧Perlのために
> 今後も続けていく所存ですが、最新のPerlをお使いの方には、
> より高機能、高 性能、そしてなんといっても標準装備の Encode の方をお薦めします
461デフォルトの名無しさん
2011/10/02(日) 13:41:05.10 レス不要。
このままだと、うんこカスがこびりついたパンツを履いてる様な不快感があったので。
>>432
% diff moose_test.pl moose_test2.pl
6a7,8
> { package OMos ; use Moose; has 'x' => ( is => 'rw', isa => 'Int' ) ; __PACKAGE__->meta->make_immutable ;}
> { package OMosX ; use MooseX::InsideOut; has 'x' => ( is => 'rw', isa => 'Int' ) ; __PACKAGE__->meta->make_immutable ;}
25a28,29
> omos => sub { my $x = OMos->new( x => 30 ) },
> omox => sub { my $x = OMosX->new( x => 30 ) },
このままだと、うんこカスがこびりついたパンツを履いてる様な不快感があったので。
>>432
% diff moose_test.pl moose_test2.pl
6a7,8
> { package OMos ; use Moose; has 'x' => ( is => 'rw', isa => 'Int' ) ; __PACKAGE__->meta->make_immutable ;}
> { package OMosX ; use MooseX::InsideOut; has 'x' => ( is => 'rw', isa => 'Int' ) ; __PACKAGE__->meta->make_immutable ;}
25a28,29
> omos => sub { my $x = OMos->new( x => 30 ) },
> omox => sub { my $x = OMosX->new( x => 30 ) },
462デフォルトの名無しさん
2011/10/02(日) 13:41:17.48 % perl moose_test2.pl
Benchmark: running cap, cont, mo, mos, mou, mox, omos, omox for at least 3 CPU seconds...
cap: 4 wallclock secs ( 3.08 usr + 0.17 sys = 3.25 CPU) @ 202104.92/s (n=656841)
cont: 4 wallclock secs ( 3.23 usr + 0.01 sys = 3.24 CPU) @ 431619.44/s (n=1398447)
mo: 3 wallclock secs ( 3.18 usr + 0.00 sys = 3.18 CPU) @ 266261.01/s (n=846710)
mos: 4 wallclock secs ( 3.19 usr + 0.00 sys = 3.19 CPU) @ 9476.49/s (n=30230)
mou: 3 wallclock secs ( 3.18 usr + 0.00 sys = 3.18 CPU) @ 329823.27/s (n=1048838)
mox: 3 wallclock secs ( 3.22 usr + 0.01 sys = 3.23 CPU) @ 8935.29/s (n=28861)
omos: 2 wallclock secs ( 3.10 usr + 0.00 sys = 3.10 CPU) @ 83636.45/s (n=259273)
omox: 3 wallclock secs ( 3.13 usr + 0.06 sys = 3.19 CPU) @ 63226.02/s (n=201691)
Rate mox mos omox omos cap mo mou cont
mox 8935/s -- -6% -86% -89% -96% -97% -97% -98%
mos 9476/s 6% -- -85% -89% -95% -96% -97% -98%
omox 63226/s 608% 567% -- -24% -69% -76% -81% -85%
omos 83636/s 836% 783% 32% -- -59% -69% -75% -81%
cap 202105/s 2162% 2033% 220% 142% -- -24% -39% -53%
mo 266261/s 2880% 2710% 321% 218% 32% -- -19% -38%
mou 329823/s 3591% 3380% 422% 294% 63% 24% -- -24%
cont 431619/s 4731% 4455% 583% 416% 114% 62% 31% --
Benchmark: running cap, cont, mo, mos, mou, mox, omos, omox for at least 3 CPU seconds...
cap: 4 wallclock secs ( 3.08 usr + 0.17 sys = 3.25 CPU) @ 202104.92/s (n=656841)
cont: 4 wallclock secs ( 3.23 usr + 0.01 sys = 3.24 CPU) @ 431619.44/s (n=1398447)
mo: 3 wallclock secs ( 3.18 usr + 0.00 sys = 3.18 CPU) @ 266261.01/s (n=846710)
mos: 4 wallclock secs ( 3.19 usr + 0.00 sys = 3.19 CPU) @ 9476.49/s (n=30230)
mou: 3 wallclock secs ( 3.18 usr + 0.00 sys = 3.18 CPU) @ 329823.27/s (n=1048838)
mox: 3 wallclock secs ( 3.22 usr + 0.01 sys = 3.23 CPU) @ 8935.29/s (n=28861)
omos: 2 wallclock secs ( 3.10 usr + 0.00 sys = 3.10 CPU) @ 83636.45/s (n=259273)
omox: 3 wallclock secs ( 3.13 usr + 0.06 sys = 3.19 CPU) @ 63226.02/s (n=201691)
Rate mox mos omox omos cap mo mou cont
mox 8935/s -- -6% -86% -89% -96% -97% -97% -98%
mos 9476/s 6% -- -85% -89% -95% -96% -97% -98%
omox 63226/s 608% 567% -- -24% -69% -76% -81% -85%
omos 83636/s 836% 783% 32% -- -59% -69% -75% -81%
cap 202105/s 2162% 2033% 220% 142% -- -24% -39% -53%
mo 266261/s 2880% 2710% 321% 218% 32% -- -19% -38%
mou 329823/s 3591% 3380% 422% 294% 63% 24% -- -24%
cont 431619/s 4731% 4455% 583% 416% 114% 62% 31% --
463デフォルトの名無しさん
2011/10/02(日) 14:57:55.49 読めてるつもりだけど、Jcodeのおかげで食べているひとは
(数えたことないが)たくさんいるように思うし、感謝を
省くわけにはいかないな。技術論と離れてしまったがな。
(数えたことないが)たくさんいるように思うし、感謝を
省くわけにはいかないな。技術論と離れてしまったがな。
464デフォルトの名無しさん
2011/10/02(日) 15:09:11.99 Jcodeの【全機能】は Encode module を通じて...
↑ここうそだよね!
↑ここうそだよね!
465デフォルトの名無しさん
2011/10/02(日) 15:32:09.77 >>464
そのように書いてあるのだからウソじゃない。
そのように書いてあるのだからウソじゃない。
466デフォルトの名無しさん
2011/10/02(日) 15:37:05.45 相変わらず読みにくいな。自分が読みにくいと思わないのか?
MooseX 8935/s -- -6% -86% -89% -96% -97% -97% -98%
Moose 9476/s 6% -- -85% -89% -95% -96% -97% -98%
MooseX_immutable 63226/s 608% 567% -- -24% -69% -76% -81% -85%
Moose_immutable 83636/s 836% 783% 32% -- -59% -69% -75% -81%
Capsule 202105/s 2162% 2033% 220% 142% -- -24% -39% -53%
Moo 266261/s 2880% 2710% 321% 218% 32% -- -19% -38%
Mouse 329823/s 3591% 3380% 422% 294% 63% 24% -- -24%
Old 431619/s 4731% 4455% 583% 416% 114% 62% 31% --
MooseX 8935/s -- -6% -86% -89% -96% -97% -97% -98%
Moose 9476/s 6% -- -85% -89% -95% -96% -97% -98%
MooseX_immutable 63226/s 608% 567% -- -24% -69% -76% -81% -85%
Moose_immutable 83636/s 836% 783% 32% -- -59% -69% -75% -81%
Capsule 202105/s 2162% 2033% 220% 142% -- -24% -39% -53%
Moo 266261/s 2880% 2710% 321% 218% 32% -- -19% -38%
Mouse 329823/s 3591% 3380% 422% 294% 63% 24% -- -24%
Old 431619/s 4731% 4455% 583% 416% 114% 62% 31% --
467デフォルトの名無しさん
2011/10/02(日) 15:44:01.45 単なるバカか
468デフォルトの名無しさん
2011/10/02(日) 15:52:18.02 重箱の隅を突くのみっともねえ。
469デフォルトの名無しさん
2011/10/02(日) 15:57:21.82470デフォルトの名無しさん
2011/10/02(日) 16:03:46.12471デフォルトの名無しさん
2011/10/02(日) 16:06:33.96 個別に見ていくと粉飾がありありと浮かび上がってくるなw
472デフォルトの名無しさん
2011/10/02(日) 16:20:16.26473デフォルトの名無しさん
2011/10/02(日) 16:24:33.41 >>429
アメリカ大使館か?
アメリカ大使館か?
474461
2011/10/02(日) 16:37:30.45 レス不要っつったのに。
>>466
御自分でベンチ取った事無いでしょう?
どれだけ表が見辛くなるか、確認して下さい。
ttp://www1.axfc.net/uploader/File/so/69883.txt
何の為に、短めのサブルーチン名にしてるか分ると思います。
このレスにもレス不要です。
>>466
御自分でベンチ取った事無いでしょう?
どれだけ表が見辛くなるか、確認して下さい。
ttp://www1.axfc.net/uploader/File/so/69883.txt
何の為に、短めのサブルーチン名にしてるか分ると思います。
このレスにもレス不要です。
475デフォルトの名無しさん
2011/10/02(日) 17:35:21.23476デフォルトの名無しさん
2011/10/02(日) 17:36:43.28477デフォルトの名無しさん
2011/10/02(日) 17:37:18.27 あと、お前の命令に従うつもりはさらさらないw
お前は俺の命令に従って
謝る以外のレスは不要なw
お前は俺の命令に従って
謝る以外のレスは不要なw
478デフォルトの名無しさん
2011/10/02(日) 17:39:29.89479デフォルトの名無しさん
2011/10/02(日) 17:45:09.42480デフォルトの名無しさん
2011/10/02(日) 17:57:22.02 レスするなっていっただろw
481デフォルトの名無しさん
2011/10/02(日) 18:03:34.27482デフォルトの名無しさん
2011/10/02(日) 18:07:10.99 ベンチ内容、Moose関係大幅に向上してるやんw
十分実用レベルの速度出てるよな。
MooseとMouseの違い?
MouseはMooseの機能劣化版だよ。
ってか、速度が早いことが
最善とは限らないってのは、
この業界の常識だろ。
十分実用レベルの速度出てるよな。
MooseとMouseの違い?
MouseはMooseの機能劣化版だよ。
ってか、速度が早いことが
最善とは限らないってのは、
この業界の常識だろ。
483デフォルトの名無しさん
2011/10/02(日) 18:08:20.79 MooseX +immutable なんか
100倍になってるよね。
100倍になってるよね。
484デフォルトの名無しさん
2011/10/02(日) 18:10:09.58 かけ算も出来ないのか…
485デフォルトの名無しさん
2011/10/02(日) 18:11:21.73 俺の方だった。
486デフォルトの名無しさん
2011/10/02(日) 18:18:03.75 表の見方すら分かって無いとか
487デフォルトの名無しさん
2011/10/02(日) 18:29:20.71 速度の差を百分率で表示します
( (63226 - 8935) / 8935 )
100倍??
( (63226 - 8935) / 8935 )
100倍??
488デフォルトの名無しさん
2011/10/02(日) 20:47:39.47 disってるつもりじゃなくてな、どうしてEncodeはJcodeのインタ
フェースをそのまま使わなかったのか素朴な疑問なんだよ。
フェースをそのまま使わなかったのか素朴な疑問なんだよ。
489デフォルトの名無しさん
2011/10/02(日) 20:55:37.04 思いついたままいうと、Jcode3.0とかでJcode0.xの機能もJcode2.x
の機能もEncodeの機能も実現できそうな気がするし、モダン派と
そうでない派の論争も(この件については)終結するんじゃないかと
思うんだ。
の機能もEncodeの機能も実現できそうな気がするし、モダン派と
そうでない派の論争も(この件については)終結するんじゃないかと
思うんだ。
490デフォルトの名無しさん
2011/10/02(日) 20:59:47.99 上位互換性があると過去のバージョンとの差別化が難しいから、
キャッチコピーが使えなくなってしまうので困るってことなの
かい?
キャッチコピーが使えなくなってしまうので困るってことなの
かい?
491デフォルトの名無しさん
2011/10/02(日) 21:05:29.13 >>488
> disってるつもりじゃなくてな、どうしてEncodeはJcodeのインタ
> フェースをそのまま使わなかったのか素朴な疑問なんだよ。
おまw アホか、もしかしてJcode知らんのか?
Jcodeのインターフェースって、jcode($str)->sjisとか ->euc とか ->iso_2022_jpだぞ
お前、そんなんで世界各国の文字コード全てサポートする気かよ。
それにEncodeとかJcodeではなくてな、Perlのコアの文字コードは、
UTF8フラグが付いたUTF8文字と決まってる。
これがPerlが理解している文字。Perlが文字と理解しているものに対して
lengthしたら、(バイト数ではなく)文字数が返ってくるし、
正規表現でちゃんと一文字として扱える。
JcodeはPerlが文字と解釈してないものを返すので
あるべき姿のPerlの使い方に適合していない。
> disってるつもりじゃなくてな、どうしてEncodeはJcodeのインタ
> フェースをそのまま使わなかったのか素朴な疑問なんだよ。
おまw アホか、もしかしてJcode知らんのか?
Jcodeのインターフェースって、jcode($str)->sjisとか ->euc とか ->iso_2022_jpだぞ
お前、そんなんで世界各国の文字コード全てサポートする気かよ。
それにEncodeとかJcodeではなくてな、Perlのコアの文字コードは、
UTF8フラグが付いたUTF8文字と決まってる。
これがPerlが理解している文字。Perlが文字と理解しているものに対して
lengthしたら、(バイト数ではなく)文字数が返ってくるし、
正規表現でちゃんと一文字として扱える。
JcodeはPerlが文字と解釈してないものを返すので
あるべき姿のPerlの使い方に適合していない。
492デフォルトの名無しさん
2011/10/02(日) 21:08:50.66493デフォルトの名無しさん
2011/10/02(日) 21:13:17.84 まず上半分。
>Jcodeのインターフェースって、jcode($str)->sjisとか ->euc とか ->iso_2022_jpだぞ
>お前、そんなんで世界各国の文字コード全てサポートする気かよ。
Encodeだと引数、Jcodeだとメソッドっていうだけだと思うんだけど。
この違いで何か致命的にまずいことってあるの?
>Jcodeのインターフェースって、jcode($str)->sjisとか ->euc とか ->iso_2022_jpだぞ
>お前、そんなんで世界各国の文字コード全てサポートする気かよ。
Encodeだと引数、Jcodeだとメソッドっていうだけだと思うんだけど。
この違いで何か致命的にまずいことってあるの?
494デフォルトの名無しさん
2011/10/02(日) 21:15:05.96 >>492
そこは分かってるからあえてツッコまないよーに。J
そこは分かってるからあえてツッコまないよーに。J
495デフォルトの名無しさん
2011/10/02(日) 21:16:20.70 え?Jはじぇんぶ(全部)のJだろ?
496デフォルトの名無しさん
2011/10/02(日) 21:23:03.32 下半分。
>それにEncodeとかJcodeではなくてな、Perlのコアの文字コードは、
>UTF8フラグが付いたUTF8文字と決まってる。
例えば (仮称)Jcode3.x にメソッドを追加して、UTF8フラグが付い
たUTF8文字を扱うのはだめなのかい?
>それにEncodeとかJcodeではなくてな、Perlのコアの文字コードは、
>UTF8フラグが付いたUTF8文字と決まってる。
例えば (仮称)Jcode3.x にメソッドを追加して、UTF8フラグが付い
たUTF8文字を扱うのはだめなのかい?
497デフォルトの名無しさん
2011/10/02(日) 21:33:15.96 >>493
文字コードを変数に入れるような場合に見にくくなる。 $j->$encode
エンコード名が間違っていてもエンコード名が間違っていますのような適切なエラーが出せない。(関数がないと言われる)
エンコード名にハイフンが使えない。
ISO-2022-JP、ISO-2022-JP-2、ISO-2022-JP-3のように、
頭がISO-2022-JPで始まるものを、すべて扱うエンコーダー(Encode::JP等)が
作りづらくなる。
エンコード名に大文字小文字を無視するように作るのが面倒
Encode::from_toのように、変数の値を、”あれ”から”これ”に変換するとき
文字コードを値で渡す方がシンプル。使い方は統一すべきだ。
文字コードを変数に入れるような場合に見にくくなる。 $j->$encode
エンコード名が間違っていてもエンコード名が間違っていますのような適切なエラーが出せない。(関数がないと言われる)
エンコード名にハイフンが使えない。
ISO-2022-JP、ISO-2022-JP-2、ISO-2022-JP-3のように、
頭がISO-2022-JPで始まるものを、すべて扱うエンコーダー(Encode::JP等)が
作りづらくなる。
エンコード名に大文字小文字を無視するように作るのが面倒
Encode::from_toのように、変数の値を、”あれ”から”これ”に変換するとき
文字コードを値で渡す方がシンプル。使い方は統一すべきだ。
498デフォルトの名無しさん
2011/10/02(日) 21:34:30.49499デフォルトの名無しさん
2011/10/02(日) 21:44:33.79 違う使い方にちょっとずつ移行できるところが利点。
500デフォルトの名無しさん
2011/10/02(日) 21:48:11.88501デフォルトの名無しさん
2011/10/02(日) 21:49:03.46 Jcode.pmの中身読んで、
- 後方互換のためにどれだけ苦心してるか
- どれだけ、速度を犠牲にしてるか
見りゃいいんだよ。
議論自体吹っ飛ぶぞ
- 後方互換のためにどれだけ苦心してるか
- どれだけ、速度を犠牲にしてるか
見りゃいいんだよ。
議論自体吹っ飛ぶぞ
502デフォルトの名無しさん
2011/10/02(日) 21:51:19.58 あ、たられば論の思考実験な。
503デフォルトの名無しさん
2011/10/02(日) 21:54:30.95 じゃあEncodeはどうやってその問題を解決してるんだ?
Encodeの作りをJcodeのインタフェースで提供するって話だぞ。
それとこれからやるかって話じゃなくて思考実験な。
Encodeの作りをJcodeのインタフェースで提供するって話だぞ。
それとこれからやるかって話じゃなくて思考実験な。
504デフォルトの名無しさん
2011/10/02(日) 21:59:20.27 >その問題
?どの問題?
?どの問題?
505デフォルトの名無しさん
2011/10/02(日) 22:01:49.32 >>503
問題を解決するために頑張ってるのはJcodeだろw
Perl標準の文字にあわせて作られたEncodeは凄くシンプルだ。
Perlの文字(UTF8フラグ関係)を理解できる
脳みそ程度があれば良い。
問題を解決するために頑張ってるのはJcodeだろw
Perl標準の文字にあわせて作られたEncodeは凄くシンプルだ。
Perlの文字(UTF8フラグ関係)を理解できる
脳みそ程度があれば良い。
506デフォルトの名無しさん
2011/10/02(日) 22:03:40.98507デフォルトの名無しさん
2011/10/02(日) 22:06:45.35 >>504,505
Jcodeでは
> - 後方互換のためにどれだけ苦心してるか
> - どれだけ、速度を犠牲にしてるか
に苦労しているって読めたが、
> Perl標準の文字にあわせて作られたEncodeは凄くシンプルだ。
なわけで、その実装を使ってJcodeのインタフェースを提供する
ってことだよ。
Jcodeでは
> - 後方互換のためにどれだけ苦心してるか
> - どれだけ、速度を犠牲にしてるか
に苦労しているって読めたが、
> Perl標準の文字にあわせて作られたEncodeは凄くシンプルだ。
なわけで、その実装を使ってJcodeのインタフェースを提供する
ってことだよ。
508デフォルトの名無しさん
2011/10/02(日) 22:08:25.67 > なわけで、その実装を使ってJcodeのインタフェースを提供する
> ってことだよ。
やっぱりお前Jcode知らんのか。
今のJcodeはEncodeの実装を使って作られたものだ。
> ってことだよ。
やっぱりお前Jcode知らんのか。
今のJcodeはEncodeの実装を使って作られたものだ。
509デフォルトの名無しさん
2011/10/02(日) 22:09:18.20 もちろんJcodeのインターフェースであるがゆえに、
日本語にしか対応できなくなっている。
Encodeの劣化版がJcode
日本語にしか対応できなくなっている。
Encodeの劣化版がJcode
510デフォルトの名無しさん
2011/10/02(日) 22:11:50.54 >>506,508
知ってるってば。おれ470な。
知ってるってば。おれ470な。
511デフォルトの名無しさん
2011/10/02(日) 22:13:44.34 そして、Jcodeに新たにメソッド増やしてEncodeと
同じ事を出来るようにするぐらいなら、
普通にEncodeを使えばいい。
新しいメソッドを使う以上、使い方は全く代わるわけで
なら標準のEncodeを使えばいいからだ。
同じ事を出来るようにするぐらいなら、
普通にEncodeを使えばいい。
新しいメソッドを使う以上、使い方は全く代わるわけで
なら標準のEncodeを使えばいいからだ。
512デフォルトの名無しさん
2011/10/02(日) 22:14:49.67 移行するのであれば、Jcodeを使いながら
Encodeを導入し、徐々にEncodeを使った方法に
置き換えていけば良い。
Jcode3.0なんてものを作った所で
Encodeには移行できない。
Encodeを導入し、徐々にEncodeを使った方法に
置き換えていけば良い。
Jcode3.0なんてものを作った所で
Encodeには移行できない。
513デフォルトの名無しさん
2011/10/02(日) 22:19:00.72514デフォルトの名無しさん
2011/10/02(日) 22:19:16.07 EncodeというかPerl開発者が推奨している
標準の文字の扱い方だな。
PerlがUnicode対応した時から
どのように文字を使うべきかが決まった。
外部からの出入り口で、内部文字コードに変換して
Perlコードからは文字はすべてUTF8フラグ付きのUTF8文字コードで
として扱う。それがPerl開発者が決めたルールだ。
標準の文字の扱い方だな。
PerlがUnicode対応した時から
どのように文字を使うべきかが決まった。
外部からの出入り口で、内部文字コードに変換して
Perlコードからは文字はすべてUTF8フラグ付きのUTF8文字コードで
として扱う。それがPerl開発者が決めたルールだ。
515デフォルトの名無しさん
2011/10/02(日) 22:22:38.39516デフォルトの名無しさん
2011/10/02(日) 22:24:36.48 仕様と実装を分けて考えればいいんじゃないかと言ってる
訳なんだけど、どうしても切り離せないような話が返って
くるなあ。
訳なんだけど、どうしても切り離せないような話が返って
くるなあ。
517デフォルトの名無しさん
2011/10/02(日) 22:24:51.08 思考実験ってwww
単に考えるだけで作らないって言ってるだけやんw
単に考えるだけで作らないって言ってるだけやんw
518デフォルトの名無しさん
2011/10/02(日) 22:26:42.93 >>517
そのとおり。なので暇なひとだけレスして欲しい。
そのとおり。なので暇なひとだけレスして欲しい。
519デフォルトの名無しさん
2011/10/02(日) 22:27:46.67 >>516
なら答えは簡単だ。
機能の多いもの(全世界対応)から
機能の少ないもの(日本語専用)は作れるが、
機能の少ないもの(日本語専用)から
機能の多いもの(全世界対応)は作れない。
ならEncodeモジュールを基本とし、
Jcodeはそのラッパーという仕様が一番良い。
なら答えは簡単だ。
機能の多いもの(全世界対応)から
機能の少ないもの(日本語専用)は作れるが、
機能の少ないもの(日本語専用)から
機能の多いもの(全世界対応)は作れない。
ならEncodeモジュールを基本とし、
Jcodeはそのラッパーという仕様が一番良い。
520488
2011/10/02(日) 22:35:29.35 >>disってるつもりじゃなくてな、どうしてEncodeはJcodeのインタ
>>フェースをそのまま使わなかったのか素朴な疑問なんだよ。
なんか、488の回答の下地がようやく整ってきた感じがする。
>>519
その話の続きを聞かせて欲しい。
>>フェースをそのまま使わなかったのか素朴な疑問なんだよ。
なんか、488の回答の下地がようやく整ってきた感じがする。
>>519
その話の続きを聞かせて欲しい。
521デフォルトの名無しさん
2011/10/02(日) 22:37:34.33 >>520
>488の回答であり続き。
おまw アホか、もしかしてJcode知らんのか?
Jcodeのインターフェースって、jcode($str)->sjisとか ->euc とか ->iso_2022_jpだぞ
お前、そんなんで世界各国の文字コード全てサポートする気かよ。
それにEncodeとかJcodeではなくてな、Perlのコアの文字コードは、
UTF8フラグが付いたUTF8文字と決まってる。
これがPerlが理解している文字。Perlが文字と理解しているものに対して
lengthしたら、(バイト数ではなく)文字数が返ってくるし、
正規表現でちゃんと一文字として扱える。
JcodeはPerlが文字と解釈してないものを返すので
あるべき姿のPerlの使い方に適合していない。
>488の回答であり続き。
おまw アホか、もしかしてJcode知らんのか?
Jcodeのインターフェースって、jcode($str)->sjisとか ->euc とか ->iso_2022_jpだぞ
お前、そんなんで世界各国の文字コード全てサポートする気かよ。
それにEncodeとかJcodeではなくてな、Perlのコアの文字コードは、
UTF8フラグが付いたUTF8文字と決まってる。
これがPerlが理解している文字。Perlが文字と理解しているものに対して
lengthしたら、(バイト数ではなく)文字数が返ってくるし、
正規表現でちゃんと一文字として扱える。
JcodeはPerlが文字と解釈してないものを返すので
あるべき姿のPerlの使い方に適合していない。
522デフォルトの名無しさん
2011/10/02(日) 22:41:37.51 おれとしては521よりも519のほうが知りたかったことに近い。
うまく聞き出せなかったけど。
うまく聞き出せなかったけど。
523デフォルトの名無しさん
2011/10/02(日) 22:43:33.28 つか、JcodeがEncodeのラッパーになっている理由なんて
初心者プログラマでないなら、自然と理解できるはずなんだがw
逆にJcodeのインターフェースのままにしようなんて
思う奴はいないだろ。
初心者プログラマでないなら、自然と理解できるはずなんだがw
逆にJcodeのインターフェースのままにしようなんて
思う奴はいないだろ。
524デフォルトの名無しさん
2011/10/02(日) 22:50:03.72 519の話の続きにはとても価値があると思っている。でもそれは521
なんかじゃない。うまく質問ができるようになったら、教えて欲しい。
なんかじゃない。うまく質問ができるようになったら、教えて欲しい。
525デフォルトの名無しさん
2011/10/02(日) 22:53:12.08526デフォルトの名無しさん
2011/10/03(月) 01:43:37.06 おまえら熱いな
レスを投稿する
ニュース
- 【外交】元台湾総統・馬英九氏、高市首相発言に「台湾を危険にさらす」台湾海峡の問題は「両岸の中国人が自ら話し合うべき」★2 [1ゲットロボ★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★8 [ぐれ★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 [おっさん友の会★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★5 [BFU★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- (´ん`)「公明党、お前だったのか。自民党から国民を守ってくれていたのは...」 [603416639]
- 【高市売り】円安、止まらず!凄い勢いで暴落中。157円へ [219241683]
- 維新代表吉村、壊れたレコードになる「中国はカントリーリスク、中国人観光客がいなくても成り立つビジネスを目指せ」を何度も繰り返す [856698234]
- 【悲報】ヤフコメ民「中国が水産物を輸入禁止にするなら、日本国民向けに安く販売すればいい。中国依存から脱するべき」 [153736977]
- 1,000万円のBMWに擦ってしまった札幌のガキ、捕らえられてガチで詰む [329329848]
- 死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
