成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我穿越到了1994年,終于發現了現在80%的網站都用 PHP 的原因!

開發 開發工具
這次嘗試了一個新的寫法,讓張大胖穿越到了1994年,以旁觀者的身份講解了PHP的起步歷程。最精華的部分就是末尾關于“如何創建一個成功的開源項目”。

[[434051]]

 昨天晚上寫代碼到深夜,一頭扎到床上,沉沉睡去。

第二天睜開眼鏡,我發現自己居然坐在一個咖啡館里,旁邊的墻上貼著最新的英文電影海報《阿甘正傳》、《肖申克的救贖》

這都是1994年的經典電影,我意識到,自己穿越到了1994年的美國!

對面坐著一個帥哥,一邊操作電腦,一邊在不停地贊嘆。

我探過頭去,發現他正在看這個東西:

我說:“哥們兒,這不是安德森開發的Mosaic瀏覽器嗎?這么丑,你怎么不用網景?”

“網景?那是什么東西?不過兄弟不簡單啊,我在咖啡館喝了這么多天的咖啡,你是第一個識貨的,還知道安德森,肯定也是個程序員吧,要不一起干吧!”

“干什么啊?”

“瀏覽器絕對是互聯網的未來,現在很多公司都在狂熱地擁抱它, 他們就使用 Microsoft Word寫文檔,然后將文檔保存為 HTML,通過 FTP 將它們放到網上,這里邊有商業機會啊。”

“寫個HTML會有什么商業機會?”

“靜態的網站是和枯燥的,這些公司很快就會發現,可以和用戶交互的、動態的網站才有商業價值。我準備專門提供這樣的咨詢服務,為他們開發各種動態的Web應用程序。對了,忘了自我介紹了,我叫Rasmus Lerdorf。”

這個人名怎么這么熟悉?

我想既然穿越而來,那就看看1994年的動態網站是怎么開發的吧。

我說:“我叫張大胖,主要用Java編程。”

“Java?那是什么語言?” 他兩眼立刻放光了!

我意識到說漏嘴了,Java這時候還沒誕生呢!

“其實叫C++--,一個小眾語言。”

“和C語言相關,那就好,我們得用C語言寫CGI腳本。”

我和他合伙開了個咨詢公司,專門接開發動態網站的活兒。

但是開發一開始,我就崩潰了:沒有前后端分離,沒有Java,沒有JSP,ASP, 真的全靠在C語言!

