1read 100read
2012年07月WebProg316: Perlのオブジェクト指向って無理やり実装だなw (266) TOP カテ一覧 スレ一覧 2ch元 削除依頼
検索エンジンをつくりたい (274)
姫君スクリプト (267)
Webでオブジェクト指向プログラミング (431)
【Perl上級者コーナーPart01】 (626)
【RoR】Ruby on Rails Part15 (566)
GoogleAPIってどうよ? (306)

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元 削除依頼
W→e→b→P→r→o→gと続いたら神 (535)
C言語のCGIを語りつつ普及するスレ (527)
【PHP】フレームワークMapleに舌鼓 (461)
MySQL vs PostgreSQL (379)
=== IIS === (289)
【待望】PerlユーザのためのPHP入門 (592)
--log9.info------------------
[wii]スゴロクロニクル (224)
バーンアウト2 ポイントオブ インパクト (371)
モンスターファーム5 攻略スレ (802)
サクラ大戦 攻略総合スレ Vol.5 (659)
ファントムダスト攻略スレ 2 (889)
ゴールデンアイ・ダークエージェント攻略スレッド (285)
GTA4 (307)
【Xbox360&PS3】CoD4 友達3000人【CoD4】 (276)
【PS2】安い神ゲー (211)
【007】ロシアより愛をこめて【攻略・裏技】 (404)
クロックタワー2 (713)
連打連打さあ、格げーで連打 (482)
【Wii】@SIMPLE THE 密室からの脱出【攻略・質問】 (608)
ドカポンについて語ろう (436)
白騎士物語の質問に全力で答えるスレ18 (279)
PS2用 KOF NEOWAVE (207)
--log55.com------------------
【1教科】山口大学理学部数理科学科【偏差値52.5】
現代数学の系譜 工学物理雑談 古典ガロア理論も読む46
ベイズの統計学を学び始めたんだけど
巨大数探索スレッド13
【数学検定】数学検定(数検)総合スレッド Part.11
現代数学の系譜 工学物理雑談 古典ガロア理論も読む48
現代数学の系譜 工学物理雑談 古典ガロア理論も読む49
【大学院へ】 30過ぎて、数学の道へ 【挑戦】 第5章