文/黄小天、李亚洲 (选自Hackernoon 机器之心编译)

2017 年可谓是网页应用与 API 之年,开发者不用每次重新发明轮子,而是利用脚手架和第三方库就能确保项目在几天内实时部署。

尽管 RESTful API 和跨平台库已经使网页开发容易起来,但依然没有解决阻碍并隔分开发者、管理者和消费者的由来已久的问题:PHP vs. Python,到底该选哪种语言?

PHP vs. Python ?

出于研发和项目预算的考虑,这一问题仍然是一个重要的讨论点。然而,这个问题对于想要在网页开发中做大的初学者来说也尤其重要。PHP 和 Python 是当今最为流行的网页开发语言,编写了互联网之中绝大多数网站。

相比于经验丰富的开发人员,初学者的需求相当不同。老练的开发人员学起新语言来几乎毫不费力。与之相反,初学者则需要渡过两个难关:他们不得不理解编程结构并学习实现它们;也不得不掌握对初学者毫无意义的句法。

一个相关的问题是开发老手的偏见。与 PHP 开发人员交谈,他们会说没有比 PHP 更好的语言。与 Python 开发人员交谈,情况也是一样。通常来讲,很少有开发人员会夸赞其不用的语言。

因此,本文不会提及 PHP 和 Python 各自的优缺点,而是探讨初学者首次选择语言时所要考虑的三个问题。余文将围绕着 PHP 和 Python 集中探讨这 3 个问题。

流行热度

毫无疑问 PHP 和 Python 都很流行。即使 PHP 和 Python 并不支持某个项目,某些项目经理和客户依然优先考虑使用它们。PHP 更是以压倒性的优势主导互联网市场 80% 的份额。

一些著名网站比如维基百科、Flickr、Tumblr、雅虎都由 Python 编写而成。而此后,社交巨头 Facebook 开始转向 PHP 框架,它可以并入 Facebook 平台和 APP 开发所需的一切功能。

当谷歌使用 Python 编写其一些知名项目之后,Python 奠定了其流行地位。随之 Python 逐渐流行起来,现在很多巨头公司诸如 YouTube、Reddit、Pinterest、Instagram 和 Spotify 都(部分或完全地)用其编写产品平台。

因此,在流行热度方面,PHP 与 Python 之间难分伯仲。每一天这两种语言都在编写着大量新项目。

可用框架和 CMS

一个框架是由社区贡献和维护的代码编写,它允许开发者快速上手应用而无须从头开始。典型框架包含数百个功能,开发者可以调用它们从而为应用添加具体功能而无须重新发明轮子。

PHP 提供了大量框架,开发者可以用它们创建通用和行业具体应用。PHP 框架比如 Laravel 和 Symfony 编写了数百万人使用的流行应用。PHP 开发者拥有由热情的社区人员维护的成熟框架的优势。

Python 确实提供了像 PHP 框架那样的选择。虽然用途广泛且强大,但 Python 框架的选项相比于 PHP 还是有限。Django 和 Flask 就是用户构建网页应用时的两个特殊选择。Python 框架数量有所增长,这是因为它逐渐成为主流项目的语言选择。

CMS 的内容管理系统是一个软件平台,为项目提供了极为灵活的基础。无论是简单的博客、电子商务店还是公司门户,CMS 能提供综合的解决方案,保证开发者和终端用户能够专注于商业案例,而非从头开始建立平台。

世界上最流行的 CMS、WordPress 都是 PHP 建立的。同样,世界上两大开源电子商务平台 Magento 和 WooCommerce 都是用 PHP 建立的。另外,Python 构建了有限的几个 Django 支持的 CMS。

在特殊情况下,PHP 有明显的优势,因为它拥有每个人所需要的一些东西。在许多情况下,PHP 在框架和 CMS 上提供更多、更通用的选择以匹配项目要求。

学习曲线

这是此篇文章的首要前提。学习曲线定义了掌握特定语言的难易程度。在编程语言中,学习曲线几乎趋于流畅,然后使用工具将设计转变为功能性代码。

在此,Python 相比 PHP 稍有优势。对新手而言,Python 代码更易读,也因此易于理解。PHP 一直都比较难,不受新手喜欢。但也因为规则困难,也很少有错。

在格式上 Python 容错度很高,代码不会因为一些小错误而崩溃。因此对初学者来说很有激励性。这也是为什么许多学校优先选择 Python 作为编程入门语言。

PHP 社区也在尽量使得该语言变得对初学者友好。通过课程与教程,PHP 专家正在让它变得和 Python 一样易于理解。

结语

选择首门编程语言是最困难的决定之一,PHP 和 Python 都值得我们关注。两种语言都提供了许多学习机会,包括用户友好的语法检查工具,使学习过程变得容易并获得扎实的语言基础。

我建议初学者两个语言都尝试下,然后根据个人目标、所在产业选择一个。虽然 Python 最易掌握,但 PHP 有更好的工作前景和技术资源。

