IT服务圈儿

有温度、有态度的IT自媒体平台

那些拥有不死之身的旧软件,可以让我们从中学习到什么?

作者 | Matthew MacDonald译者 | 苏本如,责编 | 郭芮出品 | CSDN(ID:CSDNnews)

以下为译文:

在万圣节,你可以讲这样一个万圣节的故事来吓唬一下普通的公司程序员。假想一下,如果你将宝贵的业务数据放在一个由科技巨头微软公司支持的友好数据库程序中,一开始,一切看起来都是那么地完美,但是你就是无法摆脱那种厄运即将来临的诡异的感觉。接着,你的噩梦开始了。在只有三个人使用这些表格时,效果非常好。但是,当整个公司都加入进来使用时,一些神秘磨人的小故障就会接踵而来。你的老板让你构建一个Web界面,使得远程办公室可以使用数据库,但是你却发现——什么数据库也找不到,只有一个巨大的,没有灵魂的空洞,而那里应该有Web支持的。你想从它当中寻找你所期望的传统数据库的一些行为吗?别做梦了!想要安全模型吗?不,这里的每个用户都可以访问所有内容。想要数据完整性吗?还是醒醒吧,因为根本没有记录数据库操作的日志文件。想要遵守开发标准吗?别问,就此打住!看到这里时,你是不是觉得心都凉了!然而,这些就是最让人寒心的吗?你想多了!就是这样的破东西甚至还要收你的费!这就是Microsoft Access(以下简称Access)的故事。Access是一款使用方便的数据库软件,它已经有近30年的历史,但是至少在10年前,它就已经渐显老态。你可能认为Access早就死了,但是你错了。事实上,Access仍然像只僵尸一样踯躅而行,它的使用率既没有增长也没有下降。微软公司已经不止一次试图终止它的生命,然而它的用户社区却一次又一次成功地让它起死回生。而其他像FrontPage和Visual Basic 6这样的传统软件产品,却因为被人冷落而早已被掩没在尘埃之中。将Access视为一个遗留软件噩梦,是显而易见的事。但是它的故事对每个软件设计师都有借鉴意义。它可以让我们洞察是什么让一个产品存活下来、茁壮成长,并且在它的生命周期结束后,仍然历时弥久,保持不死之身。

01

Access到底有多普及?

首先让我们澄清一件事:Access并没有死亡,而且也不会即将死亡。这似乎违背了数据库软件世界中所有合理的和被大家认可的公理,但是这是我们不得不接受的事实。数据研究公司的统计结果在这点上保持了高度的一致:使用Access的公司数量不多,但是忠诚度很高。HG Insights统计出目前使用Access的公司有140,000家,这是使用更加专业的SQL Server的公司数量的一半。Infoclutch公司的统计结果与其一致。而DB-Engines根据数据库软件在搜索、社交媒体和Stack Overflow等网站中出现的频率对其进行排名,它得出的结论是:Access在世界上最流行的数据库排名中名列第九!

也就是说:Access挤进了DB-Engines的数据库排名的前十名,和它排在一起的同时还有许多功能非常强大的数据库。这些统计数字几乎肯定夸大了Access的普及程度。许多企业使用不止一种类型的数据库软件,他们在Access上运行的应用程序几乎可以肯定范围更小,处理的数据更少,而且除非公司的掌舵人有自杀的倾向,否则他们不会把公司日常运营管理中至关重要的数据运行在Access数据库上。同样地,很多公司对一些他们正在使用的技术并不知情,比如说,每一个有WordPress网站的企业也都依赖MySQL数据库,即使这些数据库是其他公司为他们托管的。对于Access数据库的隐性普及,我深有体会。在2009年,我一时兴起,写了一本关于Access的书。写这本书的理由很简单,多年来,我一直在使用Access来编写一些快速的、临时的数据解决方案,比如跟踪一组书籍,或者管理咨询工作中的发票和付款。所有这些场景都需要用到Excel不能提供的结构和数据编辑控件,这些都可以很容易地在Access数据库环境下找到。使用几张表,一些约束关系,一组小查询,一到两个报告,一个下午的时间就搞定了。但是,我从来不建议任何人在他们的电子商务网站后面运行一个Access数据库,如果你真的敢这样做,你就自求多福吧。我写那本书的目的是为了记住我学到的技巧和避免重蹈覆辙,我相信那本书很快就会消失得无影无踪。但是令我惊讶的是,它居然成了我最受欢迎的书目之一。那本书销售至今都没有停止,现在大约每一天或两天都能卖出一本。显然,现在仍然有人对Access感兴趣,即使仅仅是因为他们需要解决上一代业余程序员留给他们的烂摊子。

