【问题标题】:Python over JavaScript? (Facts, please) [closed]Python 优于 JavaScript? (事实,请)[关闭]
【发布时间】:2010-07-16 15:06:53
【问题描述】:

我最近学习了 JavaScript,突然听说 Python...

我应该去学习 Python 还是坚持我的基本 JavaScript 知识?

如果您有一些“事实”,我很想听听!比如效率,难度等等,等等……

谢谢:)

【问题讨论】:

  • 看到标题我立刻想到了skulpt.org
  • 提示:说出你想要完成的事情。如果它需要在浏览器窗口中运行,我肯定会使用 Javascript。
  • @Eli Bendersky: 天哪,太棒了
  • 苹果绝对比橙色好。它有更广泛的友好耕种,他们很容易吃。
  • 看看这个:visitmix.com/labs/gestalt/samples/getting.started/… 如果你不介意使用一点 Silverlight/.NET 框架,如果你想在浏览器中使用 Python,这是一个不错的选择。 (看源头,更重要)

标签: javascript python


【解决方案1】:

Python 是继 JavaScript 之后学习的一种很好的第二语言,因为它们有很多相似之处,例如

  • 它们都是内存管理的
  • 它们具有相似的数据结构 — JavaScript 的对象和数组很像 Python 的字典和数组
  • 它们都大量用于与 Web 相关的工作 - 浏览器中的 JavaScript 和 node.js 等服务器端上下文中的 JavaScript,Django 等 Web 框架中的 Python。

但是,Python 的面向对象...与 JavaScript 的基于原型的面向对象的东西完全不同。

如果您所做的唯一编程是在网络浏览器中操作网页,那么 Python 对您没有任何直接用途(目前只有 JavaScript 在浏览器中运行)。但是学习另一种编程语言通常会给你新的方式来思考你已经知道的语言。学习 Python 可以帮助您编写更好的 JavaScript。

