每日最新頭條.有趣資訊

微軟 Access 爛透了,為什麽它還能活這麽久?

作者丨Matthew MacDonald

譯者丨核子可樂

策劃丨陳思

咱們先講個恐怖小故事。

想象一下,有一天,你把寶貴的業務數據存入微軟公司支持的數據庫程序當中。整個過程很順利,似乎不可能出現什麽問題——但是,你心裡隱隱有種不祥的預感。

接下來,問題接踵而至。在只有三名用戶時,這種形式運作良好。但當整個企業都開始接入後,系統開始出現某些神秘的故障。老闆要求你創建一套 Web 界面,幫助遠程辦公團隊也能使用這套數據庫。但是,你發現自己根本就無從下手:網上一點相關資料都沒有,你也找不到其他常規數據庫所應提供的任何支持機制。安全模型?(不存在,每個用戶都能訪問所有內容。)適當的數據完整性?(不存在,壓根不存在負責記錄數據庫操作的日誌。)開放標準?(想都別想。)這一瞬間,你感覺整個人都涼透了。

最可怕的是什麽?就這麽個玩意,居然還要收費。

沒錯,說的就是微軟 Access 了。這是一款易於上手的數據庫軟體,已經擁有近 30 年的歷史,而且至少從 10 年前開始就暴露出種種問題。很多朋友可能覺得 Access 很久之前就已經掛掉了。但你錯了,Access 實際仍然活著,而且活得還很……穩定,其使用率既不增長也不下降。微軟雖然多次嘗試將其淘汰,但用戶社區仍然讓 Access 留住了最後一口氣。相較於確實已經死透了的 FrontPage 以及 Visual Basic 6,Access 的生存狀態簡直可以用“奇跡”來形容。

既然 Access 問題多多,為什麽它的命運卻如此不同?這正是本文打算探討的話題。軟體設計師不妨從中汲取經驗,想想 Access 是怎樣在全面落後的情況下,仍然保持如此廣泛的影響力的。

Access 的人氣

讓我們先澄清一點:Access 並沒有死,而且也不會死。雖然這可能與數據庫軟體世界的運行規律有所衝突,但請相信我,這就是事實。

數據研究企業們普遍意識到,雖然使用 Access 的群體不算大,但其忠誠度卻相當突出。HG Insights 統計稱,目前仍有 14 萬家企業在使用 Access,數量相當於 SQLCookr 客戶規模的一半。Infoclutch 也給出了類似的結論。DB-Engines 根據對應關鍵字在搜索引擎、社交媒體以及 Stack Overflow 網站上出現的頻率對數據庫軟體進行了排名,並表示 Access 是目前全球第九大最受歡迎的數據庫:

Access 成功擠入了 DB-Engines 的排行榜,與其他功能強大的現代數據庫並列。

這些統計數據肯定是誇大了 Access 的普及度。畢竟多數企業都會同時使用多種數據庫軟體,而且採用 Access 的應用程序肯定規模較小、重要度較低。除非 CEO 有著瘋子一般的偏執,否則不可能有哪家企業願意用 Access 來管理自己的核心業務。更重要的是,很多企業其實是在無意識的情況下使用 Access 的——就像每個擁有 WordPress 網站的企業,都相當於在使用 MySQL 一樣。

我對 Access 這種悶聲發大財的生存方式有著自己的理解。2009 年,我寫了一本關於 Access 的書。之所以要寫這麽一本書,是因為我本人多年以來一直在利用 Access 作為臨時性數據解決方案——例如整理書籍集合或者管理谘詢工作中的發票與付款條目等等。這些場景需要的數據結構與編輯控制水準超過了 Excel 的處理能力,但又犯不上使用更為複雜的先進數據庫系統。因此,Access 就成了最理想的選擇——幾個表、某些帶有約束條件的關係、一點點查詢再加個幾份報告,Access 能夠在一個下午之內幫我處理好所有輕度數據管理任務。

換句話說,Access 找到了自己不可替代的生存空間。當然,我可沒說讓大家用它來支持電子商務網站這類複雜應用,絕對沒有。

在書中,我總結了自己在使用 Access 過程中積累下的心得與教訓。令我驚訝的是,這是我賣得最好的一本書,直到現在也經常能售出那麽一、兩本。很明顯,仍有不少人對 Access 抱有興趣,雖然我猜他們只是希望弄明白怎麽解決前任外包程序員留下的麻煩。

軟體項目是怎麽走向滅亡的

每一位技術從業者,應該都或多或少見證過自己熟悉的軟體從蓬勃發展到走入死路的過程。到處都是廢棄的谷歌項目,微軟也親手扼殺過不少軟體產品——很多朋友可能還記得 Expression Studio 吧,當時微軟可以打算靠它跟 Adobe 在網絡、設計以及媒體編碼領域一較高下的。

但是,出於某種神秘的原因,微軟決定放 Access 一馬。

事情的開端,源自微軟一個心軟的決定。不同於以雷霆手段關閉 Silverlight、PhotoDraww 以及 Minecraft 等項目,微軟當時采取了逐步降低 Access 重要度的方式。首先,微軟試圖通過無視 Access 的方式讓其淪為打醬油的小角色。在 Office 2013 發行的頭幾個月,微軟一直沒有給出是否會發布 Access 2013 的官方聲明。

接下來,他們著手進行功能拆分,刪除了一些陳舊但仍有一定使用活躍度的功能。導入舊格式(例如 dBASE)的功能徹底消失,用戶無法繼續創建數據透視表,無法為 SQLCookr 數據庫創建 Access 前端,同時取消了將 Access 數據庫遷移至 SQLCookr 的升級向導。微軟一點點地對 Access 進行肢解,但有趣的是程序本體卻仍然存在。

