首頁>Club>
為什麼碼農會黑PHP?
5
回覆列表
  • 1 # 手機使用者6075256802

    1:入門容易,程式碼量少,代表很小的付出代價就能幹出老闆想要的結果,這搶了多少別的語言的飯碗?2:被搶了飯碗後總得找個理由轟炮php嘍,比如搞php成高手難,大部分php程式設計師水平爛等等。。。。。至於技術層面上的好與壞,哪個語言沒個優點和缺點呢?

  • 2 # qwer89154921

    個人網頁是在1995年開發出來的,當時是為了便於生成網頁的動態內容,而不是靜態內容。你想一下,你1995年的時候在幹嘛呢?我可以告訴你當時的網頁差不多是這樣的:

    很驚訝吧?

    那時候的網頁要比現在簡單得多,所以用這種個人網頁開發的應用也簡單得多。這就導致出現了一些相當糟糕的網頁應用,其背後隱含著超級多的遺留程式碼,就今天的標準來說,這就是一個災難。我覺得這就是個人網頁在今天被當成垃圾的原因:它背後有太多的亂碼。之所以出現這鐘情況,有部分原因是個人網頁在開發之初並沒有行業規範,還有部分原因是程式碼編寫的時代太久遠。

    我還要指出,即使是如今的個人網頁應用也依然飽受詬病,很多人認為它沒有其他網路框架的優點。儘管有像“豬跑”這樣的個人網頁框架做內容管理,但是,你最終還是要寫很多程式碼,而在其他框架上,這些程式碼早就幫你寫好了。因此,很多現在的開發人員就無能為力了。

  • 3 # 嗝屁鏟屎官

    受人尊敬的伺服器端指令碼語言PHP,因在web開發中的應用而知名。首次由Rasmus Lerdorf在1995年釋出,受WordPress和Facebook的影響而變化著,據W3Techs報道,82%網站的伺服器端程式語言是PHP。這門語言在程式語言受歡迎程度排名上,稍微落後於Java,在競爭對手Tiobe排行榜降到第六名。做為高效能的升級版本PHP 7,預期在2015年釋出。

    然而,就像任何語言,它也有支持者和反對者。下面解釋了支持者聲援PHP、和持不同意見者痛批它的原因。

    好的:流行、入門快

    “PHP是目前最流行的web開發語言,”PHP工具提供商Zend Technologies公司【注1】CEO Andi Gutmans說。在New Media Campaings供職的開發者Josh Lockhart,也是一名作家,強調了PHP較小的學習曲線、易於部署和快速的開發迭代。Lockhart說,“PHP是最易理解的web開發語言之一,它被安裝在大部分伺服器上(包含大部分共享主機)。因為有優秀的線上文件和最新的線上資源,學習起來相對容易。”

    好的:好找工作

    “PHP幫助你賺錢、找到一份在伺服器端的工作”,Gutmans說。在上週的Dice.com技術工作網站上的快速研究,找到了3,366份PHP相關的工作。與17,418份Java工作相比顯得很平淡,緊追Perl(4,300)和Python(5,429),但是高於Ruby(2,973),甚至包括Objective-C(985)。Lockhart把PHP看做使用頻率最高的語言之一,儘管它和Ruby、Python、Go和Rust之類的語言比起來,有些保守。

    好的:繼續在發展

    這門語言自詡有閉包和名稱空間之類的現代功能,還有效能和現代框架。正如Gutmans所指出的,“一些想離開的人在PHP能提供什麼上面所受到的必要教育不多。”Lockhart說,開發者正在意識到,PHP有著強大的現代特性以及合適的面向物件程式設計模型。即將到來的版本7,在應用程式上提供了巨大的效能提升。Lockhart指出,Facebook對PHP的增強,包含了HHVM虛擬機器和Hack語言【注2】。

    壞的:抱怨設計、缺乏重心

    博主Eevee在2012年反對這門語言的公開信《PHP:不規則的糟糕設計》中說道,“事實上PHP裡的每個特性都多多少少是不規則的”。Eevee不僅僅給這門語言差評,而且包括框架和生態系統。根據該博主說的,這門語言不是可預期的、一致的,而是充滿了讓人詫異和不一致的地方。在批評中,PHP被稱作不透明的,沒有預設的堆疊跟蹤,一直承受著複雜的、功能不佳的型別,“沒有清晰的設計哲學。早期的PHP受到了Perl的激勵;帶有‘out’引數的龐大的stdlib來自於C;面向物件部分模仿著C++和Java設計。”

    Lockhart承認,Eevee的反PHP言論有些“誇大了事實本質”。儘管是一名PHP支持者,Lockhart在被問及時,還是足夠和藹地列出了批判:

    這門語言是不一致的,特別是函式名稱和引數順序。“這很容易修正,因此這不是個大問題。”

    PHP仍然有很多遺留包袱,像全域性變數、魔術引用等等。“這些壞的實踐正在緩慢地從語言中修剪,但是在它們消失之前,它們還會慫恿愚昧的開發者堅持不好的實踐。”

    PHP不像其它語言那樣專注,Lockhart將其歸咎於“受到委員會驅動的、長期都是一塊一塊的”。

  • 4 # 哎吆我去

    我覺的挺好 服務端的功能都能實現 多程序併發處理任務都可以 用起來方便順手 不像強型別語言 光搞資料型別都頭疼死

  • 5 # y8y

    1.動態語言一時爽,程式碼重構火葬場

    2.程式碼裡面滿滿的$符號

    3.沒有Python來的簡潔

    不過有Facebook這顆大樹,PHP應該會繼續火下去的。

  • 6 # 微荒地

    自己寫PHP程式碼的都說它好。因為它寫起來快,前提是在你的team裡只有你一個人寫程式碼。因為它是一種很loose的語言,不用declaration。什麼type都可以compare和return。也因為這個,讀起別人寫的PHP程式碼很費勁,更不要說要更改了。這些人都認為PHP不好。因為PHP不嚴格,特別在一個team裡面,沒有documentation很難寫下去。新的PHP版本好很多了。在舊的版本里,function的argument都是沒固定的。你放任何東西到這個function都可以。這樣第一系統不能馬上檢查到錯誤。第二你不知道function要的是string, integer還是一個objection. 寫起來很慢,很費勁。

  • 7 # 電子芯吧客

    PHP 語言,作為伺服器端開發的指令碼語言,在網站開發方面非常有名。從1995年 Rasmus Lerdorf 建立之後,根據 W3Techs 的調查顯示在已知的服務端程式語言中,PHP 佔了82%。其中不乏WordPress,Facebook 這種公司。在 PyPL(程式語言流行度排行榜)中僅次於 Java,在 Toibe 排行中名列第六。2015年會有高效能的 PHP 7 釋出。

    像所有的技術一樣,人們對它的評價參差不齊。我們來看看為什麼有的人喜歡它而有的人詛咒它。

    缺點:設計缺陷,缺少關注

    博主 Eevee 說,PHP 的每個功能設計都是有問題的。他對 PHP 的看法是極其糟糕的設計。Eevee 不僅不喜歡這個語言,對其框架也不能贊同。他認為 PHP 語言不穩定,總是出現各種意外。PHP 被稱作是不透明的語言,因為沒有堆疊追蹤,各種脆弱的輸入。沒有一個明確的設計哲學。早期的 PHP 受到 Perl 的影響,帶有 out 引數的標準庫又是有 C 語言引入,面向物件的部分又是從 C++ 和Java 學來的。

    Lockhart 得知 Eeveef 反對 PHP 的言論的時候他覺得有些誇張了。儘管是 PHP 的擁護者,Lockhart對於對 PHP 的批評還是很耐心的。

    語言不持續化,特別在名稱空間和引數順序上。Lockhart:這些都很容易適應,不是大問題。PHP 還有很多遺留下來的東西,包括全域性變數,魔法引用等。 Lockhart:這些不好的實現都會在不斷地被淘汰。但在淘汰之前,它讓變成習慣不好的程式猿有法可施。PHP 的關注度不夠。Lockhart 也在不斷努力提升 PHP 關注度。Lockhart:儘管斷斷續續,但是社群的人們仍然很關注 PHP。
  • 8 # PHP在路上

    我來回答一下吧。

    在這麼多年的實際工作中,只有在網上聽說黑PHP的,沒有聽過那個程式設計師這麼痛恨PHP的。

    對PHP語言有些抱怨。哪個語言也不是那麼完美。

    好多高階的工程師,都會是C、JAVA、C++方面的高手,或者是這些程式設計師轉過來的。為什麼加入PHP大軍,肯定PHP還是又優點的。

    網上一直這麼黑PHP,還有這麼多公司使用PHP,也有那麼多PHP培訓機構。越多人議論,受到的關注度越高。

    總之,痛恨談不上,偶爾的抱怨還是有的。

  • 9 # 犬小星

    正如許多人說的那樣,PHP入門門檻比較低,上手比較快,而且PHP+MySQL組合是開源免費的,得到大多數公司的使用。

    有其他的開發人員,比如說JAVA、C++、Python等等語言,這些程式語言學習成本皆大於PHP,而且在使用上,PHP佔有巨大的優勢。

    相比而言,用的PHP公司多了,那麼其他語言的公司就少了,個人拙見,還請指正!

  • 10 # 路由科技

    1.PHP入門太簡單,所以行業裡面充斥著無數的剛學了一點點就出山的人,參差不齊。

    2.coding是一門藝術,但,很多人剛入門的時候分不清楚什麼是真正的藝術。所以大家要麼喜歡學最底層的,要麼學最表層的。中間層面的,大家要麼覺得膚淺,要麼覺得有點兒難。高不成低不就。

    3.PHP攻城獅待遇偏低,很多人學了一點就轉了。

  • 11 # 四小龍說職場

    我覺得對一個事物不太瞭解的時候,人們往往都會有一些偏見。對一個事物瞭解的越深,偏見就會越少,會有自己獨特的想法和認知。而不是一味的鄙視和痛恨。

    每一種語言都有自己的特性和優點。php也一樣。看過php原始碼的朋友都會被它巧妙的構思而折服。同時php也非萬能。每種語言只會在它特定的場景下才能發揮最大的優勢。

  • 12 # 美力程

    最簡單的解決辦法是,你找個人才招聘網站,找下這方面的工作。一切的根源還是就業解決實際市場的問題。至於學什麼不重要的,你應該更關注你現在的城市更需要什麼?

  • 13 # 萬事於心不表於情

    PHP不適合於比小型業餘網站更大的網站。

    1. 對遞迴的不良支援

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

    2. 許多PHP模組都不是執行緒安全的

    在幾年前,Apache釋出了Web伺服器的2.0版。這個版本支援多執行緒模式,在這個模式下,軟體一個一部分可以同時執行多個。PHP的發明者說PHP的核心是執行緒安全的,但是非核心模組不一定是。但是十次有九次,你想要在PHP指令碼中使用這種模組,但這又使你的指令碼不能合適Apache的多執行緒模式。這也是為什麼PHP小組不推薦在Apache 2 的多執行緒模式下執行PHP。不良的多執行緒模式支援使PHP常被認為是Apache 2依然不流行的原因之一。

    3. PHP 因為商業應用而殘廢

    透過使用快取,PHP的效能可以陡增500%[見基準測試]。那麼為什麼快取沒有被構建在PHP中呢?因為Zend——PHP的製造者,它在銷售自己的Zend Accelerator,所以當然,他們不想拋棄自己的商業產品這塊肥肉。

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

    4. 沒有名稱空間

    設想某個人製作了一個PHP模組用來閱讀檔案。模組中一個函式叫做read。然後另一個人的模組可以讀取網頁的,同樣包含一個函式read。然後我們就無法同時使用這兩個模組了,因為PHP不知道你要用哪個函式。

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

    5. 不標準的日期格式字元

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

    6. 混亂的許可證

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

    7. 不一致的函式命名規則

    有些函式名稱是有多個單片語成的。一般有三種單詞組合的習慣:

    直接拼接:getnumberoffiles

    用下劃線分開:get_number_of_files

    駱駝法則:getNumberOfFiles

    大部分語言選擇其中一中。但是PHP都用到了。

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

    8. 魔法引用的地獄

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

    9. 缺少標準框架

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

  • 14 # 小銘君

    作為一個node和PHP的新手來說,我真的超級愛PHP的啊,簡單又好用,學習成本低,遇到不會的找部落格問找資料那是相當的方便,不像node,個個人的回答都是“大神級別”的回覆,我一個伺服器新手真的難以接受。我學伺服器程式設計只是為了開發一個小小的APP,越簡單越受我青睞。

    ——來自大二學生的真實想法

  • 15 # 拖拉機斯基

    做什麼事兒都不深入的人才會鄙視這個,鄙視那個的,視野狹窄的人才會脫離語境地認為某某程式語言是世界上最好的程式語言,沒有主觀判斷地隨意看了若干篇黑PHP文章的人 才會出來問題主這樣低階黑的問題。

  • 16 # 做軟體的禪師

    不得不說,如果拿語言秀優越都是智商捉急的,所以很少有大牛參與語言之爭,有實力的都是用作品說話。

    首先,世界上就不存在設計完美的語言,都是特定時期誕生,逐步再改進完善。

    PHP簡單,專注於Web,還有很多人拿早期的瑕疵說話,什麼注入漏洞,安全問題,命名不統一,我只能說你丫的根本不懂PHP。資料庫都pdo了,和Java SQL prepare一樣的原理。

    高效能的解決方案很多,比如swoole,phalcon,都是純c擴充套件。用Java設計模式秀優越的,你可以看看laravel,symfony。

    另外做東西主要看應用場景,你精通什麼,最終的作品才有價值,用啥語言也不代表你聰明,學lisp你就聰明嗎?你更多要考慮的是做出了什麼,而不是糾結語言。

    用PHP能讓我的創意像拉稀,用Java就是便秘,編碼的愉悅感很重要,所以我選PHP。

  • 17 # ChallengerV

    我一直從事PHP開發,期間也嘗試學習JAVA和.net,但是很快就放棄了,為什麼呢?PHP開發方便啊,不需要各種各樣的包,除錯起來方便,開發速度飛快。我覺得為什麼其他語言的開發者不喜歡PHP開發者,可能是因為同一個功能他們語言花費更多的時間來完成吧

  • 18 # 麥田與守望

    我不知道你是從哪裡得到開發人員痛恨PHP這個結果的,很多這個詞,感覺也不是很準確,PHP作為一門程式語言,有他自己的優勢和劣勢,沒有恨與不恨之說,只能說有其擅長或者不擅長的領域,所以這個問題感覺其實蠻無聊的,你用,或者能對你的生活起到作用的語言就是好語言,反之你用不到或者暫時用不到的語言,別人說的再好也都沒有多大意義!

  • 19 # 一起感悟生活

    個人覺得對任何一門程式語言不應該執有偏見,每種語言隨著業務的需要都可以自主開發去做一些語言能力不能完成之外的功能,除非這種開發語言根本不支援。我有開發過PHP和.net,對於開發語言而言並沒有絕對的好與壞,關鍵在於人的決策,專案的需要決定選用哪種開發語言,公司的人員配置和技術能力決定開發語言的選擇。而不應該是跟技術潮流,一定要用。如果公司人力物力允許,完全可以把其他語言專案完全同化成擅長的一到兩門程式語言實現,語言太多了也不好維護。

  • 20 # 不會修電腦的技術宅

    兄弟,說話要講道理,問問題也不可道聽途說就啊。

    你這麼一問好像真的有“開發人員痛恨PHP”一樣。至於個別碼農黑php,這個基本都是老黃曆了,在php野蠻生長的年月,確實有許多不完善的地方受人詬病,但即使這樣,php依然堅挺的發展,其能在web開發領域獨佔鰲頭,從自然法則來講就是“物競天擇,適者生存”。

    如果現在還有人黑php,只能說這樣的人本身開發水平也不過爾爾,對php連基本的認知都沒有。

    至於痛恨更是無稽之談了,每個phper對php只有大愛,愛到骨子裡。而且我們應該愛每一個提供開源免費專案的開發者,大公無私也不過如此了吧。

    對於那些還拿php5前後版本的缺點說事,現在都php7好幾年了,優秀的php開發框架,laravel瞭解下,比java哪裡差了。

  • 中秋節和大豐收的關聯?
  • 一個好朋友,要下多大的決心,才能不理你了?