阅读更多

2顶
0踩

编程语言
引用
记者:卢鸫翔,张新慧
本文为《程序员》原创文章,未经允许不得转载,更多精彩文章请订阅2016年《程序员》http://dingyue.programmer.com.cn

“PHP之父”Rasmus Lerdorf性格直接坦荡,措辞简练精辟,字里行间透着一股“务实至上”的精神气。在参加“PHP全球开发者大会”[1]前夕,这位“实干家”接受了《程序员》采访,分享了自己的编程感悟。



工作重心

我参与的项目总与用户直接相关。我曾多年担任雅虎工程师,负责连接数亿终端用户的基础设施,这些基础设置仍在服役。而如今,我在Etsy也是负责连接百万用户的后端基础设施。技术其实只是解决问题的工具,是抽象的锤头、锯子,并没什么了不起,而真正振奋人心的是用技术提升了百万人的生活品质。

“问题”为指引

比起“计算机科学家”,“工程师”的称谓更得我心。论这两者的区别,我认为后者更专注于解决眼前的问题。之所以开发PHP,并非因为我喜爱编程或语言设计,反倒是因为不喜欢。1993年的那套编程把式,让我没法轻松迅捷地解决Web问题。于我而言,只有当遇到困难,才会翻翻书,查查资料来充实自己,技能不是为了提高而提高,我的每一个决定都是以解决问题为中心的。

经验与教训

我犯了很多错,有些事后才意识到;但也取得过好于预期的成果。最重要的经验是:解决Web问题的确应该从一开始就专注相关的整个生态系统。20年来,针对Web问题的解决方案层出不穷,而质量却参差不齐,没几个能构建起完整的生态圈,并为普通人所用。

PHP 7何处费思量?

开发PHP 7那最后10%最费时,也最无趣。不过强大的新功能和性能突飞猛进,还是让积极心态占了上风,也激励了整个团队,帮我们很快熬了过去。不过,每次更新都有做不完的测试、解决不完的平台问题,调查不完的诡异边缘情况,看不完的漏洞报告,没个尽头。

吸纳新人

我知道前不久Emacs的版本控制系统从BZR换成了Git,不过对于吸纳新贡献者,我觉得它们其实平分秋色。Git近来更受欢迎,方便蜻蜓点水式的添砖加瓦。不过对于长期的忠实贡献者,版本控制系统无关紧要。良好的文档和方便新贡献的流程才重要呢。

假如能重新设计PHP

假如时光能倒流,肯定有我希望能改进的地方,比如区分Keyword大小写。刚开始PHP不过是种HTML模板语言。九十年代初,人们争论HTML标签是该大写、小写还是大小写混合。我不想争来争去的,就把PHP的模版标签做成不区分大小写的,这个做法至今还在沿用。

JavaScript在吞噬其他语言吗?

PHP和JavaScript的演进几乎同步。我与Brendan Eich(JavaScript设计者)是同一时期开始的,他的重心显而易见是客户端,而我则是服务器。如果你写客户端应用,除了JavaScript,别无选择——浏览器支持哪种语言就得用哪种;但如果重心是服务器就很不一样了。

写客户端代码者众,所以会JavaScript的人多,而如今它在服务器这厢也开花结果了。但JavaScript跟PHP一样只是解决方案之一,而非唯一,这样挺好。就像我刚说的,语言只是解决问题的工具,不是受人膜拜的宗教。如果眼前有问题,而你更倾向于JavaScript,那么它就是最佳选择。

编程原则

只要有效、安全、够快,就发布,然后解决下个问题。三者缺一不可,否则就要回头检查代码,好抓紧时间解决下一个问题。

未来展望

关于编程语言,我还真没想过这些工具未来会经历什么,我更关心的是它们能否解决当下的问题。拿Etsy举例,作为手工工艺品网站,它能在富有的买家和穷苦艺术家之间牵线搭桥,让他们摆脱贫穷的窘境吗?我们的基础设施能帮助其他公司去应对同等重大的问题吗?我们的解决方案是否强大到一转眼客户的问题就去无踪了呢?这些才是我关心的。

过去,我不喜欢编程,现在还是不咋喜欢。我只喜欢以解决问题为中心,这点永远不变。
  • 大小: 186.4 KB
