2016年5月8日 星期日

腳本語言和系統程式語言

好久沒上來了,除了上來練打字以外,就記錄一下最近發生的事了,最近我終於找到自己想要做的工作了,但是想要做是一回事,做不做得來另是一回事,所以不想被開除的話,自己就要認真一點了,因為工作內容自己覺得還算有趣,要撐下去喔~~~


好了,那麼該從何說起呢,曾經有一張圖是這樣化的,他畫了一個滑鼠,上面疊了幾百個人的手,畫的非常的貼切,也有一篇好笑的文章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











2016年3月2日 星期三

久違的廢文

荒廢了好一陣子,前陣子想說去7-11打工,打工完回家繼續加油努力,後來發現我錯了,回到家根本不想動別的東西,沒辦法我是需要生活的人,簡單來說就是"太懶了"。
好!切入主題,今天的主題是廢文一篇,是的~我等一下要去一家公司面試,在沒人要我的情況下,對於面試我也有些麻木了,所以面試前寫篇文章來抒發自己心情。
關於IT產業與自己的人生觀,來個哲學問題,怎樣算是成功的人生?
"目前"我給自己的定義是,開開心心的過就是成功的人生,沒辦法生平無大志,只求六十分的道理,我不想當總統、我不想當比爾蓋茲、哥不想當郭台銘、更不想當史蒂夫賈伯斯(WHY?太早死了!!!)如果可以,哥哥想開開心心渡完這一生,沒辦法,出國一趟發現這世界好大,難得爸媽讓你出現在這世界上,你不出去走走晃晃,對不起自己阿。
以上就是我"目前"的人生觀,我並不想花時間貢獻在人類社會上(好自私喔),林杯智商水平不高,哥哥如果真的要花時間在貢獻人類社會上,可能會把這輩子都賠進去喔,重要的事就交給有能力的人吧,沒辦法時間有限,我~不是那塊料。
回歸現實面,哥哥想要出去晃晃,要有資本阿,錢錢錢,幹!!錢這種不要臉的東西還真的很重要,所以我必須要去工作,聖經上說"每個人都需要工作",很有道理的一句話,個人姑且認為,只要你是為了滿足生活所需,你就是在工作(對自己要求也太寬鬆了吧!!),沒辦法真的是生在台灣過太爽,當你連喝一杯乾淨的水都有問題的時候,找一杯水就是你的工作啦!!從這裡我體悟到,生在台灣,不要只是活著,要懂得生活,不然對不起那些被不平等壓榨,來滿足你生活所需的人(我扯遠了)。
好啦!世界上這麼多職業,總該有適合自己的工作吧,你想想這個世界有多美,音樂家(i can't live without music)、藝術家(我不想活在只有黑白和直線條的世界)、運動員、農夫、服務生、作業員....#!$!#!#等等好多好多,每一種行業都是構成這世界的元素,但是不管做哪一行,開心最重要!!你活著不是為了不開心,莫忘初衷阿。