程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 從ZendEngine2.0的設計藍圖看PHP的將來

從ZendEngine2.0的設計藍圖看PHP的將來

編輯:關於PHP編程


  一些雜談
  首先是本文寫作的初衷。我拿到關於Zend Engine 2.0的設計藍圖文檔已經有一段時間了(現在大家也可以去參考資料中的地址下載回來看看),看完之後就有了寫一篇評論的沖動--因為根據文檔的描述下一代的php(做為現在的主流開發語言)將是一種更符合現有面向對象開發習慣的語言,至少是被更多的賦予了面向對象特性。但是隨之帶來的問題就是對於php(做為現在的主流開發語言)這樣一個以Web快速開發為初始目標的語言是否值得將自己修飾得面面俱到?這個問題看來是需要一些評論文章來討論的,我也很願意提出自己的觀點。但是後來一些繁忙的事情就將這個沖動一點點又打回了肚裡,直到最近一段時間又想起,於是再拜讀幾遍設計藍圖文檔,遂有此文。(剛拿到這份英文文檔的時候我還有將這份設計藍圖文檔翻譯到中文的打算,但是考慮到一是並非最終藍圖,二是大家都應該培養直接閱讀原文的習慣,三是翻譯總是不可避免會帶來一些晦澀的地方,於是暫時作罷。不過寫成此文的時候,還是決定"冒險"翻譯一次,不能准確達意之處還請各位不吝指正。)
  
  其次是對本文討論焦點的解釋--在這篇評論中我將主要針對將來的php(做為現在的主流開發語言)中得以大大加強的面向對象特性進行評述。如果你是php(做為現在的主流開發語言)的開發者,那麼我猜想你應該了解一些php(做為現在的主流開發語言)語言中的面向對象特性;但是由於一般php(做為現在的主流開發語言)用於"極端快速開發環境"(這是我自己生造出的一個詞語,表示進行一些以客戶為導向的網站開發的情況,特點就是工期非常短且客戶要求不甚明確),所以真正大量使用其對象特性的開發者以及開發項目並不是很多;另外,現有php(做為現在的主流開發語言)對象模型相對C++和Java的弱勢,也限制了這方面特性的使用。不過在php(做為現在的主流開發語言)的將來版本中,修改重點就在於語言中的面向對象模型,完善現有版本中許多不良的特性並加入其他特性。因此討論php(做為現在的主流開發語言)的未來面貌就集中在討論php(做為現在的主流開發語言)的面向對象特性方面。
  
  好了,讓我們步入正題,看看Zend Engine 2.0的新特性。
  
  歸納Zend Engine 2.0設計藍圖(草稿)
  從設計藍圖(草稿)中可以非常清楚的看出下一代Zend Engine是以新的面向對象模型為基礎的。如果你曾經使用過現有php(做為現在的主流開發語言) 4的面向對象特性,那麼也許會在找到一點點Java或者C++的感覺的同時覺得有些別扭--不但是在面向對象語法的匮乏上,而且有時會得到意想不到的運行結果--這一切都是因為在現有的支持php(做為現在的主流開發語言) 4的Zend Engine 1.0中不那麼優雅的面向對象模型造成的。
  
  簡單說來,下一代的Zend Engine將向Java靠攏,大量借鑒其面向對象模式。從改進特性的類型來看,應該可以分為三類:第一類是對現有面向對象模型的改進和加強,其中包括對構建器和析構器的定義,增加的私有成員變量、靜態成員變量、多重繼承、過載等面向對象特性;第二類是對於控制流程的修改和增刪,比如增加了形如try/catch/throw違例處理機制;第三類是關於函數的修改和增刪,比如對於字符串偏移量的增加函數。(對於每一類改進的詳細情況,可以查閱參考資料中所列文檔。)由此可以看出,通過第一類和第二類的改進,php(做為現在的主流開發語言)正在逐步將自己改良成一種具有面向對象特征的語言。
  
  不過問題恰恰就產生於此:
  從積極的方面來說,如今的編程世界中更加歡迎具有面向對象特征的語言(即使語言本身並不構建於面向對象基礎之上,也可以通過增加定義的對象等手段使得該語言不至於落在潮流之後)--從這一意義上說,Zend Engine 2.0使得php(做為現在的主流開發語言)對面向對象的支持將從現在的試探性接觸轉變為將來的全面擁護,看來更加符合編程語言發展的潮流;另外,在構建企業級應用(這也是php(做為現在的主流開發語言)現在經常被人指責之處)之時,采用面向對象的方法建模和實現已經是事實上的標准,而php(做為現在的主流開發語言)的這一改進也許會迎合這一需要,解決語言自身在這方面的薄弱之處。
  從消極的方面來說,為開發者奉獻一個更加類似Java的新版php(做為現在的主流開發語言)似乎沒有什麼意義。php(做為現在的主流開發語言)被廣泛應用的原因,除了源碼公開和跨平台等之外,適應互聯網站構建的簡單、快速的web編程特點恐怕也是重要的一點。極短的學習時間、友好的語言風格(特別是如果你對C比較熟悉)和大量擴充類庫函數,足以證明其強大;但是如果將這樣的語言的下一版本改造成類似面向對象的語言,不但會使原有的大量開發者在短時間內無所適從,而且非常不利於吸引新的開發者加入--既然有Java這樣的語言,何必去學習php(做為現在的主流開發語言)呢?

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved