2008-01-31

まずダメなところを認めることから始まる

あんまり真面目に追っかけてなかったけど、Matz はその後さらに燃料を投下してたのか。なんてサービス精神旺盛なんだ。

Attacking PHP - Matzにっき(2008-01-26)

もうね。本人すら最初に何を話題にしたのか忘れてるんだけど、本当の問題は引用した部分、リンク先の部分だけなんだよね。ここまでにしておきなさい。初心者に向いているかどうかとか、Webアプリの構築に向いているかどうかなんてことはもっとじっくり材料を整理して日記なんかよりももっと向いたメディアで展開すべきであって、手近な材料をきっかけに話を膨らますもんじゃない。(それが楽しいってのは否定しないけどさ。)

※ 一部に建設的な手法を議論されている方がいらっしゃることは承知しております。それを否定する気はまったくありません。

ありがたいことに元ネタについてはときどきの雑記帖 i戦士篇 2008年1月(下旬)にもう少し広い範囲をカバーした対訳があるのでそっちを見てください。

※ register_globals が on かどうかなどは判別できます。マニュアルの ini_get() を穴が開くほど嫁。

でだ。この挙げられた中で否定的な意見はざっくり構文的な設計の部分、肯定的な意見は機能の(特にキャッチーさと多さの)部分なんだよね。そもそもが全然噛み合ってないし、たぶんどっちも正解というか自分はどっちにも賛成します。全然矛盾しないし。

ということはすなわち片方の意見を以て PHP 全体が良いとか悪いとかはまったく言えないし、初心者に向いているかいないかも言えないし、Webアプリに向いているかいないかも言えないんです。言えないんです。それでいいんです。

ただね、気になるんだけどみんなちゃんとこの元ネタの肯定、否定意見読んだ?と問いたい。そのうえでこれらの意見にまったく同調できないんだとしたらそれは申し訳ないけど、明らかに不勉強か不感症です。そしてこれがいちばん言いたいことなんだけど

使うんだったらダメな部分はちゃんと理解して認めたうえで使え。スルーするな。

いいところについてはプログラムを書く人間はただ享受すればいいだけだけど、ダメなところは弱点なんだから、書く人間がそれを引き受けなきゃいけない。つまり「ダメだ」「イケてない」という意見こそ真面目に聞いたうえで使わなきゃダメ。初心者だからよく分からない? だったらなおさらだ。言い直すと

勉強しない人の存在こそが「だから PHP は」「だから PHPer は」って言われるスキを与えるわけ。

分かったらくだらないケンカ売ったり買ったりしてねーで勉強しろ。他人の日記読んで頭に血のぼらせたりニヤニヤしてても絶対にいいコードは書けるようにならないから。Matz 叩きたいだけなら止めないけど、それはお前にとってどんなメリットがあるって言うんだ。

あと。

PHPer もずいぶん二極化というか局地化してるよね。完全に我が道行っちゃってて外野の声に反応がほとんどないのもちと寂しいですよ > 誰ともなく

About

例によって個人のなんちゃらです

Recent Posts

Categories

Tool 日々 Web Biz Net Apple MS ことば News Unix howto Food PHP Movie Edu Community Book Security Text TV Perl Ruby Music Pdoc 生き方 RDoc ViewCVS CVS Rsync Disk Mail FreeBSD Cygwin PDF Photo Zebedee Debian OSX Comic Cron Sysadmin Font Analog iCal Sunbird DNS Linux Wiki Emacs Thunderbird Sitecopy Terminal Drawing tDiary AppleScript Life Money Omni PukiWiki Xen XREA Zsh Screen CASL Firefox Fink zsh haXe Ecmascript PATH_INFO SQLite PEAR Lighttpd FastCGI Subversion au prototype.js jsUnit Apache Trac Template Java Rhino Mochikit Feed Bloglines CSS del.icio.us SBS qwikWeb gettext Ajax JSDoc Rails HTML CHM EPWING NDTP EB IE CLI ck ThinkPad Toy WSH RFC readline rlwrap ImageMagick epeg Frenzy sysprep Ubuntu MeCab DTP ERD DBMS eclipse Eclipse Awk RD Diigo XAMPP RubyGems PHPDoc iCab DOM YAML Camino Geekmonkey w3m Scheme Gauche Lisp JSAN Google VMware DSL SLAX Safari Markdown Textile IRC Jabber Fastladder MacPorts LLSpirit CPAN Mozilla Twitter OpenFL Rswatch ITS NTP GUI Pragger Yapra XML Mobile Git Study JSON VirtualBox Samba Pear Growl Mercurial Rack Capistrano Rake Win RSS Mechanize Sitemaps Android JavaScript Python RTM OOo iPod Yahoo Unicode Github iTunes God SBM friendfeed Friendfeed HokuUn Sinatra TDD Test Project Evernote iPad Geohash Location Map Search Simplenote Image WebKit RSpec Phone CSV WiMAX USB Chrome RubyKaigi RubyKaigi2011 Space CoffeeScript Nokogiri Hpricot Rubygems jQuery Node GTD CI UX Design VCS Kanazawa.rb Kindle Amazon Agile Vagrant Chef Windows Composer Dotenv PaaS Itamae SaaS Docker Swagger Grape WebAPI Microservices OmniAuth HTTP 分析基盤 CDN Terraform IaaS HCL Webpack Vue.js BigQuery Middleman CMS AWS PNG Laravel Selenium OAuth OpenAPI GitHub UML GCP TypeScript SQL Hanami Document SVG AsciiDoc Pandoc DocBook Develop Jekyll macOS Node.js Vite Heroku Transformer AI Data Cloud Wasm