国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

2019 為什么我們還會(huì)繼續(xù)使用 PHP ?

guyan0319 / 605人閱讀

摘要:但我還是使用它開發(fā)了很多軟件。那么問(wèn)題就很明顯了為什么今天還在使用除了個(gè)人理想主義的偏好以外,還有很多理由。為什么使用而不是也許和比較的最重要的語(yǔ)言是。為什么選擇而不是你已有專業(yè)知識(shí)或者在使用庫(kù)。

我們來(lái)開門見(jiàn)山地說(shuō)。? PHP 是一門奇葩的語(yǔ)言。它既不快,語(yǔ)法又不漂亮。還沒(méi)有遵守良好的軟件開發(fā)實(shí)踐。?但我還是使用它開發(fā)了很多軟件。 那么問(wèn)題就很明顯了?為什么今天還在使用 PHP ?

除了個(gè)人理想主義的偏好以外,還有很多理由。這才是我們要討論的范圍。為什么選 PHP 作為我的 Web 開發(fā)語(yǔ)言?

PHP 是什么?

「PHP 代表什么意思?」 或者這么問(wèn),「PHP 是什么?」 PHP 是一門編寫 web 頁(yè)面的語(yǔ)言,底層使用 C 語(yǔ)言實(shí)現(xiàn),使用 HTML 的標(biāo)簽語(yǔ)法包裹代碼。PHP 通常跑在服務(wù)端,與 web 服務(wù)器配合工作,負(fù)責(zé)把 HTML 加工完返回給訪問(wèn)者。

PHP 最初的意思是 「 Personal Home Page 」。因?yàn)檫@完全限制了使用該語(yǔ)言進(jìn)行一般使用的意義和可取性,所以該語(yǔ)言現(xiàn)在代表「 PHP:Hypertext Preprocessor」。這種寫法被稱為遞歸縮寫(一種全稱中引用自己的縮寫)。 極客們都喜歡用這種名字。

PHP 能做什么?

PHP 能用來(lái)做什么?通常來(lái)說(shuō) PHP 能做任何你想在 web 服務(wù)器上實(shí)現(xiàn)的東西。 比如說(shuō)做一個(gè)博客。實(shí)現(xiàn)一個(gè) SAAS 應(yīng)用也完全不在話下。寫一個(gè)臨時(shí)處理數(shù)據(jù)的腳本也是得心應(yīng)手。又或者寫了一個(gè)復(fù)雜的腳本,某一天突然變成了一門成功的軟件業(yè)務(wù)?過(guò)去也經(jīng)常發(fā)生。

如果你不相信我,可以看下 PHP 官網(wǎng)列出使用場(chǎng)景:

服務(wù)端腳本

命令行腳本

編寫桌面應(yīng)用

我不太鼓勵(lì)最后一項(xiàng),但它確實(shí)可行。但是前兩項(xiàng)確實(shí)是很棒的理由 。

這就引出了一個(gè)重要且無(wú)法回避的事實(shí)...

PHP 無(wú)所不在

了解和喜愛(ài) PHP 的理由有非常多,可能最給力和有效的理由是:它可以在網(wǎng)絡(luò)的任何地方使用和運(yùn)行。如果你仔細(xì)尋找,你買到每月最低3美元的托管賬戶可能可以運(yùn)行 Python 或 Ruby 的 Web 應(yīng)用程序。但它肯定能運(yùn)行 PHP 。這意味著無(wú)論什么時(shí)候你都可以依賴 PHP 。

因?yàn)?PHP 可以運(yùn)行在任何地方,并且它容易上手,很多非常受歡迎的軟件都是用 PHP 寫的。 WordPress 是對(duì)我影響最大和最熟悉的例子,除此之外,像 Joomla , Drupal , Magento , ExpressionEngine , vBulletin (是的,它仍然存在), MediaWiki 等這些工具,它們都在服務(wù)器上運(yùn)行 PHP 。

不僅如此,PHP 應(yīng)用框架更是多得數(shù)不勝數(shù), 比如:Symfony , Zend , Laravel , Aura , CakePHP , Yii 甚至是古老的 CodeIgnitor 框架。當(dāng)然你可以為其它任何一門語(yǔ)言制作一些長(zhǎng)度相當(dāng)?shù)?Web 框架列表。比如常用的 Web 語(yǔ)言像 Python , Ruby ,或 Node/JavaScript ,你甚至可以積累一個(gè)數(shù)字競(jìng)爭(zhēng)列表來(lái)跟 PHP 比較。但運(yùn)行 PHP 的網(wǎng)站數(shù)量龐大到無(wú)法估計(jì)。

