第一代赞助开发小组已经参与PHP的核心开发1个月了,我们认为你可能想知道他们是谁,他们有什么兴趣爱好。我有机会与Derick Rethans、George Peter Banyard、Ilija Tovilo、Jakub Zelenka、Máté Kocsis和Arnaud Le Blanc坐下来接受采访。 

 

Sebastian:让我们从一轮介绍开始。你是谁? 

 

George:我在伦敦帝国理工学院学习纯数学,预计十月毕业。我有一半德国血统,一半英国血统,但在法国南部长大。空闲时间我主要看动漫或玩益智游戏和Richii麻将。

Derick:我最初来自荷兰,但目前在英国生活和享受伦敦。当我不坐在电脑面前时,我很可能会在乡村或现场散步,用我可信赖的相机将这些风景记录到屏幕上。 

Ilija:我来自瑞士伯尔尼。我在这里长大,但在克罗地亚也有根和亲戚。当我不工作时,我喜欢与家人和朋友共度时光,晒太阳,听音乐。我也喜欢解谜和下棋。 

Jakub:我来自布拉格。10多年前,我搬到了英国。我是一名承包商,大部分空闲时间都和家人在一起。我经常遛我的两条狗。 

Máté:我是一名31岁的软件开发人员,居住在匈牙利。目前,我在LastPass工作,负责保证我们的PHP后端保持现代化并将其接入云端。在空闲时间,我喜欢骑自行车、散步、旅行。但我最大的爱好还是编程。 

Arnaud:我住在法国,在一家SaaS公司工作,用PHP做着很棒的事情。当我不在那里工作或不使用PHP时,我倾向于在坐在电脑前或骑自行车。 

 

Sebastian:是什么促使您从事开源工作? 

 

George:这可能是一个奇怪的答案,但我会说因为我太懒了。这样说吧,我不太愿意为了某个特性去学习和接触一个全新的工具和生态系统,如果我喜欢其他项目或语言中的特性,我会努力将其作为一个功能添加到我已经熟悉的东西中。

Ilija:几乎所有的商业软件都是基于开源的。我认为如果没有开源,大多数科技公司都不会像今天这样存在。为开源做贡献是我回馈开源给我的职业机会的一种方式。 

Arnaud:对我来说,开源是灵活性和自由的代名词。我的动力可能始于20年前,当时计算机对我来说还很神奇,我安装了一个Linux发行版。在某个时候,我发现我可以下载所有的神奇的东西并且、破解它、修复它、改进它。这太不可思议了。现在我主要使用的都是开源软件,所以在开源项目工作同时也是一种回馈,并且还能改进我正在使用的软件。 

Jakub:从事开源工作让我有机会以有用的方式学习新事物,并让我能够回馈我使用的项目。 

Derick:最初是因为这是一个非常好的方法来学习新事物。我早期对PHP的大部分贡献都是我自己需要的。从那以后,我一直活跃在这一块,增强我需要的部分,但这也导致我不得不考虑更多人的需求,维护一些更受欢迎的项目,比如Xdebug。 

Máté:我的第一个“主要”开源贡献是Composer中的一个小功能。然后我创建了一些库,这些库也获得了一些关注。即使考虑到我的项目实现的规模有限,我为改善PHP生态系统所做的贡献对我来说也是一次奇妙的经历,并且至少有一些人发现我的工作很有用。相比之下,能够一天天对PHP本身进行改进,可能会让数百万开发者的生活变得更好,这才让人真正感到满足。

 

Sebastian:您对PHP的第一个贡献是什么? 

 

Máté:我从15岁就开始使用PHP,而且我长期关注PHP的内部邮件列表沟通。自从找到邮件列表后,我一直梦想着能够为PHP做出贡献,即使只是一点点改变。快进到2019年,当时Nikita启动了一个所谓的“stubs倡议计划”(PHP核心的改进,提倡给参数和返回值声明类型)。这是我开始职业生涯的完美项目。通过提交数百份PR,我可以从Nikita和Christoph等人那里学到很多东西,他们不知疲倦地审查了我的代码,并在我遇到困难时提供了帮助。 

Derick:早在2000年,我首先尝试为MySQL添加“子查询”支持。MySQL的查询语言不支持它,我想出了一种用C重写查询的天真的方法,即执行两个查询。我的第一个实际贡献是SWF在getimagesize()函数,然后将libmcrypt 2.4支持添加到mcrypt扩展中,我最终也重写了它。 

