首先,定义“更好”?这是一个非常主观的术语,完全取决于你要找的是什么。你是说更快吗?更广泛的使用?容易吗?提供更好的就业前景?框架和库的更大可用性?我可以继续说下去。
Python
Python和PHP哪一个更好,为什么?
Python的优势是什么?大量的内置和第三方库/模块,专门用于web开发和服务器管理(服务器管理也适用于web开发)。
这些第三方库设计良好,维护良好,易于安装,功能强大。
易于开发。如果你曾经用Python编程过,你就会知道它有多简单。
Django非常强大。它帮助替换JavaScript和PHP。
个人而言,我讨厌PHP和JavaScript。它们使用起来令人沮丧,而且都容易出现漏洞。更多的是因为PHP语言的缺陷;因为古怪的规范中的缺陷导致了对JS引擎应该如何实现的糟糕解释。
完全面向对象的。
非常适合数据操作和机器学习(如果你在平台上提供有针对性的广告,这一点很重要)。
有了正确的框架和模块(作为标准包含),您就可以很好地与数据库服务器集成,并为站点自动生成查询。
例如,如果用户在他们的账户中搜索特定的许可证密钥,框架通过将用户的操作转换为SQL查询来处理。
例2:如果管理员通过电子邮件地址搜索客户,框架会将其转换为SQL查询,然后将结果转换回来,并以css格式的HTML显示它们。
Python的优势是什么?
Python的弱点是什么?缓慢,很缓慢。比Python迷们承认的要慢。正如网上所说,PHP的速度快了3倍(有时快,有时慢,取决于情况)。
当你使用它进行开发时,你不能把它当成是在使用Python:你在使用一个框架(例如Django)。所以学习Python是不够的,你还必须学习框架。
Python远不及PHP的广泛使用,因此它的可雇佣性因素,特别是在web开发方面,是非常有限的。我听说有一项数据显示~80%的网站使用PHP -我无法验证这个数据,但我不会感到惊讶。
这种情况与速度慢有关,但是需要单独处理:资源使用。Python比PHP更占用资源。你可能会想,如果它利用了这么多可用的资源,那实际上可能有助于加速它……不,不,它没有。
Python总结:Python的OOP方面糟透了。如果您曾经用Java、c#或c 等语言进行过OOP,您就会理解我为什么讨厌它。任何依赖于此和super()的语言都没有做到这一点。它使您的代码看起来非常混乱,混淆了整个过程,并使开发人员容易出错。这只是没有必要——语言的整个方面感觉(我想我已经在这个网站的其他地方说过)就像被一条盲鱼用锤子栓住了一样……作为一个事后的想法。你猜怎么着?这是!好吧,它不是用锤子栓上的,是一条鱼。但这只是后来的想法,最初并没有打算成为语言的一部分(最初并没有包含它)。
它是一种糟糕的、限制性很强的OOP实现。再一次的意见。有些人喜欢它,但他们通常说C和c 是困难的和令人困惑的。
总而言之,这并不可怕,对吧?我个人认为,从就业能力的角度来看,与PHP相比,上面最大的问题是“市场份额”。
PHP
php
PHP的优势是什么?非常快。
完全面向对象的。
用于绝大多数后端网络服务和网站的“幕后”功能。
与SQL服务器以及几乎所有类型的服务器很好地集成。
自动生成对数据库的查询(参见Python示例部分的含义)
为web使用而设计的丰富的内置功能。
许多可用的PHP web API进一步扩展了可以做的事情。
其中很多是专门为PHP设计的,不能与Python & Django一起使用。
许多电子商务API
PHP的弱点是什么?php的语法糟透了。是的,这是一个观点,但它是一个非常广泛的观点。每一个和我交谈过的PHP程序员也都持有这个观点。如果你还不熟悉它,去看看。
SQL注入攻击。
如何使用PHP解决:
防止PHP应用程序中的SQL注入漏洞并修复它们
远程代码执行:
PHP应用程序中的bug可能会接受用户输入并将其作为PHP代码计算。
跨站脚本(XSS [X = Cross]):
存储XSS和反射XSS
绕过认证——从技术上讲,这是开发人员的一个错误,但是语言本身使它非常非常容易犯这个错误。
PHP的弱点是什么?
PHP总结:OOP和Python一样糟糕。可能由于语法的原因更糟。它仍然使用这个(但实际上是$this)
总之,这些漏洞非常可怕,但它们主要是由开发人员的错误造成的。好好了解PHP,不仅要研究“我如何进行PHP开发”,还要研究“PHP开发陷阱”和“PHP漏洞”,这样就不会有这样的问题了。
那么最终的结论是什么呢?好吧,不管Python迷们怎么说,Python不能完全取代PHP,因为存在通用的PHP专用API,而且PHP在行业中占主导地位。
我知道我已经讲了很长时间了,但这是我的最后一点,并且非常重要的一点是:开发人员应该选择一种“最好的语言,因为它是最好的”的想法是现代教育系统和初级开发人员的巨大失败。为了真正精通任何开发领域,无论是web、应用程序还是软件,你都需要掌握多种语言。同样的道理也适用于可靠的老板。
轶事:当我刚开始在这个行业工作的时候,我记得当我询问并且工作的开发人员告诉我他们知道汇编,C, c , c#, JavaScript,二进制和十六进制时,我留下了深刻的印象。
我现在不太感兴趣了,因为我知道C, c 。一些c#(学习更多),JavaScript, Python, Java, HTML, CSS,一些PHP(学习更多),SQL,二进制,十六进制…他们仍然比我更有经验和熟练,但我现在明白了,了解很多语言是正常的,是需要做的事情。
所以总结来说,关键不在于哪种更好,而在于理解在哪里和什么时候使用它们。并且,对于web开发,你应该学习的最基本的是以下内容:
超文本标记语言
CSS
JavaScript
PHP
JSON (XML替换)
SQL (MySQL, Oracle, MS SQL是3个主要的)-小心不同的“口味”
Python
对于一个职业来说,以上几点是绝对没有商量余地的。也可以选择学习Java。它对web应用程序很有用。