当前位置:网站首页>对话PostgreSQL作者Bruce:“转行”是为了更好地前行
对话PostgreSQL作者Bruce:“转行”是为了更好地前行
2022-04-23 12:15:00 【《新程序员》编辑部】
【CSDN 编者按】从1961年首个数据库管理系统IDS(Integrated Data Storage)问世至今,数据库的发展已超过60年,无数杰出人物为此作出了重大贡献,而见证了数据库发展的Bruce Momjian也是其中之一。Bruce是PostgreSQL的核心作者之一,也是开源运动的倡导者。但早期的Bruce并非科班出生,甚至和计算机领域没有丝毫联系。之所以有现在的这些成就,离不开他后三十多年的探索。《新程序员004》带你走进Bruce的程序人生。
作者 | 郭露 责编 | 徐威龙
出品 | 《新程序员》编辑部
Bruce Momjian(下文简称“Bruce”)作为PostgreSQL团队的核心成员之一,多年来一直负责指导PostgreSQL数据库的开发和发布。此外,他也是开源运动的倡导者之一,在计算机领域有着举足轻重的地位。然而,早年间Bruce并非计算机出身,而是以历史为专业。在计算机尚处于萌芽的时代,他也坦言“与计算机结缘有‘赌’的成分。”

Bruce近照(图源自Bruce个人博客)
1.为就业,几度更换专业
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个人博客)
2.“只要满足用户95%的需求就够了”
《新程序员》: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%的性能。
3.“学术界要拥抱开源新技术”
《新程序员》:在当下的云时代中,如果想从事数据方面的工作,应该如何规划职业道路?
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/
本文出自即将上市的《新程序员004》,对话世界级大师,报道中国IT行业创新创造!
版权声明
本文为[《新程序员》编辑部]所创,转载请带上原文链接,感谢
https://newprogrammer.blog.csdn.net/article/details/124338573
边栏推荐
- How the database fills in IM expressions (IM 5.4)
- 用户接口和IM表达式(IM 5.6)
- Optimize connections using connection groups (IM 6)
- 抓包整理————tcp 协议[八]
- 第四章 为IM 启用填充对象之为IM列存储启用ADO(IM 4.8)
- The fourth chapter is the enable and disable columns of IM enabled fill objects (Part III of im-4.3)
- 一个平面设计师的异想世界|ONES 人物
- 力扣-70.爬楼梯
- How do programmers finalize nucleic acid statistics with 130 lines of code
- Idea code quality specification plug-in sonarlint
猜你喜欢

Next. JS static data generation and server-side rendering

Idea setting copyright information

运行报错:找不到或无法加载主类 com.xxx.Application

软件测试基础DAY2-用例执行

网络信息安全之零信任

Why is there a wrapper class? By the way, how to convert basic data types, wrapper classes and string classes?

5分钟NLP:Text-To-Text Transfer Transformer (T5)统一的文本到文本任务模型

九十八、freemarker框架报错 s.e.ErrorMvcAutoConfiguration$StaticView : Cannot render error page for request

31岁才转行程序员,目前34了,我来说说我的经历和一些感受吧...

CGC: contractual graph clustering for community detection and tracking
随机推荐
1. Construction of electron development environment
初探 Lambda Powertools TypeScript
The database navigator uses the default MySQL connection prompt: the server time zone value 'Ö Ð¹ ú±ê ×¼ ʱ ¼ ä’ is unrecognized or repres
Symmetric encryption, certificate encryption
Recommended programming AIDS: picture tool snipaste
Master slave replication configuration of MySQL
魔域来了H5游戏详细图文架设教程
Solution of asynchronous clock metastability -- multi bit signal
使用连接组优化连接 (IM 6)
STM32CubeProgrammer基础使用说明
第二十四课 经典问题解析
远程桌面之终端服务器超出了最大允许连接数解决
Lesson 25 static member variables of classes
第二十六课 类的静态成员函数
为什么hash%length==hash&(length-1)的前提是 length 是 2 的 n 次方
九十八、freemarker框架报错 s.e.ErrorMvcAutoConfiguration$StaticView : Cannot render error page for request
[redis series] redis learning 13. Redis often asks simple interview questions
Interpretation 3 of gdpr series: how do European subsidiaries return data to domestic parent companies?
一文详解头部位姿估计【收藏好文】
What is a gateway
