精華區beta Programming 關於我們 聯絡資訊
※ 引述《drkkimo ()》之銘言: : 嗯 程式語言當然是一種工具 只是我覺得寫程式的人是在運用別人創造的工具 寫的 : 好也只是把這一樣工具用的很熟練 但是將來也許會有更好用的工具 它的使用概念跟 : 舊的工具差別很大 所以程式設計師擅用的舊工具可能就不是那麼有價值了 不認同你的說法, 軟體更重要的地方在於"創意", 用的熟練不代表什麼, 但是能用既有的工具創造或實現新的創意, 那就不同了 另外工具跟觀念也是兩回事. 在 CS 裡面, 有一位大師級的人物, Knuth. 他是個兼具實作能力以及演算法能力的大師, 他使用的程式語言可以在這邊找到 http://www-cs-faculty.stanford.edu/~knuth/faq.html 他使用的東西不是主流, 但是他寫的書可是經典 : -------------------------- : 拿比較實際的例子來說 不是有基因演算法嗎? 它可以用演化的方法找到一個問題的 : 解法 那想像一個狀況 雖然目前尚沒實行 但有沒有可能 將來可能會如此 : 就是製作程式的方法 是用演化的方式產生出需要的程式 而撰寫程式就變成在定義需求 這 : 時程式設計師的工作 就不是在定義程式運作的流程了 而是能明確的敘述出正確的需求 : 來 這時寫程式的問題就不是如何正確的撰寫流程和架構 而是如何撰寫正確的需求 : 這種製作程式的方式和現在的製作方向完全不同吧?? 這種自動產生程式的論文已經在幾年前就有了 (沒記錯好像是叫做 GP) 至於擬提的撰寫正確的需求, 架構等等, 跟 UML 的角色差不多 等於是你用 UML 來做 code-gen, 這也不是什麼新東西了 : --------------------- : 上面只是假想? 那再舉更實際的例子 之前修專家系統的課有用到CLIPS 不知道看文的人 : 有沒有用過 它是用來制作專家系統的工具 它的實作方式簡略來說 會定義出各種以知的 : 事實(fact) 然後運作時程式會用這些事實 依照特定的規則來發掘新的事實(像貓是動物、 : 動物會動->所以貓會動) 一直到已知的事實沒辨法再被運算出新的事實 或使用者強迫中 : 止程式為止 : 這個時候 開發專家系統的人也不再是在設計運算流程了 (運算流程就在CLIPS這套系統 : 裡 人家已經先寫好了) 而是在定義各種的事實和規則 也就是說是在定義資料 這時寫程 : 式的方式就變成是在定義資料 把正確的資料輸入好了 讓一套固定的流程來計算 Expert System 會有一個 Inference Engine. CLIPS 則是一個 Expert System Shell, 你可以定義 fact, 以及 rule 來做推論 雖然設計專家系統不是在設計運算流程, 但是你得要定義出 fact, rules Expert System 的開法瓶頸往往是在 KA (Knowledge Acquisition), : 再拿就可版有人貼的這個 http://0rz.net/ef0u4來說 (選開始遊戲) : 雖然網頁上沒有聲明 但是依之前上課的經驗 這個東西有90%以上的可能性是用CLIPS꜊: 出來的 也許有人功力強 他用一般的語言像C++、JAVA... 也作的出來 但是人家用CLI : PS來作絕對比你這樣作快 需要的功力又少 當一種更新更有用的程式開發方法被發展 : 出來後 之前的程式設計能力強的人 的價值 可能就被刪剪掉了 就像專業分工出現後 一 : 個人就懂得組裝汽車所有步驟(可能要花好幾年來學)的工人 就不再是那麼有價值了 : 簡單來講就是程式設計功力強代來的效益 比不上好的開發方式 還有好的理論代來的 : 效益啦 還有更好的工具被發展出來之後 把目前的工具鑽的很精的人 價值就會縮水了 CLIPS 有 java 版本, Jess :) 如果你這邊的工具指的是 programming language 我就不太認同你的說法 programming language 一般來講包含的就是 I/O, logic 有很多東西都是觀念差不多的 如果你 C 很熟的話, 你要上手其他東西, 我不認為會門檻很高 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.167.105