程序員討厭php編程語言為什麼,程序員討厭php編程語言為什麼

本文目錄一覽:

為什麼有些程序員看不起 PHP 這門語言

像他們說的 一個是不了解 還有php是弱語言,php有自己的優勢,任何語言都有自己的優勢,現在和php 競爭的最大對手是java。

至於java很多都認為php做不了大的項目。只能用java。其實是片面的,眾所周知,php被限制在資料庫的讀寫上面。php沒有線程,但是可以開多進程。

至於說大項目。php一樣能完整但是代碼的完整性不能得到保證。每個程序員都有自己的習慣。php和vc類似。你可以隨心所欲,任何地方都可以用鉤子完成。這就造就了 一個大的項目維護起來相當費勁。當你文件多到一定程度。你找起來都費勁。特別是這個行業人員流動大。核心人員走了,結果就更是毀滅性的。

java是編譯型語言。代碼完整比較完好。上面的php的缺點沒有。所有大項目首選java

還有很多就不說了。但是並不是php不好 而是個人成見問題。php一樣可以做大項目。

所以什麼都是看需求。

最後如果我做老闆 我也選java 給別人開發。因為它貴

如果自己做項目 我選php 出問題隨時隨地手機我都可以給修復 了。

為什麼說用PHP開發大型系統令人不爽

筆者在過去的四年里一直致力於PHP應用的開發 PHP確實十分容易編寫 但是PHP也有一些十分嚴重的缺陷

 下面筆者會給出自己的理由 為什麼PHP不適合於比小型業餘網站更大的網站

對遞歸的不良支持 遞歸是一種函數調用自身的機制 這是一種強大的特性可以把某些複雜的東西變得很簡單 有一個使用遞歸的例子是快速排序(quicksort) 不幸的是 PHP並不擅長遞歸 Zeev 一個PHP開發人員 說道 PHP (Zend)對密集數據使用了棧方式 而不是使用堆方式 也就是說它能容忍的遞歸函數的數量限制和其他語言比起來明顯少 見bug 這是一個很不好的借口 每一個編程語言都應該提供良好的遞歸支持

許多PHP模塊都不是線程安全的 在幾年前 Apache發布了Web伺服器的 版 這個版本支持多線程模式 在這個模式下 軟體一個一部分可以同時運行多個 PHP的發明者說PHP的核心是線程安全的 但是非核心模塊不一定是 但是十次有九次 你想要在PHP腳本中使用這種模塊 但這又使你的腳本不能合適Apache的多線程模式 這也是為什麼PHP小組不推薦在Apache 的多線程模式下運行PHP 不良的多線程模式支持使PHP常被認為是Apache 依然不流行的原因之一

請閱讀這篇討論 Slashdot: Sites Rejecting Apache ?

PHP 由於商業原因而不健全 通過使用緩存 PHP的性能可以陡增 %[見基準測試] 那麼為什麼緩存沒有被構建在PHP中呢?因為Zend——PHP的製造者 它在銷售自己的Zend Accelerator 所以當然 他們不想拋棄自己的商業產品這塊肥肉

但是有另一個可選擇的 APC (Zend後來推出Zend Optimizer 免費的加速器——譯者)

沒有命名空間 設想某個人製作了一個PHP模塊用來閱讀文件 模塊中一個函數叫做read 然後另一個人的模塊可以讀取網頁的 同樣包含一個函數read 然後我們就無法同時使用這兩個模塊了 因為PHP不知道你要用哪個函數

但是有一個很簡單的解決方法 那就是命名空間 曾經有人建議PHP 加入這個特性 但不幸得是他沒有這麼做 現在 沒有命名空間 每個函數都必須加上模塊名作為前綴 來避免名稱衝突 這導致了函數名恐怖得長 例如xsl_xsltprocessor_transform_to_xml讓代碼難於書寫和理解

不標準的日期格式字元 很多程序員對 日期格式字元 都很熟悉 它是從UNIX和C語言中來的 其他一些編程語言採用了這個標準 但是很奇怪的 PHP有它自己的一套完全不兼容的日期格式字元 在C中 %j 表示一年中的當天 在PHP中他表示一個月中的當天 然而使事情更混亂的是 Smarty (一個很流行的PHP模版引擎)的 strftime 函數和 date_format 函數 卻使用了C/UNIX的格式化字元

混亂的許可證 你也許認為PHP是免費的 所有的在手冊中提到的PHP模塊也是免費的 錯了!例如 如果你想在PHP中生成PDF文件 你會在手冊中發現兩個模塊 PDF 和 ClibPDF 但是這兩個都是有商業許可證的 所以 你所使用的每個模塊 你都要確保你同意他的許可證

不一致的函數命名規則 有些函數名稱是有多個單片語成的 一般有三種單片語合的習慣

直接拼接 getnumberoffiles 用下劃線分開 get_number_of_files 駱駝法則 getNumberOfFiles 大部分語言選擇其中一中 但是PHP都用到了

