微軟Access爛透了,爲什麼它還能活這麼久?

咱們先講個恐怖小故事。

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

接下來,問題接踵而至。在只有三名用戶時,這種形式運作良好。但當整個企業都開始接入後,系統開始出現某些神祕的故障。老闆要求你創建一套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是目前全球第九大最受歡迎的數據庫:

image

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

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

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

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

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

軟件項目是怎麼走向滅亡的

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

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

image

事情的開端,源自微軟一個心軟的決定。不同於以雷霆手段關閉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爲例,我們至少需要經歷以下環節:

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

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

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

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

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

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

image

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

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

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

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

原文鏈接:

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章