02

微软试图杀死Access,但是失败了

每一个混迹于科技圈的人都曾经目睹过一款最受欢迎的软件过早地走向了尽头。谷歌公司的废弃项目可以排成一整片的墓地,微软公司也曾因为冷血杀死自己的孩子(软件)而臭名昭著(有时甚至一次杀掉几个)。比如当年微软宣布放弃Expression Studio这个旨于与Adobe竞争的完整软件家族时,这个软件家族中的所有软件(包括网络、设计和媒体编码工具等软件)都一次性被放弃了。但是不知道出于何种原因,当微软公司把屠刀指向Access时,它却意外地手下留情了。

微软的第一个错误是决定不一步杀死Access,这完全不像它在杀死Silverlight、PhotoDraw、Minecraft和许多其他软件时的决绝。相反,微软首先试图弱化Access的重要性,它通过故意冷落Access来边缘化它。比如说,在MS Office 2013发布的几个月前,微软甚至没有正式的答案来确定是否会有Access 2013。接下来,微软开始修改它的特性,去掉一些旧的,但是有时仍然很流行的功能。比如说,导入像dBASE这样的旧格式的能力被移除,创建透视表的能力也被移除,为SQL Server数据库创建Access前端的能力也不再提供,与此同时,将Access数据库迁移到SQLServer的升迁向导也随之消失了。这就像Hostel这部恐怖影片特许放影的噩梦。每一次发布,微软都会从Access身上砍掉一块,但仍然保留了它的主程序。最引人注目的是,微软试图提供一条脱离Access世界的升级路径。微软接二连三地创建并放弃了至少三种不同的框架,试图将Access数据库放到web上。包括两个Access Web数据库(在Access 2010中引入)和一个Access Web应用程序(在Access 2013中引入),它们都是构建在SharePoint和SQL Server上。但是两者都没有成功,而Access 2019就成了十多年来第一个完全没有Web功能的软件版本。这些是我们在其他一些失败的软件中没有看到的东西。我们看到微软试图在Access之外给它提供一个升级路径,但是失败了,最后它被迫完全放弃。这就像弗兰肯斯坦的怪物一样,造物主抛弃了他的创造物,但是却无法杀死它。

03

Access和它的持久生命力向我们揭示了什么?

