從 Python 遷移到 Wolfram 語(yǔ)言的經(jīng)驗(yàn)教訓(xùn)自從我開(kāi)始在 Wolfram 工作,我?guī)缀跻恢痹谑褂?Mathematica,不僅作為計(jì)算軟件,而且作為編寫(xiě)文檔的程序。我很快就在這兩種功能中熟練使用 Mathematica,但我還沒(méi)有真正將它用作Wolfram 語(yǔ)言的編程平臺(tái)。 我在高中時(shí)發(fā)現(xiàn)了 Wolfram,我當(dāng)時(shí)——現(xiàn)在仍然如此!——對(duì) Wolfram|Alpha 的自然語(yǔ)言能力和知識(shí)庫(kù)著迷。這種興趣一直持續(xù)到大學(xué),在大學(xué)我接受了 Python 和 Java 的經(jīng)典培訓(xùn),但繼續(xù)將 Wolfram|Alpha 用于數(shù)學(xué)和化學(xué)。我的本科研究要求我學(xué)習(xí) bash 腳本和 Tcl,期間我繼續(xù)使用 Python。 在我攻讀博士學(xué)位的第一學(xué)期,我在研究生院的高級(jí)量子力學(xué)課程中接觸了 Mathematica。我的博士研究小組的研究科學(xué)家是一個(gè)強(qiáng)大的 Mathematica 用戶,建議我用他的 Mathematica 筆記本仔細(xì)檢查最初使用 Python 分析的結(jié)果。盡管我在攻讀博士學(xué)位期間多次接觸 Mathematica,但我從未想過(guò) Wolfram 語(yǔ)言可以與 Python 相媲美,直到我開(kāi)始在 Wolfram 工作時(shí)才意識(shí)到它可以用于“實(shí)際”編程。 所以一個(gè)星期六,我坐在我的電腦前,通過(guò)重寫(xiě)我本科計(jì)算機(jī)導(dǎo)論課程的作業(yè)來(lái)弄清楚 Wolfram 語(yǔ)言的功能。我可以在 Wolfram 語(yǔ)言中快速鏡像我的本科 Python 代碼,但最終學(xué)到了兩條非常重要的經(jīng)驗(yàn): Wolfram 語(yǔ)言在利用其優(yōu)勢(shì)編寫(xiě)的代碼而不是鏡像其他語(yǔ)言使用的編程風(fēng)格時(shí)效果最佳。 Wolfram 語(yǔ)言與其他語(yǔ)言相比具有優(yōu)勢(shì),因?yàn)樗鼉?nèi)置了對(duì)動(dòng)態(tài)、真實(shí)世界數(shù)據(jù)的訪問(wèn)。 我的第一個(gè)Python項(xiàng)目 作為一名本科生,我使用 Python 的第一個(gè)項(xiàng)目是編寫(xiě)蒙特卡羅模擬,該模擬基于一組先前的示例回報(bào)來(lái)估計(jì)簡(jiǎn)單的投資回報(bào)。 在這個(gè)任務(wù)中,我們必須:
當(dāng)用 Wolfram 語(yǔ)言重做這個(gè)項(xiàng)目時(shí),我決定將 Python 配置為我的 Mathematica 包運(yùn)行。所以我按照這些說(shuō)明在 Mathematica 中配置 Python。這個(gè)過(guò)程讓我可以使用我的代碼并評(píng)估它的可比速度。 現(xiàn)在,讓我?guī)瓿蛇@項(xiàng)任務(wù)。第一步是為 2004 年和 2014 年之間的投資回報(bào)率列表分配一個(gè)變量。這個(gè)任務(wù)對(duì)兩種編程語(yǔ)言都很簡(jiǎn)單,但在 Wolfram 語(yǔ)言中,我們可以直接從 Wolfram 知識(shí)庫(kù)中提取實(shí)際的投資回報(bào)數(shù)據(jù): |