7.Java是一種誕生自Sun Microsystem(今已不存在)的編程語言,它是在一個虛擬機上運行的,因此說Java可以運行在任何地方,就是說它在Windows、Mac或Unix機上運行是完全一樣的。
8.JavaScript是怎么回事呢?
最初的網(wǎng)景公司(Netscape)要解決一個問題,讓靜態(tài)的Web界面動起來,于是一個叫布蘭登·艾克的工程師花了幾周時間創(chuàng)造了一門叫做JavaScript的語言。它其實和Java沒有半毛錢的關(guān)系。JavaScript不像Java那么可控,甚至比原生編譯的C慢得多,并且十分不精確。然而,有Gmail、Google、Flicker、Twitter和Facebook這些大佬在使用它,并一起致力于彌補它的缺陷,把它弄得漂亮些。08年,一位叫瑞恩·達爾的開發(fā)者對V8引擎作了修改,并作為自由軟件發(fā)布。它使得JavaScript可以再瀏覽器以外的地方運行,而且改進后很快。達爾管這種進一步的分支版本叫做Node.js,它很快流行起來。JavaScript起初在Web頁面上運行沒多久,之后就沖破了瀏覽器的牢籠,它可以訪問你的硬盤,發(fā)送郵件刪除你所有的文件。現(xiàn)在它是一門真正的編程語言了,從前的客戶端變成了服務(wù)器。
9.關(guān)于PHP我應(yīng)該知道些什么?
PHP是Personal Home Pages/Forms Interpreter(個人主頁/表單解釋器)的縮寫。它的理念是當(dāng)你在載入Web頁面時,PHP代碼可以在頁面?zhèn)魅牖ヂ?lián)網(wǎng)之前就運行起來。比如PHP可以檢查你是否已經(jīng)登錄,如果登陸了,它可以把你高度保密的賬號細(xì)節(jié)信息顯示出來;如果沒有,它就說,“請登錄”。
以寫PHP代碼為生并非死路一條,很多人依靠PHP致富了。只不過你得不停地剪貼粘貼,花很多時間在谷歌上搜索,搞明白問題出在哪兒。可悲、可憐、可憎、及其實用、無比成功的PHP。讀PHP代碼就像在讀詩,大一時寫的詩。
10.應(yīng)用軟件是怎么做出來的?
擁有一臺Mac電腦的其中一個好處,是可以去下載蘋果的一個程序,叫Xcode。它是一個IDE集成開發(fā)環(huán)境(Intergrated Development Environment)。Xcode是蘋果的心臟,是一個完整的世界。比如其中有一個叫 iOS SDK(軟件開發(fā)工具包)的組件,里面有許許多多的API,播放聲音的API,追蹤用戶所在地址的API,搜集用戶信息的API等等。
只要你是在編程,尤其是Web編程,那你十有八九已經(jīng)采用了一種框架。SDK是一種企業(yè)哲學(xué)的表達,框架Framework則更像一種產(chǎn)品的宣傳,你可以用一個圖形框架來創(chuàng)建圖形應(yīng)用程序,用Web框架來創(chuàng)建Web應(yīng)用程序,用網(wǎng)絡(luò)框架來創(chuàng)建網(wǎng)絡(luò)服務(wù)器。軟件世界有數(shù)以百計的框架,幾乎每種語言都有自己餓框架。
框架是有主見的,不過不像SDK那么強硬。后者是嚴(yán)密捆綁的,夾帶著企業(yè)公關(guān)的私貨,尤其是像蘋果或微軟這種公司,而框架很多時候是源自某種不滿,去改善。很多優(yōu)秀的框架都是Free,它們的存在是為了解決問題,為它們的創(chuàng)造者帶來榮耀和影響力,而不是金錢和權(quán)力。它們的名聲是自然而然傳出去的。如果你在做一個Web應(yīng)用,不先用一下框架就是傻瓜了。有的框架很小,是給那些控制欲很強的人準(zhǔn)備的,專門處理URL路由,有的像是Django和Rails這樣的大型框架,致力于實現(xiàn)Smalltalk等大系統(tǒng)在早年間提出的目標(biāo):開發(fā)大規(guī)模協(xié)作系統(tǒng),讓數(shù)據(jù)可以在協(xié)同中得到操控和共享。這是別人幫你做好的,DRY(Don't Repeat Youeself!)
11.測試與版本管理
有時,在寫程序本身之前,會先把程序必須通過的測試寫好。這叫做測試驅(qū)動設(shè)計。測試當(dāng)然也是代碼,它們負(fù)責(zé)檢測其它代碼里的功能,而且是自動的。
版本管理是編程中最美妙的東西。所有那些進入代碼庫的文檔的每一次改變都會記錄在案;可以用它來檢查bug是在什么時候進入系統(tǒng)的;針對做出的改變,時間精確到分秒,很強大;每個人都可以查看每一個改變,完全透明;可以改變打包,變成分支,任何人可以根據(jù)需要去創(chuàng)建分支,不會破壞其它分支的完整性;可以把已完成的分支重新合并到代碼主干上去,隨時復(fù)查和修正不一致的地方。
這樣一來,代碼的實際發(fā)布就是由測試和版本控制來觸發(fā)的!
12.程序員的管理本身是一門學(xué)問。有一個學(xué)科分支是專門處理程序員溝通的。最知名的方法叫做“敏捷開發(fā)”,要求程序員之間進行持續(xù)協(xié)調(diào),并要求他們遵循一套儀式和規(guī)范,從而讓他們的程序可以和其他人的程序合作。