老旧的软件系统在技术领域长久存留并不是一件令人惊讶的事。毕竟,我们现在还有人在使用COBOL。但是Access的不寻常之处在于,尽管受到了创建它的公司的恶意地忽视,但是它依然经久不衰。是什么原因让Access可以无视它的局限性而如此经久不衰呢?这里面有文化和实践两方面的原因,但以下三个原因更为突出。1. 高级用户的需求缺口Access的受众是一个特殊的群体,软件开发很少以他们作为目标受众:这些人属于技术人员,但是又不是真正的代码编写者,他们可能知道如何绕过office宏,但是他们又没有正式的编程背景。在不算久远的那个时代,我们称这些人为“power user(高级用户)”。高级用户可能是一个危险的群体。只需要给他们一点帮助,他们就可以制造出一种非常强大的武器来伤害到他们自己。他们具有我们必须重视的未开发潜力。为这一类的技术人员提供一种解决问题的方法,而不需要他们编写一页页的代码,他们就可以在这些方面有所作为,如自动化小任务,管理自己的数据孤岛,帮助他们保持本地环境的组织性和有效性。如今,人们仍然渴望使用无代码或轻代码工具。那些工作积极的人们希望自己完成自己的工作,而不是为每一次数据库检索付费给昂贵的专业人员。但是到目前为止,我们提供给他们的唯一产品是上一代人使用的VBA宏语言和一些昂贵的工具,像PowerApps这种工具只有在你的企业注册了一堆微软云产品时才能够为你工作。2. 真正的力量是赋予别人力量如果说Access的成功有一个秘诀的话,那就是:Access之所以成功,是因为它让人们感到强大。下面是另一个在工作中使用 Access的例子。我的搭档需要跟踪一个有多个地点的小型音乐学校的家庭、学生、班级和出勤率。不存在多人同时编辑数据库的危险,也不需要将其他平台上查询数据。这种场景下,一个具备完全功能的SQL Server应用程序会更好用吗?答案是“是的”,甚至一个免费使用的SQL Server Express会更好用。但是,即使设计这样的应用程序是一项简单的任务,它也不是一天可以完成的事情。对于这个应用程序的用户来说,没有一种简单的方法可以像使用Access一样,可以用他们自己的表单和报表来实现并增强它。3. 千万不要低估“就是好用”的价值考虑一下,建立一个专业的数据库解决方案需要做些什么。要完成我刚才提到的使用SQL Server Express的示例,你至少需要完成以下步骤:1.安装SQL Sever Express。确保所有的配置设置正确就位,以便数据库服务能在输入命令后正确启动。2.下载SQL Server Management Studio,这样就不需要在命令行中使用SQL命令来创建数据库。3.创建需要的数据库和表。(这部分几乎和Access一样简单!)4.选择你的编程语言、数据库库和开发环境。也许你会选择一些类似Visual Studio Community这样的工具,它们会有助于将各部分连接到一起。5.在你的代码中建立一个到你的数据库的连接。根据你采用的方法不同,你可以编写自己的代码或使用类似Entity Framework这样的代码生成工具。。6.接下来真正的乐趣开始了。为了访问数据库,你需要向运行代码的账户(通常不是你自己的账户)授予正确的数据库访问权限。根据我多年的编程教学经验,这点从来都是给新手编程设置障碍的绊脚石。上面这个步骤列表没有做任何实际的事情。它只是准备环境和配置Access所需要做的准备工作。如果将这些让Access能够工作起来所需要的成本进行比较的话,接下来,启动Access、创建一个数据库,并且让它工作,就是一件轻而易举之事。尽管根据便利性很难给一个软件定价,但是那些“就是好用”的东西的吸引力已经让许多普通的技术一夜成名。

04

写在最后

所以,为什么Access还活着?为什么这样一个有点尴尬的僵尸会站在一个绝对没有被邀请的派对角落里?答案很简单:Access适合于普通人。它助长了一些坏习惯,这是事实;扩展它几乎会招致某种灾难,这也是事实;但是这些都无关重点。只要有人想要这样的一个工具,仅仅以少许的复杂性,就能给普通人带来那么多的力量,那么,Access尽管蹒跚难行,不受待见,并且几乎被它的创造者抛弃,但它仍然有其存在的价值。而摆在我们面前的真正的问题是:我们有勇气为了取代它而付出为每个人建立一个数据库工具包的代价吗?原文:https://medium.com/young-coder/microsoft-access-the-zombie-database-software-that-wont-die-5b09e389c166本文为 CSDN 翻译,转载请注明来源出处。

  • 正版Win10免费送!支持无限次数重装

  • C语言这么厉害,它自身又是用什么语言写的?

  • 华为女 HR 实名控诉:研发加班 160 小时却被说不努力,任正非表态了!

  • GitLab公开拒招中国人!引网友热议

*版权声明:转载文章和图片均来自公开网络,版权归作者本人所有,推送文章除非无法确认,我们都会注明作者和来源。如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。

