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


來源:InfoQ   時間:2019-11-17 15:00:15


作者丨Matthew MacDonald

譯者丨核子可樂

策劃丨陳思

咱們先講個恐怖小故事。

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

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

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

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

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

Access 的人氣

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

數據研究企業們普遍意識到,雖然使用 Access 的群體不算大,但其忠誠度卻相當突出。HG Insights 統計稱,目前仍有 14 萬家企業在使用 Access,數量相當于 SQL Server 客戶規模的一半。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)的功能徹底消失,用戶無法繼續創建數據透視表,無法為 SQL Server 數據庫創建 Access 前端,同時取消了將 Access 數據庫遷移至 SQL Server 的升級向導。微軟一點點地對 Access 進行肢解,但有趣的是程序本體卻仍然存在。

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

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

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

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

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

1. 中度用戶缺口

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

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

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

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

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

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

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

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

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

下載 SQL Server 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

  版權及免責聲明:凡本網所屬版權作品,轉載時須獲得授權并注明來源“環球光伏網”,違者本網將保留追究其相關法律責任的權力。凡轉載文章,不代表本網觀點和立場。

延伸閱讀

最新文章

新式噴涂工藝可用于打造更加實用的鈣鈦礦太陽能光伏面板 新式噴涂工藝可用于打造更加實用的鈣鈦礦太陽能光伏面板

精彩推薦

產業新聞

蘋果供應商博通暗示:iPhone12將延期到第四季度發售 蘋果供應商博通暗示:iPhone12將延期到第四季度發售

熱門推薦

单双中特【更新中】