PTT推薦

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

看板Soft_Job標題Re: [請益] 大家是怎麼學新語言的?作者
wulouise
(在線上!=在電腦前)
時間推噓 2 推:5 噓:3 →:40

我覺得如果你是想做自我精進,這邊提供一個方向


## 選跟你不熟的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年開發的語言


--
等等,我是不知道妳是看了什麼神槍手的故事,可是為什麼要拿我當靶 (′Д‵)
什麼!是黃忠和后羿的故事?他們拿的不是銃,是弓!
長門,妳手上拿著蘋果跟繩子是作什麼?今天晚餐不是關東煮是烤乳豬嗎?
連爸爸都沒弄痛過我,可不可以不要綁這麼緊,好歹鬆一點讓我有空間逃吧,古泉。
好,我認了,要射就射吧,可是請聽一下在我死前的最後一個願望。
不 要 拿 霰 彈 來.....噗滋(腦漿聲) 摘自「阿虛的最後一餐」

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.231.132.191 (臺灣)
PTT 網址
※ 編輯: wulouise (61.231.132.191 臺灣), 05/28/2022 19:54:58

NciscalA05/28 20:19推APL跟BQN,不過APL是 1962 年由 ken Iverson 開始設

感謝 更正一下時間 我剛剛看錯XD

NciscalA05/28 20:19計的,他也因此拿了Turing award。另外還有J、Q跟K都是

NciscalA05/28 20:19 array programming language。BQN 的線上 REPL https:

NciscalA05/28 20:19//mlochbaum.github.io/BQN/try.html

NciscalA05/28 20:22然後介紹 APL 一定要秀 game of life 啊

※ 編輯: wulouise (61.231.132.191 臺灣), 05/28/2022 22:18:21

waterwalk05/29 00:55最近爬文爬到一個很奇耙的語言 brainfuck

waterwalk05/29 00:55如果太閒想學也可以 但我看完只覺得網路用得太多

er23005905/29 01:09brainfuck蠻適合拿來練習寫complier的

CoNsTaR05/29 03:28fortran 是 functional,SQL 是 declarative?

CoNsTaR05/29 03:28你真的知道你自己在說什麼嗎???

我是參照wiki

https://en.wikipedia.org/wiki/Declarative_programming

wiki定義下domain specific的SQL也是被放在declarative下面

https://en.wikipedia.org/wiki/Functional_programming

Fortran95也被放在functional programming底下 mordern fortran的確有OOP 但我對fortran不熟 如果你有更有建設性的意見歡迎推文或回文討論

※ 編輯: wulouise (61.231.132.191 臺灣), 05/29/2022 09:42:44

gozule05/29 11:09有程式經驗可以試試rust,生命週期的概念很有趣

DrTech05/29 12:56原文應該沒寫過functional 就來嘴了。

DrTech05/29 12:58另外 programming paradigm 現在早就不用語言來分了。許多

DrTech05/29 12:58語言都有多種paradigm。

DrTech05/29 13:00物件導向的做法C#, java,也不叫做 procedure,叫做 struc

DrTech05/29 13:00tured。

DrTech05/29 13:01用語言來分 programming paradigm,現在2022年都不適用了

DrTech05/29 13:01

waterwalk05/29 13:59各位前輩 像C++ 可以模擬物件導向的語言 該怎麼分類呢?

CoNsTaR05/29 23:54C++ 算 multi paradigm,但寫 C++ 重點根本也不在 paradi

CoNsTaR05/29 23:54gm 所以算什麼其實根本沒差

botnet05/30 10:37感謝回覆

leolarrel05/30 10:47原po我們不分類的,.我們只有鄙視鏈(沒跟你開玩笑

深有感觸 其實我原本只是想從語言一開始的paradigm來看...

※ 編輯: wulouise (61.231.132.191 臺灣), 05/30/2022 21:48:14

CoNsTaR05/30 22:25和鄙視鏈有關係?你說 fortran 是 functional,SQL 是 de

CoNsTaR05/30 22:25clarative 就像有人問你鳥和魚長怎樣你回答蝴蝶是鳥,海

CoNsTaR05/30 22:25馬是魚一樣

CoNsTaR05/30 22:26海馬(SQL)的確是魚(declarative),但一般的魚根本不

CoNsTaR05/30 22:26長那樣,蝴蝶(fortran)也根本不是鳥(functional),你

CoNsTaR05/30 22:26引用的 wiki 也直接說了它就是 imperative,唯一能和 fun

CoNsTaR05/30 22:26ctional 沾上邊的也只有它的 pure function,到底從哪裡

CoNsTaR05/30 22:26看出來的鄙視鏈?

CoNsTaR05/30 22:38推文完全沒有任何人提到哪個 paradigm 是 superior 哪個

CoNsTaR05/30 22:38是 inferior,到底哪裡來的鄙視鏈?

所以我分類錯了,已經把例子移除 有空可以幫我舉幾個例子嗎?

※ 編輯: wulouise (61.231.128.229 臺灣), 05/31/2022 13:30:09

waterwalk05/31 23:44感謝C大回應

CoNsTaR06/02 23:35declarative 最大宗就是 functional,functional 還比較

CoNsTaR06/02 23:35多人用的最大宗就是 ML 家族

CoNsTaR06/02 23:35如果要 declarative 和 functional 到極致可以去寫 Agda,

CoNsTaR06/02 23:35 Coq 或 Idris2 之類的

CoNsTaR06/02 23:35在這些語言裡面任何一個 term 都是 declarative 和 funct

CoNsTaR06/02 23:35ional 的,包含 types

CoNsTaR06/02 23:35如果想要試試 declarative 的話,要找有支援 gadt 的 pur

CoNsTaR06/02 23:35e functional languages,否則 types 不知道是從哪來的 f

CoNsTaR06/02 23:35unction 也不一定 declarative,如果只是想要試試看 func

CoNsTaR06/02 23:35tional 的話 JavaScript 支援的東西就夠你玩了

CoNsTaR06/02 23:38如果不想要 Agda, idris 那麼深,也不想要 JavaScript

CoNsTaR06/02 23:38 那麼隨便,那其實就去玩一般大家推薦的 fp 語就好了啊

wulouise06/05 15:38感謝C大補充<O>