[1]Microsoft Access:拥有不死之身的数据库—追求低代码开发平台的人看过来
只要有过一点数据库概念的人几乎都听说过Access。这是一个数据库软件,就像当年Dbase、Foxbase等数据库一样,被统称为桌面数据库。跟复杂的专业数据库相比,它简单易用,几乎不用做什么设置就能马上使用。但是另一方面它的生产者微软却给他设置了众多的限制和枷锁。因此,它就像《西部世界》中的人造机器人一样,虽然处处遭遇人类的屠杀,但却一直没有被消灭,甚至还逐步觉醒。微软一直都想把自己的创造物给毁掉。然而,它又像一个多少显得有点尴尬的僵尸,总会站在一场没有被邀请的聚会的角落。是什么原因导致Access在强手林立的市场中拥有不死之身呢?Matthew MacDonald为我们提供了他的见解,原文发表在Medium上,标题为:Microsoft Access: The Database Software That Won’t Die,本文编者做了一些修改,增加了一些自己的感受。
同时这篇文章也写作时机也非常的恰到好处,当前正值“可视化开发”、“低代码开发”、“轻量化开发”等概念盛行的2020年。云技术、移动应用等新技术已经发展渐入佳境,各种iaas、paas、saas等平台巨头的争斗也已经尘埃落尽。各自的地盘已经稳固,toC的市场也被瓜分殆尽,各家巨头在toB的市场征战多时发现二个市场有很多的不同。具体却别不在本文讲述。本文想讲讲从2019年开始甚嚣尘上的低代码开发。以及由此想到的微软Access这个虽然名字叫数据库,但实际上更像一个开发工具,特别是当今最热的低代码开发环境。
互联网、云服务等新技术和新概念对于企业应用来说更像是新瓶装旧酒,虽然技术很新潮,但对于企业的日常管理需求,其实并没有太大的变化,尤其是一些部门级的、小团队的日常业务需求,并不都是需要用到云服务等高大上技术。C/S结构的软件也一样好用。关键是否能解决业务管理的问题。尤其是说道低代码开发环境,诞生与1992年Access数据库,就是一个非常典型的低代码开发的代表。看了很多现在开所谓的低代码开发平台,还是感觉Access是最好用的,接下来就看看这个打不死的小强是如何生存了28年的吧。
给你们讲个万圣节故事,普通的企业程序员一定会被吓到。想象一下,你把公司宝贵的业务数据放进了由企业巨头微软支撑的一个的友好数据库程序里面。一开始一切看起来都很完美。但是,你却无法动摇那厄运将至的可怕感觉。
然后,那些迹象开始显露。当使用它们只有三个人时,这种形式工作得很好,不过当全公司都加入时,它们就会出现一些神秘的故障。老板要求你创建一个Web界面,好让远程办公室可以用这个数据库,结果你什么也没找到。在web本该出现的地方却是一片空白。你于是想找找常见数据库的成分。安全模型?(没有,每一个用户都能访问一切。)适当的数据完整性吗?(没有,因为没有记录数据库操作的日志文件。)开放标准吗?(问都不要问。)你感到毛骨悚然。
最恐怖的是什么?它甚至都不是免费的。
这就是Microsoft Access的故事,这是一种很容易使用的数据库软件,已有近30年的历史,至少在10年前就开始显示老态了。你可能以为Access早就完蛋了。但是你错了。实际上,Access还在继续像僵尸一样蠕动,它的使用率既没有增长也没有下降。微软已经不止一次尝试想要关停这款数据库,但是用户社区奋力抗争,成功地让它活了下来——哪怕FrontPage、Visual Basic 6等旧产品已被冷落并且埋进地下。
把Access鄙视成又一个遗留软件噩梦很容易。但是Access的故事给每一位软件设计师都提供了经验教训。它为我们可以洞悉让一款产品活下来,发展下去,然后在有效期过后仍能苟延残喘很久的秘密是什么。
Access到底有多么受欢迎
我们得马上弄清楚一件事。Access没有死,也不会死。这似乎违反了数据库软件世界所有合情合理的规矩,但这就是残酷的现实
数据研究公司始终发现这一点:尽管使用Access的公司不多,但都很忠诚。据HG Insights统计,目前有14万家公司在使用Access,这个数字是使用更为专业的SQL Server 的公司数的一半。Infoclutch 也有类似记录。而根据在搜索、社交媒体和Stack Overflow等网站上出现的频率来对数据库软件进行排名的DB-Engines则认为,Access是全球第九大最受欢迎的数据库:
Access跻身了DB-Engines数据库排行榜前十名,跟它一道的很多都是功能更强大的数据库
这些统计数据几乎肯定夸大了Access的普及度。很多企业会使用不止一种数据库软件,而且他们用来跑Access的应用几乎可以肯定适用范围是比较小的,处理的数据是比较少的,而且,除非CEO有死的心,否则的话,Access是决计不会用于日常运营的关键部分。
我对Access隐秘的流行有自己的体验。
1999年,在一家服装企业,我用access开发了数据分析系统、月末结账系统,将数据分析和月末结账的速度从每次一周的时间,缩短到一个上午将全部零售门店的进销存账务结清,且不出差错。
2001年,开发了一个用于日常家庭消费账务的管理系统
2003年,为某大型煤矿企业开发了一款单据套打系统。
2007年,开发了一套监控全国行业销售推进的管理系统。
2014年,为解决公司重大专项的日常管理,开发了一套项目跟踪管理系统。
跟Excel相比,所有这些场景都需要更多的结构以及数据编辑控制,但是这些很容易就可以接受Access的环境限制。几张表,带有约束的一些关系,规模不大的查询集,再加上一两个报表——一个下午就能把工作搞定。
如何试着干掉一个程序(然后以失败告终)
做技术这一行的每个人都曾目睹过自己喜欢的软件最终寿终正寝的场面。被废弃的Google项目可以挤满一整个墓地。微软也以干掉自己的小孩而臭名昭著,有时甚至是一次就干掉几个,比方说,当它关停Expression Studio时,毙掉的可是跟Adobe竞争的一整个web、设计以及媒体编码工具家族。
但是出于某种原因,当Microsoft盯上了Access之后,他们犹豫了。
第一个错误是他们没有像对待Silverlight、PhotoDraw、Minecraft 以及许多其他工具一样,决定不一步到位毙掉Access。相反,微软试图鼓励把Access变得无关紧要。首先,他们想通过忽视Access来让Access知难而退。距离Office 2013发布版还剩几个月时,微软甚至还没有给出是否还有Access 2013的官方回复。
然后他们开始自废武功,把旧的,有时仍然受欢迎的备用功能。比方说像导入dBASE之类旧格式的功能已经去掉了。创建数据透视表的能力也已经取消了。为SQL Server数据库创建Access前端的能力也没有了,还有把Access数据库迁移到SQL Server 的升迁向导也去掉了。这简直就像是Hostel的噩梦。每次发布时,微软都会自卸Access一块,但程序仍然存在。
其中最引人注目的是微软试图提供一种摆脱Access世界的升级办法。很快,微软就建立了(然后又放弃了)三个以上的不同框架来把Access数据库放在Web上。其中的两个,Access Web数据库(在Access 2010中引入)和Access Web应用(在Access 2013中引入)都是基于SharePoint和SQL Server开发的。但这两个均未取得成功,并且Access 2019成为了近十年来第一个完全没有web功能的版本。
接下来我们会介绍Access的一些在其他的被淘汰软件身上看不到的东西。我们观察到微软设法想提供退出Access的升级途径,然后遭遇失败,最后完全放弃。就像科学怪人造出来的那个怪物一样,创造者已经遗弃了自己的创造物,但依然无法干掉它。
Access以及它的顽强生命所带来的经验教训
旧事物在技术的世界里阴魂不散并不出奇。毕竟,我们还有COBOL。但是Access的不寻常之处在于,虽然生它出来它的公司并没有善待它,但是它仍然可以承受这一切。
是什么让Access在如此受限的情况仍然活得这么久?个中不乏文化和实用方面的原因,但有3点特别突出。
1.动手能力强的超级用户离不开它
Access的受众是一批特殊的群体。这个群体现如今已经很少能成为目标受众了:那就是并非严肃编码者的技术人员。这批人弄个Office宏来绕开问题还行,但是他们缺乏正规的编程背景。不久前,我们还把这种人成为是“超级用户”。
帮助超级用户可能会很危险。只需一点知识,你就能制造出非常强大的会射到自己脚的武器。但是这里面又蕴含着有巨大的待开发潜力。为技术人员提供一种无需编写代码即可解决问题的方法,让他们可以有所作为——把小型任务自动化,管理自己的数据孤岛,以及帮助保持其本地环境的组织性和有效性等等。
时至今日,对无代码或轻代码工具的需求依然很饥渴。对于可以避开每一个标点符号都要算钱的昂贵专业人士来完成自己的工作,那些人是有动力的。但是到目前为止,我们提供给他们的唯一产品是一代之前的VBA宏语言以及类似PowerApps这样的昂贵工具,只有在你的企业订阅了一堆微软的云产品之后才能用上那些东西。
2.真正的强大在于给别人赋权
如果Access的成功有什么秘诀的话,那就是:Access成功是因为它让大家感到自己的强大。
Access的作用我们还可以举个例子。我的合伙人要为一所小型音乐学校跟踪家庭、学生、班级以及出勤情况。做这件事没有多人同时编辑数据库的危险,也无需将数据开放给其他平台。功能完善的SQL Server应用会更好吗?是的,我甚至可以用免费版的SQL Server Express做到这一点。但是,即便设计这样的应用是一项简单的任务,那也不是那种一天就能搞定的事情。而且,这种应用的用户并没有想使用Access一样简单的方法来用自建的表格和报表来增强爱应用。
3.永远不要高估“简单易用好用”
姑且设想一下,安装专业数据库解决方案都需要些什么。就以安装我刚刚提到的SQL Server Express为例,你(至少)需要完成以下步骤:
安装SQL Sever Express。要确保若干配置设置都设置好了,这样数据库服务才能够正常启动。下载SQL Server Management Studio,这样你就不需要用命令行方式,通过SQL命令来创建数据库了。创建数据库以及表。(这一部分几乎跟Access一样简单!)选择一种编程语言,数据库的库以及开发环境。也许你会选择Visual Studio Community之类的东西,因为它把这些东西都打包在一起了。在你的代码里面写连接到数据库的语句。根据做法的不同,你可能会自己写代码或者用类似Entity Framework之类的代码生成工具。接下来才是有趣的开始。为了访问数据库,你需要给执行你的代码的账号(通常不是你自己的账号)授予正确的数据权限。根据我多年教别人编程的经验,对于编程菜鸟来说这几乎是个必定会导致他们摔跤的绊脚石。上面这一系列的步骤其实什么都没做。那些只是准备环境所需要的步骤。把那些跟Access的启动成本比较一下。启动Access、建立数据库之后,你想让它不工作都很难。
很难给便利性定价,但是东西“管用”的吸引力已经让许多一般般的技术变得一夜成名。
所以,为什么Access还没有死的答案很简单,Access适用于普通人。说它鼓励不良习惯,这是事实,扩大它的使用范围几乎可以肯定会引发灾难也是事实,但这些都无关紧要。只要没人愿意开发这样一种工具——赋予普通人那么大的能力,又把复杂性降到那么低的工具,就像打开了潘多拉的魔盒, Access就会一直走下去,尽管不受它的创建者待见和承认,但是仍然有它的使命。真正的问题是我们能否开发一款更好的“低代码开发环境”来取代它呢?
--SigilZen写在低代码开发平台流行的前夜,2020年7月24日星期五

0 条评论