1read 100read
2013年02月WebProg400: Perlのオブジェクト指向って無理やり実装だなw (266) TOP カテ一覧 スレ一覧 2ch元 削除依頼
Perlのオブジェクト指向って無理やり実装だなw (266)
WebObjectsをめぐる政治的話題【粘着君OK】 (880)
検索エンジンをつくりたい (275)
ファイルメーカーでどこまでできるウェブアプリ! (461)
インストールマニアックス3 Hyper-V祭 Part2 (651)
オマエラPHPで掲示板つくれませんか? (679)

Perlのオブジェクト指向って無理やり実装だなw


1 :2008/06/09 〜 最終レス :2012/01/11
いまさらだが、後付感たっぷりでワロタ
PHPの方がはるかに自然な形で実装しているわ。
なんだろうね。言語仕様の説明=内部実装の説明になっていて
使うためではなく、言語の勉強のための言語だなぁと思った。

2 :
自然なオブジェクトについて興味があるんですが
それはどんな形ですか?

3 :
そら自然なのはSmalltalkだろjk

4 :
PHPもだろ

5 :
Perlはオブジェクトをnewしたときの処理を
自分でいちいち書かないといけないw

6 :
C言語でオブジェクト指向を
無理やりやっているのと
同じ感じがするな。
PHPはclass XXX extends YYYY {} なんて
オブジェクト指向言語なら当たり前に使える構文が使える。
わかりやすい。

7 :
いつの話してんの?
Perl使ってないけど
今のPerlはましになってるんだろ?

8 :
なってないよw
まだblessとかいうものを使ってオブジェクトのリファレンスを返せば
ほ〜ら。オブジェクト指向っぽくならね?
って世界だ。

9 :
ちょっとPerlで便利なライブラリがあるから、
久々に使ってみたが、やっとPerlがキモイ理由がわかった。
シンボルテーブルとか型グロブとかリファレンスとか、
本来内部仕様であるべき話が表に出てきているからだ。
たとえば、C++なら仮想関数を実装するときVTABLE内の
関数ポインタを・・・・うんぬんかんぬんって説明があって、
それをやる為の関数がこれですから呼び出してね。と
オブジェクト指向の内部データを直接いじらなきゃ
いけない。これがPerlの普及を妨げているんだなぁと思った。

10 :
>>9
perlずっとやってきて心が揺らいでるんだが
泥臭い部分はみんな嫌い?

11 :
>>1
いまさらって書けば許されると思ったか馬鹿初心者。さすがに10年越しの話題は本気で痛いよ。

12 :
Perl6が出れば、そんな批判は過去のものとなる

13 :
Perl6ってオブジェクト指向言語なの?

14 :
一昔前に、どんなLLでも飲み込むPerlみたいなのの話題が出てたけど
その後の話まったく聞かないな
PHPもそれに飲み込まれるとか言い張ってる奴いたけど
今考えたらそんなの普通に存在価値ねーだろwww

15 :
うーん、まあ、そうなんだけど、それでもPerlでオブジェクト指向らしきものは出来る品。
というか、Perlはツール作ったり、WEBアプリ作ったりするのがメインなんで、オブジェクト指向なんてそれほど必要に迫られないし。

16 :
まあ、create_function(文字列) しかないRを頬張って喜ぶ>>1にはドン引きさせられるけどなw

17 :
phpの匿名関数には丼引きだけど
スレタイ的にはあまり関係ねえよな
そんなら俺はJavaScript最強説で泥沼化に参加するぜ
ごめん最強は無理ありすぎた
疑似スレッド処理やろうとしたらsetTimeout地獄に陥るし
構造凝るとコールバック関数の嵐になるし

18 :
Ruby最強でFA

19 :
RubyのオブジェクトシステムはSmalltalkばりに古くさいよ。

20 :
GoogleマンセーでPythonに即飛びついたりしなかったお前らが誇らしいよ。
インデントとか笑わせるなよ。

21 :
>>16
PHP6で改善されるんじゃなかったっけ?
PHP6とPerl6、どっちが先に出るか見ものだw

22 :
クロージャ使えると何がそんなに便利なの?使えなくても大して不便ではなくね?ドラスティックに変わるの?

23 :
あらゆる高級言語を扱ってきたLL神だが攻守最強はECMAScriptだと悟った

24 :
Periの場合、5.99の次は5.9910とか言うから永遠に6は出ない。
アキレスは亀に追いつけない。

25 :
間違えた。
5.99の次は5.910だ。
590900
591000
みたいに数字だけ増えていく。
実際、最近のバージョンアップでやってるしw

26 :
ネームスペースの無いPHPの方がPerlより断然キモいっつーの。
Perlのあの程度のオブジェクト指向に苦労するくらいだから
程度が知れるわな。