給大家看看:

  1. void main(int argc, char *argv[]) { 
  2.   char *params, *data, *dest, *s, *tmp; 
  3.   char *name, *age; 
  4.  
  5.   puts("Content-type: text/html\r\n"); 
  6.   puts("<HTML><HEAD><TITLE>Form Example</TITLE></HEAD>"); 
  7.   puts("<BODY><H1>My Example Form</H1>"); 
  8.   puts("<FORM action=\"form.cgi\" method=\"GET\">"); 
  9.   puts("Name: <INPUT type=\"text\" name=\"name\">"); 
  10.   puts("Age: <INPUT type=\"text\" name=\"age\">"); 
  11.   puts("<BR><INPUT type=\"submit\">"); 
  12.   puts("</FORM>"); 
  13.  
  14.   data = getenv("QUERY_STRING"); 
  15.   if(data && *data) { 
  16.     params = data; dest = data; 
  17.       while(*data) { 
  18.       if(*data=='+') *dest=' '
  19.       else if(*data == '%' && ishex(*(data+1))&&ishex(*(data+2))) { 
  20.         *dest = (char) htoi(data + 1); 
  21.         data+=2; 
  22.       } else *dest = *data; 
  23.       data++; 
  24.       dest++; 
  25.     } 
  26.     *dest = '\0'
  27.     s = strtok(params,"&"); 
  28.     do { 
  29.       tmp = strchr(s,'='); 
  30.       if(tmp) { 
  31.         *tmp = '\0'
  32.         if(!strcmp(s,"name")) name = tmp+1; 
  33.         else if(!strcmp(s,"age")) age = tmp+1; 
  34.       } 
  35.     } while(s=strtok(NULL,"&")); 
  36.  
  37.     printf("Hi %s, you are %s years old\n",name,age); 
  38.   } 
  39.   puts("</BODY></HTML>"); 

用一句話來說那就是:在C語言當中輸出HTML代碼。

這是人干的活嗎?我都快寫吐了!

Rasmus:“沒辦法啊,C語言編寫CGI腳本,實現動態網頁,可不就得這樣嘛?對了,你會用Perl嗎?”

“就是那個寫出來以后代碼誰都不認識的語言?我不想用!”

時間長了,Rasmus 也受不了了:“這些CGI 腳本無外乎就是處理表單, Post數據,過濾等,重復代碼太多了,怎么樣才能提高效率呢?”

他有空就琢磨這件事情,有一天,他想到了一招,把這些常用的功能都包裝到一個C語言庫中,它“植入”NCSA Web 服務器中(這是Apache之前最流行的服務器),然后在上面添加了一個模板系統,可以輕松地調用他們。

于是代碼就是變成這個樣子:

  1. <html><head><title>Form Example</title></head> 
  2. <body><h1>My Example Form</h1> 
  3. <form action="form.phtml" method="POST"
  4. Name: <input type="text" name="name"
  5. Age: <input type="text" name="age"
  6. <br><input type="submit"
  7. </form> 
  8. <?if($name):?> 
  9. Hi <?echo $name?>, you are <?echo $age?> years old 
  10. <?endif?> 
  11. </body></html> 

換句話說:就是在HTML中“混入”代碼。

和CGI對比,這種方式對程序員來說非常友好,我們的工作效率一下子提高了很多。

說實話,我早就知道這種方式,就是ASP,JSP嘛,但是自己沒那技術實力,實現不了啊!

Rasmus 很快就找到了一個新客戶,用新工具為他們開發Web程序,連接到數據庫,滿足他們各種各樣的需求。

隨著客戶的增多, 客戶的需求也略有不同,于是,Rasmus 就不斷地擴展它的工具箱, 從簡單的解析器慢慢發展為包含條件標簽,然后是循環標簽、函數等各種復雜的東西,這已經是一門語言了。

Rasmus 把它們稱為Personal Home Page,簡稱PHP。

我這才意識到,原來遇到了PHP之父!

很快就有其他程序員找上門來, 問我們:Rasmus, 你們怎么開發得這么快!

Rasmus說:我有個人工具箱啊!

“那我能不能用?”

Rasmus說:“可以啊,工具只是我的錘子,每個人都可以用我的錘子。”

我趕忙阻止他:“Rasmus, 你把錘子給別人, 那咱們靠什么賺錢?”

“我不靠錘子賺錢,我賣的是解決問題的服務。”

我心想他真是傻瓜,為什么不靠賣他的工具來賺錢呢?學學Bill Gates,過幾年上市!

讓我沒想到的是,神奇的事情發生了。

使用PHP的人開始給Rasmus發送補丁了 ——他們發現了Rasmus都沒有發現的Bug!

于是Rasmus到客戶那里說:我又升級了一個新版本,改了這個,改了那個。

客戶非常滿意,他們認為我們的工作效率非常高,不但能快速完成功能,還能快速修復Bug。

我突然意識到:這不就是開源嗎?

當然,這是1994、1995年,開源這個詞還沒有出現,當時只有RMS提倡的自由軟件。

隨著越來越多的人提交補丁,PHP逐漸完善,1995年,Rasmus看到時機成熟,正式宣布了 PHP 1.0的誕生。

原來PHP就是這么起步的啊!

Rasmus展示出了一個領袖的大度和風范,他放棄了對PHP的獨家控制權。

通過把項目的所有權分給其他人,這樣大家都可以投入,PHP成了大家的項目,而不是Rasmus一個人的項目。

當時,PHP源碼放在CVS中,我想讓Rasmus把PHP源碼放到GitHub, 可是那個時候連Git都沒有,哪而來的Hub?

在這里沒有管理,大家是自我組織的小群體,可以圍繞自己感興趣的東西,自我組織。

任人唯賢, 代碼說話。

這真正地改變了PHP的本質。

有一個周末,我又和Rasmus來咖啡館喝咖啡,我說:“我覺得你得給PHP添加一些高級的特性了!”

“比如泛型,注解,面向函數編程,Lambda之類。”

“不不,我希望 把進入PHP的門檻控制在很低的水平,無論是使用它還是向他做貢獻。任何想解決Web問題的人通常會通過PHP找到非常直接的解決方案,許多聲稱可以解決 Web 問題的替代方案太復雜了,想想看,你需要在周五之前完成工作,但是得翻閱800頁的手冊,這讓人崩潰。”

“你有沒有想過,將來PHP會統治Web?”

“哈哈, 有這種可能嗎?”

當年的Rasmus并不知道,PHP將在互聯網大潮中野蠻生長,和Linux, MySQL , Apache聯姻, 不斷攻城略地。

W3Tech的統計顯示,PHP統治了Web, 接近80%的網站在使用PHP!

“如果讓你總結一下,如何才能創建一個成功的開源項目,你會怎么說?”

聊到這個話題,Rasmus突然就滔滔不絕起來,因為他從0到1發展起一個項目,簡直太有發言權了!

“如果你只有一個很酷的想法, 沒有人會加入你的項目,每個人都有很酷的想法。

如果你創建的東西是半生不熟的,那么人們可能對你做的事情不屑一顧,他們會用自己的方式來解決問題。

只有你構建了足夠有用的東西,大家才會來到你的身邊,他們會更容易接受你的代碼,然后稍微擴展來解決他們自己的問題,這樣雪球才能滾動起來。

所以,要開始一個開源項目,你必須解決一個困擾你一段時間的問題,這可能會花費數月的時間才能找到真正的問題并解決掉,然后你必須接受早期采用這的建議,盡最大努力讓工具對更廣泛的受眾有用。

最后可以考慮放棄控制權,讓其他人和你一起努力,當人們用你的代碼做他們任何想做的事情的時候,你的開源項目就成功了!”

“太棒了,我希望我的讀者們都能看到這段話。”

“你的讀者?”

“是的,碼農翻身公眾號,我不能說太多了,天機不可泄露,我得走了。”

說完,我就消失了。

后記:這次嘗試了一個新的寫法,讓張大胖穿越到了1994年,以旁觀者的身份講解了PHP的起步歷程。最精華的部分就是末尾關于“如何創建一個成功的開源項目”。

有人可能要問,哪些情節是真的?這個要賣個關子,只要在公眾號回復“PHP之父”就能得到答案。

 

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2024-05-20 08:25:55

2020-04-01 08:40:44

Vue.jsweb開發

2024-06-03 11:43:55

2020-05-18 08:42:23

CSS背景圖像前端開發

2021-04-08 22:43:48

蘋果內存系統

2021-01-21 09:35:36

云計算云計算產業云應用

2021-10-29 11:45:26

Python代碼Python 3.

2025-06-04 08:10:59

2021-07-10 07:40:27

Excel數據分析大數據

2025-05-19 10:04:48

2022-11-30 09:18:51

JavaMyBatisMQ

2024-11-08 14:18:38

2021-04-22 07:47:47

JavaJDKMYSQL

2021-05-13 16:34:20

TCP客戶端

2024-11-05 09:47:08

VGG網絡模型

2024-04-28 12:47:03

數據業務

2021-04-26 05:41:32

百度網盤秒傳

2020-03-02 19:51:40

戴爾

2019-05-07 18:45:21

崩潰應用程序Android

2021-06-08 13:55:41

AI 數據人工智能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费国产一区二区 | 欧美日韩国产高清视频 | 精品乱码一区二区三四区视频 | 久久夜夜 | 国产精品99久久久久久动医院 | 婷婷在线免费 | 久久精品一 | 在线国产视频 | 在线国产一区二区三区 | 特级毛片www| 精品自拍视频在线观看 | 国产主播第一页 | 日韩欧美大片在线观看 | 亚洲国产高清高潮精品美女 | 涩爱av一区二区三区 | 成人午夜电影在线观看 | 国产精品免费一区二区三区四区 | 亚洲视频免费观看 | 国产aaaaav久久久一区二区 | 亚洲视频一 | 欧美性乱| 精品www | 一本色道精品久久一区二区三区 | 亚洲精品国产偷自在线观看 | 一区二区免费看 | 成人高清在线 | 青青青伊人 | 精品国产高清一区二区三区 | 日韩尤物视频 | 午夜免费电影院 | 国产精品久久久久久久久久久久冷 | 国产精品99久久久久久动医院 | 欧美精品日韩精品 | 精品国产91乱码一区二区三区 | 久久久激情视频 | 日本久草视频 | 久久99精品久久久久久国产越南 | 欧美综合一区二区三区 | 国产三区四区 | 欧美一区在线视频 | 色爱综合 |