C# (C sharp) 在非 Windows 系統的日常 (2018 年版)

C# 傳統上視為一種 Windows-only 的技術,不過微軟近年來改變策略,讓 C# 等原先僅限於 Windows 的技術走出 Windows 系統,在 Mac 及 GNU/Linux 等系統上也可使用。雖然比起 C# 精神上的雙胞胎 Java 來說,起步稍微晚了點,這樣的發展,的確有助於 C# 程式設計者延續和拓展其技術的生命週期。本文檢視 C# 在非 Windows 系統上的應用。 註:這類型的資訊會隨時間而改變,我們以西元 2018 年三月左右的狀況為準。 如果接觸過 .NET 平台的讀者,知道 .NET 平台不是單一的語言,而是有多種語言的共通平台;一般來說,.NET 平台的代表性語言有 C#、F#、Visual Basic。不過,可以看得出來其實 .NET 平台最注重...
「點我閱讀更多」

社群媒體時代的部落格寫作

全球資訊網是自由且低阻力的新興媒體,成為傳統媒體外最受矚目的資訊流通管道。部落格 (blog) 就像是一個小型的電台,部落客可以在其中充分表達自己的觀點和意見。除了增加自己在虛擬世界的曝光度,廣告等收入也讓部落格成為可收益的活動。然而,社群媒體 (social media) 出現後,挾帶著更低阻力和社交互動性,迅速地成為網路世界的新竉兒;比起文字敘述,Youtube 和 Viemo 等多媒體型態的社群媒體更吸引大家的目光。相較於這些新興勢力,我們不禁要問:部落格死了嗎? 如果觀察一些指標,可以發現部落格的確在衰退中。像是以下的 Google 趨勢: 可以發現,這個主題的熱度逐年下滑。 從出版業來看,也會發現這個主題不再熱門。中文的部落格相關書籍約略停留在西元 2008 至 ...
「點我閱讀更多」

Go 的成功告訴我們什麼?

Go 語言在 2009 年問世,在短短不到 10 年的時間,已經儕身各大語言排名的主流語言區。Ruby 的發明者松本行弘曾說過,一個語言生態圈的培養,需要至少十年的時間;以這個標準來看,Go 語言的成長可說是相當迅速。然而,Go 的語法特性其實不是很優秀,像是缺乏繼承、泛型、函式重載、運算子重載、枚舉等現代語言常見的特性;基本上,大概只到 Java 1.4 版的水準。Go 所編譯的程式也不是編譯語言中最快的,大概和 Java 同級,但還輸 C++ 一些。就如同世界上其他的事物,程式語言的成功,就是需求和一些些機運。 一些程式語言理論的書會教我們什麼是良好的程式語言,像是易學易寫、執行速度快、標準化、開放原始碼等等;對照一些成功的程式語言,我們雖然不能說這些原則是 bullshit,但...
「點我閱讀更多」

如何挑選 web framework?

有許多想做網頁的程式設計者都會想問:如何挑選 web framework (網頁應用框架)?這個問題其實不會有唯一的解答,因為網頁的技術不斷地推陳出新。如果我們把 CGI (Common Gateway Interface) 程式當成網頁程式的濫觴,那麼網頁程式至少有 25 年的歷史了;雖然這是一個老議題,但是每隔一陣子,我們又會有一些新的方法可以用來撰寫網頁程式,好像永遠都有學不完的新技術。 我們對 web framework 最大的誤解就是「我們一定要用 web framework 才能寫網頁程式」。在 Rails 和 Django 出現後,我們仍然可以用 vanilla PHP (即用純 PHP,不用任何框架) 來撰寫網頁;在 React 和 Vue.js 出現後,jQuery...
「點我閱讀更多」

GNU/Linux 適合做為桌面系統嗎? (2018 年版)

雖然我們可能無法看到真正的 GNU/Linux 元年,但在 2016 至 2017 年間,GNU/Linux 桌面系統的市佔率突破 2% (根據 Net Marketshare 數據),表示 GNU/Linux 還是有一定的使用人口。目前為止,Windows 仍然是桌面系統的霸主 (85-90% 市佔率),而 Mac 則有一批忠實擁護者 (7-10%);GNU/Linux 往往給人難學的印象,有時又會在網路上看到某個網友灌了 GNU/Linux 後無法開機進入系統的慘案,到底 GNU/Linux 是否適合做為桌面系統?筆者三大桌面系統都使用過,以 GNU/Linux 為桌面多年,筆者認為 GNU/Linux 桌面雖非簡單無腦,但入門的門檻的確比先前低了。接下來,我們會進行相關的討論。 ...
「點我閱讀更多」