Arnaud:我首先探索了PHP代码库,因为我需要在PHP项目中使用第三方的库。我不得不写一个小扩展。我记得有一篇博文是关于zvals,它对我开始有很大帮助。后来我在PECL上为inotify上传了另一个扩展。在那之后,我不记得确切的时间表了。我想修复一个错误,所以我在错误跟踪器上发送了一个补丁。我还在wiki上找到了一个TODO并决定去做。这是在PHP 5.x时代。 

George:我首先为PHP文档的法语翻译做出了贡献,然后才开始编写英文文档,然后使用php-src来修正我在维护文档时发现的一些非常奇怪的行为。 

Ilija:那时我专业地使用PHP已经6年了,并且贡献过几次我的想法。然而,我能想到的大多数功能似乎都令人生畏,尤其是因为我没有任何C经验。然后我看到了Nikita的这条推文,关于如何throw可以更改为允许在表达式中使用。在新冠疫情开始那段时间很无聊,我正在寻找分散注意力的东西。这看起来很简单,所以我试了一下。实际的更改是单行的,但OpCache存在问题,需要Nikita和其他人的帮助才能解决。尽管如此,这足以吸引我并激励我继续推进RFC。 

Jakub:我曾经是一名PHP开发人员,遇到了一个名为fann的PHP扩展。由于它并没有真正起作用,我重构了整个扩展。这教会了我一些关于PHP内部的知识。一段时间后,我想正确学习bison和re2c等工具。当时,由于许可问题,需要一个新的PHP的JSON解析器。于是我写了一个新的JSON解析器,成为了PHP的核心贡献者。 

 

PHP武器库小编注:
fan,PHP的神经网络扩展。
bison,一个通用的解析器生成器,开发编程语言相关的工具。
re2c,将正则表达式转为C/C++的代码

 

Sebastian:您打算在PHP基金会赞助的这段时间里从事哪些工作? 

 

Máté:首先,我想完成我已经开始的项目:只读类(需要成功的RFC投票),将资源转换为对象,向stubs(PHP核心概念)添加常量,以及为使我们的文档更完整和更容易做其他基础工作维持。然后我的计划是改善内置扩展的开发人员体验,并继续努力使PHP成为一种更加一致和合理的语言。 

George:为了清晰起见,我计划主要研究类型系统以及重构扩展代码。例如,我想继续努力将资源转换为不透明对象。 

Ilija:我有一些事情想尝试解决:抽象数据类型、属性访问器、类型别名等等。我最大的目标是深入了解代码库(提高巴士因子),帮助维护,并帮助其他人。 

PHP武器库小编注:
巴士因子,项目管理概念,越高越好。简单来说,一个项目总有一些“不可替代的人”,一旦这些人出现意外,则项目可能面临瘫痪,(比如一个创业公司只有一个开发人员),像这样的人越多,整个项目就更“安全”。

Jakub:我计划主要致力于我已经参与的领域的维护和改进。具体来说,我想将大约50%的时间用于FastCGI流程管理器(FPM),20%用于OpenSSL扩展,10%用于JSON扩展,10%用于GnuPG扩展,最后10%用于流以及可能的其他核心部分。 

Derick:首先,我想清理所有日期/时间错误和报告,花时间充分理解和协助新的RFC,更专业的安全的@提醒人员,完成所有服务器管理任务,并提出一些新功能,例如与笨重的intl扩展相比,它可能是一个UString(Unicode字符串)类,其所有操作都具有更好的接口。 

Arnaud:我想帮助改进语言及其实现。我希望在PHP中看到的一个特性是自动捕获闭包,所以我现在正在着手实现它。我还想让一些编程问题更容易调试。例如,某些不受控制的递归情况可能会在堆栈溢出时导致分段错误,这没有给出任何有用的信息。另一个是内存耗尽错误不显示回溯(trace)。我想修复这些类型的问题,以及一般的错误。我对优化器和JIT也有一些兴趣,所以我一直在修复这方面的错误。最后,我希望在PHP中看到泛型,所以我可能想在某个时候做这方面的工作。 

 

Sebastian:感谢您花时间回答我的问题。我期待着看到您的工作成果让PHP对每个人都更好。 

采访原文: https://thephp.foundation/blog/2022/05/06/interview-with-core-developers/ 
本文由PHP武器库参考原文翻译,有任何问题,欢迎指出。

投票统计

是否原创:0 %

0 % Complete (success)

是否有价值:0 %

0% Complete

是否有素质:0 %

0% Complete (warning)

是否合法:0 %

0% Complete

   群组工具