WordPress 自豪地聲稱在互聯(lián)網(wǎng)上有 30% 的用戶量。 你甚至不需要相信這個(gè)說(shuō)法就會(huì)意識(shí)到許多的互聯(lián)網(wǎng)應(yīng)用必須使用 PHP 即使這個(gè)說(shuō)法甚至可以想象成是真的。

PHP 的優(yōu)點(diǎn) 動(dòng)態(tài)化特點(diǎn)

PHP 和 HTML 可以非常融洽地工作在一起。將 file.html?修改為?file.php ,即可在?? 和? ?> 標(biāo)簽里編寫 PHP 代碼,并且大部分的 Web 服務(wù)器默認(rèn)配置就是可以直接運(yùn)行 PHP 腳本。正因?yàn)槠溟T檻非常低,不需要懂太多編程知識(shí)的菜鳥程序員也可以直接上手操作,以至于產(chǎn)生了很多低品質(zhì)的代碼。

因?yàn)槠湟讓W(xué)性,大量的菜鳥程序員涌入,暴露出來(lái)另一個(gè) PHP 一直被人詬病的問(wèn)題:PHP 并沒(méi)有對(duì)自己是最好的 Web 服務(wù)器端語(yǔ)言有清晰的遠(yuǎn)景,當(dāng)然也沒(méi)為此做過(guò)太好的設(shè)計(jì)。導(dǎo)致走向了另一個(gè)結(jié)果,來(lái)自全球各地松散的合作,大雜燴般地貢獻(xiàn)代碼和想法,難以避免地,有一些壞的想法滲入其中。

擁有強(qiáng)大的面向?qū)ο蟀芾硎乾F(xiàn)在 PHP 中的一種標(biāo)準(zhǔn)

Composer 是 PHP 的加分項(xiàng)。

在 PHP 的開發(fā)中,經(jīng)常會(huì)有一些奇葩的東西被發(fā)布出來(lái)。最著名的栗子當(dāng)屬 PHP 5.3 (廣泛的被視為 PHP 的第一個(gè)現(xiàn)代化版本 )中引入?goto? 聲明。

類似的問(wèn)題是在 PHP 成長(zhǎng)過(guò)程中產(chǎn)生:面向?qū)ο笞畛跏亲鳛橐粋€(gè)有缺陷和有限制的概念來(lái)實(shí)現(xiàn)的,標(biāo)準(zhǔn)庫(kù)中充滿了不一致的名稱和參數(shù)排序,并且(舉個(gè)近來(lái)備受關(guān)注的栗子)在 PHP 5.3 中 :: 操作符無(wú)法識(shí)別時(shí),解析器會(huì)拋出可讀性很差的報(bào)錯(cuò)信息:語(yǔ)法錯(cuò)誤?(T_PAAMAYIM_NEKUDOTAYIM) ,如果不看文檔,你能用英文來(lái)理解這個(gè) T_PAAMAYIM_NEKUDOTAYIM 標(biāo)示的意思嗎?

但是現(xiàn)在,PHP 已經(jīng)完全支持 OOP。很少語(yǔ)言具有像 PHP 這樣類似 Java 的 OOP 實(shí)現(xiàn)。另外,與 Java不同的是,PHP 有一個(gè)多帶帶的并擁有廣泛支持的包管理器,叫作 Composer。它非常的好用,并且不容忽視的一點(diǎn)是它可以方便地引用優(yōu)質(zhì)且維護(hù)良好的庫(kù),具有很高的易用性。

PHP 的高速發(fā)展

通過(guò)這些事實(shí)發(fā)現(xiàn), PHP 正在以有趣的方式發(fā)展著。它正逐漸成為像java一樣功能齊全的面向?qū)ο笳Z(yǔ)言(更好或更糟糕),正在為函數(shù)式編程提供簡(jiǎn)單的抽象,這可以說(shuō)是當(dāng)前的熱點(diǎn)。并且,正在發(fā)展一套非常棒的工具, PHP 喜歡?Composer , 并有充分的理由 --- ?因?yàn)樗谝恍┐笮烷_源項(xiàng)目的協(xié)同工作上做出了值得贊揚(yáng)的努力.