【讨论】:

    【解决方案2】:

    这两者的用法通常完全不同。 Javascript 主要用作客户端脚本语言,而 python 是基于服务器的语言。因此,在网站中,您可以同时使用两者。但不确定这是否是您想知道的。

    【讨论】:

    • 这在 2014 年不再是真的了。见 NodeJs
    • JavaScript 和 Python 都是通用的脚本语言,至少在 2015 年是。
    【解决方案3】:

    IMO Python 可能更容易学习(已经教授过入门课程)。

    此外,JavaScript 的一大烦恼是在浏览器中运行。这本质上使得调试问题变得更加困难。

    就生产级语言而言,Python 更像是一种通用编程语言,而 JavaScript 则旨在构建动态 Web 应用程序。

    如果你想进入编程领域,你绝对应该学习一门更通用的语言,例如 Java 或 Python。

    【讨论】:

    • 越来越多地使用 JavaScript 作为非浏览器、服务器端语言 - 请参阅 node.js 了解初学者。不知道为什么,但有。 . .
    • 有趣 - 我发现浏览器中的 javascript 比几乎任何服务器端逻辑都更容易调试。
    【解决方案4】:

    Javascript 主要用于客户端(浏览器),Python 主要用于服务器端 - 因此它们满足不同的需求(忽略 Python 到 JS 转换器和全部)。

    不过我还是建议学习 Python,因为它影响了 ECMAScript,而且语法非常相似,都是面向对象的,都是很棒的语言。

    2018 年更新:我仍然建议将 Python 作为第一语言而不是 Javascript,因为它只是一种更漂亮、更优雅的语言……尽管 Javascript 现在可以用于两种服务器-多亏了 node.js 的客户端和客户端,因此它在各个方面都更加有用。

    http://hg.toolness.com/python-for-js-programmers/raw-file/tip/PythonForJsProgrammers.html

    【讨论】:

    【解决方案5】:

    如果您只是学习一门语言,那么没有比 Python 更好的了。这是一种容易上手的语言。这是有据可查的。它与一个庞大、活跃和友好的社区相关联。由于它是一种脚本语言,因此您可以轻松尝试并立即看到结果。您还可以从编程基础开始,从学习函数开始,然后进入课程。

    Javascript 是许多程序员生存的祸根。它很容易学习,并且适用于设计目的的小型脚本。但是一旦你开始做大事,就很难跟踪了。这就是为什么出现了像CoffeeScriptTypescriptDart这样的语言修改。

    正如 spinon 所指出的,这些编程语言的使用方式非常不同。 Python 是一种通用的脚本语言,有时可以用来做服务器端的工作。 Javascript 过去仅用于在网页上构建交互性。然而,如今它在服务器端和桌面应用程序中也变得流行起来,如Node.js

    【讨论】:

    • 我会说 JavaScript 是非常先进的,如果你发现一个大型项目难以跟踪,那么你就没有正确地维护你的资源。框架可以在这方面提供帮助,请参阅 sproutcore.com 作为大型项目多么容易的一个很好的例子。即使您没有使用高级库,一份 JavaScript 的副本,Good Parts amazon.com/exec/obidos/ASIN/0596517742/wrrrldwideweb 也会让您步入正轨。
    • 天哪**,永远的@Pullets!您见过其中一个 sproutcores 外部 javascript 文件吗?我不会说那么容易;)我在不阅读时花了大约 5 分钟向下滚动,只需按住小滚动箭头(按钮右角):D
    • 您是在谈论构建的 SproutCore 项目还是源代码?我每天使用的文件很容易修改,因为它们被MVC,逻辑函数,最后是对象分成了许多更小的文件。
    • 注意:这是一个非常过时的回复; javascript 最近发展了很多,像 node 和 angularjs 这样的项目使它更容易/更好地用于大型项目(服务器内外)。另请注意,v8 javascript 解释器比标准 python 快很多。我喜欢 python,我仍然使用它比任何其他语言都多,因为它有很棒的库,但是关于 javascript 的 cmets 是不正确的。
    • JavaScript 的核心在各方面都比 Python 简单得多。元组和列表之间没有区别。对象和字典之间没有区别。 a.ba['b'] 做同样的事情。命名参数无需学习特殊语法;您只需传递一个带有所需属性名称的对象参数。 CommonJS 和 ES2015 模块更易于使用(没有__init__.pypyenv,您可以通过相对路径等来要求)。我认为初学者在 JavaScript 中学习的东西比 Python 少。
    【解决方案6】:

    如果你需要问,那么我会说不,因为你不需要它的用法。

    【讨论】:

      【解决方案7】:

      关键的事实是 Javascript 很难改变(因为浏览器中存在数十亿个旧实现),所以在早期(而且非常匆忙;-)阶段犯的设计错误今天仍然存在。 (请参阅 Crockford 的 Javascript: the good parts,了解 JS 专家和爱好者对其好坏部分的合理讨论)。如果像 use strict; 指令这样的东西进入 ECMAscript,这种情况可能会改变(尽管以支持旧的、经常有问题的浏览器的方式进行编程,仍然就像拔牙一样——就像编写 Python从 Python 1.0 一直运行到 3.1 的代码将是!-)。

      Python 以更传统的方式部署,因此多年来逐渐的语言变化增强了它(它的设计也不那么匆忙,[[可以说,不是“事实”;-)]]从一开始就设计,在很多方面)。

      因此,Javascript(到目前为止)在“服务器端”并没有取得多大成功,程序员可以在其中选择(尽管他们仍然必须将 JS 用于“浏览器端”代码)。但这没有任何内在的东西。 JS 是迄今为止世界上部署最广泛的语言(那些数十亿浏览器......),许多公司和开源团体在竞争实现和支持框架方面对它进行了巨额投资(Python 在这方面也没有懈怠,但是差异仍然存在),实际改进(速度、警告)因此不断堆积在 JS 方面(即使语言本身无法改进)。

      具有严格的自我强加的编程纪律(例如由 Crockfor 的 JS 的“lint”程序强制执行)和良好的支持框架(jQuery、Dojo、Closure 等)和工具(Firefox 可能是最好的附加组件) JS 跟踪和调试,但其他浏览器也在朝那个方向冲),JS 在最近几年变得可用。可能在这些日子里,一个快速的服务器端实现(可能会强制执行“use strict;”或类似的,一旦官方祝福了;-) 将开始获得实质性的立足点,只是因为这么多的 web 程序员已经有一些 JS 知识(他们必须这样做,才能制作出好的网络应用程序)。

      请注意,大部分 JS 的坏名声(除了承认的“无法删除的坏部分”;-) 都来自不真正“属于” JS 作为一种语言的东西:错误的实现,混乱的HTML DOM 经常会出现(尤其是带有错误的浏览器实现)等等。未来的服务器端部署没有理由重现这些令人抓狂的缺陷!-)

      【讨论】:

      • 这个答案已经过时了,你应该删除它。 ES2015 增加了大量的语言特性,人们开发了极其复杂的 Babel 转译器以实现早期采用,证明 JavaScript 能够像 Python 一样改变。 JS现在在服务器端也被广泛使用了。
      • 完全同意你@Andy。
      【解决方案8】:

      JavaScript 通常用作客户端脚本语言——也就是说,它会被您的浏览器下载并执行。然而,Python 通常不与网络耦合。它可以用作服务器端脚本语言,也可以用于任何类型的脚本和应用程序。但它不是一种客户端语言,因此不能直接与拥有完全不同受众的 Javascript 相提并论。

      从语言层面来看,Javascript 很糟糕而且功能失调(难以调试、笨拙的面向对象),而 Python 很漂亮且富有表现力。当然,这是主观的:-)

      【讨论】:

      • 我不确定为什么每个人都说 Python 不是客户端语言。它是一种通用语言,可以适应任何需求——使用 wxPython 之类的东西,Python 真的可以在客户端上创造奇迹。 “不擅长”和“不擅长”是有区别的。
      • “我不确定为什么每个人都说 Python 不是客户端语言。” — 我认为它们的意思是“在 Web 浏览器中运行”的意义上的“客户端”。我不知道有什么浏览器能像运行 JavaScript 一样运行 Python。
      • 除此之外 - 还有几个 python-to-JS “编译器”。 PYJS 举个例子。
      【解决方案9】:

      出于什么目的? Javascript 在某些领域(例如 Web 开发)是王道。

      Javascript 和 Python 并不相互排斥。为什么不两者都学?

      【讨论】:

        【解决方案10】:

        JavaScript 和 Python 都是针对不同问题的出色语言。

        JavaScript 知识在处理网络、编写网页和浏览 html DOM 时非常宝贵。

        Python 是一种脚本语言,适用于任何机器上的大量事物。

        【讨论】:

          【解决方案11】:

          视情况而定。

          您想使用专门针对网络浏览器的语言进行编程吗?坚持使用 Javascript

          你想写……除了网络浏览器之外的任何东西吗?学习 Python。

          Python 是一种出色的初学者语言,而不仅仅是一种初学者语言。 Google 使用它,NASA 使用它,还有许多其他组织使用 Python。

          【讨论】:

            【解决方案12】:

            与 Python 通常是服务器端和 JavaScript 客户端一样,Python 的设计不仅易于学习,而且易于阅读,并鼓励更高效的环境。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2011-08-17
              • 1970-01-01
              • 1970-01-01
              • 2017-02-18
              • 1970-01-01
              • 2013-10-07
              • 2014-07-22
              相关资源
              最近更新 更多