偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

是什么讓我的PHP退役了

開發(fā) 后端 前端
本文是從 I'm Retiring from PHP 這篇文章翻譯而來。對于我的個人業(yè)余項目和未來的編程創(chuàng)收活動,PHP作為我的一種編程語言的選擇,已經(jīng)從此退役了。

對于我的個人業(yè)余項目和未來的編程創(chuàng)收活動,PHP作為我的一種編程語言的選擇,已經(jīng)從此退役了。作出這個決定并不容易,但是對于我熱愛的編程事業(yè)的延續(xù),這是必要的。你知道,我可不是僅僅因為熱愛編程才做程序員,因為我不會干其它的。

歷史

一切都開始于1999年,我8年級。互聯(lián)網(wǎng)真正開始顯示出魅力,我想編程。學(xué)習(xí)了基本的HTML,我可以做出網(wǎng)頁,但我想讓這些網(wǎng)頁有更多的交互功能。Perl成為了選擇,嵌入Apache里作為CGI。Perl最初不是做這個的,對于一個對Unix,Linux,Apache和HTTP是如何工作的一無所知的孩子,我不可能配置它們、讓它們跑起來。

最終我找了一個web主機,上面所有的東西都已經(jīng)配置好了,我就這樣可以神奇的使用了。算是吧。我花了數(shù)月琢磨Perl,但這個東西實在讓人困惑。有誰還記得那些正則表達式和大堆的代碼來解析請求變量、獲得一個$POST 和 $GET 數(shù)組?對我來說絕對是天書,我拷貝粘貼,假裝知道自己在干什么。有誰還記得恐怖的Matt’s Script Archive這個腳本嗎?

  1. # From Matt's Script Archive  
  2. if ($ENV{'REQUEST_METHOD'} eq 'GET') {  
  3. @pairs = split(/&/, $ENV{'QUERY_STRING'});  
  4. } elsif ($ENV{'REQUEST_METHOD'} eq 'POST') {  
  5. read(STDIN, $buffer$ENV{'CONTENT_LENGTH'});  
  6. @pairs = split(/&/, $buffer);  
  7. }  
  8. foreach $pair (@pairs) {  
  9. local($name$value) = split(/=/, $pair);  
  10. $name =~ tr/+/ /;  
  11. $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;  
  12. $name =~ tr/\0//d;  
  13. $value =~ tr/+/ /;  
  14. $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;  
  15. $value =~ tr/\0//d;  
  16. # Build a hash with $name and $value 
  17. }  
  18.  

數(shù)月后,我風(fēng)聞有一種語言叫PHP。你只需要向服務(wù)器上傳一個.PHP文件,一切都搞定了。你直接能訪問表單域里的變量,它們可以跟在URL后面提交。不須用正則表達式分析環(huán)境變量。相當(dāng)?shù)拿匀恕?/p>

 

php logo

 

不僅訪問GET 和 POST 變量是如此的容易,連接數(shù)據(jù)庫也是要命的簡單。所有的都是在Windows上?!愿望很快就成了現(xiàn)實。有人不久寫出了WAMP的安裝包——因為安裝Apache和MySQL仍然不是一個很輕松的事。感覺就像是在天堂里了。最終,我開始編寫能把數(shù)據(jù)存入數(shù)據(jù)庫,取出數(shù)據(jù),并操作它們的web應(yīng)用了。

當(dāng)然,現(xiàn)在知道的什么SQL注入攻擊,XSS攻擊,CSRF攻擊,session注入攻擊或其它的流行的安全漏洞問題,當(dāng)時一無所知(公平的說,我肯定,當(dāng)時整個行業(yè)都不太清楚這些東西)。

但我很快的就開始編程了,瘋了似的。我開發(fā)論壇,我開發(fā)基礎(chǔ)的網(wǎng)站生成器,日志和內(nèi)容管理系統(tǒng)。我喜歡這些??傆幸恍┬碌臇|西要學(xué),總有一些新的東西要做。爸爸的公司給了我很多便利,特別是他們的軟件開發(fā)組。那是一個在休斯敦的小web開發(fā)公司,我有機會在里面和很多比我年長的程序員一起工作,之后我開始能獨自承擔(dān)大的網(wǎng)站開發(fā)。整個大學(xué)期間都在做這個,甚至開發(fā)了一個總共有16862行代碼的PHP系統(tǒng),提供給一個非盈利組織使用(在那時,我已經(jīng)知道了常見的網(wǎng)站漏洞,并進行了修補)。

Rails和Django并沒有吸引走我。我非常了解PHP,我有自己的框架,能夠很快的讓東西開發(fā)完成并跑起來。

就這樣,我經(jīng)歷了MVC框架變革過程。作為一個PHP開發(fā)者,我的工作情況越來越好(更好的待遇,更好的職位),但慢慢的我發(fā)現(xiàn),在我自己的業(yè)余時間里,寫出的代碼非常的好,可是在工作時間接觸那些公司的代碼卻很糟糕。不是一般的糟。沒法再糟了。做這些業(yè)余項目讓我保持清醒,因為公司的那些程序在提醒我,讓我痛苦不堪。

熱情枯竭