例如 你想要把一些特殊字元轉換成HTML實體 你會使用函數entities (直接拼接單詞) 如果你要使用相反的功能 你要用到它的小弟弟_entity_decode 由於某些特殊的原因 這個函數名是由下劃線分隔單詞 怎麼能這樣呢?你知道有一個函數叫strpad 或者他是str_pad?每次你都要查看一下到底這個符號是什麼或者直接等他出現一個錯誤 函數是不分大小寫的 所以對於PHP來說rawurldecode 和RawUrlDecode之間沒有什麼區別 這也很糟糕 因為兩個都使用到了同時他們看上去還不一樣 混淆了閱讀者

魔法引用的地獄 魔法引用(Magic quote)可以保護PHP腳本免受SQL注入攻擊 這很好 但是出於某些原因 你可以在php ini中關閉這個配置 所以你如果要寫出一個有彈性的腳本 你總要檢查魔法引用是開啟還是關閉 這樣一個 特性 應該讓編程更簡單 而事實上變得更複雜了

缺少標準框架 一個成長中的網站沒有一個整體框架 最終會變成維護的噩夢 一個框架可以讓很多工作變得簡單 現在最流行的框架模型時MVC 模型 在其中表現層 業務邏輯和資料庫訪問都分離開了

很多PHP網站不使用MVC 模型 他們甚至沒有一個框架 甚至現在有一些PHP框架同時你都可以自己寫一個 關於PHP的文章和手冊沒有提高框架的一個字 同時JSP 開發人員使用像Struts的框架 ASP開發人員使用 net 看起來好像這些概念都廣泛被PHP開發人員所了解 這就說明了PHP實際上到底是多專業

總結什麼問題?

對於非常小的項目 它可以是一個十分符合人意的編程語言 但是對於較大的和更為複雜的項目 PHP就顯出他的薄弱了 當你不斷地摸索之後 你會發現筆者提到的某些問題的解決方案 所以 當解決方案已知之後 為什麼不能修正他呢?另外為什麼這些修補不在手冊中提到呢?

一個開源的語言十分流行是一件好事 但不幸得是 它不是一個偉大的語言 筆者希望所有的問題能有一天得到解決(也許在PHP ?) 然後我們就將擁有一個開源語言 他既開源 又好用

到現在 當你要啟動一個多於 個腳本頁面的項目的時候 你最好考慮C#/ASP NET 或者 Java/JSP或者也許Python同樣是一個更好的選擇

lishixinzhi/Article/program/PHP/201311/21371

為什麼程序員鄙視php

主要原因是PHP程序員大多在接私活很忙吶!很難接私活的JAVA、C#程序員才會在論壇,qq群起鬨。

在工作中,很多公司隨著業務的增加與需求多樣性,有些企業就是要求用PHP開發,所以很多開發公司都是跟著市場走,主流的編程語言java與PHP碰面,多數情況下java程序員都不喜歡PHP程序員。

PHP號稱世界上最好的編程語言,在java程序員覺得PHP能開發的,java同樣能開發,而且比PHP還好,所以不認為PHP是世界上最好的編程語言,java才是世界最好的編程語言。

java面向對象在編程語言中支持是最好的,雖然PHP也是支持面向對象,但是在真正的大型項目中,多數人都會選擇java編程開發。

java在多線程高並發實戰效果是最好的,我們也知道PHP也是可以實現多線程高並發功能,但是這些都是針對中小型網站,像大型商城在線購物系統,java可以完美實現並滿足目前多人在線下單數量功能。

java編程語言複雜,需要大量學習精力,PHP編程語言簡單,在開發中不需要太多配置環境。

其實每種編程語言都有它本身的優勢與價值所在,當你正真領悟一種編程語言,你才知道這種語言的正真用處。

為什麼有些程序員看不起PHP這門語言

背後沒有大公司支持,例如微軟C#、甲骨文的JAVA,這些就有顯赫的背景。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/183412.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-24 16:29
下一篇 2024-11-24 16:29

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • 兼職程序員能掙錢嗎?

    可以。不過,兼職程序員賺錢的關鍵就在於如何找到並利用合適的機會。 一、掌握技能 作為程序員,掌握必要的技能是兼職掙錢的前提。除了紮實的編程技能,了解相關工具和平台也非常重要。常見的…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 兼職程序員外包平台的開發與實現

    隨著社會經濟和科技的快速發展,更多人選擇通過互聯網進入編程行業。兼職開發已成為一種新型就業方式,並且這種方式在新冠肺炎疫情襲來、大規模遠程辦公的背景下更為普遍。本文將從多個方面詳細…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • 傳智播客黑馬程序員怎麼樣

    傳智播客是一家專業的IT培訓機構,旗下的黑馬程序員培訓項目備受好評,那麼傳智播客黑馬程序員怎麼樣呢?本文將從多個方面為大家詳細闡述,讓大家更加了解其優缺點。 一、學習方式 傳智播客…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • Zig語言:全能多範式編程語言

    本文主要介紹Zig語言的特點和使用方法,並提供對應的代碼示例。 一、基本特點 Zig是一種現代的、可靠的編程語言。它強調性能、安全和清晰度。它是單獨的,意味著每個源文件都是完全獨立…

    編程 2025-04-27

發表回復

登錄後才能評論