曾有某作者謂,現今 computing 一詞,早已脫離當初 numerical computing 的含義。若你寫的程式主要是為了科學計算,已經算是少數民族;若你的目標平台並非超級電腦、GPU 或者 SETI@home 式的 distributed computing 架構,而只是家中一部爛鬼PC裏面只得一粒的CPU其中的一個core,感覺就更加寒酸,有口難言。
但係唔聲唔聲,問題唔會自動消失。好在平日寫程式,遇到的最大問題,只是寫 documentation。科學計算用的程式與其他程式不同,靠寫在程式檔案裏頭的 comments 去解釋算則,除非算則本身是幾句可以講完,否則基本上無可能看得明白,必須另外寫一篇 LaTeX 格式的文件才清楚。然而,儘管用 LaTeX 作基本排版是很容易的事情,但若要版面悅目好讀,就麻煩得多。要是有較大的圖表的話,排版就更考功夫,甚至難以控制。萬一要打中文,則更叫人頭痛。何況 markups 始終都不及 markdowns 簡潔,所以即使我已用了 LaTeX 這麼多年,仍是無時無刻不想跳船。
幾年前有了 MathOverflow 和 Mathematics Stack Exchange,終於嚐到 MathJax 的甜頭:毋須「特定軟件」,只需用 browser,即可混合 markdowns 和 LaTeX,輕輕鬆鬆打數式,兼且 what you see is what you get。(其實近廿年前也有類似產物,就是 IBM TechExplorer,可是這是 browser plugin,每一位文件讀者均要在電腦上安裝,因此於學界不算普及。TechExplorer 的顯示效果不錯;當然,現今的 MathJax 更理想。)然而 MO 與 MSE 是討論區,不是寫 documentation 用的網站。直至去年 StackEdit 面世,打開 Google Chrome browser 就可以用 MathJax 和 markdown 寫文件,出來的效果超漂亮,又可以和 Google Drive 或 Dropbox 同步,令我非常憧憬。
可惜,日前試將自己其中一份 documentation 改用 StackEdit 重寫,發現一個很大的問題,就是 StackEdit 的 table support 非常 buggy。原則上,markdowns 只支援極簡單的表格格式,但 StackEdit 自稱支援 HTML 表格,因此本應沒有問題。然而試用之後,我卻發現 StackEdit 連簡單的 <td colspan="2" align="center"> 都無法正確處理,複雜一點的列表就更不用說。
另外有兩個比較個人的問題。其一是我不喜歡 StackEdit 乃 online editor,萬一電腦斷線就不能用;其二是若 documentation 包含影像的話,就只能連結放在雲端硬碟上的影像。用家當然可以另行將影像檔案拷貝到自家電腦上,但由於連結的只能是雲端版本,自己留底就顯得有點甩頭甩骨。
以上兩點都令我感到很不自在,故此暫時仍得依賴 LaTeX 這艘難以駕馭的船。有時感覺很唏噓。十幾廿年來,科技不斷進步,但在自己的 niche,科技進步彷彿特別慢,連基礎問題都未能解決。
knitr. Google it.
回覆刪除