Bruce Momjian(下文简称“Bruce”)作为PostgreSQL团队的核心成员之一,多年来一直负责指导PostgreSQL数据库的开发和发布。此外,他也是开源运动的倡导者之一,在计算机领域有着举足轻重的地位。然而,早年间Bruce并非计算机出身,而是以历史为专业。在计算机尚处于萌芽的时代,他也坦言“与计算机结缘有‘赌’的成分。”
Bruce近照(图源自Bruce个人博客)
为就业,几度更换专业
20世纪60年代初,Bruce出生在美国费城。与那个时代其他的美国小孩一样,Bruce度过了平凡的童年时光。学生时期的他发现自己对人文历史非常感兴趣,于是在大学时选择了历史专业。然而尽管兴趣是最好的老师,但学历史这条路并非他想象的那么简单。一方面,学历史也并不等于以后就可以做研究;另一方面,在美国历史专业也不是那么容易找到工作。因此在学了两年之后,Bruce认为是时候换一条路了。
起先,Bruce发现当老师似乎比较有前景,于是转为数学教育学专业,准备毕业之后去教书。但数学又的确非常枯燥,于是又开始琢磨有没有其他更适合自己的领域。在一次偶然的机会下,Bruce了解到了计算机这一新兴领域。
当时计算机领域的发展不过一二十年,因此,选择计算机多少有点“赌”的成分。但在他看来,计算机是属于未来的领域,今后有机会影响世界。看清这一点后,Bruce开始投入到计算机知识的学习中。尽管他并非科班出身,但在接触到计算机之后,他很快就意识到这才是自己真正想要的方向。通过自学,他对计算机有了相当的了解。在毕业之后,他顺利成为美国多所高中的计算机老师。而让他没想到的是,这只是他和计算机缘分的开始。
Bruce在教书期间也并未停止对计算机领域的探索。据他回忆,在入门后,他先后学习了许多“具有长期性且实用性的核心技术”,包括20世纪60年代后期出现的Unix、C语言、HTML、操作系统知识、虚拟内存管理以及汇编程序等等。这也为之后他真正进入计算机领域奠定了坚实的基础。
1989年,在接触了数据库之后,Bruce成为了一名数据库顾问,为许多律师事务所构建专门的数据库软件,这份工作也让Bruce首次接触到了SQL数据库。而正是在这个时期,他坚定了自己专攻数据库的方向。当时数据库已有近三十年的历史,IDS(集成数据存储,Integrated Data Store)、IMS和Oracle等数据库管理系统都在迅速发展。为了适应这波发展,Bruce密集地学习了Ingres和Informix等相关知识。并在1992写了shql,并通过Unix shell脚本实现了SQL。
2000年,Bruce在机缘巧合之下发现了Postgres,并开始成为其中的一份子,这也成为了他职业生涯中最大的转折点。六年后,Bruce和团队成员共同创立了PostgreSQL社区,并在接下来的二十多年内不断作出贡献,一方面负责管理社区和博客,另一方面还负责数据库的开发维护。同时他还是PostgreSQL坚定的布道者,经常在世界各地进行公开演讲,来扩大PostgreSQL的影响力。
可以说,在加入Postgres团队之后,Bruce为Postgres奉献了全部的精力。在他的努力下,Postgres从一个边缘的学术项目逐渐变成了一个具有极大商业价值的数据库。PostgreSQL功能强大,几乎能适应所有的数据库场景,因此受到了全球各大公司的欢迎。而在这份成绩的背后,都能找到Bruce的身影。
Bruce近照(图源自Bruce个人博客)
“只要满足用户95%的需求就够了”
《新程序员》:PostgreSQL社区已经建立20多年了,在我的印象中,它是世界上历史最悠久的数据库社区。那么不同的时代,PostgreSQL社区发生了哪些变化?
Bruce:PostgreSQL创建于1986年,是一款可扩展的关系数据库,可以满足许多新的需求。在它创建的后20年中,这一功能并未得到很好地利用。然而之后这一行业不断发展,人们对于数据的需求有了很大的变化,PostgreSQL的应用范围也有了新的变化。
20世纪90年代时,大部分数据输入与输出都采用简易终端或APC模拟终端。然而在这之后,互联网技术面临巨大革新。我们不仅有物联网、GIS(地理信息系统)以及GPS等技术,还能够获取数据、存储数据并输出数据。同时由于数据仓库的出现,数据分析变得越来越重要。
鉴于这些变化,如果数据库无法拓展,可能会面临许多问题,因为我们需要对复杂的数据进行分析。
《新程序员》:在过去2年当中,人们对于数据库的需求发生了哪些变化?这对云原生开发人员来说意味着什么呢?
Bruce:这个不好说,因为我们的项目已经存在35年了,我们很少会以两年为单位思考过去的事情,不过我们的确还有许多需要改善的地方。
举个例子,如今公司对于数据加密安全的需求逐渐增加,以往我们并未想到会出现勒索软件。不少的公司,尤其是大型公司,正在遭受严重勒索攻击。因此,人们越来越希望我们能够具备安全功能。另外,在过去2年中,大规模平行处理功能以及安全问题可能是比较重要的开发方向。
《新程序员》:在数据库应用和数据库系统方面,人们的关注点在于数据储存方式以及能够快速地检索这些数据,那么我们如何做到这一点呢?
Bruce:PostgreSQL是一种通用数据库,因此它的重点从来就不在于实现100%的兼容。我们可以为开发人员提供性能优化,满足他们95%的需求,但如果需要满足剩下5%的需求,我们可能需要额外付出比先前多10倍的努力。
幸运的是,云技术出现之后,我们能够不断验证自己的想法。人们可能会说,如果软件运行太慢,他们会选择改变几个参数。但如果运行太慢,我们会在云中建立一个更大的服务器,而不是花一周的时间去设置参数,从而满足剩下5%的性能。
“学术界要拥抱开源新技术”
【参考资料】
https://momjian.us/download/shql.1.3.README
https://momjian.us/main/faq.html
http://lorance.freeshell.org/shql/
https://en.wikipedia.org/wiki/PostgreSQL#History
https://postgresql.life/post/bruce_momjian/
本文出自即将上市的《新程序员004》,对话世界级大师,报道中国IT行业创新创造!
成就一亿技术人