php和python-PHP和Python如何选择?或许可以考虑这三个问题相关推荐

  1. 15天Python入门-3-流程控制-选择结构

    15天Python入门-3-流程控制-选择结构 时代赋能 生命的意义是成为你自己 已关注 1 人赞同了该文章 设想一个场景,你需要控制机器人和顾客打招呼,假设机器人(在大多数情况下)能够判断出顾客的性 ...

  2. arcgis python脚本实现从界面选择输入输出_arcgis python脚本实现从界面选择输入输出_ArcGIS Python编程案例(2)-使用ArcPy编写脚本......

    本章将涉及以下案例: 使用ArcGIS Python窗体 访问ArcPy 从脚本中执行工具 使用ArcGIS桌面软件帮助系统 使用变量存储数据 访问ArcPy中的模块 引言 地理处理任务往往是耗时且重 ...

  3. python初学者代码-Python-为什么Python是初学者的完美选择?

    原标题:Python-为什么Python是初学者的完美选择? 在过去的两年中,Python部落已经教会了成百上千个开发人员学会了他们的第一个编程语言.我们一直关注的一件事就是为一个初学程序员找到最好的 ...

  4. 想学python有什么用-我们为什么要选择学习python?学习python有什么用?

    原标题:我们为什么要选择学习python?学习python有什么用? 从网页编程到时髦的人工智能,机器学习,这个享有"瑞士军刀(万能工具)"盛誉的Python语言,你学会了吗?科多 ...

  5. python正规教育机构-Python培训机构多吗 选择Python培训这些你都知道吗

    Python培训机构多吗 选择Python培训这些你都知道吗 时间:2018-01-10     来源:Python培训常见问题 Python是时下互联网行业很火的语言,根据tiobe最新排名显示,P ...

  6. 国内哪里培训python比较好-python培训机构怎么选择?哪家比较靠谱?

    学习Python进入到互联网行业之中,是很多人的首选,而且大部分人都会选择Python培训的方式.现在市场上大大小小的Python培训机构有很多,质量层次不齐,教学质量也是良莠不齐的,但是无一例外,选 ...

  7. python版本选择-【小白学python】之一:版本选择

    如果你是一个初学者,或者你以前接触过其他的编程语言,你可能不知道,在开始学习python的时候都会遇到一个比较让人很头疼的问题:版本问题!!是学习python2 还是学习 python3 ?这是非常让 ...

  8. 08_索引与切片,Indexing,Python风格的索引,index_select()选择特定索引,使用...索引任意多的维度,使用mask索引,take索引

    1.8.索引与切片 1.8.1.Indexing 1.8.2.Python风格的索引 1.8.3.index_select()选择特定索引 1.8.4.使用-索引任意多的维度 1.8.5.使用mask ...

  9. python哪个方向工资高_【看完这五大Python就业方向,你选择哪个?】- 环球网校

    [摘要]当今世界充满了各种数据,而python是其中一种的重要组成部分.然而,若想其有所应用,我们需要对这些python理论进行实践.其中包含很多有趣的的过程,然后将其用于某些方面.其中,在就业上有五 ...

  10. python3.4学习笔记(九) Python GUI桌面应用开发工具选择

    python3.4学习笔记(九) Python GUI桌面应用开发工具选择 Python GUI开发工具选择 - WEB开发者 http://www.admin10000.com/document/9 ...

最新文章

  1. HTML5API(5)
  2. h5怎么加入php代码,HTML5主要新增标签的使用代码分享
  3. c语言圈子,C语言经典编程
  4. 首次揭秘:腾讯TDSQL分布式多级一致性数据库系统技术
  5. mysql 删除另一个表中的_mysql – 在一个查询SQL中删除两个表中的记录
  6. 使用匿名函数动态设置前置或者后置操作(装饰器模式的)
  7. 【英语学习】【WOTD】hypermnesia 释义/词源/示例
  8. 【clickhouse】如何监控Clickhouse的连接数
  9. 奇异值分解与低秩矩阵近似
  10. dell r740如何做raid_数据存储之七种RAID浅析
  11. python学习笔记第三节
  12. springcloud gateway 鉴权_SuperBoot框架是基于SpringCloud、SpringBoot敏捷开发框架
  13. AJAX的使用方式及教程
  14. 树莓派+超声波模块测距
  15. CSS基础常识问答(一)
  16. 吴恩达深度学习系列笔记
  17. 浮点数强制转换整数,四舍五入
  18. GAT - Graph Attention Network 图注意力网络 ICLR 2018
  19. PPT中如何插入指定大小的矩阵
  20. ubuntu 安装飞秋

热门文章

  1. CCF201703-1 分蛋糕(100分)【序列处理】
  2. Bailian2932 期末考试第三题——最大最小数之差【文本+进制】
  3. HDU2042 不容易系列之二【递推】
  4. UVA10735 Euler Circuit题解
  5. CCF NOI1139 高精度减法
  6. CCF NOI1013 识别三角形
  7. HDU2021 发工资咯:)【入门】
  8. HDU2007 平方和与立方和【序列处理+入门】
  9. 【数论】—— 多边形数的计算(三角形数,五边形数)
  10. 商场内自动扶梯的研究