分类: 系统运维
2006-09-04 09:24:13
Cal Evan:这是另一条我的关于2006年开放源码大会的系列采访的报道。这次,我得到特许坐到了Andrei Zmievski 的旁边并和他谈论Unicode、Yahoo和其它PHP话题。Andrei出生在乌兹别克斯坦,在16岁的时候去美国学习。他现工作于Yahoo的底层架构的团队,并且在攻读语言学硕士学位。
在我大声呼喊出他的名字后,他耐心地坐下来,采访开始了。下面就是采访的过程。
Andrei,让我们来谈论一下有关PHP6中的Unicode,因为你在其中起到至关重要的作用。首先你能告诉我们为什么Unicode对PHP是重要的?
好的,事实上,Unicode应该在5年前就存在于PHP中了。不过非常糟糕的是人们没有在PHP中加入它。早就应该做一些事情为那些不是美国和英国本土出生的软件开发者提供国际数据接口,让他们的工作更简单。所以,从那时起就建立了许多临时的解决方案,例如mbstring,现在我们可以丢弃它了。
我们给PHP引入Unicode支持的真实想法是因为每一个高层次的,以web为导向的语言都应该具备这个功能。原因非常的清晰,处理国际化的文档、多语言的文档需要合适的工具。他们在语言层面必须能可靠的应用。这背后的推动力大多是因为Yahoo在国际上的多角色,我们也曾经经历过其他程序员经历过的问题:在需要创建支持国际化workarounds和完全不同的库的应用软件,如果Unicode存在于PHP会让事情就会简单得多。
对于我来说,它的开端是我在最初写出提议,建议Yahoo让我去做这方面的事情。
谢谢你对背景的介绍。现在,让我们来谈谈项目本身。我想,现在每个人脑子里的第一个问题应该是,这个项目进行得怎么样?
进行得很好。不过,这一年的早些时候进展得有点缓慢,因为我在Yahoo还有其他的事;所以,这样依靠Zend,想尽办法,在最后的两个月,将项目赶上了。我们现在正稳步前进。我的目标是在2006年第四个季度的时候能预先发布一些PHP的Unicode。希望这个发布会在第四季度的中期进行。能早一些更好。那就是说这有一些需要支持Unicode API接口扩展的栏目表。在第一列扩展中可能有12或者15个。那样,在我们预先发布PHP6的时候结合支持Unicode在语言中的代码就会足够多。人们可以使用,并且让我们有时间回顾。它不是beta版,更不是alpha版;它只是Unicode的预先发布。
太好了,我知道大家会盼望Unicode的预先发布,去测试。当你在PHP中实现Unicode的时候,最大的障碍是什么?
实际上,实现国际化的问题点并不在于技术而在于思维的转化。你必须训练你自己和其他人,它真正意味着什么。你不得不丢弃诸如这样的偏见:“我们一贯以这种方式去做,那为什么不可以以同样的方式处理。”这回答起来是很容易的,但实际套用以前的方法会第一时间遇到困难。在怎样使PHP国际化这个开端问题上已经遇到了一些阻力。但是大家现在正在接受那种思维并接近我们的目标。
真的,转变思维是很难的,但它正在发生。因为大家都明白我们是住在一个国际化的世界里而并不只是单个的国家。
你能告诉我们关于细节方面的事情,它什么时候转化?要用多长时间?首先做的是什么?
就如同PHP的核心Zend Engine引起人们关注的时间一样,我说情况会有90%或95%的相似,现在面临的挑战是使第一列扩展修改完成。已经有了一些好的发展开端,XMLReader已经完成而且大家正在为其他扩展工作。我们也会仔细搜查PHP的标准函数并且浓缩他们。我自己已经开始做那部分了,希望有人加入我。
另外一件事就是关于documentation。某些函数会被微小地改变作用因为它们现在支持Unicode了。那就需要在PHP手册中备注和说明。还需要一个对Unicode的介绍:它对PHP的意义,和它在PHP6中能做些什么。这些都还没有做,但是我想是应该花一些时间去做使它呈现在documentation前部的。
如果可以的话让我们来谈论下你在Yahoo的工作吧。你能告诉我们你在那工作的一些项目吗?
在Yahoo,除了在PHP方面的工作以外,我同其他Yahoo的开发者为Apache1.3和2.0版本创建客户端补丁。我们使它适合Yahoo的需要。
我知道Yahoo仍主要运行PHP4,你有PHP5的首次使用的时间表吗?
很多Yahoo 的properties都在移往PHP5。在这里我没有确切的数据在受伤,但是我们正在向PHP5转移。
好的,现在让我们把关注点调向未来:关于PHP6,你能在PHP的未来看到什么?
你要知道,如果我早知道,我就去股票市场上打赌而不是做现在的事情了。PHP在适合才出现的技术方面非常擅长。它也非常地擅长于使新技术与Web相结合。所以,我认为不管未来几年会出现什么样的新技术,PHP都会快速地去适应。
对于Unicode来说,它实际上是一项老技术了。不像AJAX,Unicode已经存在了大概10到15年了。所以这有点不同的是,我们正在去适合一项老技术,而不是一向新的。在其他技术方面,我想PHP至今为止都做得很好。就PHP7来说,你不能说它以后会变成的样子完全和使用者希望的不一样。使用者通过请求和讨论同样对开发有很大的作用。
Along those same lines,is there any one piece that you think PHP is missing?
个人认为,从对一个语言的看法来说,我想PHP需要支持像first class objects这样的函数。Closures也会很好。那只是我个人的观点,从一个web技术来看,我并不认为它缺少什么。
明显地,靠雇佣你,还有Rasmus, Sara Goleman, Jeremy Johnstone,以及其它PHP组织的高级会员,使Yahoo能够自己持续地使用PHP,为什么他们选择PHP作为他们的粘合语言?
我不知道你是否看过Michael Radwin’s presentation的那个话题。如果你没看,能在线看到。基本上,Yahoo拥有许多互联网技术去开发front-end页面和站点。对于任何一项技术,个个都需要投入维持费用,培训,开发工具,测试等等。要把关注点要集中在哪一部分容易出问题,因为我们必须要去维护。我们开始寻找的时候,我们想要那种可以共享的语言,以使我们能够轻松地雇佣那些已经经过培训的开发者。我们同样需要那种有积极地维护的并且有美好前景的语言,这样Yahoo就 不必担心承受独自开发的负担。最后,我要了一些已经有的证实记录,以便我们能够审查什么地方出错了,做了一些测试后就决定用PHP。
那么,让我们现在向后看一点,你是怎样进入PHP组织的呢?
当我为一个小的web公司开发在线发布系统的时候,我开始用PHP。我们使用了卖主所有的语言和数据库。我们转移向PHP基于和Yahoo同样的原因,我们想要一种语言能有积极地维护和更丰富的功能。
当Covalent分布Apache作为PHP 2/FI。我们关注到它,虽然它看起来非常好但是我们并没有立即采取行动直到6个月以后PHP3的出现。那是一个很大的改进,所以我们开始学习它。在我们开始移植并应用到PHP的时候,我开始注意一些PHP本身缺少的东西。我注视着API并且想了一下,好的,我实际上可以把那些缺少的块写出来。我是这样开始的:最开始在心中筹划,之后我浏览邮件列表看见人们提交的补丁需求,所以我决定以提供帮助开始这件事情。我最初写了WDDX extension,接着就继续贡献,越来越多。
为了更有精神一些,让我们从笼统的概念去看科技。什么样的新科技的出现或是将要出现真正地使你高兴?
就我个人的爱好,那当然我与我学的和我喜欢的有关的,计算机语言学和自然语言学的处理。这将应用于许多问题搜索引擎到问题分析,信息恢复,信息推论,这一类的问题。我想它将会在接下来的两、三年内,比目前为止应用得更多。
最后,你每天都会浏览的website或blog是什么呢?
Planet-php.org是一个非常好的集合PHP的blog。但是,我真正的兴趣是摄影,有一个叫做 的站点每天都有摄影爱好者上传图片,我非常喜欢。
(这篇文章写给那些慷慨给我他生命中30分钟的人,非常感谢Andrei花时间和我谈话。对PHP6的预先发布,迫不及待。)