27 :
関数内でglobal書かせるのも
インスタンス化するごとにblessさせるのも似たようなもんだ。
無理矢理感って意味では。
ただPHPの変数の扱いがきもすぎるのは同意

28 :
> 関数内でglobal書かせるのも
えっ? グローバル変数なんか普通使わないでしょ?

29 :
何が何でもOOPって考えやめろよ。
メリットとデメリットを比較して、有利な方を使うだろ普通。
小規模だったら、OOP使わないよ。

30 :
PHPの変数スコープは関数単位もだん。なんつーか、ワープロのマクロ言語並。

31 :
こういうひねくれたスレを立ててPHP叩きをするPerlユーザーってキモイな

32 :
>>31
PHPユーザーの方がキモいから安心しろ。

33 :
>>30
クラスに書いたら、クラス単位だけど?
ねぇ。PHP知っている?

34 :
正直、rubyやpythonがここに上がらないのは当たれ前なんだよね。
むしろ、PerlやPHPの拡張によってOOPを強引にでも実現してきたことを誉めてあげたい。
バカにするけど、PHPなんて、
OOPだけ見れば、結構良く実装できてると思うよ。
Perlは、もうちょっとだけど……。

35 :
普通の言語は変数のスコープはブロック単位なんだよ。
PHP以外の言語をやったことがあればすぐに分かること。

36 :
ねぇ?本当に他の言語やってる?
ブロック単位のスコープがあるかは半々ってところだろ。
まあよめ。
http://blog.livedoor.jp/dankogai/archives/50960425.html


37 :
oopの話題でoopが得意じゃない人のブログ出すとかwww

38 :
おや、スコープの話で不利になったから、オブジェクト指向の話に戻すんですねw

39 :
ハッスルしてるphp厨は全スルーが常識

40 :
↑スルーできない場合の典型的な言い訳

41 :
いやスルーするしないの前の話
馬鹿なの?

42 :
Rubyはブロック内でレキシカルスコープを作る。

43 :
PHPは5でもネームスペースが無いから
正直使い物にならない。

44 :
同様の理由で、C言語も使いものにならない

45 :
C/C++,Java,VB,C#もブロック内でレキシカル変数を作れる罠。

46 :
JavaScriptは?
っていうか関数レベルのスコープがあれば
ブロックレベルのスコープは無くても良いなぁ。
おれ、そんなに長い関数書かないしw

47 :
Perlって

48 :
Perlでクラスを使ってみたいが、
毎回コンストラクタを自力実装するのが面倒で。

49 :
そこでMooseですよ

50 :
コンストラク作るのは面倒じゃないだろ。その仕組みを理解するのは面倒というか大変だが。

51 :
>>1
比較相手にPHPを持ち出し、しかもPHPの方がマシって…wwwww
PHPは糞中の糞

52 :
perlよりは上等だよ

53 :
>>51
サーバサイドスクリプトとして比較するならPHPの方が上に決まってんじゃん

54 :
まあ、PHP以外の、PerlとかRubyとか知ってる人にとっては、PHPの低機能はつらいものがあるよ。
初心者が書いても、上級者が書いても、同じようなコードにしかならないんだから。
プログラム書いててこれほどつまらない言語はない。

55 :
ふむ、同意だけど
もしかしたらそれで逆に
保守性の水準を確保してたりしてな

56 :
同じ様なコードにしかならないことが低機能?イミフ

57 :
コードを書くことが目的なんでしょw
$_ みたいな同じ名前の変数ばかり多用する
醜いソースかいたりなw

58 :
Javaのように厳密に書くことも出来なければ、PerlやRubyのように記述性が高いというわけでもない。簡単だから覚えるのは速いのが唯一の長所。それがPHP。

59 :
でもまあ、クラスの定義を
普通に class キーワードを使って
かけるのはすばらしいと思うよ。
class Foo extends Bar {
 private $a;
 function __construct() {}
 function func() {}
}
$foo = new Foo();
$foo->func();
オブジェクト指向を知っている人なら誰だってすぐわかるでしょ?
自然なオブジェクト指向。

60 :
クラスベースOOPの書法が大好きなのは判わんでもないけどさ
そもそもクラスベースってほんとに良いものなのかとか語られる昨今だしな
ECMAScrips3rdの単純さと汎用性の兼ね合いなんか絶妙だしな

61 :
世の中の主流はクラスベースOOP

62 :
うん判るのよそれは
boost触っててクラスとかもうどうでもよくね見たいに
脳味噌が腐った豆腐になってる馬鹿の戯れ言です
rubyやpythonその辺の手懐けかた上手いよな
perlにはこの際、我が道突っ切ってもらった方が面白そうな

63 :
文法は一番PHPがわかりやすいというか、自然だわな。CやJavaやPerlなんかを知ってれば、特別学習しないでもだいたい予測つく。