當(dāng)然,我們不應(yīng)該忘記當(dāng)前的熱點(diǎn):PHP 在 PHP7 系列版本中的發(fā)展取得了速度上的提升。這被廣泛認(rèn)為是由 Facbook 出現(xiàn)的 HHVM?引起的,在短時(shí)間內(nèi),存在 HHVM 的發(fā)展速度會(huì)破壞 PHP 社區(qū)的風(fēng)險(xiǎn),但事實(shí)并非如此,相反,PHP 的發(fā)展速度快得多,以至于人們幾乎忘記了 HHVM 的存在。

PHP 有一個(gè)巨大的社區(qū);它對(duì)新手友好。

如果你決定使用什么很酷的新技術(shù),我認(rèn)為經(jīng)常得到很少關(guān)注的是與語(yǔ)言達(dá)成協(xié)議的方式。學(xué)習(xí)PHP是什么感覺(jué)? PHP教程很好找,質(zhì)量通常也很好。

PHP流行的一個(gè)缺點(diǎn)是,你會(huì)從那些對(duì)工具不夠了解的人那里找到一些不那么好的教學(xué)。或者從某人那里學(xué)到的“最佳實(shí)踐”是十年前的。但總的來(lái)說(shuō),這很少見(jiàn),我不認(rèn)為它應(yīng)該讓你灰心。或者突然發(fā)現(xiàn)自己使用了幾個(gè)月的最佳實(shí)踐并不是最好的是很少見(jiàn)的,也不是一個(gè)大問(wèn)題。

PHP 與其他語(yǔ)言的比較

接下來(lái)我們要對(duì)比下 PHP 與其他的語(yǔ)言,這些語(yǔ)言需滿足以下要求:

開源:意味著你可以自由、免費(fèi)地使用或者查看底層語(yǔ)言或者程序;

應(yīng)用于 Web 開發(fā)領(lǐng)域:不一定是專注于 Web 開發(fā),但是在 Web 開發(fā)中有比較大的應(yīng)用;

高階動(dòng)態(tài)語(yǔ)言:具備動(dòng)態(tài)語(yǔ)言的特性,大部分面向 Web 應(yīng)用的語(yǔ)言兼具此特性;

足夠大的社區(qū):有很多滿足以上條件,但是只是在小范圍使用的語(yǔ)言,我們使用這最后一個(gè)條件將他們過(guò)濾掉。

為什么使用 PHP?而不是 JavaScript?

也許和 PHP 比較的最重要的語(yǔ)言是 JavaScript。現(xiàn)代開發(fā)要求每個(gè)項(xiàng)目都至少會(huì)一點(diǎn) JavaScript 來(lái)進(jìn)行客戶端開發(fā)和交互。借助 Node,這使得在服務(wù)器上使用 JS 變得相對(duì)簡(jiǎn)單。在服務(wù)器上和客戶端“同構(gòu)”使用相同的語(yǔ)言非常吸引人。

如同 PHP,JavaScript 是一個(gè)兼容并蓄但有時(shí)丑陋的語(yǔ)言,有很多的瑕疵和“陷阱”,但 JavaScript 在過(guò)去十年變得非常快,所以他的情況是真實(shí)的。為什么選擇 PHP 而不是 JavaScript?你已有專業(yè)知識(shí)或者在 PHP 使用庫(kù)。否則,我認(rèn)為 JavaScript 或許是個(gè)更好的選擇。

PHP 對(duì)比動(dòng)態(tài)服務(wù)器頁(yè)面 (.Net Core)

動(dòng)態(tài)服務(wù)器語(yǔ)言起源于一個(gè)用于網(wǎng)友編程的 Microsoft 語(yǔ)言。他和 PHP 非常直接相似。但他運(yùn)行在 Windows 服務(wù)器環(huán)境。這被 ASP.net 取代了。現(xiàn)在已被 ASP.NET Core 取代。后兩者現(xiàn)在是 PHP 一樣的開源語(yǔ)言。而我個(gè)人從沒(méi)有在任何變體中寫過(guò)一點(diǎn) ASP。

如果我使用且更喜歡 Microsoft 服務(wù)器的話,我會(huì)更喜歡 ASP。其他情況,請(qǐng)給我 PHP。兩者社區(qū)的規(guī)模和大小沒(méi)有可比性。

我應(yīng)該使用 Ruby 還是 PHP?

