Python比JavaScript好吗?(请提供事实)
我最近学了JavaScript,突然听说Python这个语言...
我应该去学Python,还是继续用我现在的JavaScript基础呢?
如果你有一些“事实”可以分享,我很想听听!比如效率、难度等级等等,等等...
谢谢 :)
12 个回答
关键的一点是,JavaScript 很难进行改变(因为浏览器中存在着数十亿个旧版本的实现),所以早期设计时犯的错误(当时匆忙得很;-))至今仍然存在于这个语言中。(可以参考 Crockford 的 《JavaScript: the good parts》,他是个 JS 专家和爱好者,书中对这个语言的优缺点进行了合理的讨论)。如果将来像 use strict;
这样的指令能被纳入 ECMAscript,情况可能会有所改变(尽管为了兼容旧的、常常有问题的浏览器,编程仍然会像拔牙一样痛苦——就像写 Python 代码从 1.0 到 3.1 一样不会变!)。
Python 的发展方式比较传统,因此随着时间的推移,它的语言变化是渐进的(而且它的设计也没有那么匆忙,[[可以说,这不是“事实”;-)]]在很多方面一开始就有了更好的设计)。
因此,JavaScript(到目前为止)在“服务器端”并没有取得太大的成功,程序员在这方面有选择(尽管他们仍然需要使用 JS 来编写“浏览器端”的代码)。但这并不是因为语言本身有什么问题。JS 是全球使用最广泛的语言(那些数十亿的浏览器……),许多公司和开源团体在竞争实现和支持框架上投入了巨额资金(Python 在这方面也不差,但差别还是存在的),因此在 JS 的一侧,实际的改进(速度、警告等)不断增加(尽管语言本身无法改进)。
通过严格的自我编程规范(例如,Crockford 的 JS “lint” 程序)以及良好的支持框架(如 jQuery、Dojo、Closure 等)和工具(Firefox 可能有最好的 JS 跟踪和调试插件,但其他浏览器也在快速追赶),最近几年 JS 变得可用了。可能有一天,一个快速的服务器端实现(可能会强制使用“use strict;”或类似的规范,一旦得到官方认可;-))将会开始获得相当的市场份额,因为很多网页程序员已经掌握了一些 JS 知识(他们必须这样做,以便制作好的网页应用)。
需要注意的是,JS 的坏名声(除了那些公认的“无法去除的坏部分”;-))很多是来自于那些其实并不“属于” JS 语言本身的东西:有问题的实现、HTML DOM 经常混乱的情况(尤其是有问题的浏览器实现)等等。未来的服务器端部署没有理由要重现这些令人抓狂的缺陷!-)
这两者的用法其实挺不一样的。Javascript主要是在用户的浏览器里运行,也就是我们说的客户端脚本语言;而Python则主要在服务器上运行,是一种服务器语言。所以在一个网站上,你可以同时使用这两种语言。不过,我不太确定这是不是你想问的内容。
如果你刚开始学习编程,Python是个不错的选择。它很容易上手,文档也写得很好,还有一个活跃友好的社区。因为它是一种脚本语言,你可以轻松尝试各种代码,并立刻看到结果。你可以从编程基础开始,先学函数,然后再学习类。
而Javascript对很多程序员来说简直是个噩梦。它虽然也容易学,适合写小脚本,这正是它的设计初衷。但一旦你开始做一些大项目,就会发现很难管理代码。这就是为什么出现了像CoffeeScript、Typescript和Dart这样的语言改进。
正如spinon所说,这些编程语言的使用方式非常不同。Python是一种通用的脚本语言,有时也可以用来做服务器端的工作。而Javascript最初只是用来让网页更有互动性。但现在,它在服务器端和桌面应用程序中也变得越来越流行,尤其是通过Node.js。