64 :
つか、OOPの書き方そのものの参考文献が少なすぎるんだよ。
 ・OOPとは……知ってるから!
 ・言語XXXでOOP……基礎過ぎるから!
 ・言語XXXでデザインパターン……急に高度過ぎるから!
もっと、初・中級者向けのOOP書き方入門が欲しいですよ。
オブジェクト指向Perlマスターコースだって?
あんなの日本語じゃねーよ(読破したけどさw)

65 :
>>64
>・言語XXXでOOP……基礎過ぎるから!
>・言語XXXでデザインパターン……急に高度過ぎるから!
そこは別に飛躍してなくね?
OOPの基礎が判ったら、ちょっと実践パターン見て行きましょうか……
という流れだし
逆にどうしろと。
単に、実感湧かないってことかもしれないな。
Perlじゃないけど、俺はるびま出張版として出版された「正しいRuby
コードの書き方講座」が言語問わず参考になった。
他人の成果物の設計に駄目出ししまくるだけの本wなので、妙に実感あったw
青木に煽られない程度のコードを保ちたいなという、欲求が探究心に繋がった感じ。
ああいう傾向の本、言語問わず他にねえもんかな。
>あんなの日本語じゃねーよ(読破したけどさw)
逆に読みたくなるぜ、その感想w
多分おれはヘン

66 :
>>65
たぶん、分かってるとは思うけど、
OOP基礎 → デザパタ本は、急に難しくなりすぎだよ。
OOP基礎本は、本当に基礎の基礎しか書いてないもん。
その方向は間違ってないんだけどさ。
その間を埋める本がないんだよ。
つまり、>>65のいう「正しいRubyコードの書き方講座」や
Periで言えば、宮川氏のML(いつものことながら途中で飽きやがった!)のような。
デザパタってある程度実践詰んでないと、
意味……というかメリット理解できないじゃん。
Ruby触ったこと無いけど、最近本も充実してきたし、手出してみるかな。

67 :
私はこれで Perl から乗り換えました。
http://web.archive.org/web/20010427071311/www.ruby-lang.org/ja/column/v0004.html
バベル案内
http://www.aoky.net/articles/steve_yegge/tour_de_babel.htm
Perlもまた、間もなくなくなる。
Perl, Python, Ruby の比較
http://www.shido.info/py/python1.html
perl/Ruby、これから覚えるべきなのは?
http://q.hatena.ne.jp/1145610898

68 :
しかし何でPHP5は寸前のところでnamespaceをなくしてしまったのか。
クラス名をアンダーバーで繋げるという回避策は悲しすぎる。
唯一悔やまれる点だわ。

69 :
そんなにネームスペースって必要かなぁ?
アンダーバーでつなげればいいだけでしょ?

70 :
それがまんどくせえんだよ

71 :
>>70
えっ?
(ネームスペースがあるほかの言語で)ネームスペースの部分省略してるの?
もし名前がかぶったらどうするの?

72 :
ネームスペースがない、パッケージがないのは、PHPにろくなクラスライブラリがない理由の一つだな。
好き勝手にファイル名やクラス名をつけるから、使いまわしが利かない。

73 :
すごいこじ付けを見たw

74 :
ネームスペースがかぶったらどうすんの?

75 :
PHP5.3からnamespage復活するのってホント?

76 :
目次 - oreilly.co.jp -- Online Catalog: 初めてのRubyより 1章 ようこそ、Rubyのある生活へ
1.1 Rubyの特徴
1.1.1 オブジェクト指向言語
1.1.2 より良いPerl
http://blog.livedoor.jp/dankogai/archives/51077051.html

77 :
ポチろうと思ってて忘れてたわ

78 :
>>24
ペリw

79 :
>>72
>ネームスペースがない、パッケージがないのは、PHPにろくなクラスライブラリがない理由の一つだな。
それは探せる頭が無いだけ。
ネイティブインストールしなきゃ使えないPerlモジュールより、よっぽど充実してて汎用も効くクラス多いよ。

80 :
PHPにまともなクラスライブラリなんてないよ。あるのは膨大な組み込み関数とあまたあるフレームワーク付属のヘルパークラスだけ。

81 :
まともなクラスライブラリが無い。ってことは
足りないクラスライブリががあるってことだよな?
その足りないクラスライブラリ、いってみて。

82 :
少なくともPearにあるライブラリのPHP5・E_STRICT対応版

83 :
notice出ちゃなんでだめなの?

84 :
もしかしてここ間違ってないですか?っていう程度。
意図的にそうしているのなら問題ない。

85 :
本来ZendフレームワークがPearを引き継ぐはずだったけど、そうはなりませんでした。

86 :
2-3号前のWEB+DBプレスの座談会に書いてあったけど、普通そこそこPHPやってると飽きる。他の言語に行く。だから、ユーザコミュニティのレベルが一向に上がらない。

