好久沒上來了,除了上來練打字以外,就記錄一下最近發生的事了,最近我終於找到自己想要做的工作了,但是想要做是一回事,做不做得來另是一回事,所以不想被開除的話,自己就要認真一點了,因為工作內容自己覺得還算有趣,要撐下去喔~~~
好了,那麼該從何說起呢,曾經有一張圖是這樣化的,他畫了一個滑鼠,上面疊了幾百個人的手,畫的非常的貼切,也有一篇好笑的文章https://vinta.ws/blog/695軟體工程師的鄙視鏈,有興趣可以看看。
做這一行有很多專業術語,來慢慢了解
因為現在學的是php,是一種腳本語言,那你知道腳本語言和系統程式(像是java)語言的差別嗎?
這篇文章講得算清楚喔
https://tw.answers.yahoo.com/question/index?qid=20070406000010KK07890
我就以自己理解來做一些整理吧
參考WIKI的敘述
把腳本語言的定義理解成
縮短傳統的「編寫、編譯、鏈接、運行」(edit-compile-link-run)過程而創建的計算機編程語言。...出自WIKI
先拿其中一點來講,DEBUG快
腳本語言通常採用直譯,這是一種轉換(翻譯)方式,然後電腦怎麼翻譯干我什麼事,應該說這種翻譯方式剛好可以省你DEBUG的時間
不管程式語言或是腳本語言,都是用我們人類看得懂的高階語言來寫的,然爾高階語言最終還是要轉成機器看得懂的機械語言,兩者只是翻譯的流程不同而已
直譯,一段翻譯完,執行完,再去翻譯下一段,做下一段......效能慢
編譯,全部先翻譯過再執行......效能快
而像是系統語言java則是兩種方式都採用
看完上述的解釋,你應該知道直譯的這種翻譯方式,不談效能等影響
,對coding的人員來說,debug比較省時,哪一段錯看哪一段就行,縮短我們開發的時間。
題外話那為何java要採用直譯?java採直譯不是為了開發人員的DEBUG流程
................................................
取自WIKI
Java語言在最開始應用的時候是沒有解釋層的,所有需要編譯的代碼都直接轉換成機器的原始代碼。這樣做的後果就是獲得了最佳的性能,但是程序臃腫異常。從JIT技術開始,Java的程序都經過一次轉換之後才變成機器碼。很多老牌的第三方虛擬機都使用一種叫做「動態編譯」的技術,也就是說虛擬機實時監測和分析程序的運行行為,同時選擇性地對程序所需要的部分進行編譯和優化。所有這些技術都改善了代碼的運行速度,但是又不會讓程序的體積變得失常。
................................................
以上就是腳本語言的其中一個快。當然這只是開發程序上的優點,還有許多優點之後再補
因為大環境驅使,老闆想要快,員工也想要快。
我聽過一個老師說
像是java這種系統語言是用來寫系統的,
而php這種腳本語言是用來寫應用的。
所以腳本語言在這樣硬體愈來愈進步、與要求快速開發的商業環境下,有了今天這樣的地位。
所以為什麼選擇腳本語言,原因無他,只因為開發快
回到PHP,PHP是個腳本語言,所以有著DEBUG快的優點,然後呢?
PHP還有著跨平台的優點,
又一個專業術語,跨平台
什麼叫做跨平台呢
機械語言→組合語言→程式語言
先從硬體開始說,每種cpu都有自己的指令集,那麼像是組合語言這種東西,就不能跨平台,這是硬體方面的限制。
到了程式語言像是c,可在不同的作業系統上編譯,各別在不同的作業系統上執行
這是作業系統的限制
再到了JAVA在不同的作業系統上有不同的jvm,在一個作業系統上編譯,就能在不同作業系統上執行。
http://www.techbang.com/posts/10678-fully-understand-arm-processors-cisc-and-risc-are-what-history-structure-a-see-through-the-computer-96-issues-cover-story-the-king?fb_action_ids=893460750779999&fb_action_types=og.comments&page=2
從上述的三點來看,要實行跨平台,就必須有一個擔任翻譯的角色,你之所以能夠跨平台,是因為有人幫你把翻譯做得好好的。
JAVA有JVM
那PHP