是什么让我的PHP退役了

开发 后端 前端
本文是从 I'm Retiring from PHP 这篇文章翻译而来。对于我的个人业余项目和未来的编程创收活动,PHP作为我的一种编程语言的选择,已经从此退役了。

对于我的个人业余项目和未来的编程创收活动,PHP作为我的一种编程语言的选择,已经从此退役了。作出这个决定并不容易,但是对于我热爱的编程事业的延续,这是必要的。你知道,我可不是仅仅因为热爱编程才做程序员,因为我不会干其它的。

历史

一切都开始于1999年,我8年级。互联网真正开始显示出魅力,我想编程。学习了基本的HTML,我可以做出网页,但我想让这些网页有更多的交互功能。Perl成为了选择,嵌入Apache里作为CGI。Perl最初不是做这个的,对于一个对Unix,Linux,Apache和HTTP是如何工作的一无所知的孩子,我不可能配置它们、让它们跑起来。

最终我找了一个web主机,上面所有的东西都已经配置好了,我就这样可以神奇的使用了。算是吧。我花了数月琢磨Perl,但这个东西实在让人困惑。有谁还记得那些正则表达式和大堆的代码来解析请求变量、获得一个$POST 和 $GET 数组?对我来说绝对是天书,我拷贝粘贴,假装知道自己在干什么。有谁还记得恐怖的Matt’s Script Archive这个脚本吗?

  1. # From Matt's Script Archive  
  2. if ($ENV{'REQUEST_METHOD'} eq 'GET') {  
  3. @pairs = split(/&/, $ENV{'QUERY_STRING'});  
  4. } elsif ($ENV{'REQUEST_METHOD'} eq 'POST') {  
  5. read(STDIN, $buffer$ENV{'CONTENT_LENGTH'});  
  6. @pairs = split(/&/, $buffer);  
  7. }  
  8. foreach $pair (@pairs) {  
  9. local($name$value) = split(/=/, $pair);  
  10. $name =~ tr/+/ /;  
  11. $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;  
  12. $name =~ tr/\0//d;  
  13. $value =~ tr/+/ /;  
  14. $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;  
  15. $value =~ tr/\0//d;  
  16. # Build a hash with $name and $value 
  17. }  
  18.  

数月后,我风闻有一种语言叫PHP。你只需要向服务器上传一个.PHP文件,一切都搞定了。你直接能访问表单域里的变量,它们可以跟在URL后面提交。不须用正则表达式分析环境变量。相当的迷人。

 

php logo

 

不仅访问GET 和 POST 变量是如此的容易,连接数据库也是要命的简单。所有的都是在Windows上?!愿望很快就成了现实。有人不久写出了WAMP的安装包——因为安装Apache和MySQL仍然不是一个很轻松的事。感觉就像是在天堂里了。最终,我开始编写能把数据存入数据库,取出数据,并操作它们的web应用了。

当然,现在知道的什么SQL注入攻击,XSS攻击,CSRF攻击,session注入攻击或其它的流行的安全漏洞问题,当时一无所知(公平的说,我肯定,当时整个行业都不太清楚这些东西)。

但我很快的就开始编程了,疯了似的。我开发论坛,我开发基础的网站生成器,日志和内容管理系统。我喜欢这些。总有一些新的东西要学,总有一些新的东西要做。爸爸的公司给了我很多便利,特别是他们的软件开发组。那是一个在休斯敦的小web开发公司,我有机会在里面和很多比我年长的程序员一起工作,之后我开始能独自承担大的网站开发。整个大学期间都在做这个,甚至开发了一个总共有16862行代码的PHP系统,提供给一个非盈利组织使用(在那时,我已经知道了常见的网站漏洞,并进行了修补)。

Rails和Django并没有吸引走我。我非常了解PHP,我有自己的框架,能够很快的让东西开发完成并跑起来。

就这样,我经历了MVC框架变革过程。作为一个PHP开发者,我的工作情况越来越好(更好的待遇,更好的职位),但慢慢的我发现,在我自己的业余时间里,写出的代码非常的好,可是在工作时间接触那些公司的代码却很糟糕。不是一般的糟。没法再糟了。做这些业余项目让我保持清醒,因为公司的那些程序在提醒我,让我痛苦不堪。

热情枯竭

