【CSDN 编者按】从1961年首个数据库管理系统IDS(Integrated Data Storage)问世至今,数据库的发展已超过60年,无数杰出人物为此作出了重大贡献,而见证了数据库发展的Bruce Momjian也是其中之一。Bruce是PostgreSQL的核心作者之一,也是开源运动的倡导者。但早期的Bruce并非科班出生,甚至和计算机领域没有丝毫联系。之所以有现在的这些成就,离不开他后三十多年的探索。《新程序员004》带你走进Bruce的程序人生。
作者 | 郭露 责编 | 徐威龙
出品 | 《新程序员》编辑部
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个人博客)
《新程序员》:PostgreSQL社区已经建立20多年了,在我的印象中,它是世界上历史最悠久的数据库社区。那么不同的时代,PostgreSQL社区发生了哪些变化?
Bruce:PostgreSQL创建于1986年,是一款可扩展的关系数据库,可以满足许多新的需求。在它创建的后20年中,这一功能并未得到很好地利用。然而之后这一行业不断发展,人们对于数据的需求有了很大的变化,PostgreSQL的应用范围也有了新的变化。
20世纪90年代时,大部分数据输入与输出都采用简易终端或APC模拟终端。然而在这之后,互联网技术面临巨大革新。我们不仅有物联网、GIS(地理信息系统)以及GPS等技术,还能够获取数据、存储数据并输出数据。同时由于数据仓库的出现,数据分析变得越来越重要。
鉴于这些变化,如果数据库无法拓展,可能会面临许多问题,因为我们需要对复杂的数据进行分析。
《新程序员》:在过去2年当中,人们对于数据库的需求发生了哪些变化?这对云原生开发人员来说意味着什么呢?
Bruce:这个不好说,因为我们的项目已经存在35年了,我们很少会以两年为单位思考过去的事情,不过我们的确还有许多需要改善的地方。
举个例子,如今公司对于数据加密安全的需求逐渐增加,以往我们并未想到会出现勒索软件。不少的公司,尤其是大型公司,正在遭受严重勒索攻击。因此,人们越来越希望我们能够具备安全功能。另外,在过去2年中,大规模平行处理功能以及安全问题可能是比较重要的开发方向。
《新程序员》:在数据库应用和数据库系统方面,人们的关注点在于数据储存方式以及能够快速地检索这些数据,那么我们如何做到这一点呢?
Bruce:PostgreSQL是一种通用数据库,因此它的重点从来就不在于实现100%的兼容。我们可以为开发人员提供性能优化,满足他们95%的需求,但如果需要满足剩下5%的需求,我们可能需要额外付出比先前多10倍的努力。
总的来说,PostgreSQL作为通用数据库,可以完成各种常见的工作。而如果你需要一些特殊的功能,可以再加上一个数据库,并将两个数据库进行集成。人们往往因为我们没有那些花里胡哨的功能而感到不满,但就是因为我们没有这些功能,所以用户也无需对这些功能进行优化。我们不想让PostgreSQL变得复杂,使得开发人员面临更加严重的问题。
幸运的是,云技术出现之后,我们能够不断验证自己的想法。人们可能会说,如果软件运行太慢,他们会选择改变几个参数。但如果运行太慢,我们会在云中建立一个更大的服务器,而不是花一周的时间去设置参数,从而满足剩下5%的性能。
《新程序员》:在当下的云时代中,如果想从事数据方面的工作,应该如何规划职业道路?
Bruce:我认为,对于学生来说,最重要的是他们在学校学到的内容是否和当前的行业相匹配。如今获取数据的渠道越来越多,包括移动端、客户端、浏览器以及GIS等等。开发人员必须要了解这些内容,才能更好地了解数据库。而对于大学生来说,我认为他们都需要更加关注市场需求,学习开源知识并且加入开源社区。因此我希望学术界能够拥抱新技术,让它们走进大学。
《新程序员》:对于中国开发者,你有哪些建议?
Bruce:在过去的4年里,使用PostgreSQL的中国开发者越来越多,这在以往是不可想象的。中国有更多的机会能够参与到这一全球进程中,并做出成绩。互联网为我们打开了交流的大门,之前只有发达国家/地区才有的机会,现在在世界的任何一个角落都能拥有。因此,中国开发者可以通过不断学习新技术,从而获得真正的成功。
【参考资料】
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/