首页
学习
活动
专区
工具
TVP
发布

微软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是目前全球第九大最受欢迎的数据库:

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为例,我们至少需要经历以下环节:

  1. 安装SQL Server Express。确保正确完成各项设置,并通过命令启动数据库服务。
  2. 下载SQL Server Management Studio,只有这样才能无需使用SQL命令创建数据库。
  3. 创建数据库和表。(这部分倒是跟Access差不多一样简单)。
  4. 选择一种编程语言、数据库库以及开发环境。大家可能还会选择Visual Studio Community之类,从而将以上要素捆绑在一起。
  5. 在代码中创建数据库连接。根据具体方法,大家可能需要自行编写代码或者使用Entity Framework之类的代码生成工具。
  6. 接下来才是征。为了访问数据库,我们需要向运行代码的账户(通常并不是自己的账户)授权正确的数据库权限。根据我多年的程序设计教学经验,还没有哪个新手能一次性搞定这项任务。

以上就是准备数据库环境所需要的整个流程。相比之下,Access几乎没有任何启动成本——我们甚至很难在Access搞砸什么东西,毕竟根本就没什么搞砸的空间。

虽然我们很难判断这种便捷性到底值多少钱,但不吹不黑,这种“够用就行”的感觉还真是挺美妙的。

这么看来,Access拥有顽强生命力的原因就非常明确了。他就像个无人问津的酱油角色,只会在镜头的角落里像“僵尸”一般走来走去。但是,他同时又非常符合普通人的需求,允许我们在保持各种不良习惯的同时仍然能够解决问题而不惹出大乱子。只要没有合适的替代性工具,他就将继续以极低的复杂度继续为普通群众提供尽可能多的数据库功能。

虽然在高手眼中,这就是一套干啥啥不行、毫无亮点可言的平庸之作,但他仍然很好地完成了自己的使命——服务用户。所以真正的问题在于,我们是否愿意开发出另一款面向几乎所有用户的数据库工具,从而真正宣判Access的死刑?就目前来看,可能性很低。

原文链接:

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

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/84MQ9I6xJe6WLyL97u7p
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券