PHPカンファレンス2004詳細と事前登録開始 69
ストーリー by Oliver
5はもう使ってみましたか 部門より
5はもう使ってみましたか 部門より
okdt 曰く、 "日本PHPユーザ会は、13日、8月21日に大田区蒲田で開催予定の「PHPカンファレンス2004」のプログラム詳細と、事前登録受付を開始しました。
本年で5回目となるPHPカンファレンスだが、プログラムの中には、ソーシャルネットワーキングサイトGREEや、「ブログ人」の担当者の話も盛り込まれており、プログラマのみならずWEBアプリケーションにかかわる人も十分楽しめると思われます。ふるってご登録ください。"
夏厨に加えて (スコア:3, 興味深い)
何にでも「つまらない」というのがカッコイイと思ってるファッキンガイ [goo.ne.jp]とか。
そんな自分はPHPがあって良かったなあと思いながら、簡単なツールを書いては悦にいっているわけですが。
Re:夏厨に加えて (スコア:2, すばらしい洞察)
Re:Javaなんてう○こだとぉ?(スコア:-1, オフトピッ (スコア:1)
今年のLightweight Language Weekendでも盛んに言われていた(らしい)言葉ですね。
# 行ってないので、正確なところはわかりませんが。。
「オレってばスゲー」みたいなことをお手軽にできるのがLL [no-ip.com]っていうのは、
なかなかイカした定義だと、確かに思います。
でも同時に、同じく盛んに吹聴されていたらしい「Javaなんてう○こ」 [no-ip.com]ってのは
ちょっといただけないよなぁ、と僕は思います。
もともと発言した当人がどうかは知りませんが、少なくともJavaを全然知らない人間には、
それを言う資格はないのではないかと。
そういった無責任な言動をする連中もまた、ファッキンガイではないのかと。
# まぁ、お祭りだから、その場のノリだからいいじゃんってのはあるとは思いますけど。
# どちらにしてもオフトピですね。。すみません。
Re:Javaなんてう○こだとぉ?(スコア:-1, オフトピッ (スコア:0)
同じ奴が書いてるJLSとR5RS読み比べてみ。
Re:Javaなんてう○こだとぉ?(スコア:-1, オフトピッ (スコア:1)
Javaに触れたことすらないような人間が、無責任に「Javaなんてう○こ」なんて言っているのであれば、
そいつはHackerじゃねー、ファッキンガイだ、というのが僕の意図です。
Javaについてそれなりに知見があった上での批判であれば、それが下品な表現であってもOKだと思います。
# 程度問題だとは思いますけどね。 > 下品な表現
Re:Javaなんてう○こだとぉ?(スコア:-1, オフトピッ (スコア:0, フレームのもと)
誰が言ったかなんてのは、言葉が野に放たれた直後に、意味がなくなります。
誰も責任なんて取れやしないのですよ。
というわけで、誰が言ったかに依存せず、この言葉の内容を評価してみますが、
少なくとも俺は同意しますね。Javaは良い言語ではないです。
遥か昔に誰かが言っていたように、「Javaはイケてる言語」なのだと思います。
何かってーと、最初から流行る事を(アコギに)狙った言語なんですよね、Javaって。
そしてそれに成功している。
まあ90年代半ばの小室哲哉音楽みた
Re:Javaなんてう○こだとぉ?(スコア:-1, オフトピッ (スコア:0)
と呼ばれるに値するか」がさっぱりわからない文章だな。
「流行ものだからうんこ」「C言語に似てるからうんこ」って
程度の理由なわけ?
で、Gさん的に素晴らしい言語って?PHPはどう?
> >あー、文意が伝わってないかもしれないです。
>
> #それは文意ではなく、「文に込め損ねた意味」では?
Re:Javaなんてう○こだとぉ?(スコア:-1, オフトピッ (スコア:1)
>程度の理由なわけ?
なぬ?
…ああ、そうか。
まず「C言語はうんこ」という前提が共有できていませんでしたか。こりゃ失礼。
C言語は高級アセンブラとしてはあれでもいいんだろうけど(それにしては半端だが)、
もうちょっと上の層を書くための道具としては駄目な面が多いです…
…という話は既に有名な話だけど、
その話に隠れてしまって、Cのもう1つの問題点が忘れられがちなのかも知れませんね。
それは、((高級)アセンブラとかいうわりには)実行モデルが固定だとか、
変数の持ち方のモデルが固定だとか、
しかもそれが結構融通のきかないモデルだとか、そう言う点です。
ああ。そういや関数が全てグローバルかつ名前有りだってのも痛い点です。
そんなCで薫陶を受けた人々は、Cのかたちに頭をすっかり染められてしまっていて、
なかなか次に行けないということなのでしょうね。
で、JavaはそういうCベースな***人々***をターゲットにしたわけです。
流行モノだというだけではなく、最初から仕組まれた流行なわけです。
Cしか知らない(多数派の)人々に照準を合わせた言語。
「ほげ言語のパラドックス」の真逆(つまり、わざわざ劣った言語として設計)をしてるんですから、
流行していなくても元々うんこですし、
それで流行してるってことは(言語だけじゃなくそのユーザも含めて)更にうんこ、です。
卑近なところでいえば(でも大きいけどさ)、 CにもJavaにも、Closureが無いのは痛いかなと。
いや、あれが有ると無いとでは段違いですよ。
ループ変数も不要になるし、ツリー構造のデータの作りやすさも充分強いし、
例外処理の隠蔽(==書き忘れの防止)も出来るし。
まあC的関数でも不可能じゃないけど、恐ろしく不恰好にしかならないんで(快適でもなければ、スゲー感も無し)。
>Gさん的に素晴らしい言語って?PHPはどう?
PHPは使ったことが無いので正確なところは何とも言えないけど、
伝え聞く噂から推測するに、あんまり冴えた言語じゃなさそうですね。
例えば、少なくとも「細かい実行効率のことなんて言うのは野暮」な高級Script言語の畑では、
変数は全て参照ベースでないと駄目だべ、という気が俺はしていますが、
なにやらPHPはそうではないそうですね。
「変数は箱だ」モデルには(かなり低い)限界が有ると思う。
#Closureは有るんでしょうか?
素晴らしい言語ねえ。一長一短だし。
Rubyも、end(の対が11種類もあること)とか、require "UNIX"が無い点とか、
気に入らない点も幾つか有るわけだし。
手放しで「素晴らしい」と言える言語は、まだ無いなあ。
なんといっても、言語(特定の実装や、特定の仕様)に「満足」したって、得るものは何も無いですからね。
むしろ不満を抱えること自体が、その人の技術力を支える原点じゃないかと思いますよ。そうすりゃ向上心が萎えませんから。
>↓これをふつーに読めば文意が読みとれると思うのだが…
>> もともと発言した当人がどうかは知りませんが、少なくともJavaを全然知らない人間には、
そんな「価値の無い概念」を尊重しても意味が無い、と判断されてしまったのでは?
つまりスルーね。
Re:Javaなんてう○こだとぉ?(スコア:-1, オフトピッ (スコア:2, 参考になる)
> 変数は全て参照ベースでないと駄目だべ、という気が俺はしていますが、
> なにやらPHPはそうではないそうですね。
>「変数は箱だ」モデルには(かなり低い)限界が有ると思う。
PHP4までは確かにそのとおりですね。
&がうざかったり(制限も多かったり)、引数や戻り値をいちいち変数へ渡したりと。実際に、arrayの扱いとかライブラリでのオブジェクト関係の受け渡し方法とかで、誤用する人は多いので問題ある仕様でしょう。
PHP5ではオブジェクトの受け渡しはデフォルトが参照渡しになり、普通のオブジェクト指向言語になりましたよ(これがPHP5での一番大きな変更でしょう)。
> #Closureは有るんでしょうか?
文法として統合されたclosure生成方法はありません。
# オブジェクトやeval、create_function、call_user_funcあたりである程度は代用可能でしょうけど。
Re:Javaなんてう○こだとぉ?(スコア:-1, オフトピッ (スコア:2, 興味深い)
> 普通のオブジェクト指向言語になりましたよ(
> これがPHP5での一番大きな変更でしょう)。
参照渡しになったのはとってもうれしいんだけど、
コンストラクタ名が統一されたのもうれしんだけど、
try/catchの導入なんか最高にうれしいんだけど、
それでもPHPは好きになれん。
・インスタンス変数を参照するのにいちいち $this->var とせなあかん
・インスタンスメソッドを呼び出すのにいちいち $this->foo() とせなあかん
・いちど導入されたはずのnamespaceが使えんなった
やっぱりPHPでオブジェクト指向バリバリするのはつらいよ。
Re:Javaなんてう○こだとぉ?(スコア:-1, オフトピッ (スコア:1)
「$this->」で7文字もタイプしなきゃならんからな。
EmacsLispでマクロでも書いてキーバインドしとこうか。
> # 省略できたとしても、レシーバーはなるべく付けるべきだと思うけど
ああそうか、いわれてみればその通りだな。
メソッド呼び出しは関数呼び出しとは違うんだから、OO的には
レシーバをつけるべきというのは説得力あるな。
でもやっぱ面倒くせーや。理想と現実にはギャップがあるのう。
Re:Javaなんてう○こだとぉ?(スコア:-1, オフトピッ (スコア:1)
ただ、
> そんな「価値の無い概念」を尊重しても意味が無い、と判断されてしまったのでは?
> つまりスルーね。
ってのはどうなんでしょうね?
「Javaなんてう○こ」を連呼している人間の、どの程度の人達が "正当な価値判断"から
「価値の無い概念」だと判断できているのでしょうか?
そういったことを連呼している人間の、どの程度の人達が、計算機についての基礎的な
積み上げを持っているのでしょう?
そういった素養のない人間が、その場のノリだけで特定の言語をさげすむのは無責任だと感じます。
だからこそ、
>> そいつはHackerじゃねー、ファッキンガイだ
と言っているわけです。
Re:Javaなんてう○こだとぉ?(スコア:-1, オフトピッ (スコア:2, 興味深い)
> 「価値の無い概念」だと判断できているのでしょうか?
> そういったことを連呼している人間の、どの程度の人達が、計算機についての基礎的な
> 積み上げを持っているのでしょう?
基礎的な積み上げを持っている人間だからこそ「Javaなんてうんこ」だと感じるんだよ。
いや煽りじゃなくてね、ほんとにそう思うよ。
Javaを何の文句もなく使っている人って、Javaしか知らないか、あるいは
他に知っているのがC/C++ぐらいという人ばっかり。
Javaを批判する人は、他の言語をよく知っている人(かMSのやつら)。
だからJavaに不満を覚え、Groovyとか作っちゃうわけよ。
たとえば、Javaではinterfaceにはメソッドの宣言しかかけなくて、
メソッド本体のコードは書けないよね?
でも本当はinterfaceにもメソッド本体が書けるはずなんだよ。
もちろんインスタンス変数にアクセスするコードは書けないけど、
getter/setter使えばほぼ問題なしのはず。
これ、Java(というかOOP)の実装についての知識があればよくわかる。
#言語仕様とコンパイラは複雑になるけど。
Javaを使っているだけの人間には「intefaceにはメソッド本体は書けない」という
仕様に何の疑問も持たないかもしれんが、基礎的な積み上げを持っている人間なら
それができるはずだということがわかるからこそ、そしてそっちのほうが
ずっと便利だということを他の言語で知っているからこそ、
なんで書けないんだよFu○k!とか思ってしまうわけ。
まあinterfaceにメソッド定義を含めるなんていうのはあまり使い道が
思いつかんかもしれんが、他の例をだせば J2SDK1.4 になるまで正規表現の
サポートがなかったよね?
これはスクリプト言語使いにとっては受け入れがたいことだったぞ。
今でもJavaでテキスト処理する気がおきん。
あーでも、マルチプラットフォームで使えるGUIライブラリは魅力だな。
でもそれってライブラリの魅力であって言語仕様の魅力じゃねーな。
Re:Javaなんてう○こだとぉ?(スコア:-1, オフトピッ (スコア:1)
>ってのはどうなんでしょうね?
>「Javaなんてう○こ」を連呼している人間の、どの程度の人達が "正当な価値判断"から
>「価値の無い概念」だと判断できているのでしょうか?
再度言いますが、「誰(どんな経験値の人)が」発言したか?なんてことは、どうでもいいんだと思います。
というか元々、それを言うなら、逆のことも考える必要があるんだと思います。
つまり、今回の話とは逆に、CなりJavaなりを「持ち上げてる」人々が世の中には多数居るわけだけど、
彼らの評価はどれほど正当なのか?ってことです。
つまり「うんこ」が良くないなら、「宝」と呼ぶのも同じくらい良くない可能性が結構ある、
のではないか…と思うんです。
そして、「うんこ」の無責任(ってなんだろう?)な尻馬乗りが多数居るというならば、
それよりも多くの数の無責任(ってなんだろう?)な尻馬乗りが「宝」と呼んでいるんじゃないか?と。
ある物を悪く呼ぶことってのは、多くの場合、そういう潜在的な批難が隠れているように思います。
世間の良い評判を本当に信じてもいいのか?という問いかけのため、という。
>そういった素養のない人間が、その場のノリだけで特定の言語をさげすむのは無責任だと感じます。
>だからこそ、
> >> そいつはHackerじゃねー、ファッキンガイだ
>と言っているわけです。
無責任に誉めてる連中も無数に居ますよ。いや、ほんと(T_T)
Javaとかの当代流行言語について言えば、それが非プログラマにも広まっているのが悩みです。
プログラムのことなんか判ってないけど意思決定権がある連中…会社の偉いさんとか…が
Javaマンセーって言っちゃってるわけです。
で、そういう偉いさんの言葉を聞けば、その理由を突き詰めると、
「プログラマが集め易いから」です。
それこそLLWでも出た話題だったと思いますが、数が多いってのは裾野が広いってことで、つまり
「腕前の良くないプログラマ」も大勢居る、っていうことなんですよ。
つまり、Javaプログラマとして募集かけて集まる人間は、平均すればあんまり良くない、のです。
でさ。あんまり良くないのを前提というか覚悟というか黙認したうえで、
多くの会社はプログラマを雇っちゃってるという、寂しい現実があるらしいわけです。
ご存知のとおり、よくないプログラマの工数はマイナス(藁)です。
つまり、そういう人の集めかたは、わざわざ悪いプログラムを作って売るぞと宣言
してるようなもの(である可能性がある)わけです。
#プログラマの能力にあわせて人月あたりの料金を何十倍も変えてる、っていう会社は
#聞いたことがない…ような気がします。
#というか元々、プログラマの能力を測定しようとしていない模様。
#能力による生産性の格差は歴然としてあるのに、です。
#まあ測定しにくいのは我々も判るんですが、マイナスな連中まで同じ金では、お客様も可哀想というものです。
あー。つまりですね。
誉めれば世の中が良くなる(けなせば悪くなる)というものではないんですよ。
だからこそ、誉めてもいい(例:上記のような企業運営を行なってもよい)のならば、
同じくらいけなしても「いい」はずですし、
けなしちゃ駄目なら同じくらいに誉めるのも躊躇ってもらわないと困るんです。
余談ですが、「うんこ」の真逆として、たとえばSun が言う「Run Anywhere」なんて言葉は大嘘ですよね。
ああいう過大評価な煽り文句を、「うんこ」と同じくらいに、(あなたは)批判してくれますか?
無責任(藁)にそれを復唱してる連中を、批判してくれますか?
>そういった素養のない人間が、その場のノリだけで特定の言語をさげすむのは無責任だと感じます。
その場(ここんとこのたったの10年:-))のノリだけでJavaを持ち上げてる連中が無数に居るわけです。
彼らが消えてくれないのならば、少しくらい逆の人も居てもいいはずです。
Re:Javaなんてう○こだとぉ?(スコア:-1, オフトピッ (スコア:1)
たとえば、RubyのModuleの仕組みが、(言語仕様のバランスという意味で)良いですね。
Javaのあれは、メソッドの衝突を恐れて、「名前だけの衝突なら痛くも痒くもないもんね」
という逃げを打ったものです。
一方Rubyは、「衝突しても、プログラマがわかってる範囲なら、まあいいや」作戦ですかね。
少々危険ではありますが、Java方式の「圧倒的な不便さ」とのトレードオフだと思えば、悪くない取引だと思います。
また、動的言語としては、やっぱりこうじゃないとねえ。
あと、後勝ちという単純な(それゆえ判りやすい)ルールも、結構使える。
----
ところで、OOPを愛する(笑)者としては、Java(やついでにいえばUML)がOOPの本家!権化!であるかのように
最近世の中で扱われているのは、かなり歯がゆいですね。
JavaもUMLも、OOP全体から見れば、かなりサブセットというか半端だというか、なのに。
-----
>他の例をだせば J2SDK1.4 になるまで正規表現の
>サポートがなかったよね?
>これはスクリプト言語使いにとっては受け入れがたいことだったぞ。
>今でもJavaでテキスト処理する気がおきん。
サポートという意味では、今もサポートは無いですね。
ライブラリを提供されただけでは、萌えるわけにはいかないです。
#てゆーか、それで足りるんだったら、一昔前から色々有ったFREEな正規表現ライブラリでも足りるはず、なんだよね。
RubyやGroovyみたいに、専用の文法が欲しいなあ。「/hoge/」とかさ。
Javaにはこれが無いので、今でも使いにくいんですよね。
そうそう。配列やHashをワンタッチで作れる文法も重要ですね。
あと余談ですが、OOPはいいんだけど、プリセットのクラスが多すぎるのも辛いですね。
Java(やSmalltalk?)だとクラスが多すぎてね。
Squeakだと60個以上(!)もあるそうですが、Rubyだとコンテナ系は2つくらいですか。
「軽量な(プログラマに負担を強いない)プログラミング」にはこれで殆ど不足しないです。
まあこれはズボラなクラス分割のせいなのですが、だからって困るわけではなくて、
個々の使用状況においては、インスタンスの「一部の側面(メソッド)」だけを使うんで、これで問題なし。
固定長配列クラスも必要なし(動的配列だけで全部やりゃいい)。
>あーでも、マルチプラットフォームで使えるGUIライブラリは魅力だな。
>でもそれってライブラリの魅力であって言語仕様の魅力じゃねーな。
そそ。
なので、GroovyやPnutみたいに、JVMでちゃっかり動く軽量言語があれば、それでいいっていう寸法だ。
ただまあ、プログラミングのこと「だけ」考えるなら、 JVMの起動の遅さがウンザリなんだけどね。
細かい周期でコードを弄って実行してを繰り返すとき、その遅さがウンザリなんだよな。
うーん。JVMをいちいち終了せずに、スクリプト(とそれによって生み出されたクラスやオブジェクト)だけを
UnLoadする仕組みって、用意されてるのかな?されてるといいなあ。
Re:Javaなんてう○こだとぉ?(スコア:-1, オフトピッ (スコア:1)
ほかの OOP の言語でできることが、こういう継承がらみで Java はぜんぜん OO してないのでなんでかなぁと感じました。
これは、C++ の問題点から新しい言語を言語を作ろうとしたときに 極端に縛りをいれた結果なんでしょうね。Re:Javaなんてう○こだとぉ?(スコア:-1, オフトピッ (スコア:1)
> JVMの起動の遅さがウンザリなんだけどね。
> 細かい周期でコードを弄って実行してを繰り返すとき、
> その遅さがウンザリなんだよな。
> うーん。JVMをいちいち終了せずに、スクリプト(とそれに
> よって生み出されたクラスやオブジェクト)だけを
> UnLoadする仕組みって、用意されてるのかな?
> されてるといいなあ。
多数のファイルの変換に SmartDoc という Java プログラムを
「高速に」実行したかったのですが、ファイルごとに
SmartDoc を起動しなければならない、つまりファイルごとに
Java VM の起動がかかりとにかく時間がかかるという問題が
ありました。Java には疎いのですがなんとかしたいと思い、
調べたことがあります。
調べた結果、やってみたこと:
1. SecurityManager とかいうクラス(?)から派生クラスを
作って、checkExit メソッド内で例外を発生させるようにする。
(exit に対して SecurityExceptio を throw する)
2. 1 のインスタンスを System.setSecurityManager に与える。
3. 起動したいアプリケーションのクラスの main メソッドを
呼ぶ。
4. 3 のアプリケーションが exit すると、例外が発生するので、
catch できる → Java VM を終了させず、もう一度 3 に
戻れる(と思う)。
というのをやったことがあります。実装の途中で
放置プレイしているので、結局、これで
「1つの Java VM で複数の Java プログラムを動作させる(?)」
ことが可能かどうかはわかりません。たぶん、できるんじゃ
ないかなぁ。
…そういうことではなくて?
Re:Javaなんてう○こだとぉ?(スコア:-1, オフトピッ (スコア:1)
うわ。そういう手ありますか。
で、まあ、技術的にはそれでもいいんだと思いますが、
問題として、そういう(?)再起動の遅さを回避する仕組みが「最初から、公式に」用意されてるべきなんじゃないか?という
政治的(藁)な話も有りそうです。
Javaの真の普及にとってのプラスになるようにという意味で。
普及ってのはつまり、起動状況が不愉快(藁)であっても使ってくれる(使うのを強要可能な) 鯖サイドでのみ普及するっていう
なんか変な(後ろむきで、Sunにとってもプログラマにとってもユーザにとってもメリットの無い)状況ではなく、
暗庵人^Hクライアントサイドでもきちんと普及すればいいのに、という意味です。
近年の強引なCPUパワーで、やっと少し我慢できるくらいの起動時間になってきたわけで、なんだこりゃ?と。
#あとSwingも同じですね。強引でマッチョなCPUでないと、遅い遅い。
遅いんだから回避策を用意しないと、という意識が
Sunに無い(あるいは有っても発揮してない)のが、不思議でなりません。
ま、それ以前に、巨大なImageファイルを抱えたSqueakならいざ知らず、
古典的な中間コード実行環境の形態しか採ってないJVMが、あんなに起動遅いってのは、
技術的に幾ばくかの疑問を感じずにいられない…ってのは
matz氏でなくても言えてる言葉かもです。
#LLW2004で、「JavaScriptでJVMを作ってみた」という発言に笑い転げたのでG7
#ところでそれの起動は早いのかなあ?
てか、Security周りに手ぇ突っ込んでヤルってのは、
たぶんSunお勧めの手ってわけにはいかないでしょうね。
ところでSmartDocって http://www.asahi-net.or.jp/~dp8t-asm/java/tools/SmartDoc/index_ja.html ですか?
オプソ(GPL)なようですから、ソース弄っちまうほうが早いかも。
あるいは事情を作者とかコミュニティに相談したらカイゼンしてくれるかも。
#ただ、ソフトのアーキテクチャの不味さをオプソ手法で補うってのは、
#技術的には敗北感が漂うのでG7なんだけど。
Re:Javaなんてう○こだとぉ?(スコア:-1, オフトピッ (スコア:1)
極端でもあるんですが、
「的外れな縛り」だったという節も結構ある感じなんですよね…。
まあ、度を過ぎた悲観論は的外れに変容するという意味では、
「石橋を叩いて渡る」という言葉が正に状況を説明しているのでしょうね。
ところで、Javaがいかにウンコなのか?を、ウンコという言葉を使わずに:-)非常にうまく説明した文の1つとして、
こちらの「Java の面倒臭さ」 [xrea.com]という文章が、なかなかGoodです。
GroovyとJavaの比較という話です。
冒頭で出てくる比較が、少々の不公平感はあるにせよ、
不公平であろうがなかろうがとにかくネズミを取るネコ(=実利を上げられる言語)であることが重要であることを思えば、
こんな説明で充分だという気がします。
それにしても行数にせよ行の中の言葉遣い(??)にせよ、段違いな差ですよね。
これを見てもなおJavaがウンコ(言葉の選び方はさておき)だと思わない人なぞ居ない事を、俺は期待します。
そして、単純というか「安易」に字数を減らしただけじゃなく、
Groovyは、きちんと「使い物になる度」を損なわず、字数だけを節約することに成功してる言語(の1つ)です。
言語仕様がDQN設計ではなくWellDesigned設計になっている。
で、話は戻って、PHPがWellDesignedとDQNの間のどの辺に位置してるか?ってのは、
とりあえず俺は知らないので、識者のコメントを待ちます。はい。
Re:Javaなんてう○こだとぉ?(スコア:-1, オフトピッ (スコア:1)
「鯖」などの隠語は、検索する際の障害になるので止めていただきたいです。場所を選ばずにどこでも隠語を使いたがる連中が目について、うんざり…。:-(
SmartDoc は、それで正解です。ただ、Makefile + make で処理させたいと考えていたので、SmartDoc が 1 度に複数のファイルを引数に取れるようになっても、細工しないことには対応できないような。 (細工は難しくはないとは思うが)
Re:Javaなんてう○こだとぉ?(スコア:-1, オフトピッ (スコア:1)
> (俺が使えるから)PHP最高」ってユーザが多い気がするよ。
これは、考えようによっては「JavaやRubyが使いこなせないような
連中でも使えるPHPって最高」といえるかもしれんな。
PHP使いを低脳よばわるするわけじゃないけど、オブジェクト指向とか
デザインパターンとか小難しいことを理解せんでも、いっちょまえの
Webアプリケーションが作れてしまうPHPはたしかにすごいよ。
ホンマそう思う。
#そういう意味で言うと、デザイナーでも使えるColdFusionもすごいかも。
やっぱりね、識者がどんなに「オブジェクト指向は簡単」っていっても、
難しいやつには難しいんだよ。
結城浩や高橋麻耶がどんなにわかりやすい本書いても、Visitorパターンを
ちゃんと理解できてる人間なんて全体に比べりゃほんのわずかだよ。
そんなやつらにとって、言語仕様の美しさうんぬんなんてわかるわけないじゃん。
それでも使えるPHPって敷居がすごく低いんだよね、ある意味すごい言語だよ。
使ってる人が満足してるんだから、それでええやん。
#問題は、使った人が満足してないのに強制的に使わされるJavaのほうだな。
Re:Javaなんてう○こだとぉ?(スコア:-1, オフトピッ (スコア:1)
>連中でも使えるPHPって最高」といえるかもしれんな。
うーん。そういうVB論法(^^;は、やっぱり無理があると思いますね。
つまり、そういうのってのは大抵が「使えてるふりができる」というだけなんですよね。半可通的な用法っていうか。
>PHP使いを低脳よばわるするわけじゃないけど、オブジェクト指向とか
>デザインパターンとか小難しいことを理解せんでも、いっちょまえの
>Webアプリケーションが作れてしまうPHPはたしかにすごいよ。
ん?JavaやRubyだって、OOPやデザパタを理解してなくても
いっちょまえに書けると思います。
JavaなんてOOP言語としては半端つーか似非だし、
Rubyも「OOPくさくなく」書く手は幾つでも用意されてるんで、ね。
#このへんは、使ってりゃ判ることのはずだ。
#逆に言えばJavaなりRubyなりについて「食わず嫌い」なのかな?と。
で、ですね。
OOPやデザパタの理解ってのは、言語の選択とかどうかというよりも、
もうちょっと上流(嫌な言葉だが)の、
どんな設計や分析するか、設計や分析や旨くやれてるか、
という部分に、より顕著に響いてくるんですよね。
言語仕様の問題は最悪、小汚いまねをして回避可能なんですが、
設計や分析という「そもそも回避しないとならないかどうかを判断する」フェーズは、
きちんとした技能が無ければどうしようもない。
#そういやUML PRESS誌Vol 3が出ていますね。
#OOP技術者っていうかUML技術者っていうかの「不足」について語ってる記事が、MainDishのようです。
で、上流でもOOPを使いこなす人の目から見れば、
下流でOOPとかがDQNな言語は、「やばいよこれ」という風に映るはずなんです。
>#そういう意味で言うと、デザイナーでも使えるColdFusionもすごいかも。
#ところで、全然違う方向性だけど、SpringやSeasarなんかどうでしょうか?
#OOPくささから少し遠のきますよ。Javaだけど。
>やっぱりね、識者がどんなに「オブジェクト指向は簡単」っていっても、
>難しいやつには難しいんだよ。
>結城浩や高橋麻耶がどんなにわかりやすい本書いても、Visitorパターンを
>ちゃんと理解できてる人間なんて全体に比べりゃほんのわずかだよ。
ところで、そういうやつらって、生産性にとってマイナスなんだから、
そもそも仕事から下ろしたほうが話早くない?
簡単なプログラムは誰にとっても簡単だから、DQNじみた奴にやらせても、まあなんとかなる。
で、プログラムってのは野獣だから、「どこで」そのプログラムの難しさにいきなり出くわす羽目になるかが
なかなか判らないんだよね。不意を突かれる。
そしてそのとき、対処できるか、似非対処しか出来ないか、がマトモなプログラマ(&ソフト開発企業)か否かの境目。
で、そんなんだったら、最初からマトモな人だけで固めておいたほうが話が早い。
土台プログラムなんて物量(人月)で片付くものじゃないんだから、作業者の最低限の質は必要でしょう。
うーん。あえて言えば問題は、そもそも意思決定者が生産性マイナス野郎である場合、
同じように生産性マイナスな部下どもを正しく(つまりマイナスに)評価できない、っていう点かな。
つまりだ、マイナスかけるマイナスはプラスだっていうのと同じ(藁)で、
マイナス上司は、むしろマイナス部下を重用したがるのな。
自分より賢い奴(というほどでもないのだが)は避ける。
プログラム作り(を商売にすること)ってさ、とどのつまりは、頭のよさの競争だったりしないかな?
頭がよい奴が良いプログラムを作れる。DQN頭はDQNソフトを作る。それだけのこと。
>それでも使えるPHPって敷居がすごく低いんだよね、ある意味すごい言語だよ。
>使ってる人が満足してるんだから、それでええやん。
(もし仮に)DQNサイトがInternetに増えたなら、それは世界の損失では?
Webに限った話ではないですが、DQNプログラムの潜在的被害を被ってる顧客は、多いんじゃないかと推測しています。
Waterfallな契約とかをしてしまったとか、「こんな高いソフトを」いまさら買い換えられないとか、
といった後ろ向きな事情により、良いプログラムへの健全な乗り換えを出来ていない顧客が、です。
PHPってどこがいいんですか (スコア:1, すばらしい洞察)
Re:PHPってどこがいいんですか (スコア:3, 興味深い)
Re:PHPってどこがいいんですか (スコア:2, 興味深い)
変数の宣言がいらない、型チェックもない、というだけでなく、
配列もかなり柔軟で、宣言のいらない構造体という感じ。
一通りの構造化制御文とかローカル変数とかクラス管理とか、
複雑すぎないで覚えやすくて、楽に書ける文法。
文字列操作や配列操作の関数が充実しているので、ループを自分で書かずに済む
ケースも多い(その代わりループが遅い)。
また、日本語の各種文字コードを自動で変換してくれることや、半角と全角など
を変換する関数とか、「こんなのあったらちょっと便利」という関数が
山のように準備されているし、日々増え続けている。
思いつきと、いきあたりバッタリでプログラムを書いている僕のような人間には、
非常に楽で早くプログラムが書ける、便利な道具です。
[tomoyu-n]
リファクタリング文化 (スコア:1)
PHPは、(Ruby, Python と比べると)メンテナンス性がよいとは思えない言語であると私は思うので、リファクタリングする意思の無い組織が選びがちな言語だなと思います。
リファクタリングしないプログラミング作業は、面白く思えない。
Re:リファクタリング文化 (スコア:1)
http://www.kakutani.com/20040809.html#p01
を見ておくと良いかも知れません。
あと、そこからもリンクされてる、
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?RefactoringMalapropism
も。
なにやら、リファクタリングではない行為をも、安易にリファクタリングと呼ぶ風潮が、
世間に広まってるという噂なので、
アレゲな人々が一杯集まっているということになってる:-)スラドでも、
参照しといたほうが良いかなーと。
読んでみると、「リファクタリング」と呼ばれるに値するための本当の条件は
なかなかに厳しいようです。
>読みにくい書きにくいプログラミング言語、フレームワークでソフトウェアを書こうとするなら、
>そこにはリファクタリング文化が浸透していない、てなことで。
リファクタリング以外の色々なものもまた、浸透してないのでしょうね、そういう場所では。
Re:リファクタリング文化 (スコア:1)
> 楽天なんかどうなんだろう。
ダメぽ。
まぁ色々抱えているので一概に言えないのかも知れませんが (でも不良品が紛れている事自体 失敗だよな
> つまり、その手の意識が低いところなら、どんな言語でもぐちゃぐちゃなコードで書くよ、ということで。
責任がある場合はソレでは済まないワケで、その結果 PHPはちょっと [typepad.com] という話になるのかな、と思います。
Re:リファクタリング文化 (スコア:1)
> を以て PHP を採用すると最強
PHPでもよいコードは書けますが、しかし、どちらかというと私は Ruby, Python を選んだほうが、よいよいコードは書けると思いますし、そういういいコードを書ける人が Ruby, Python ユーザには多いと思ってます。
型宣言あり言語(つまり、Java)と、型宣言なし言語ではどちらがよいかという話がありますが、私はウェブプログラミング/データベースプログラミングをするときには、型宣言なし言語のほうが書きやすいです。比較的、定型的な処理が多くて、そもそもあまりクラスを定義せずに済むので。
Re:リファクタリング文化 (スコア:1)
>味がある)人が多いからであって、言語の特徴だけが理由ではないというのが本当のところでしょう。
使い「はじめる(試みる)」という意味では、探究心という言い方も当たってると思うけど、
使い「続ける」かどうかという意味では、探究心だけじゃなく、
素性の良い言語を選択する(悪い言語を忌避する)だけのセンスというか腕前がついてる人間なんじゃないかな。
「あ、これは、より良い言語なのだ」と気付くかどうか、っていう問題。
あと、より良いと気付いた対象を、今後も使いつづけるぞと選択するかどうかっていう問題。
Re:PHPってどこがいいんですか (スコア:0, 余計なもの)
プログラムをしているという気すらしない、ひたすら作業みたいな。
どうしてだろう、webアプリケーションのロジックがそうだからかな?
積み上げが必要 (スコア:3, 余計なもの)
ただ効率よく使おうと思うと積み上げが必要。
言語仕様や組込関数が全部面倒見てくれるワケではなくて、そこからいちいち作り込んでいくと楽しい&抜群に効率がいいのですが、
バイキングに似ていて、腹具合に合わせて使うお皿 -例えば binarycloud, Phrame, HORDE, Mojavi- を選んで、その上にライブラリ -フォーム制御, OR マッピング, テンプレート, キャッシング- 盛りつけて、そこでいただきま~す でコード書いていく感じ。
勿論プロジェクトごとにいちいち↑をやるのではなく、普段から自分の皿を持ってブラッシュアップし続けているワケで。
この結果、プロジェクトをまたぐ共通部分の再生産をほぼゼロにしてそのアプリケーションのロジックに集中し、手軽にざくざく作っていけるのが良いところです。
フレームワーク上で各種ライブラリを適切に結合させたアプリケーションを某所で見たときには、構造の美しさや、それが導く開発効率の良さに目から鱗でした。
でも国内ではほとんどそういう使われ方してない。
中上級者向けの本も殆ど無く、スピーカーもまだまだ足りない気がします。
# だから PHPCon 頑張れ なんですけど。
Re:積み上げが必要 (スコア:2, 興味深い)
自分的には、仕事でもっともよく使っている言語ですが、PHPはかなり不満です。
ライブラリの充実ではカバーできないような問題ばかりと思うけど、どうかな。
Re:積み上げが必要 (スコア:1)
昔の多機能なBASIC(F-BASIC386なんか使ってましたが・・・)みたいなかんじで、マニュアル見れば大体理解できて、さくっと創れるところは、個人でお遊びプログラムには最適じゃないかなーと。
プログラム言語は適材適所だとおもうし。
プログラマーの好き嫌いもあるしね。
--
Re:積み上げが必要 (スコア:0)
PHPのように生産性が高くて習得も簡単、実行速度にも不足はない言語で書いた方がいい、という意見はある?
Re:積み上げが必要 (スコア:0)
誰でも俺言語を実装していいし、それを使うのも勝手だと思うけど
> PHPのように生産性が低くて習得が難しく、実行速度は明らかに不足な実装しかない言語
に付き合うこともあるまい。
Re:積み上げが必要 (スコア:0)
私も元コメントを見て「PHPである理由」が分かりません。なぜPHPなら積み上げが可能で、他の言語(何と比較しているんだろう??)では積み上げが不可能なのかを知りたい。
Re:積み上げが必要 (スコア:1, すばらしい洞察)
何を上げても
○○○である理由ってあるの?
って質問してくるんだろ?
Re:積み上げが必要 (スコア:1)
別に他の言語がどうとか、その辺りに言及するつもりも無く。
言語が選べるなら、自分で最適と思う言語を使えばいいし、
PHP 以外に選択肢が無く、だるーと思って使っているならそれは不幸な事なので少しでも楽しくなるよう何かを、と思っただけ。
# 自分に文章を書く力が無く上手に伝わっていないようで、その辺は申し訳なく
Re:積み上げが必要 (スコア:0)
PHPはすごいよ! と言っているように思えてあんな書き方になってしまいました。
PHPって言語仕様を眺める限りはあんまり面白そうな言語じゃないなあという偏見があったものですから。
Re:積み上げが必要 (スコア:0)
そりゃ変数の型がとか、PHP4の変なオブジェクト指向もどきとか、ホンモノのオーソドックスな人には驚かれることも多々ありますが。
Re:PHPってどこがいいんですか (スコア:0, 余計なもの)
自分がやってきた方法以外の新しい物を否定したがる傾向が出てきたら要注意。
かくゆう自分ももう新しい言語は覚える気力が沸かない20代。
Re:PHPってどこがいいんですか (スコア:0)
ちょっとプログラマブルなHTMLという感じですね。
HTMLに埋め込んでおけば良いってのはメリットではないでしょうか。
がっつり開発するならJavaとかの方が良いでしょうけど。
PHSももともとはPHPと呼ばれていたらしいし (スコア:1, おもしろおかしい)
ぶろぐ? (スコア:1)
LLW2004でも有ったし、それに対して
「なんでLLWでBlogの話題なの?関係ないじゃん?」
「せめてプログラミングとの絡みにもっと焦点を絞って話しを進めて欲しかった」
という批判が各所で散見していますが、
ここでもBlogが出張っているんですね…。
他のイベントならイザ知らず(というかBlog自体のイベントをやるのが一番ですね)、
どういうわけでこういう風に最近Blogが「よそのイベント」に出張っているんでしょうか?
まさしくオフトピだと思うのですが。
#LLWの日曜午前(Blog話)は遅刻して殆ど聞いていないのでG7
#ただ、興味の無い話題だし、「オフトピだろ!」って思いも有るんで、遅刻してもあまり悲しくなかったが。
ん。単にオフトピだというだけならまだしもなんですが、
LLWで(少しだけ)聞いてた範囲でも、なんか、「どのBlogソフトも機能的に差があまり無い」
みたいな話がされていて、それで尚更違和感を覚えました。
つまり、「ソフト開発という立場から見れば、Blogの話題は、既に終わってる」のではないでしょうか?
終わってること自体は悪いことではない(アーキテクチャが枯れた、とも言えますから)のですが、
これでプログラミングのイベントに彼らが出てきて、どうするんだ?という違和感が有りました。
あ。今回のこのイベントも、プログラミングのイベントなのですよね??
Re:ぶろぐ? (スコア:1)
風の噂に聞いた話ですが、ブログ人は Smarty, QuickForm といったスタンダードなライブラリを幾つか採用して作られており、規模も大きいので PHP 使いとしては色々と興味深い所があります。
いい話が聞ける物だと期待してます。
# といっても東京は遠くて参加できないので Coo-Neruasobu
Re:ぶろぐ? (スコア:1)
周辺アプリケーションではPHPが結構使われています。
Smartyは使っていますが、QuickFormは使っていません。
(QFを使うような場所がないともいう。)
# 中の人ですがID
Re:ぶろぐ? (スコア:0)
ちなみに、LLWでblogの話題を取り上げたときに、プログラミング言語の議論よりblog論が先行したのは、質問者の方がそういう質問を投げただけの話です。きちんと、その場で言語の面からの質問もでしたし、主催者も言語の企画としてそのコーナーを立てています。誤解しないように。
二回にわけてやるの? (スコア:0)
やっぱり13日はコミケに人がとられるからですか?
Re:二回にわけてやるの? (スコア:2, 参考になる)
タレコミにあるリンク先を見ればわかりますが、8月21日に開催するよ、と告知されたのが13日ということです。
# 確かに勘違いしちゃいそうなタレコミ文ではあるけど・・