最後更新:2016-06-06
來源:互聯網
上載者:User
關鍵字
PHP
Rails
Ruby
CakePHP
Java
很早以前就想說說這個問題,在知乎裡忍了很久,看了很多大神們的文字,終於忍不住把它提出來。。。
背景大家都知道,不多說了,開始是Ruby on Rails挑戰PHP,現在幾乎各種大點的PHP架構都在一個勁模仿Ruby on Rails。。。最厲害的就是CakePHP了。
然而很多製作大型架構的大神們貌似都忘記了PHP簡單易用的本質,PHP不是Java,把一些東西封裝得太厲害,感覺是弄巧成拙!
(字數限制,未完待續!)
回複內容: php Team Dev缺少一位象DHH那樣有想法的領袖。從5開始逐漸偏向java,看來php核心團隊對“PHP不適合企業級開發”耿耿於懷。簡單易用、適合新手的特性也逐漸丟棄。流行的php架構也都沒有自己的設計思想,要麼學spring,要麼django,更多的是學rails,說到底,php並沒有出現優秀的架構。
說php被rails帶上邪路我不太贊同,rails之所以優秀,得益於dhh提出的一些設計思想,比如dry,比如約定優先於配置。還有大量的最佳實務。php架構應該學習的是他的思想,而不是表面的東西。應該說是開發人員被那些五花八門架構帶上了邪路,Rails是刺激了PHP,
也有一半部分原CakePHP開發人員感覺是CakePHP不是很符合PHP,所以重開了一個Lithium PHP架構,
比起Zend,Symfony這些(個人覺得zend有太重的Java味道, 至於Symfony的函數名是不是obj-c味,CakePHP是不是rails味,Yii是不是.net味倒是不清楚了)“大型” 架構,Li3很不錯架構跟語言兩碼事,嫌邪就不用架構唄(字數限制,上接問題)
拿官方的Zend Framework來說,我感覺它更像一個啥代碼產生器,好多故弄玄虛的東西。用Zend Framework的時候,我感覺不是在編寫一個網站而是感覺在用Java或是C#編寫一個軟體。完全沒有PHP那種感覺。比起Zend Framework,Symfony做得有過之而無不及。就像Android在Linux上面自己做一個層一樣,這些架構貌似想在PHP基礎上自己再搞個層出來。PHP本來是一種非常進階的語言,這些架構卻有把它變成底層語言的意思。
所以我更喜歡使用一些更輕量級的東西,比如ThinkPHP、CodeIgniter之類的東西。。。
-------------------
我承認PHP不太適合大型項目,大型項目你用Java啊!何必勉強PHP呢?聽說Twitter不是也考慮放棄Ruby on Rails而改用Java了麼。。。
希望聽聽大家的語言。。。它可能受驚了
之前大學的時候玩過php,一開始工作用java,然後創業用rails。自己本身各種語言都玩。玩過這麼多語言,覺得還是算比較全面的分析一下:
歡迎拍磚。
嚴謹性。 很難寫出沒有bug的代碼,PHP本身是一門hack語言,各種打補丁的方式來擴充自己。
生態圈 。 php社區的投資或者積累都在web這塊。PHP非常適合變化很快的web產品的開發。> ( @Allen )本身的優勢就在於產生頁面。但是在於事務,數學計算,安全等領域,PHP的積累都不足以支撐其在企業領域的應用。 php Team Dev缺少一位象DHH那樣有想法的領袖。rails各種web的最佳實務(pjax,scss,coffee)甩開php幾條街
應用情境 php更多的是前端,在後端,案頭端,移動端基本上沒有任何的市場。
與其他平台系統的 互通性(web service) 。企業老的系統通過webservice 進行互動,java,.net 都有成熟的解決方案。
版本演化。 php6一而再再而三被延遲發布。
語言被創造時候的基因。 >(php -- 超文本前置處理器的字母縮寫)(感謝@張畫蟲),顯然主要是為了網頁而生,當然這個曆史很久了,不過從曆史可以看出某些語言設計的初衷,而這些都會成為語言的基因,會隨著語言的發展一直繼承下來
維護成本 因為蘊含了太多的hack,太多的全域函數,魔術變數,各種不統一,維護成本非常高
php語言本身的特性不足一支撐一個架構所要表達的思想,導致的結果就是各種架構滿天飛,品質參差不齊。
> ( 借用 @王小一 的話 )拿官方的Zend Framework來說,我感覺它更像一個啥代碼產生器,好多故弄玄虛的東西。用Zend Framework的時候,我感覺不是在編寫一個網站而是感覺在用Java或是C#編寫一個軟體。完全沒有PHP那種感覺。比起Zend Framework,Symfony做得有過之而無不及。就像Android在Linux上面自己做一個層一樣,這些架構貌似想在PHP基礎上自己再搞個層出來。PHP本來是一種非常進階的語言,這些架構卻有把它變成底層語言的意思。
至於php的優勢就是成熟web產品,各種cms,還是很有價值的,比如wordpress。
用架構寫運用確實太方便
不喜歡架構可以不用啊PHP簡單易用,恐怕是很早以前的說法了。對一個PHP新手來說,如果不藉助一個架構,寫一個可靠的應用是很困難的。