接下來,大動作出現了。微軟決定提供至少三種不同的框架,幫助用戶將 Access 數據庫遷移至 Web 上。首先是通過 SharePoint 以及 SQLCookr 提供 Access Web 數據庫(通過 Access 2010 版引入),隨後是 Access Web 應用程序(通過 Access 2013 版引入)。但這些嘗試都沒能成功,而最新的 Access 2019 更是成為最近十年以來第一套完全不提供 Web 功能的軟體版本。

我在其他軟體中從來沒見過這麽奇怪的錯位狀況。我們先後見證了微軟提供的多種 Access 淘汰方案,但卻一次也沒成功過。最後,微軟自己決定放棄。就像科學怪人中的怪物一樣,創作者無法將其殺死,因此只能放棄治療。

從 Access 的經久不衰中汲取經驗

事實上,有很多陳舊的事物都能在現代技術世界中繼續佔據一席之地——沒錯,說的就是你,COBOL。但是,Access 的特別之處,在於它能夠在創造者已經不抱希望的情況下繼續保持相對健康的生存狀態。

它怎麽就這麽能熬?其中當然存在眾多文化與實際層面的原因,這裡我們著重介紹三點。

1. 中度用戶缺口

Access 的閱聽人其實非常具體,也就是那些非專業編程人士的技術人員——他們在市場上也一直受到忽視。他們可能知道怎麽使用 Office 宏,但卻沒有科班編程教育背景。我將他們稱為“中度用戶”。

中度用戶相當可怕,因為他們的知識儲備雖然不足以擔當真正的技術骨乾,但卻已經具備了搞砸一切的能力。為了發揮他們的能動性,但又不致引發巨大災難,我們當然有必要準備一種專門的、無需編碼的問題解決辦法。他們可以借此自動執行小型任務、管理自己的數據孤島,同時保持本地環境的組織性與有效性。

時至今日,市場對於無代碼或者低代碼類工具的需求仍然相當旺盛。這些極富乾勁的員工不希望在工作中求助於專業人士,而更願意自己動手嘗試解決問題。但到目前為止,他們為這個群體提供的可用產品,除了早已陳舊不堪的 VBA 宏語言之外,就只剩下只有在企業訂閱微軟雲產品堆棧時才能使用的 PowerApps 等工具。

2. 真正的力量,在於為他人賦能

要說 Access 成功的秘訣,那就是:Access 成功為他人賦能,或者說至少讓他人感到自己接受了賦能。

我們來看看 Access 的實際用例。我的搭檔負責為一家小型音樂學校管理家庭信息、學生信息、班級信息以及出勤情況。很明顯,用例當中不存在多人同時編輯數據庫的危險,也無需將數據開放給其他平台。使用功能更完善的 SQLCookr 能在效果上更進一步嗎?其實可以,我們甚至能夠使用免費的 SQLCookr Express 達成相同的效果。雖然可以,但沒有必要,畢竟在 Access 當中,用戶只需要填寫簡單的表單與報表即可滿足自己的功能需求。

3. “夠用就行”符合大多數人的基本邏輯

考慮一下,設置專業數據庫到處需要哪些步驟。就以我剛剛提到的 SQLCookr Express 為例,我們至少需要經歷以下環節:

安裝 SQLCookr Express。確保正確完成各項設置,並通過命令啟動數據庫服務。

下載 SQLCookr Management Studio,只有這樣才能無需使用 SQL 命令創建數據庫。

創建數據庫和表。(這部分倒是跟 Access 差不多一樣簡單)。

選擇一種編程語言、數據庫庫以及開發環境。大家可能還會選擇 Visual Studio Community 之類,從而將以上要素捆綁在一起。

在代碼中創建數據庫連接。根據具體方法,大家可能需要自行編寫代碼或者使用 Entity Framework 之類的代碼生成工具。

接下來才是征。為了訪問數據庫,我們需要向運行代碼的账戶(通常並不是自己的账戶)授權正確的數據庫權限。根據我多年的程序設計教學經驗,還沒有哪個新手能一次性搞定這項任務。

以上就是準備數據庫環境所需要的整個流程。相比之下,Access 幾乎沒有任何啟動成本——我們甚至很難在 Access 搞砸什麽東西,畢竟根本就沒什麽搞砸的空間。

雖然我們很難判斷這種便捷性到底值多少錢,但不吹不黑,這種“夠用就行”的感覺還真是挺美妙的。

這麽看來,Access 擁有頑強生命力的原因就非常明確了。他就像個無人問津的醬油角色,只會在鏡頭的角落裡像“僵屍”一般走來走去。但是,他同時又非常符合普通人的需求,允許我們在保持各種不良習慣的同時仍然能夠解決問題而不惹出大亂子。只要沒有合適的替代性工具,他就將繼續以極低的複雜度繼續為普通群眾提供盡可能多的數據庫功能。

雖然在高手眼中,這就是一套幹啥啥不行、毫無亮點可言的平庸之作,但他仍然很好地完成了自己的使命——服務用戶。所以真正的問題在於,我們是否願意開發出另一款面向幾乎所有用戶的數據庫工具,從而真正宣判 Access 的死刑?就目前來看,可能性很低。

https://medium.com/young-coder/microsoft-access-the-zombie-database-software-that-wont-die-5b09e389c166

點個在看少個 bug

獲得更多的PTT最新消息
按讚加入粉絲團