InfoQ 深度专访 “MySQL 之父” — Michael “Monty” Widenius ,全文包括视频访谈实录,以及精华文字整理。
按照我们所熟知的演进规律,历史滚滚向前,旧的基础设施会被新的所替换,但在技术世界,这一规律也有失效的时候——三十几年前诞生的软件作品,可能依然是今日数字世界的主要基石之一。你可以将其归结为开源的神奇魔力,也可以将其认定为市场与时代共同造就的复合体,但不可否认的是,亲历并造就这一切的天才工程师们,已经在软件研发历史上,留下了传奇的一笔,他们的经历独一无二,分外惹人好奇。
Michael “Monty” Widenius (业界通常称呼他“Monty”)和他的 MySQL,就是上述传奇的重要组成部分。
Monty 于 1962 年 3 月出生在芬兰赫尔辛基。1995 年,他和 David Axmark 一起编写了 MySQL 数据库的第一个版本,并用大女儿的名字“My”来命名了这款数据库。MySQL 项目从一开始就很好地考虑到了商务价值,虽然 MySQL 数据库是免费开源的,但为了实现商业化,Monty 与 David Axmark 和 Allan Larsson 很快成立了 MySQL AB 公司,凭借着高效、稳定、可靠的性能和明确的产品定位,加之借着互联网兴起的“东风”,MySQL 一跃成为 IT 世界里的“明星”。
后来的人们将 MySQL 和Linux、Apache、PHP 一起并称为 “LAMP” 开源软件四大天王,尊称 Monty 为 “MySQL 之父”。即便是在今天,根据 StackOverflow 的调查,也有 46.85% 的人仍在使用 MySQL 数据库。
随着 MySQL 受欢迎程度越来越高,不少公司对 MySQL 生出了觊觎之心。
为了让 MySQL 有更好的发展,2008 年 1 月,Monty 和其他几位创始人决定将 MySQL AB 出售给 Sun Microsystems。在此之前,Monty 是 MySQL AB 的首席技术官,并且一直是 MySQL 持续发展背后的主要力量之一。
一年后,甲骨文收购了 Sun,把 MySQL 也收归麾下,随后甲骨文大幅抬高了 MySQL 的商业版价格,全球使用 MySQL 免费版本的开发者们都对 MySQL 的未来忧心忡忡。
Monty 并不看好 MySQL 被收购后的前途,他还曾请求 MySQL 的用户们游说欧盟运行委员会,阻止甲骨文收购 Sun,号称“拯救 MySQL”请愿行动。
但行动最终以失败告终。
2009 年 2 月 5 日,Monty 宣布离开 Sun 公司,在 MySQL 代码库的一个分支上开发出了一款数据库 MariaDB,以他最小的女儿的名字命名。同时,Monty 创办了 Monty Program AB 公司。此外,他还成立了 MariaDB 基金会,致力于推广、维护和发展 MariaDB 代码库、社群和生态系统,不为营利。而 MariaDB 也没有让 Monty 失望 —— 在颇具公信力的 db-engines “最流行数据库”排行榜上,MariaDB 名列第 12 位。
从 MySQL 到 MariaDB,27 年来,Monty 一直活跃在数据库舞台上。不久前,Monty 来访中国,InfoQ 有幸采访到了这位“数据库大神”,与他聊到 MySQL 、MariaDB 的诞生故事,对开源、闭源的理解,Oracle 收购 MySQL 的爱恨情仇,以及他自己的“编程人生” 。
Monty 告诉 InfoQ,是热爱,让他在上个世纪创造出了 MySQL 这款数据库领域的“活化石”,又在本世纪继续缔造全球知名的数据库产品;也是因为热爱,让他在 40 年的编程生涯里始终保持热情:他从学生时代开始坚持编程,一周工作 60 个小时,且“永远不会停止写代码”。
从这些话语里,我们试图勾勒出一个更加真实、纯粹的技术信仰者和实践者的形象。
以下为 InfoQ 与“MySQL 之父”Monty 的访谈实录,经编辑。
- 3.0x
- 2.5x
- 2.0x
- 1.5x
- 1.25x
- 1.0x
- 0.75x
- 0.5x
热爱可抵岁月漫长
“热爱”,是贯穿于 Monty 过往 40 年编程人生的关键词。
60 岁的 Monty 现在仍在写代码,每周保持 60 个小时的高工作强度。他说,等到 80 岁时,才会考虑将工作缩短到 35 小时。编程这事儿,他还要干一辈子。
二十年磨一剑
InfoQ:您在 34 岁时开发出了 MySQL。从接触编程到开发出 MySQL,这段时间可真不短,您都做了哪些工作?
Monty:我从 18 岁的时候就开始编写 MySQL 的最早一批代码了,这部分代码主要是 MySQL 内存控制方面的,所以最早的开发工作可以追溯到 1982 年左右。
后来的开发工作都是以之前的成果为基础。在此期间,我也开发过不少硬件驱动程序,设计了一款不错的处理器,还做过很多游戏。
InfoQ:这么长的开发历程,是什么让您一直坚持了下来?
Monty:我想,是热爱。我喜欢做开发,我特别喜欢解决问题的感觉,特别是在开发 MySQL 和 MariaDB 的过程中。
而且,我参与了开源,帮助很多人走向成功。我觉得这一切都能让人始终保持热情。
InfoQ:从您写下第一行代码到开发出 MySQL,花费了近二十年时间。但目前市场上也有不少企业投入过十年甚至十五年来开发软件,但最终成果从来没能真正流行起来。你怎么看待这样的现实?
Monty:我确实是用了快二十年才开发出 MySQL,但当时我没有想到未来这个软件会发展成什么样子。我将我的软件卖给了北欧最大的一家电脑公司,但后来,我的软件成了整个平台上最受欢迎的产品。
你提到的这种情况也的确存在,很多公司耗时耗力,最终却一无所获。MySQL 的成功是与时代背景分不开的。当时互联网已经得到广泛认可,每个人都需要这样的数据库,用它创建互联网所需要的数据。当时那些技术巨头还不看好互联网,所以这是个有待开发的蓝海市场。
其实只要意识到需求的存在,其他的就都好办了,所以我从 94 年开始正式编写 MySQL。最终成果的发布大概是在 95 年末,也就是说,我们用了短短两年就开发出了 MySQL 的第一个版本,成为当时的新兴支撑性产品。
一个优秀的程序员胜过十个普通的程序员
InfoQ:我知道,在技术圈内,您被誉为“编程天才”,您怎么看待这样的称呼?
Monty:我觉得差不多,我在编程方面确实有点小天赋。
InfoQ:所以您是认同外界将您誉为“编程天才”的说法了?
Monty:天才不敢当。我认为自己只是在某些领域比较擅长,但可不是在所有方面都堪称天才。只能说确实有点天赋。
InfoQ:我想不只是编程这一个领域吧,您在创业方面也很成功啊。
Monty:嗯,我在企业家、开源倡导者、程序员和架构师几个角色上表现得都还可以。
InfoQ:您是否会认为,如果一个人想在某个领域取得卓越的成就,天赋是不是比努力更重要?
Monty:那是肯定的。毕竟在编程行业,一个优秀的程序员要胜过十个普通的程序员。这种优秀,源自天赋、努力工作,更源自想要了解一切的学习精神。
所以在前二十年里,我每天基本上就是学习计算机、学习硬件、学习如何高效编程,学习怎么让计算机发挥出一切性能。有了这样的底子,我才能真正开始做自己的事。
转管理,不是程序员的尽头
InfoQ:从 MySQL 到 MariaDB,您已经证明了自己是位成功的企业家。但不是所有技术人员都能成长为管理者,在这方面您能不能分享一点经验?
Monty:我觉得大多数开发人员就适合当开发者。我知道,一直都有些开发者屈服于现实,转而去做管理岗。
但根据我的观察,他们大多数人的编程才能其实比管理才能要强得多。很多人就是为了钱,管理岗的收入应该是比开发者要高一些。
但我觉得他们的天赋主要还是体现在开发上,最好能坚持下去,依靠自己的才能走向成功。
InfoQ:您在 34 岁,也就是快接近中年时才开发出 MySQL。但在中国市场,35 岁以上的开发者往往会考虑转向管理岗。您怎么看待这种现象?
Monty:我认为不应该这样。因为好程序员,特别是优秀的程序员其实更难找。虽然管理岗的薪水可能稍高一点,但却很容易被取代。所以只要大家有天赋,最好能坚持在技术的道路上走下去。
至于 MySQL 这边,其实我从来不想当 CEO。我想做的是 CTO,负责技术方面的工作,毕竟我的天赋就在技术上。我觉得自己没有那份成为优秀全职管理者的天分。
我把一生都投入到写代码上,我喜欢这活儿,也正是编程让我成为了独一无二的人。
InfoQ:如您所说,转到管理岗后,就会得到更多资源,比如晋升机会更大、薪酬更高。相比于技术理想,这是很现实的考量,毕竟大部分人要养家糊口,您怎么看呢?
Monty:我觉得很多企业在职业设计上都有这种错误。所以在 MySQL 和 MariaDB,我觉得与其靠让大家做管理来提升薪水,不如让他们承担起更多责任。有时候,职位的重要性比单纯的高薪水更有吸引力。这可以算是另一种思路吧。
大家当然应该为自己的编程事业规划一条职业发展道路,但没必要把转管理岗当成唯一的方向。企业不需要那么多经理,而且在开始裁员的时候,管理岗都是最先倒霉的。毕竟经理人很容易替代,但优秀的程序员不可替代。他们掌握着企业最需要的代码知识,所以只要代码在,那岗位就在。
InfoQ:但也有一些开发者在编程和管理两方面都挺有天赋,对吗?
Monty:确实,但还是那句话,优秀的程序员比优秀的经理要难找得多。而且想做管理也得懂开发,不然根本就没法跟开发人员正常交流。而且开发者也是管理者,只不过管的不是人,是一大堆计算机。
经理所需要的技能一般有个半年、一年就能掌握。但想当个程序员,特别是优秀的程序员,那至少需要 16 年。
编程 40 年,如何保持技术前瞻性?
InfoQ:您的编程经历大概有四十年了。在这么长的从业过程中,您是怎么保持自己的技术前瞻性的?
Monty:我的办法是信任客户。我的想法一直很坚定,那就是跟客户合作、解决问题,了解他们未来可能遇上的新问题,再共同将其克服。
所以只要有了良好而且足够广泛的用户群体,比如 MySQL 和 MariaDB 建立起的客户基础,那他们就能告诉我,未来会走向哪里。
我在等待未来的到来,同时也成为造就未来的一部分。所以,认真倾听客户意见,与他们合作,自然就能了解最新的技术。跟客户距离越近,我们就越了解功能需求,并据此安排自己的工作。
对于开发者,我们要做的是为他们提供正确的技术、让他们满意。总之,只要明确了需要解决的问题,技术选型自然就会容易得多。
InfoQ:那您会常跟社区中的开发者讨论技术问题吗?
Monty:我经常参与技术会议,在那里跟与会者们交流。这也算是一种探讨吧。
另外,在接触世界各国的客户,比如中国的客户时,也可以跟内部员工讨论关于 MySQL 和 MariaDB 的问题。他们代表的就不是客户,而是社区成员。所以我会认真倾听。
InfoQ:作为人们眼中的 MySQL 之父,您还会经常跟 MySQL 社区的开发者交流吗?
Monty:我主要是通过技术会议跟大家接触的。虽然他们身在不同企业,但我们的交流跟立场无关,整个氛围都非常友好。
随着时间推移,我们也在雇用更多 MySQL 专家和开发者。即使是在团队刚刚被收购后,我也一直跟他们保持着密切联系。我一直把他们当成好朋友。
InfoQ:中国也有着巨大的 MySQL 和 MariaDB 开发者群体。您是如何看待他们的?
Monty:我很赞赏他们能为开源做出贡献,参与到开源中来。这是件好事。开源合作的规模越大,每个人获益就越多。这也是开源精神的核心所在。
你解决自己的问题,然后把方案交给社区;其他人解决自己的问题,也把方案交给社区,每个人都能从中获益。
InfoQ:对于想要学习 MariaDB 或 MySQL 的中国开发者,您有什么建议吗?
Monty:首先应该积极参与到社区当中,帮助他人、改进实现。如果你需要某项功能,就想办法着手开发,并随时向 MariaDB 基金会寻求帮助。我们可以帮助大家,告诉你具体该怎么做。你审查过自己的代码吗?你也可以参与审查其他贡献者的代码,这就是实实在在的开源贡献。
而要想成为一名出色的程序员,拥有一份能做一辈子的开发工作,那最好能让自己积累起名望,让自己在开源世界拥有一席之地。有了这些积累,就不是你找工作,而是工作来找你了。保持住好奇心,积极探索事情是如何运作的,这样我们就会变得更好,对企业的价值也越大。
“我永远不会停止写代码”
InfoQ:我了解到,到现在,您也一直在坚持写代码。
Monty:因为身为程序员,我可以帮助更多人,我也愿意用这种方式帮助他人。经常编码能让头脑始终保持灵活。编程给我带来了解决问题的满足感。
InfoQ:能不能具体举个例子?
Monty:LAMP —— Linux、Apache、MySQL 还有 PHP,这些可以说是互联网的基石。我很高兴能为其贡献一份力量。
如果没有我,互联网的全面成型可能还要再推迟很久。所以就体验来说,我们其实是让互联网提前到来了。这种感觉很好,编程的感觉很好。
InfoQ:在刚接触编程的时候,那时您相信编程可以改变世界吗?
Monty:那时并没有这种感觉,我只是觉得编程很有意思。很多人觉得编程很难,但当时我才 16 岁,抱着一颗学习的心。
所以只要你发现自己有天赋,所处的领域有发展前途,而且其他人又没有意识到,那就一定要把握住这个机会。
InfoQ:那您是否考虑过退休?不写代码了,花更多时间陪陪家人?
Monty:我从 1981 年起就一直居家办公了,也没想过要搬离芬兰。我一直陪在家人身边,但是也经常要出差。你看,我现在不就到中国来了。所以这些我都已经享受到了,我可以在酒店房间里编程,继续做点能改变世界的事情,这很重要。
我永远不会停止编程。我从上学时起就一直这么生活,每周大概工作 60 个小时。现在每周缩短了一些,出差时大概会工作 40 个小时。等到 80 岁的时候,我可能会把工作缩短到 35 小时吧。
创造 MySQL,颠覆 MySQL
MySQL 无疑是 Monty 编程生涯最为耀眼的成就。曾经一度,MySQL 长期霸榜最流行的数据库榜单。
2009 年,MySQL 被甲骨文收入麾下后,Monty 在 MySQL 的精神内核基础上,带着一款新数据库 MariaDB 王者归来。
一手缔造了数据库神作“MySQL”的 Monty,赋予 MariaDB 的使命是 —— 取代 MySQL。
开源,让 MySQL 更成功
InfoQ:一直以来,您都是开源的坚定拥护者,MySQL 的成功也证明了您当初的选择是对的。您为什么会对开源如此着迷呢?
Monty:首先,我坚信软件应该是自由的,也知道企业需要保持盈利才能获得成功。我很高兴能为 MySQL 找到合适的许可证。
但我也坚信,开源才是软件开发的最佳方式,因为这样,软件的走向才不会由单独某个人说了算。开源项目能收集到世界各地的意见,帮助我们发现问题、解决问题,甚至是处理那些自己根本想象不到的问题。只有这样,软件才会变得更好。
如果 MySQL 不开源,那它永远没法像现在这么成功,特别是在甲骨文和微软主导的专有软件市场上。当时每个人都说,没必要再额外开发数据库了,现有方案已经足够解决所有问题。但他们没想到,开源改变了这一切。
InfoQ:目前市面上有不少以 MySQL 为基础的商业化公司。你怎么看待这些 MySQL 厂商?
Monty:我觉得这是好事。毕竟开源的传播范围越大,就能帮助更多人取得成功。这是让每个人变得更好的正向循环。
InfoQ:我听说,您还曾发起一场名叫“拯救数据库”(Save Your Database)的运动,但 Oracle 在全球也得到了广泛应用,商业化好像没让 Oracle 变得更糟啊?
Monty:确实没有。在 MySQL 和其他开源数据库出现之前,那些巨头企业可以随意提高价格。换句话说,单靠商业数据库根本支撑不起现在的互联网,因为小公司负担不起这些数据库,也就无法建立网站或者其他互联网资产。
这一切要归功于自由免费软件,它们让互联网成为了可能,同时也阻断了甲骨文的财路。而且免费并不影响开源数据库为客户提供价值,所以才会有越来越多的客户转向自由软件。
InfoQ:所以您觉得,开源软件不应该商业化吗?
Monty:商业化没问题,毕竟企业需要生存,但价格一定得合理。
MySQL 会走向闭源吗?
InfoQ:您觉得,MySQL 最终会走向闭源吗?
Monty:MySQL 永远不会走向闭源,毕竟大家随时可以使用旧的开源版本。但 MySQL 可能会变更许可证,导致企业客户难以继续使用当前版本。
可以肯定的是,如果阻绝了合作和开发这条道路,MySQL 的开发生态系统也将随之枯萎。换句话说,必须尽量把每个人都纳入开发流程,让外部开发和内部开发一样便捷。所以跟 MariaDB 相比,MySQL 的贡献者才会明显更少。在被甲骨文收购之后,现在为 MySQL 做贡献也变得更加困难。
开发 MariaDB,是为了普惠更多开发者
InfoQ:您当初为什么会决定开发 MariaDB?
Monty:在甲骨文宣布要收购 Sun 和 MySQL 的时候,我就不相信他们会真正发掘 MySQL 这份宝贵遗产。所以不少优秀的程序员与我们决定一起离开,延续 MySQL 的精神。
当时我们没有立马着手开发 MariaDB,那是几周之后的事了。但有一点是明确的,我们都想继续为开源做贡献。我想让创造出 MySQL 的这支才华横溢的团队,能够有值得依靠的稳定归属。所以我建立了 MariaDB,一方面是为了拯救项目,另一方面是想让 Sun 的老同事们有处可去。
InfoQ:你用自己女儿的名字命名了 MariaDB,所以说你觉得 MariaDB 就像女儿一样重要?
Monty:还是第一次有人问起这件事。我得感谢我女儿,在我们俩一直在家的时候,她也不会来打扰我编程。所以以她的名字命名也有这一层关系。另外,这样的命名也让我觉得跟 MariaDB 更亲近。
InfoQ:在开发之初,您对 MariaDB 有没有什么特别的期望?
Monty:一开始我就知道这事很难,因为当时听说 Sun 的销售人员开始主动接触 MySQL 客户,让他们要么表明立场,要么立马涨价。要想维持价格不变,客户就得签署一份为期五年的合同。
所以我知道,MariaDB 前五年应该是没有多少客户收入了,所以我就预留了前五年的人员工资和运营开销。唯一确定的就是,只有用稳定的薪酬留住大家,我们才能获得成功。
五年之后,客户开始纷纷选择 MariaDB。也正是由于用户转移,MariaDB 开始受到更多发行版的欢迎。从那时候起,大多数领先的发行版都不再使用 MySQL,转而选择了 MariaDB。
InfoQ:您觉得与 MySQL 相比,MariaDB 最大的优势是什么?
Monty:要我说就是性能更好、稳定性更强,而且承诺始终开源。我们永远不知道甲骨文明天会搞出什么来,甲骨文还修改了发布模式,不再定期稳定更新。他们只是偶尔添加新功能,推出新版本。
所以如果大家比较关注稳定性,那甲骨文手里的 MySQL 已经没法为业务稳定服务了。但如果你想要修复 Bug,补丁经常闹出其他乱子。
而 MariaDB 则每两年发布一次稳定版本,而且持续提供 bug 修复。MariaDB 承诺稳定,而 MySQL 已经无力做出这样的承诺。
InfoQ:您如何看待 MariaDB 的开源贡献者们?
Monty:开源是这一切的核心,我们也真心相信自己在做正确的事情。MariaDB 的开发者们很愿意帮助社区和客户。我们始终以客户和用户为中心。
InfoQ:从现在 MariaDB 的发展态势来看,它符合了您当初的期望吗?
Monty:符合啊,方向明确、质量可靠。我们也添加了很多 MySQL 不具备的功能特性。我相信我们会做得更好,MariaDB 已经吸引到很多重要的区域开发者参与到贡献中来。我们很清楚自己在做什么。
一般来说,外部人士往往很难不经引导就参与到项目中来,而我要做的就是降低参与门槛,而且效果比预期更好。现在 MariaDB 的代码质量真的很出色。
InfoQ:MariaDB 和 MySQL 对于您来说,意味着什么?在您人生中,您最看重什么?
Monty:我的心思主要放在家庭上吧,再就是 MariaDB 和 MySQL,它们像是种精神图腾,也成了我家庭的一部分。我在它们身上花了很多时间,所以希望它们能取得成功。
当然,一切终会过去。MariaDB 取代了 MySQL,因为 MySQL 已经逐渐陈旧过时。但它们在我心里的地位永远不会动摇。
InfoQ:我注意到您把 MariaDB 看得比 MySQL 更重要,是这样吗?
Monty:没错,因为 MariaDB 的设计初衷就是要取代 MySQL 的。MySQL 的人气大不如前,未来在甲骨文内部也可能得不到持续发展的机会。
数据库火爆背后:大多数缺乏根基的产品无法成功
InfoQ:数据库市场现在可以说非常火爆,而且在中国尤甚。目前中国市场上的数据库产品可能有 200 种之多。
Monty:欧洲和美国也差不多,都充斥着大量数据库产品。一直都是这样,但大多数产品都无法成功。
问题在于,如果是一家大企业决定开发数据库,那他们肯定要努力打造一款五年、十年甚至二十年后还仍然存在的产品。
MySQL 就是这样,自 95 年至今仍然保有活力,也成为开源数据库中的“活化石”。我们靠的是做正确的事,我们也有 Maria 基金会,真正地为开源保驾护航。所以我们的根基比较稳固。
至于其他数据库,因为缺乏这样的根基,所以这 200 种产品中有 99%都会在未来五年内彻底消失,毕竟数据库市场还没大到能容纳得下所有。
InfoQ:所以您觉得,未来数据库产品的数量会逐步减少?
Monty:是的,能成功的永远是少数。有些公司的数据库只服务于两、三家客户。而作为一家数据库厂商,我们拥有成千上万客户,未来还会有更多。
InfoQ:您觉得数据库的未来将走向何处?
Monty:数据库还会继续演进,但它属于像 Linux 那种核心产品,所以应该只会保持小幅增量变化。
对数据库来说,最重要的是稳定性。所以即使是适配新硬件,比如从传统磁盘转向 SSD,都是件需要认真考虑的大事。迟早会有足以容纳一切的巨量系统内存,能把所有操作的速度再提升十倍,这将会是下一件大事。另外,我们也在积极研究分布式计算。所以变化总会存在,但仍然是以小步前进的方式实现。
回顾二十年前的数据库,再看看现在,整个行业并没有太大的变化。虽然我们的底层系统有所扩展,但核心其实很大程度上还是那个样子。就像是处理器,跟二十年前相比,会有多少新功能吗?并没有。也许功能集增加了,但除此之外的一切还是老样子。
所以我觉得未来的数据库会更稳定,也更动态。
感谢杭州沃趣科技对本文的大力支持,以及对 Monty 再次来华的邀请与组织。沃趣科技是一家专注为企业用户提供基于高性能、高可用、可扩展的开放数据库云平台解决方案的国产厂商。沃趣与 Monty 在技术领域有着近十年的深度合作,全面支撑 MariaDB 全生命周期的管理。
嘉宾征集:
什么是技术情怀?在很多人看来,是热爱、是思考、是卓越。这个时代或许有人功利、或许有人内卷,但我们依然愿意相信更多人依然怀揣着用技术改变世界的初心。《The Great Geek》(了不起的极客)是 InfoQ 重磅推出的全新内容栏目,全年共 8 期。自栏目推出至今,我们专访了 MySQL 数据库和 Maria DB 创建者 Michael “Monty” Widenius、iPod“之父”Tony Fadell、Thoughtworks 全球 CTO Rebecca Parsons、《代码大全》作者 Steve McConnell,如果你身处的企业中有这样的技术领袖想让我们报道或你希望看到哪位技术大佬的采访,请在评论区留言联系我们。
评论