看板 Soft_Job 關於我們 聯絡資訊
※ 引述《DrTech (竹科管理處網軍研發人員)》之銘言: : 小弟學過太多程式語言,隨便回顧一下包含 : : Assembly, C/C++, QuickBasic, Java, C#.NET, VB.NET : Scheme, PHP, Ruby, Tcl, Perl, Javascript... : 更不用說各種程式語言的各種 Framework。 : 結論是: 程式語言根本就沒什麼好學也不太重要。 [SUSAN] : 感覺程式語言本身根本就沒甚麼好學阿,頂多就是剛開始寫要查語法比較慢而已。 : 程式語言根本就不重要,沒人沒這種感覺嗎? 恭喜您, 已經超脫程式語言束縛, 能自由轉換演算法與資料結構到各種語言上. 但是在程式語言的重要性上可能有些見解不同的地方. 程式語言在歷史上, 是經過長時間淬鍊想要簡化開發流程的方法, 目的在於確保兩件事: 1. 能將所需要的資料結構安全的保存在記憶體上 2. 能將程式設計師所寫的演算法轉化為CPU的操作模式 從原始單CPU與真實記憶體的運作結構, 到後來大量分時多工與虛擬記憶體的運作機制, 程式語言都盡量維持他們開始創造的樣子使開發者能穩定與正常的工作. 想像從原本獨佔CPU式程式設計, 重新編譯到多核心多工處理程式, 要如何能無縫接軌使開發者感覺不出來差異? 並且還要由程式語言跟作業系統橋資源運用, 還有可能要幫系統做一些保護, 避免程式容易受到如stack-overflow的攻擊. 並且引用Compiler on Coursera.org的Aiken教授說過的: "程式語言沒有絕對性的好語言, 只有符不符合特定需求使用的語言" 01-03: The Economy of Programming Languages (19m51s) 裡面也有介紹, 程式語言原本就只是描述資料如何輸入, 處理, 輸出的一個介面, 根據不同的需求有不同的樣子, 但是處理方式與輸入輸出的本質方式, 就是翻譯到CPU或OS中斷, 在相同系統結構情況幾乎都是同樣的處理方式. 所以才會有每個語言能做到事情都是幾乎相同的. 有像CUDA C能直接命令NV GPU平行運算的存在, 以OpenCL介面請求NV GPU做事時, 也能安排同樣的事情來執行. 程式語言在實現想法上重不重要? 我也覺得不重要. 因為輸入,處理,輸出這些行為是每個語言都已經幫忙準備好了, 只差演算法與資料結構設計是否能在程式語言與作業系統承載的框架下實現. 但是程式語言本身重不重要? 我覺得很重要. 在程式語言設計師們努力下, 使給個開發者具備接近相同語法, 穩定各系統下的執行行為, 甚至幫開發者優化部分運作內容, 使各種演算法有機會在比預期快的情形下運作完成. 我們都在語言程式設計師幫忙準備好的環境之下開發, 並使用他們辛勞對抗過各種不同系統的基礎來進行開發, 並借用他們留在程式語言裡面準備好的內建函式庫來開發. 在我看來, 程式語言是一群人努力提供個開發者能實際應用的結果, 雖然常發生的無法預期錯誤時也會有所抱怨, 但是使用程式語言時我都在感謝語言設計者辛勞留下的成果. Many Thanks, watz0n -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.116.65 ※ 文章網址: http://www.ptt.cc/bbs/Soft_Job/M.1411915556.A.3C1.html
robler: 辛苦你認真的回一篇引戰的廢文.. 09/28 22:51
typepeter: 超專業 救了原標題 09/28 23:04
zased: 高下立判,獲益良多! 09/29 00:36
lovdkkkk: 真的要心懷感激 09/29 07:02
leochen0818: 真的是多謝了這些程式語言設計者,讓我有口飯可吃 09/30 09:50
lamontlui: 這篇文章專業 感恩 10/01 14:22