這就是為什么PHP從我的業(yè)余項目和新的創(chuàng)收活動中退役的原因。我疲倦了PHP。熱情耗盡了。我感覺對這種語言已經(jīng)達到了最高水平,如果不轉(zhuǎn)向新的語言,對這種語言我就沒什么可做的了,我可不想落入這種狀態(tài)。

我作為一個職業(yè)PHP開發(fā)人員掙了很多錢,我計劃繼續(xù)下去。但我的業(yè)余項目和個人業(yè)務(wù)創(chuàng)收上將會使用其它的語言和框架。

此外,PHP并不強調(diào)好的整潔的編碼規(guī)范。有很多地方它實際是違背好的編碼規(guī)范的。結(jié)果,你就看到了到處都是大堆的恐怖的PHP程序,跟這些程序打交道簡直就是噩夢。新程序員可以通過閱讀一些過時的速成教程很快學(xué)會這種語言,他們寫出的很爛的代碼,打包到產(chǎn)品里,這樣的水平一年就能掙到6.5萬美元。我親眼看到過這種事情發(fā)生。PHP的易用和流行就像吸引蒼蠅一樣吸引了大量的初級開發(fā)人員。

初級的程序員會認為他們把代碼格式化一下,加一些注釋,他們的代碼就整潔了。他們錯了,他們格式化的恰恰是些爛代碼。我在工作上整天遇到這樣的代碼。

我作為PHP熱愛者的日子結(jié)束了。那么,下一步怎么辦?

Scala

 

scala-logo

51CTO推薦專題:Scala編程語言

 

一年前,當(dāng)以JVM為基礎(chǔ)的語言(Clojure,Groovy,Scala,等等)開始流行的時候,我注意到了Scala??雌饋砗苡腥ぃ液軗?dān)心從PHP轉(zhuǎn)向一種不熟悉的語言。在過去的12年里,我知道所有的PHP的特征和妙處,而對于新語言我不掌握任何情況?,F(xiàn)在,我不再顧慮這種擔(dān)心了,因為我對學(xué)習(xí)新的東西更感興趣。

我懷疑我是否有足夠的智慧掌握這種新語言。并發(fā)?PHP上從來不擔(dān)心這種事情,Apache處理了所有類型的線程。Actors?靜態(tài)類型?變量上的不可變值?真正的命令式編程?使用PHP從來不需要考慮這些東西。

我買了一本這種語言的創(chuàng)始人Martin Odersky,Lex Spoon 和 Bill Venners 寫的《Scala編程(Programming in Scala)》。極好的書,我饒有興趣的讀著這本書。我的編程的熱情又回來了。

業(yè)余項目

那么,我的下一個業(yè)余項目會發(fā)生怎樣的變化?對于任何一個決定學(xué)新語言的人,這可是個不幸的消息,從金錢上從時間上都是不幸的。下一個項目將會暫停,直到我感覺能像使用PHP那樣使用這種新語言后,我才會重新啟動?,F(xiàn)在不是時候。我本來計劃是在六月完成Kwolla 2,七月初上線?,F(xiàn)在這個時間計劃是不能遵守了。

我還有另外一個項目打算使用Scala。我在評估各種框架,發(fā)現(xiàn)Thrift 不可思議的有意思的東西。進入這個未知的領(lǐng)域同樣讓我產(chǎn)生了驚恐,但同時也有興奮。

結(jié)束語

我會在博格里公布學(xué)習(xí)Scala的進展。我在用Scala做MilqIt,希望年底前把它做完。我希望你能和我一起走過這段旅程,訂閱我的博格更新,希望你能再次分享我對編程的熱情。

原文鏈接:http://www.aqee.net/2011/06/27/im-retiring-from-php/

【編輯推薦】

  1. 一位反JavaScript主義者的覺醒
  2. 快速判斷JavaScript對象是否存在的十個方法
  3. JavaScript重構(gòu)深入剖析
  4. 19個很有用的JavaScript庫強烈推薦
  5. 15款超棒的JavaScript開發(fā)工具推薦
責(zé)任編輯:陳貽新 來源: 外刊IT評論
相關(guān)推薦

2013-09-11 09:57:41

蘋果iPhone5S售價iPhone5C售價

2020-06-01 14:02:25

Vue.js框架模板

2022-04-29 08:00:36

web3區(qū)塊鏈比特幣

2012-02-27 09:12:58

程序員

2018-04-20 14:43:59

2025-05-28 08:05:00

stdclassPHP開發(fā)

2023-07-23 17:19:34

人工智能系統(tǒng)

2018-01-18 22:26:16

SDNNFV網(wǎng)絡(luò)虛擬化

2023-04-23 14:09:28

2009-09-04 05:34:57

KVM性能紅帽KVM

2012-04-23 22:38:14

私有云數(shù)據(jù)中心

2020-03-15 17:39:32

MVC架構(gòu)技術(shù)

2015-11-17 10:37:14

容器在線擴容集群管理

2023-07-06 10:45:03

CIO領(lǐng)導(dǎo)力

2024-06-05 10:59:51

2021-10-25 12:14:28

智慧城市物聯(lián)網(wǎng)

2010-10-15 10:35:18

2021-12-31 18:24:45

ThreadLocal數(shù)據(jù)庫對象

2011-06-08 10:24:58

程序員

2022-02-13 23:37:43

加密貨幣比特幣貨幣
點贊
收藏

51CTO技術(shù)棧公眾號