2
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 深入探索Flex正则表达式的奥秘

    Flex正则表达式是一种强大的文本匹配和处理工具,在后端开发中有广泛的应用。通过掌握Flex正则表达式的使用方法,开发者可以提高代码的效率和可维护性,从而更好地完成后端开发任务。在上述代码中,我们使用了一个...

  • Flex正则表达式判断中文或全角字符代码

    本框值的length取出的是字符个数,并不是字节长度,如果含有中文或者全角字符,一个字符是2个字节,下面与大家分享下具体的判断方法,感兴趣的朋友可以参考下哈

  • flex 正则表达式匹配规则

    正则表达式扫描的优先级 1. 先根据空格,tab,回车分割字符串,作为正则表达式匹配的基础 2. 找到完全匹配的正则表达式,以排列在前面的优先级为高 3. 如果找不到匹配的表达式,那么从头开始截取字符串来查找合适...

  • Flex 正则表达式大集

    Flex 正则表达式 搜集了 很久了!

  • Flex正则表达式

    1.Flex正则表达式规则 1.1普通字符 字母、数字、汉字、下划线、以及后边章节中没有特殊定义的标点符号,都是"普通字符"。表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。 举例1:表达式"c...

  • 100个正则表达式的入门实例和40个组合类型正则表达式实例

    100个正则表达式的入门实例和40个组合类型正则表达式实例

  • PHP和javascript常用正则表达式及用法实例

    在计算机科学中,正则表达式用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在WEB开发中,正则表达式通常用来检测、查找替换某些符合规则的字符串,如检测用户输入E-mai格式是否正确,采集符合规则的...

  • 正则表达式大全

    无意中从网上查找到一篇关于正则表达式的好文章,就进行了分享给大家,希望对大家有帮助。亲爱的读者朋友,如果你点开了这篇文章,说明你对正则很感兴趣。想必你也了解正则的重要性,在我看来正则表达式是衡量程序员...

  • Flex 正则表达式

    Flex正则表达式中的通用规则 Flex正则表达式有很多值得学习的地方,本文向大家介绍一下Flex正则表达式中的通用规则,希望本文的介绍能让你有所收获。 本文和大家重点讨论一下Flex正则表达式的其他通用...

  • 正则表达式

    正则表达式

  • Flex 正则表达式整理

    先看一些常用的正则表达式写法 正则表达式是一种通用的标准,大部分计算机语言都支持正则表达式,包括as3,这里收集了一些常用的正则表达式语句,大家用到的时候就不用自己写了 ^\d+$ //匹配非负整数(正整数 +...

  • flex正则表达式

    验证数字:^[0-9]*$ 验证n位的数字:^/d{n}$ 验证至少n位数字:^/d{n,}$ 验证m-n位的数字:^/d{m,n}$ 验证零和非零开头的数字:^(0|[1-9][0-9]*)$ 验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?...

  • Flex 正则表达式验证

    一、常用验证 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ ...验证零和非零开头的数字:^(0|[1-9][0-9]*)$ ...验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?...

  • flex 正则表达式的使用

    RegExp 类允许使用正则表达式(即可用于在字符串中执行搜索和替换文本的模式)。 可以使用 new RegExp() 构造函数或将 RegExp 文本分配给一个变量,从而创建新的 RegExp 对象: var pattern1:RegExp = new ...

  • 一.正则表达式转换为有限状态自动机:正则表达式转NFA

    算法如下: 最简单的正则表达式是单字符匹配,例如 a 匹配输入字符”a”, 那么该表达式的NFA 构造如下: 那么,两个这样的正则表达式合成的连接表达式ab 可以表示如下: 实际上,它是先分别构造出两个表达式的NFA, ...

  • js 正则表达式

    js 正则表达式

  • 自己动手写编译器:代码实现正则表达式到NFA状态机

    代码实现正则表达式到NFA有限状态自动机

  • JavaScript正则表达式概述

    JavaScript正则表达式概述1 正则表达式概述1.1 什么是正则表达式1.2 特点1.3 正则表达式的使用1.4 模式修饰符2 特殊字符2.1 边界符2.2 预定义类2.3 字符类2.4 取反符3 量词符与括号字符3.1 量词符3.2 括号字符3.2 ...

  • 正则表达式(RE)、有限自动机(FA)和词法分析(LA)

    关键词:正则表达式、RE、有限自动机、DFA、NFA、词法分析器、Thompson算法、子集构造算法、Hopcroft算法

  • Python项目-自动办公-56 Word_docx_格式套用.zip

    Python课程设计,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。

Global site tag (gtag.js) - Google Analytics