PHP 為甚麼沒被大企業採用?(或,我對 PHP 的期望)
Tagged as phpJuly 20th, 2005 | by mk |
- 沒有命名空間(Namespace)
這是罪過啊!沒有命名空間,單靠 require/include 來選取合用的模組,或以 class 來作「偽命名空間」再配合 __autoload(),對開發超大型系統(指分散式的系統)也是 Mission Impossible!某些情況 class 和 function 便得被迫寫到一個大檔案去,對團隊合作來說也是難事。說起分散系統,也想到第二個問題: - 沒有 Remoting
嚴格來說這不是 PHP 的問題,而是平台的問題。當大家看見 .NET 有 Remoting,J2EE 有 RMI,PHP 就只有那不太完全的 XML-RPC/SOAP 3rd Party 模組,是否有點痛心?不能用遠處的物件,使 PHP 只規限於開發單機系統。 - 弱定義語言(Weak-typed Language)及不用宣告即用變數
無疑這 feature 很方便,可以省卻不少功夫,但是相對在檢查外來變數及除錯的時候功夫反是花多了。又要檢查是不是字,是不是數,而且有沒有被宣告,還要提防有心人乘虛而入。 - 亂
我喜歡 PHP 的方便,但是它語言上的「誘惑」實在太多,很容易會 dirty coding,初學者要是沒有寫過 Java 等結構嚴格的語言,沒有學過 Design Patterns,很容易會走火入魔。這其實也不是 PHP 本身的問題吧?有心也可以寫出漂亮的 PHP Code (不過寫出 dirty code 更容易啦)。
當然還沒有跟 PHP 分手,不過總會希望伴侶改進嘛! ![]()
5 Responses to “PHP 為甚麼沒被大企業採用?(或,我對 PHP 的期望)”
on Jul 22, 2005 | Reply
很喜歡看你這類文章呢! 因為自己的 php 知識非常薄弱,只靠其他 programming language 的經驗搭救,最多只能處理一些 structural 的 statments,從 java 學來那套 OO 在 php 上用不著呢… ~_~
on Jul 22, 2005 | Reply
回 Madthiu:
其實 PHP 跟 Java 的 OO struct 很相像,而且相對上自由(當然檢查的時候會較麻煩)。但 Java 除了 Int 以外差不多甚麼也是物件,PHP 這方面還是像 C/Perl 啊。
on Jul 26, 2005 | Reply
有這種事?那我的編程經驗真的太淺了 ~_~
看到 php 那 OO 的 syntax 就覺得有點像 C++,不過我從沒學過 C++,只學過 C,所以看不懂且有點怕 (汗…)
另外又覺得,java 在 jsp 應用上可把純 class 的東西獨立地放在 .class file 內,web page 內可直接叫來用;php 那些則覺得較模糊,試用過不少 forum 軟件,os commerce 及幾款 php 的 blog system,接觸過裡面的 source code 還是不看不懂 ~_~ (不過沒甚麼需要去深入了解,所以就沒再學習了)
perl 很好啊! 學生時代寫過一點,覺得超有彈性的! 不過也是沒太多實習機會,所以可說是完全不懂… =_=
on Sep 20, 2006 | Reply
PHP 5 有 namespace 及 soap . 不過 namespace 的部份. 我試不太出來. 若有什麼結果一起討論.
on Sep 20, 2006 | Reply
異議!
PHP 5 沒命名空間是肯定的,那雙冒號(::)只用作存取物件的靜態成員。PHP 6 才會出現。
SOAP 我沒說沒有啊,但在落筆之時我知道只有 nuSoap 以及 PEAR::SOAP 兩個第三方模組,非官方支援而且功能不齊全。現時 PHP 5 的 SOAP 官方伸延也非完全支援 1.1/1.2 的標準。