Re: [請益] 大家是怎麼學新語言的?

作者: wulouise (在線上!=在電腦前)   2022-05-28 19:51:20
我覺得如果你是想做自我精進,這邊提供一個方向
## 選跟你不熟的programming paradigm語言
Paradigm的中文叫做範式 可是我看不懂中文...
不知道的可以看以下wiki
https://en.wikipedia.org/wiki/Programming_paradigm
https://www.freecodecamp.org/news/an-introduction-to-programming-paradigms/
懶得看文章也沒關係 下面就是懶人包
簡單講 你看看下面這幾種你精通那一項 然後選另一項
Procedural, OOP, Declaratvie, Functional
不同的paradigm各有優缺點,學會之後在架構層級你會知道什麼時候該使用哪種paradigm
## 個人推薦
然後個人私心推薦一個非常酷 應該沒什麼人知道的程式語言
APL & BQN
APL是一個用筆就可以寫的程式語言 全名叫做 A Programming Language
Try it on online compier: https://tryapl.org/
他是一種array-oriented programming langauge
嘗試用符號表達各種矩陣操作
符號太多沒辦法在bbs上貼出來,建議點過去看看
想想pyhton要寫十行的東西,APL可能一行就寫完,真的是潮爆...
我是說等你學完五六十個符號之後
BQN則是對APL嘗試做一些改進 畢竟APL也是1962年開發的語言
作者: NciscalA   2022-05-28 20:19:00
推APL跟BQN,不過APL是 1962 年由 ken Iverson 開始設計的,他也因此拿了Turing award。另外還有J、Q跟K都是array programming language。BQN 的線上 REPL https://mlochbaum.github.io/BQN/try.html然後介紹 APL 一定要秀 game of life 啊https://www.youtube.com/watch?v=a9xAKttWgP4
作者: waterwalk (心碎無聲)   2022-05-29 00:55:00
最近爬文爬到一個很奇耙的語言 brainfuck如果太閒想學也可以 但我看完只覺得網路用得太多
作者: er230059 (CQH)   2022-05-29 01:09:00
brainfuck蠻適合拿來練習寫complier的
作者: CoNsTaR ((const *))   2022-05-29 03:28:00
fortran 是 functional,SQL 是 declarative?你真的知道你自己在說什麼嗎???
作者: gozule (好冷啊~~)   2022-05-29 11:09:00
有程式經驗可以試試rust,生命週期的概念很有趣
作者: DrTech (竹科管理處網軍研發人員)   2022-05-29 12:56:00
原文應該沒寫過functional 就來嘴了。另外 programming paradigm 現在早就不用語言來分了。許多語言都有多種paradigm。物件導向的做法C#, java,也不叫做 procedure,叫做 structured。用語言來分 programming paradigm,現在2022年都不適用了。
作者: waterwalk (心碎無聲)   2022-05-29 13:59:00
各位前輩 像C++ 可以模擬物件導向的語言 該怎麼分類呢?
作者: CoNsTaR ((const *))   2022-05-29 23:54:00
C++ 算 multi paradigm,但寫 C++ 重點根本也不在 paradigm 所以算什麼其實根本沒差
作者: botnet (天龍人)   2022-05-30 10:37:00
感謝回覆
作者: leolarrel (真.粽子無雙)   2022-05-30 10:47:00
原po我們不分類的,.我們只有鄙視鏈(沒跟你開玩笑
作者: CoNsTaR ((const *))   2022-05-30 22:25:00
和鄙視鏈有關係?你說 fortran 是 functional,SQL 是 declarative 就像有人問你鳥和魚長怎樣你回答蝴蝶是鳥,海馬是魚一樣海馬(SQL)的確是魚(declarative),但一般的魚根本不長那樣,蝴蝶(fortran)也根本不是鳥(functional),你引用的 wiki 也直接說了它就是 imperative,唯一能和 functional 沾上邊的也只有它的 pure function,到底從哪裡看出來的鄙視鏈?推文完全沒有任何人提到哪個 paradigm 是 superior 哪個是 inferior,到底哪裡來的鄙視鏈?
作者: waterwalk (心碎無聲)   2022-05-31 23:44:00
感謝C大回應
作者: CoNsTaR ((const *))   2022-06-02 23:35:00
declarative 最大宗就是 functional,functional 還比較多人用的最大宗就是 ML 家族如果要 declarative 和 functional 到極致可以去寫 Agda,Coq 或 Idris2 之類的在這些語言裡面任何一個 term 都是 declarative 和 functional 的,包含 types如果想要試試 declarative 的話,要找有支援 gadt 的 pure functional languages,否則 types 不知道是從哪來的 function 也不一定 declarative,如果只是想要試試看 functional 的話 JavaScript 支援的東西就夠你玩了如果不想要 Agda, idris 那麼深,也不想要 JavaScript那麼隨便,那其實就去玩一般大家推薦的 fp 語就好了啊
作者: wulouise (在線上!=在電腦前)   2022-06-05 15:38:00
感謝C大補充<O>

Links booklink

Contact Us: admin [ a t ] ucptt.com