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的生态系统在过去的几年里发展了很多。
随机推荐
- 翻译wiki(一):Bios boot partition
文章翻译自wiki,水平有限,若有错万请见谅.原文:https://en.wikipedia.org/wiki/BIOS_boot_partition BIOS boot partition是一个分区 ...
- IIS域名转发
在IIS中设置Http重定向 界面操作如下: 最终通过上面的操作生成了一个配置文件如下: 我这面就是一个空的目录,里面仅包含这个配置文件,就可以实现转发啦
- Android Studio 使用Menu
首先在res目录下创建一个文件夹名字随意 在对创建的文件夹下在创建一个菜单 名字随意 参看布局 可以看到你的菜单 可以选择添加是么样的菜单 接着要到主活动中重写 onCreateOptionsMenu ...
- spring_07使用spring的特殊bean、完成分散配置
一. 前言 分散配置思路:创建properties文件,添加数据,在beans文件中先配置properties文件,再在bean中使用占位符引用数据 对于bean的生命周期中的很多处理接口,处 ...
- python_字符串的操作
一:字符串的方法与操作 *注意:首字母为l的为从左边操作,为r的方法为从右边操作 1.__contains__()判断是否包含 判断指定字符或字符串是否包含在一个字符串内,返回值为true或者fals ...
- 【Java每日一题】20170120
20170119问题解析请点击今日问题下方的“[Java每日一题]20170120”查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; import jav ...
- idea项目git版本回退
idea项目git版本回退 一.查询提交历史 项目上右键,点击Git,点击Show History 二.复制版本号 我这里有两个测试的版本,我的当前版本是[二],所以我选择[一],右键,选择Copy ...
- 前端了解即可:OSS客户端如何使用,以实现资源分离
前一阵,应为项目需要,才简单整理了一下oss客户端的使用,做静态资源分离,及在项目中引入路径.接下来讲解记录一下,阿里云对象存储(Object Storage Service,简称OSS)客户端的基础 ...
- 父类通过泛型获得子类Class类型 以及Type体系
1.背景介绍 在实现SSH框架中,DAO层向数据库持久化的过程中,因为大部分保存对象的方法都会调用到sava():所有索性就把save delete update select 方法进行封装到父类中, ...
- Android为TV端助力 转载:Android绘图Canvas十八般武器之Shader详解及实战篇(下)
LinearGradient 线性渐变渲染器 LinearGradient中文翻译过来就是线性渐变的意思.线性渐变通俗来讲就是给起点设置一个颜色值如#faf84d,终点设置一个颜色值如#CC423C, ...