PHP 為甚麼沒被大企業採用?(或,我對 PHP 的期望)

  1. 沒有命名空間(Namespace)
    這是罪過啊!沒有命名空間,單靠 require/include 來選取合用的模組,或以 class 來作「偽命名空間」再配合 __autoload(),對開發超大型系統(指分散式的系統)也是 Mission Impossible!某些情況 class 和 function 便得被迫寫到一個大檔案去,對團隊合作來說也是難事。說起分散系統,也想到第二個問題:
  2. 沒有 Remoting
    嚴格來說這不是 的問題,而是平台的問題。當大家看見 .NET 有 Remoting,J2EE 有 RMI, 就只有那不太完全的 XML-RPC/SOAP 3rd Party 模組,是否有點痛心?不能用遠處的物件,使 只規限於開發單機系統。
  3. 弱定義語言(Weak-typed Language)及不用宣告即用變數
    無疑這 feature 很方便,可以省卻不少功夫,但是相對在檢查外來變數及除錯的時候功夫反是花多了。又要檢查是不是字,是不是數,而且有沒有被宣告,還要提防有心人乘虛而入。

  4. 我喜歡 PHP 的方便,但是它語言上的「誘惑」實在太多,很容易會 dirty coding,初學者要是沒有寫過 Java 等結構嚴格的語言,沒有學過 Design Patterns,很容易會走火入魔。這其實也不是 PHP 本身的問題吧?有心也可以寫出漂亮的 PHP Code (不過寫出 dirty code 更容易啦)。

當然還沒有跟 PHP 分手,不過總會希望伴侶改進嘛! 😉

5 thoughts on “PHP 為甚麼沒被大企業採用?(或,我對 PHP 的期望)

  1. 很喜歡看你這類文章呢! 因為自己的 php 知識非常薄弱,只靠其他 programming language 的經驗搭救,最多只能處理一些 structural 的 statments,從 java 學來那套 OO 在 php 上用不著呢… ~_~

  2. 回 Madthiu:

    其實 PHP 跟 Java 的 OO struct 很相像,而且相對上自由(當然檢查的時候會較麻煩)。但 Java 除了 Int 以外差不多甚麼也是物件,PHP 這方面還是像 C/Perl 啊。

  3. 有這種事?那我的編程經驗真的太淺了 ~_~
    看到 php 那 OO 的 syntax 就覺得有點像 C++,不過我從沒學過 C++,只學過 C,所以看不懂且有點怕 (汗…)

    另外又覺得,java 在 jsp 應用上可把純 class 的東西獨立地放在 .class file 內,web page 內可直接叫來用;php 那些則覺得較模糊,試用過不少 forum 軟件,os commerce 及幾款 php 的 blog system,接觸過裡面的 source code 還是不看不懂 ~_~ (不過沒甚麼需要去深入了解,所以就沒再學習了)

    perl 很好啊! 學生時代寫過一點,覺得超有彈性的! 不過也是沒太多實習機會,所以可說是完全不懂… =_=

  4. 異議!
    PHP 5 沒命名空間是肯定的,那雙冒號(::)只用作存取物件的靜態成員。PHP 6 才會出現。
    SOAP 我沒說沒有啊,但在落筆之時我知道只有 nuSoap 以及 PEAR::SOAP 兩個第三方模組,非官方支援而且功能不齊全。現時 PHP 5 的 SOAP 官方伸延也非完全支援 1.1/1.2 的標準。

Leave a Reply

Your email address will not be published. Required fields are marked *