在 IEEE 2016 程式排行榜 裡把 arduino 算是一個語言,引起一些討論。
在 IEEE 2016 程式排行榜 裡把 arduino 算是一個語言,引起一些討論。
我個人是可以理解為什麼會列為另一種語言。
也許它被認為”足夠”降低開發門檻成功給一般人使用,而且其生態系也大到一個程度。它的前處理,著實也做了很多事,從使用者的角度,根本看不到 C/C++ 要的 ..h, .c or .cpp。在簡化的程度上,已經讓只會寫 arduino 的人,一定不會用 C/C++ 的環境寫程式。
IEEE 官網也很多人質疑,說 arduino 不過是個開發環境,應該要算在 C 上面。但是就如同 C 與 C++ 一樣會有論戰,為什麼 C 要跟 C++ 算一起?或反過來說,C 與 C++ 要算一種語言嗎?如果算一種語言,為什麼要寫 C/C++ 而不乾脆說 C? 如果算兩種語言,但是算人頭的時候又要一起算呢?
曾經在閱讀 cython 的時候,看到他們寫的 「The Cython language is a superset of the Python language that additionally supports calling C functions and declaring C types on variables and class attributes.」他們做的事情,就是讓使用者可以用一般的 python 寫程式,也可以用 cython 新增加的語法指定與 c 合作的宣告與功能。他們也是先經過自己的「前處理器」,把程式轉換過。他們自稱是 cython language。而且還是 superset 。我曾經想了很久。後來又看到 TypeScript,CoffeeScript。如果這些努力可以說是新增了一個新語言,那麼,arduino 被稱做一個語言,我是可以理解的。