Ruby,特別是 Ruby on Rails,在過(guò)去十年前?非常?受歡迎。Ruby 依然是一個(gè)備受喜愛(ài)的語(yǔ)言,這在我看來(lái)他比 PHP 優(yōu)雅。也就是說(shuō),他的社區(qū)較小。同時(shí)我認(rèn)識(shí)到 Ruby 已經(jīng)不再是 "熱門語(yǔ)言"(被 JavaScript 取代了此角色)。Ruby 的優(yōu)雅,并且有足夠多的人擅長(zhǎng)使用,因此我不會(huì)避免他。但招聘已熟悉 Ruby 的人依舊比招聘 PHP 要難。(雖然我認(rèn)為一般的 Ruby 開發(fā)者水平比相同的 PHP 開發(fā)者要高。)

Python vs PHP:誰(shuí)更好一些?

最后一種與 PHP 一對(duì)一比較起來(lái)有意義的是 Python 。 Python 的使用場(chǎng)景要更多,相對(duì)于專注于 web 開發(fā)的 PHP 來(lái)說(shuō)(尤其是在數(shù)據(jù)統(tǒng)計(jì)與分析上面)。而且人們普遍都覺(jué)得它是一種更為更穩(wěn)定和優(yōu)雅的語(yǔ)言。

就像 Ruby 和 JavaScript 一樣, Python 在服務(wù)器上運(yùn)行要比 PHP 稍微麻煩一點(diǎn)。但是它是一種非常完美的語(yǔ)言,而且比起 PHP 的使用更具多樣化,我認(rèn)為它是比 PHP 更流行的語(yǔ)言之一,而且在其他方面(例如:各種第三方的庫(kù)、專業(yè)技術(shù)知識(shí)的獲取、招聘求職)都是一樣的。

PHP vs Go 語(yǔ)言?Scala語(yǔ)言?Java語(yǔ)言?等等

一開始曾提到過(guò),許多語(yǔ)言在做比較時(shí)或多或少會(huì)有一些相似的地方。這里有很多的語(yǔ)言可以拿來(lái)做對(duì)比,因此簡(jiǎn)單的聊幾個(gè):

java 非常受歡迎,并且效率很高。通常被用來(lái)搭建安卓應(yīng)用程序,桌面應(yīng)用程序,和 web 端應(yīng)用。不過(guò),它不是動(dòng)態(tài)類型的,它有更好的性能保證,但很適合Web 編程。

Go 是 Google 支持的正在發(fā)展的一門新語(yǔ)言。它專注 web 服務(wù)。但是這塊相比 PHP 還是有些不足(更像 C 語(yǔ)言),它的執(zhí)行速度很快,但是社區(qū)相對(duì)有限。

Scala 是一種流行的運(yùn)行在內(nèi)存區(qū)(Java 兼容)的語(yǔ)言,也似乎越來(lái)越受歡迎。它比 PHP 設(shè)計(jì)的更優(yōu)雅,但是除此之外,似乎沒(méi)有更多了。

此外,我覺(jué)得這些分析足夠可以做出選擇了,但是你有更多的選項(xiàng)可以去考量,不過(guò)最后我的替代方案將會(huì)考慮 PHP。

需要按需選擇編程語(yǔ)言

有了上面的比較,為什么還要使用 PHP ?上文我已經(jīng)提過(guò)了一些 PHP 里壞的設(shè)計(jì),有一些我經(jīng)常性會(huì)經(jīng)歷,例如在『查找類型的函數(shù)』里,這些函數(shù)needle 和 haystack 順序不一致,在沒(méi)有代碼補(bǔ)全的環(huán)境下,我還是會(huì)掉坑里。

如果你在構(gòu)建一個(gè)全新的 Web 項(xiàng)目,并且此項(xiàng)目不需要與其他系統(tǒng)交互,并且只有你一個(gè)人在工作,你想試試看其他語(yǔ)言,類似 Python 什么的。但是,你需要知道的是,即使是這樣的一個(gè)項(xiàng)目,還是有很多理由讓你選擇 PHP。

任何現(xiàn)代化的語(yǔ)言都可以讓你構(gòu)建一個(gè) Web App。每一門語(yǔ)言都有他們不足之處,例如 PHP 就是這樣的,PHP 要求你清晰地了解其不足之處,然后才能決策是否要在項(xiàng)目里使用它。但是對(duì)于我來(lái)說(shuō),我仍然會(huì)選擇 PHP 來(lái)構(gòu)建我的 Web 項(xiàng)目,就如 Keith Adams 在其?演講里? 提到的:

