HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

微软 Access 烂透了,为什么它还能活这么久?

  • 2019-11-13
  • 本文字数:3801 字

    阅读完需:约 12 分钟

微软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


2019-11-13 10:594737
用户头像
陈思 InfoQ编辑

发布了 576 篇内容, 共 277.2 次阅读, 收获喜欢 1301 次。

关注

评论 1 条评论

发布
用户头像
我是个会计,我觉得access就很好用,用户就我一个人。access很直观非常快速地让我理解了部分数据库设计思路,虽然我没能力依靠access,但是我只需要它保存我多而杂乱的excel表数据就可以了。不可能有机会让我直连后台数据库,我也无需考虑数据冗余的问题,我每天的具体工作就像扫大街的,根本不必关心哪条街扫干净没有,我只关心我扫的那一段干净了没就可以。至于考虑道路清洁,城市清洁,那是环卫部门环卫车干的事情。量变到质变,我这么点量去学艰深的数据库,那是给自己找不自在的。所以,虽然我也认为aceess很烂,但架不住我一想起啥关于数据库的事,第一时间就开access来用,真的是太方便了。
2024-08-12 11:09 · 云南
回复
没有更多了
发现更多内容

坐下来谈谈如何写好一份简历?

童欧巴

面试 大前端 简历

CloudQuery 首次开放API,v1.4.1将开放「部门导入」和「用户导入」

BinTools图尔兹

数据库 OpenAPI 数据库管控

男人要慢,SQL要快:记一次慢SQL优化

艾小仙

Java集合源码总结分析

教你如何成为解决问题的高手

孙叫兽

高手 解决问题

兰宝环保 | 新体系“行动计划”中化工制药行业VOCs废气治理要点

叶落便知秋

程序员如何快速成长为IT精英

孙叫兽

程序员 成长 IT职场

模块三

Winston

剖根问底:Java 不能实现真正泛型的原因是什么?

沉默王二

java

手把手体验远程开发,确实爽

程序员鱼皮

Java Python 软件 大前端 后端

泰国Ascend Money用开源软件加快应用交付

WorkPlus

阅读

中易通科技禾禾实验室产品培育田

叶落便知秋

在线常用crontab表达式大全验证解析

入门小站

工具

Druid 如何开启查询日志

HoneyMoose

Python OpenCV 图像处理之直方图相关知识细节,学点细的

梦想橡皮擦

7月日更

数据对AI的重要性:采访首席数据官Rick McFarland - LexisNexis Legal & Professional

WorkPlus

阅读

第三届WICC北京落幕 展现开发者服务生态与建设新方向

融云 RongCloud

AI论文解读丨融合视觉、语义、关系多模态信息的文档版面分析架构VSR

华为云开发者联盟

语义 视觉 多模态信息 文档版式 VSR

INFRA-JOY微服务治理验证工程实践分享

徐敏

微服务 自动化测试 全链路压测 性能压测

充满科技感的农业,是年轻人的『菜』吗?

百度大脑

人工智能

区块链去中心化钱包开发|开发去中心化钱包

Geek_23f0c3

钱包系统开发 去中心化交易所系统开发 去中心化钱包 去中心化交易所

以两种异步模型应用案例,深度解析Future接口

华为云开发者联盟

Java 模型 异步 FutureTask Future接口

详解Camtasia的PPT录制功能

淋雨

视频剪辑 Camtasia 录屏软件

3D地图与3D柱状图联合使用

ThingJS数字孪生引擎

大前端 地图 可视化 数字孪生

Java程序员必备框架—Spring全家桶的前世今生详细梳理

北游学Java

Java spring

模块三作业

河马先生

架构实战营

如何在二三线城市月薪过万(一)看完这篇后端简历优化,包你面试不断

小鲍侃java

面试 后端

云图说 | 华为云医疗智能体,智联大健康,AI药物研发

华为云开发者联盟

AI 药物研发 医疗智能体

TensorFlow Recommenders: Quickstart

毛显新

深度学习 tensorflow 推荐系统 keras

带你走进“华为链”

华为云开发者联盟

区块链 高性能 华为链 自研区块链平台 自主可控

小白必看,通俗易懂的LockSupport

程序猿阿星

Java并发 线程协作 LockSupport 线程间通信

微软Access烂透了,为什么它还能活这么久?_数据库_Matthew MacDonald_InfoQ精选文章