PHP is much better than you think
Rants about PHP are everywhere, and they even come from smart guys.When Jeff Atwood wrote yet another rant about PHP, it made me think about thegood parts of PHP.
对PHP的抱怨到处都有,他们有时甚至来自于一些聪明的人。当Jeff Atwood写下另类对PHP的抱怨的时候,它让我想起了PHP好的方面。
The biggest problem of these rants is that they come from peoplestuck in the old days of PHP. They either don't care or they don't want toadmit that PHP actually evolves at a very fast pace, both at the language levelbut also at the community level. In fact,
it evolves much faster than any otherlanguage or web platform. It has not always been the case, but the last 5 yearshave been an amazing journey for PHP.
这些抱怨的最大问题在于他们的记忆仍然停留在对PHP过去的回忆上。他们既不关心也不想承认,实际上PHP发展的速度非常快,不管是在语言水平上还是在社区建设上都是如此。事实上,它比任何其他的语言或者Web平台的发展都要快。虽然不一直是这样,但过去的5年对于PHP来说是一个辉煌的5年
Before talking about the amazing things the PHP community hasachieved recently, let's have a look at some interesting numbers: PHP is usedby 77.9% of all the websites whose server-side programming language is known.WordPress is used by 16.6% of all the websites
in the world. If you have a lookat the top three CMSes, for the websites that use a monitored contentmanagement system: Wordpress is first with 54.3%, Joomla is second with 9.2%,and Drupal is third with 6.8%. Three products written in PHP.
在开始谈论PHP社区最近取得的成就之前,让我们看一些有趣的数据:在已知的服务器端编程语言编写的网站的网站中,77.9%用到了PHP。在全世界所有的网站中,16.6%是使用了WordPress(PHP语言组成的框架)。看一下排名前三的CMSes----使用了监视的内容管理系统的网站:Wordpress以54.3%的使有率排名第一,Joomla以9.2%的使用率排名第二,Drupal以6.8%的使用率排名第三。这三个产品都是用PHP来编写的。
Now, let me tell you a secret, the PHP "tour de force":Despite the changes over the years, PHP is still the easiest language to learnfor non-technical people: it allows anyone to create dynamic websites fasterthan with any other technologies, it allows anyone
to host websites cheaply andwithout any hassles. PHP is probably not the best designed language in theworld, but it lets you get things done, and you can't argue with that.
现在,让我告诉你一个秘密,PHP的”绝技”:尽管这些年来一直在变化,但对于非计算机专业的人来说,PHP仍然是最容易学习的一门语言:它允许任何人创建动态的网站,并且创建的速度比任何其他的技术都要快,它允许任何人廉价的创建网站,使用网站而且没有任何麻烦。PHP可能不是世界上最好的设计语言,但它可以让你把事情完成,而你不能反驳这一点。
PHP, the Language (PHP这门语言)
PHP 5.0 (released in 2004) brought us a very solid object model...wait a minute, I'm talking about something released almost 8 years ago. Fastforward now. The latest PHP release, PHP 5.4, comes with all the bells andwhistles you might dream of in a modern
web language: yes, PHP supportsnamespaces; yes, PHP supports closures; yes, PHP supports traits.
PHP5.0(在2004年发布)给我们带来一个非常坚实的对象模型。等一下,我一直在讨论一些8年前就有的事情了。时间过得很快,最新发布的PHP版本是PHP5.4,它配备了所有的钟声和口哨声,这可能就是你做梦想的一种现代Web语言。似的,PHp支持命名空间;是的,PHP支持包;是的,PHP支持特性。
It took some time, but PHP 5.4 also comes with some nice syntacticsugar that makes the whole experience better than ever: yes, PHP supports [] todefine arrays; yes, PHP supports calling a method on a newly created object((new Foo())->bar()); yes, PHP supports
getting an array item from anyexpression ($foo->bar()[1]).
它需要一些时间,但PHP5.4也带来了一些好的语法,这使得所有的体验比以前更好了。是的,PHP支持[ ]来定义数组;是的,PHP支持在创建一个新的对象的时候调用一个方法((new Foo())->bar());是的,PHP支持从一个表达式中获取一个数组。
PHP has even learned from its mistakes: register_globals andmagic_quotes are definitely gone.
PHP已经吸取了过去的教训:register_globals和magic_quotes这种定义已经被废弃了。
Last, but not the least, PHP even comes with a built-in web serverthat eases local testing... and it starts in a matter of micro-seconds.
最后,但并非最不重要是,PHP甚至还带有一个内置的Web服务器,使能在本地测试。它的启动也就是几微秒的事情。
Next challenges: How do we "upgrade" all the old tutorialstalking about PHP on the web? What is the best way to support the WebSockettechnology in a PHP application?
下一个挑战:我们如何在Web上来升级所有关于PHP的旧教程?在一个PHP应用程序支持WebSocket技术最好的方法是什么?
PHP, the Ecosystem(PHP的生态系统)
Having a good language is great, but having a great ecosystem iseven better. And the PHP ecosystem has evolved a lot in the last few years.
具有良好的语言是伟大的,但有一个很大的生态系统则是更好的。PHP的生态系统在过去的几年里发展了很多。
随机推荐
- #20 Python文件
前言 前面几节枯燥的模块终于结束了,想要完全掌握前几节的模块需要不断的练习才行,毕竟眼过千遍不如手过一遍嘛.在一些项目需求里,要对文件进行IO操作,毕竟重要数据不可能打印到屏幕上而不去保存,Pytho ...
- 深入MySQL复制(二):基于GTID复制
相比传统的MySQL复制,gtid复制无论是配置还是维护都要轻松的多.本文对gtid复制稍作介绍. MySQL基于GTID复制官方手册:https://dev.mysql.com/doc/refman ...
- 学会这个删库再也不用跑路了~ --技术流ken
前言 相信每一个学IT的人或多或少都听说过从删库到跑路这个梗~下图也是在各种交流群屡禁不止,新人听着也是瑟瑟发抖. 人们茶余饭后,街头巷角难免要问... 下面技术流ken就教给各位新手们一招删库再也不 ...
- 分布式系统监视zabbix讲解八之自动发现/自动注册--技术流ken
自动发现(LLD) 概述 自动发现(LLD)提供了一种在计算机上为不同实体自动创建监控项,触发器和图形的方法.例如,Zabbix可以在你的机器上自动开始监控文件系统或网络接口,而无需为每个文件系统或网 ...
- 分布式系统监视zabbix讲解一之zabbix安装--技术流ken
zabbix概述 Zabbix是什么 Zabbix 是由Alexei Vladishev创建,目前由Zabbix SIA在持续开发和支持. Zabbix 是一个企业级的分布式开源监控方案. Zabbi ...
- 利用反射跟自定义注解拼接实体对象的查询SQL
前言 项目中虽然有ORM映射框架来帮我们拼写SQL,简化开发过程,降低开发难度.但难免会出现需要自己拼写SQL的情况,这里分享一个利用反射跟自定义注解拼接实体对象的查询SQL的方法. 代码 自定义注解 ...
- Java核心技术 对象与类
对象与对象变量: 要想使用对象,就必须首先构造对象,并指定其初始状态,然后,对对象应用方法. 在Java中,使用构造器构造新实例.构造器是一种特殊的方法,用来构造并初始化对象. 在实际开发中,通常需要 ...
- C#文件夹权限操作整理
using System.Security.AccessControl; using System.IO; using System.Security.Principal; 取得目录的访问控制和审核安 ...
- vue IE 报错 引用babel-polyfill
一.vue 项目报错 vuex requires a Promise polyfill in this browser 在网上找到下面三篇文章,然而和我的项目都不太一样. 我的项目基于 基础模 ...
- DLL加载,设置相对路径
DLL加载,设置相对路径 1. 加载dll方法之一:(./ 代表当前目录,../ 代表上层目录)包含头文件的相对路径(当前路径为源代码路径,路径 “../../” 当前项目文件夹上级目录),链接lib ...