Access把每一天的数据累加_微软“杀”不死的数据库软件相关推荐

  1. access 此程序未正确安装_一款让“微软爸爸杀不死”的数据库软件——生于1992的Access...

    ▼金猿奖·2019年度征集评选▼ 征案例.征文章.征产品=评企业.评人物.评产品(点击这里了解详情)  大数据产业创新服务媒体 --聚焦数据 · 改变商业 文:Matthew MacDonald 那些 ...

  2. 一款让“微软爸爸杀不死”的数据库软件——生于1992的Access

    ▼金猿奖·2019年度征集评选▼ 大数据产业创新服务媒体 --聚焦数据 · 改变商业 文:Matthew MacDonald 那些拥有不死之身的旧软件,可以让我们从中学习到什么? 在万圣节,你可以讲这 ...

  3. Access把每一天的数据累加_如何设计 QQ、微信等第三方账号登陆 ?以及设计数据库表!...

    来源:http://suo.im/5SBVka 多账户的统一登录 名称解释 这里的多账户区别于系统级别的,我们讲的多账户系统是指,在我们互联网应用当中,我们的应用会使用多个第三方账号进行登录,比如现在 ...

  4. Access把每一天的数据累加_7天学会Power BI分析淘宝数据

    可能很多人看到这个标题的时候已经懵了,Power BI 是什么鬼?接下来,我将为你一一解释. 首先,作个简单的自我介绍,接触电商3年多,暂时还没有年销售上亿的店铺运营经历,对数据分析有一定的经验.现在 ...

  5. Access把每一天的数据累加_SQL 数据库语句大全

    一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...

  6. Access把每一天的数据累加_VBA+SQL篇(第一章 查询编辑数据的ADO技术)

    对于一个标准.规范的数据表单,即第一行是标题(字段名称).每列是一个字段.每行是一条业务数据记录,那么这样的表单就可以当作数据库来操作,使用ADO建立连接,使用SQL进行查询汇总,使用数据透视表快速制 ...

  7. access重复数据累计_小程序·云开发之数据库自动备份丨云开发101

    小程序云开发之数据库自动备份 数据是无价的,我们通常会把重要的业务数据存放在数据库中,并需要对数据库做定时的自动备份工作,防止数据异常丢失,造成无法挽回的损失. 小程序云开发提供了方便的云数据库供我们 ...

  8. mysql5.5集群数据同步_[转]配置mysql5.5主从复制数据库集群

    一.安装MySQL 说明:在两台MySQL服务器192.168.21.169和192.168.21.168上分别进行如下操作,安装MySQL 5.5.22 二.配置MySQL主服务器(192.168. ...

  9. mysql 数据迁移_【AWS 功能】Mysql 数据库迁移至Amazon RDS方案

    今天,我们讲讲如何使用源MySQL数据库执行数据库迁移到MySQL数据库的目标Amazon RDS的方案,同时由于(源和目标数据库引擎是相同的)--模式结构.数据类型和数据库代码在源和目标数据库之间是 ...

最新文章

  1. STM32如何计算RTC时钟异步预分频和同步预分频
  2. c# xml html标签,在asp.net(C#)中采用自定义标签和XML、XSL显示数据
  3. CPA、CPS、CPM、CPT、CPC 是什么
  4. 语音识别发展必牺牲隐私?最大问题或因不符用户预期,需增透明性
  5. php100 代码,php_100 PHP源代码 - 下载 - 搜珍网
  6. 看“意大利文艺复兴艺术展”(3)
  7. anaconda使用github代码_使用这几款插件,能让你在GitHub看代码的效率翻倍
  8. web前端之js快速入门(BOM和DOM)
  9. 【shell脚本学习-3】
  10. 腾讯广告:广告场景下有哪些视觉算法应用?
  11. 如何打造一个让粉丝一见就能收钱的朋友圈
  12. [转载] 【Python】不用numpy用纯python求极差、平均数、中位数、众数与方差,python的打印到控制台
  13. thinkphp验证要插入数据库
  14. an existing tansporter instance is currently uploading this package 解决方法
  15. python多重继承super父类参数_Python super()函数使用及多重继承
  16. 在线教学试卷讲评利器——屏幕画笔
  17. mysql数据库总结_MySQL数据库优化-总结
  18. DP1363F国产NFC射频前端芯片替代CLRC663/RC522
  19. BilSTM 实体识别_“万创杯”中医药天池大数据竞赛——中药说明书实体识别挑战的一点感受...
  20. Hibernate(9)_多对一的关联映射

热门文章

  1. Pandas 模块-操纵数据(7)-检测是否重复 .duplicated()
  2. 真香!iOS云真机全新上线!
  3. 2021年昆山中学高考成绩查询,2021昆山中考高中录取率2020一对一教学
  4. 用myeclipse编写css,myeclipse怎么用css
  5. 查缺补漏!最快最简单的排序(1)
  6. 防止matplotlib.pyplot中的科学记数法
  7. 长虹android电视安装apk,长虹电视通过安卓手机安装沙发管家教程
  8. 怎么玩闲鱼月入过万?【副业干货】
  9. 用R语言抓取历史天气数据
  10. 一直用眼镜布擦眼镜,其实眼镜布并不是用来擦眼镜的