PHP 的開發(fā)效率真不是一般的高。

如果你有一個(gè) Python 的團(tuán)隊(duì),請(qǐng)使用 Python。如果你有個(gè)合伙人熟悉 Java,請(qǐng)使用 Java 來(lái)編寫你的 SaaS 程序。語(yǔ)言,永遠(yuǎn)都不是最重要的。

文章轉(zhuǎn)自: https://learnku.com/php/t/24576 

更多文章:https://learnku.com/laravel/c...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/30948.html

相關(guān)文章

  • “別更新了,學(xué)不動(dòng)了” 之:全棧開發(fā)者 2019 應(yīng)該學(xué)些什么

    摘要:但是,有一件事是肯定的年對(duì)全棧開發(fā)者的需求量很大。有一些方法可以解決這個(gè)問(wèn)題,例如模式,或者你可以這么想,其實(shí)谷歌機(jī)器人在抓取單頁(yè)應(yīng)用程序時(shí)沒(méi)有那么糟糕。谷歌正在這方面努力推進(jìn),但不要指望在年會(huì)看到任何突破。 對(duì)于什么是全棧開發(fā)者并沒(méi)有一個(gè)明確的定義。但是,有一件事是肯定的:2019 年對(duì)全棧開發(fā)者的需求量很大。在本文中,我將向你概述一些趨勢(shì),你可以嘗試根據(jù)這些趨勢(shì)來(lái)確定你可能要投入的...

    NervosNetwork 評(píng)論0 收藏0
  • “別更新了,學(xué)不動(dòng)了” 之:全棧開發(fā)者 2019 應(yīng)該學(xué)些什么

    摘要:但是,有一件事是肯定的年對(duì)全棧開發(fā)者的需求量很大。有一些方法可以解決這個(gè)問(wèn)題,例如模式,或者你可以這么想,其實(shí)谷歌機(jī)器人在抓取單頁(yè)應(yīng)用程序時(shí)沒(méi)有那么糟糕。谷歌正在這方面努力推進(jìn),但不要指望在年會(huì)看到任何突破。 對(duì)于什么是全棧開發(fā)者并沒(méi)有一個(gè)明確的定義。但是,有一件事是肯定的:2019 年對(duì)全棧開發(fā)者的需求量很大。在本文中,我將向你概述一些趨勢(shì),你可以嘗試根據(jù)這些趨勢(shì)來(lái)確定你可能要投入的...

    sutaking 評(píng)論0 收藏0
  • “別更新了,學(xué)不動(dòng)了” 之:全棧開發(fā)者 2019 應(yīng)該學(xué)些什么

    摘要:但是,有一件事是肯定的年對(duì)全棧開發(fā)者的需求量很大。有一些方法可以解決這個(gè)問(wèn)題,例如模式,或者你可以這么想,其實(shí)谷歌機(jī)器人在抓取單頁(yè)應(yīng)用程序時(shí)沒(méi)有那么糟糕。谷歌正在這方面努力推進(jìn),但不要指望在年會(huì)看到任何突破。 對(duì)于什么是全棧開發(fā)者并沒(méi)有一個(gè)明確的定義。但是,有一件事是肯定的:2019 年對(duì)全棧開發(fā)者的需求量很大。在本文中,我將向你概述一些趨勢(shì),你可以嘗試根據(jù)這些趨勢(shì)來(lái)確定你可能要投入的...

    ormsf 評(píng)論0 收藏0
  • 【Redis5源碼學(xué)習(xí)】2019-04-15 簡(jiǎn)單動(dòng)態(tài)字符串SDS

    摘要:關(guān)于結(jié)構(gòu)體內(nèi)存對(duì)齊是什么,請(qǐng)參考源碼學(xué)習(xí)內(nèi)存管理筆記。這說(shuō)明在當(dāng)前情況下,字符串結(jié)構(gòu)中的柔性數(shù)組的起始位置并不受是否加關(guān)鍵字而影響,是緊跟在結(jié)構(gòu)體后面的,所以節(jié)省內(nèi)存這個(gè)說(shuō)法并不成立。 baiyan 全部視頻:https://segmentfault.com/a/11... 今天我們正式進(jìn)入redis5源碼的學(xué)習(xí)。redis是一個(gè)由C語(yǔ)言編寫、基于內(nèi)存、單進(jìn)程、可持久化的Key-Va...

    Vixb 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<