87 :
>>86
それは飲み屋での雑談よりも信頼すべき話なのか?

88 :
小山哲氏って日本のPHP界じゃトップクラスの有名人だと思うけど、PHPのダメさをあれだけ自覚して語ってるのにはちょっと好印象を持った。仕事として割り切ってるんだろうな。

89 :
Ruby 及び Perl におけるクラスの生成について。
http://b.hatena.ne.jp/entry/http://tomato.or.tp/programming/memo/class/class.html

90 :
>>88
> 小山哲氏って日本のPHP界じゃトップクラスの有名人だと思うけど
だれ?
デイトレーダー? 日本の歴史学者?
ぐぐってもわからないや。

91 :
日本のPHP界っていうほどのコミュニティがあるの?

92 :
344 :デフォルトの名無しさん:2008/07/18(金) 00:56:41
>>334
同意。
PerlのEncodeは終わってる。
言っておくが、自分には使える。
Perl好きだし、Encodeモジュールもわかっているつもり。
ただ、そこまでPerlにはまっていない周りには使えないし、わかってもらえない。
これが致命的。
(よくはまるのは、UTF-8フラグのついた文字列と
バイト列としての UTF-8文字列の違いとかのあたり)
それに、ソースコードを UTF-8 で書くと、システムがローカルエンコーディングの場合
ファイルを開いたりするのさえ面倒。
Unicode がらみのスクリプトを書くたびに、
sub e { Encode::encode('cp932', $_[0]) }
sub d { Encode::decode('cp932', $_[0]) }
sub E { map { Encode::encode('cp932', $_) } @_ }
sub D { map { Encode::decode('cp932', $_) } @_ }
↑こんなのを上に貼って、
open IN, e"日本語.txt";
とか書いたり、デバッグする時に
b 30 ($str eq d"日本語")
とかやったりしてるけど、正直言って超バッドノウハウ。
人が見てもやっぱりわからないし。

93 :
UTF-8フラグの存在がUnicodeの扱いをかなり複雑にしているよな。
なんでそんなものを作ったのか理解できない。
他の言語にはそんなもの無くてもうまくやっていけてるじゃないか。

94 :
>>92の元書き込み
http://pc11.2ch.net/test/read.cgi/tech/1180713251/l50

95 :
PHPだと全部mb_に差し替えないと行けない。

96 :
> PHPだと全部mb_に差し替えないと行けない。
見てのとおり、すごくわかりやすいルールです。
一方Perlの場合・・・複雑すぎて
ここでは説明し切れません ;;

97 :
複雑者ねー世。外人が作ったライブラリでも日本人が作ったライブラリでも透過的に扱える。

98 :
ただし、外人が作ったライブラリがUTF-8(UTF8フラグ)を考慮して
ちゃんと作られている場合は。だろ?

99 :
最近でたオブジェクト指向Perlの本ってアルパカ本と比べてどうなの?

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
姫君スクリプト (267)
いきなり駄スレ?blosxomユーザー2 (405)
アップローダースレ Part3 (784)
弐ch編集のphp講座 (294)
【企画】CGIでRPGつくーる (217)
弐ch編集のPerl講座 (225)
--log9.info------------------
普通紙印刷最強プリンタはどれ? (308)
●ドロップサイズ「1.98plが1pl」「1.48plが1.5pl」●2 (384)
オートシートフィーダで連続スキャン (276)
ウホッ●●●●EPSON VS CANON●●●いいプリンタ会社 (203)
■□■□■□プリンタ板総合雑談スレ□■□■□■ (279)
Dellのプリンタ!(4台目) (354)
【EPSON】PM-A840【Calario】 (437)
Canon PIXUS MP520/510/470/460 Part1 (292)
 新製品 においつきインク  (219)
◆◇◆◇◆◇◆ EPSON PX-V600 ◆◇◆◇◆◇◆ (392)
EPSON PX-V700 (835)
EPSON PM-930Cスレッド (289)
顔面崩壊!キヤノンのプロフォトはひび割れる (225)
◆EPSON Colorio PM-D800/D600/E200/E150 Part.1◆ (463)
キャノキチも嗚咽!!4色なのに6色よりコストが高い!! (912)
HP Photosmart Pro B9180 Printer ★2 (632)
--log55.com------------------
【ロッテ】ビックリマンシール総合スレ【47】
【ロッテ】ビックリマンシール総合スレ【46】
【作家廃業】盗作屋・唐沢俊一135【プロデューサー】
AxisPowersヘタリア歴史検証スレ その14
【ロッテ】ビックリマンシール総合スレ【45】
ラーメンズ小林賢太郎 Part 17
HEBU】廃墟サイトを語るスレ11軒目【ふわとろ
ビックリマンシールのストーリーを語るスレ 第26弾