这就是为什么PHP从我的业余项目和新的创收活动中退役的原因。我疲倦了PHP。热情耗尽了。我感觉对这种语言已经达到了最高水平,如果不转向新的语言,对这种语言我就没什么可做的了,我可不想落入这种状态。

我作为一个职业PHP开发人员挣了很多钱,我计划继续下去。但我的业余项目和个人业务创收上将会使用其它的语言和框架。

此外,PHP并不强调好的整洁的编码规范。有很多地方它实际是违背好的编码规范的。结果,你就看到了到处都是大堆的恐怖的PHP程序,跟这些程序打交道简直就是噩梦。新程序员可以通过阅读一些过时的速成教程很快学会这种语言,他们写出的很烂的代码,打包到产品里,这样的水平一年就能挣到6.5万美元。我亲眼看到过这种事情发生。PHP的易用和流行就像吸引苍蝇一样吸引了大量的初级开发人员。

初级的程序员会认为他们把代码格式化一下,加一些注释,他们的代码就整洁了。他们错了,他们格式化的恰恰是些烂代码。我在工作上整天遇到这样的代码。

我作为PHP热爱者的日子结束了。那么,下一步怎么办?

Scala

 

scala-logo

51CTO推荐专题:Scala编程语言

 

一年前,当以JVM为基础的语言(Clojure,Groovy,Scala,等等)开始流行的时候,我注意到了Scala。看起来很有趣,但我很担心从PHP转向一种不熟悉的语言。在过去的12年里,我知道所有的PHP的特征和妙处,而对于新语言我不掌握任何情况。现在,我不再顾虑这种担心了,因为我对学习新的东西更感兴趣。

我怀疑我是否有足够的智慧掌握这种新语言。并发?PHP上从来不担心这种事情,Apache处理了所有类型的线程。Actors?静态类型?变量上的不可变值?真正的命令式编程?使用PHP从来不需要考虑这些东西。

我买了一本这种语言的创始人Martin Odersky,Lex Spoon 和 Bill Venners 写的《Scala编程(Programming in Scala)》。极好的书,我饶有兴趣的读着这本书。我的编程的热情又回来了。

业余项目

那么,我的下一个业余项目会发生怎样的变化?对于任何一个决定学新语言的人,这可是个不幸的消息,从金钱上从时间上都是不幸的。下一个项目将会暂停,直到我感觉能像使用PHP那样使用这种新语言后,我才会重新启动。现在不是时候。我本来计划是在六月完成Kwolla 2,七月初上线。现在这个时间计划是不能遵守了。

我还有另外一个项目打算使用Scala。我在评估各种框架,发现Thrift 不可思议的有意思的东西。进入这个未知的领域同样让我产生了惊恐,但同时也有兴奋。

结束语

我会在博格里公布学习Scala的进展。我在用Scala做MilqIt,希望年底前把它做完。我希望你能和我一起走过这段旅程,订阅我的博格更新,希望你能再次分享我对编程的热情。

原文链接:http://www.aqee.net/2011/06/27/im-retiring-from-php/

【编辑推荐】

  1. 一位反JavaScript主义者的觉醒
  2. 快速判断JavaScript对象是否存在的十个方法
  3. JavaScript重构深入剖析
  4. 19个很有用的JavaScript库强烈推荐
  5. 15款超棒的JavaScript开发工具推荐
责任编辑:陈贻新 来源: 外刊IT评论
相关推荐

2013-09-11 09:57:41

苹果iPhone5S售价iPhone5C售价

2020-06-01 14:02:25

Vue.js框架模板

2022-04-29 08:00:36

web3区块链比特币

2012-02-27 09:12:58

程序员

2018-04-20 14:43:59

2012-04-23 22:38:14

私有云数据中心

2018-01-18 22:26:16

SDNNFV网络虚拟化

2009-09-04 05:34:57

KVM性能红帽KVM

2023-04-23 14:09:28

2023-07-23 17:19:34

人工智能系统

2020-03-15 17:39:32

MVC架构技术

2023-07-06 10:45:03

CIO领导力

2015-11-17 10:37:14

容器在线扩容集群管理

2010-10-15 10:35:18

2021-10-25 12:14:28

智慧城市物联网

2011-06-08 10:24:58

程序员

2022-02-13 23:37:43

加密货币比特币货币

2022-04-28 11:12:15

芯片

2012-02-23 15:02:46

程序员

2020-05-20 21:59:30

智慧城市物联网IOT
点赞
收藏

51CTO技术栈公众号