关键要点
选择哪种语言开始编程可能是入门编程最困难的事情之一。选择太多了!您可以阅读这篇关于首先学习哪种编程语言的指南。但是,如果您在JavaScript和Python之间犹豫不决,本文将比较它们在学习方面的优劣。根据2023年Stack Overflow调查,JavaScript是最流行的语言,63.61%的程序员使用它,Python紧随其后,49.28%的程序员使用它。对于专业开发人员来说,JavaScript仍然是最受欢迎的。您可以在这里阅读更多关于这项调查的信息。本文将介绍Python和JavaScript,并进行并排比较,提供每种语言语法的示例,并建议您应该学习哪种语言。
Python和JavaScript概述
JavaScript是一种通常被解释执行的高级编程语言。它由Brendan Eich于1995年创建,此后已成为计算机科学行业中最流行的编程语言。它最常用于网页的客户端程序。通常,您会看到JavaScript作为Web技术三要素(HTML、CSS和JavaScript)的一部分。这三种技术构成了互联网上绝大多数网页的基础,JavaScript使网页具有交互性。
Python也是一种高级编程语言,既可以编译也可以解释执行,它由Guido van Rossum于1991年创建。它实际上并非以蛇的品种命名,而是以古老的BBC喜剧小品节目《蒙提·派森的飞行马戏团》命名。根据Python常见问题解答,Guido van Rossum在开发该语言的同时阅读了《蒙提·派森》的已发表剧本,并认为“Python”这个名字“简短、独特且略带神秘感”,因此他决定使用它。自1991年推出以来,Python已成为最常用的编程语言之一,通常是学校/教育机构首先教授学生的语言。与通常与HTML和CSS一起使用的JavaScript不同,Python作为一种独立的语言存在。多年来,Python在计算机科学的许多技术领域(如机器学习、人工智能和数据科学)中获得了很大的发展。
并排比较
由于这两种语言都很流行,因此很难选择首先学习哪一种。因此,我们将比较每种语言更细微的元素,并对哪种语言——JavaScript或Python——更好进行一些分析。我们将比较的主题是:
学习难易程度
当然,在两种语言之间做出选择时,最重要的是要考虑语言的学习难易程度。我们可以通过语法的复杂性、可用资源的数量和在线社区的规模来决定一种语言的学习难易程度。
Python的语法与英语非常相似。Python将许多逻辑运算作为英语中的单词提供(例如not、and、or),使其成为一种非常直观的语言,因此很容易上手。例如,如果您使用找到的标志搜索元素,则可以编写条件语句,例如,if not found。此外,Python通过缩进和冒号(在任何缩进之前)来管理代码的布局。这使得Python代码非常易于阅读。
虽然JavaScript的语法也类似于英语,但它需要更多地使用符号来代替单词。例如,在JavaScript中,我们有&&、||和!,而不是and、or、not。JavaScript还依赖于大括号和分号来分隔代码行。如此多的符号可能会使JavaScript更难阅读,因此也更难学习,特别是如果您没有以前的编程经验。
由于Python和JavaScript非常流行,因此有大量的文章、教程和书籍可用于帮助学习这两种语言,例如SitePoint上提供的那些。由于数量众多,很难确定Python或JavaScript是否有更多资源。除了在线资源和书籍外,编码社区还在众多平台(如Stack Overflow和Twitter)上以其庞大的在线影响力而闻名。作为最流行的语言,JavaScript自然应该拥有最大的在线影响力。
总之,从语法的角度来看,Python最容易学习,但JavaScript提供了更广泛的帮助。
应用
Python和JavaScript都被认为是“促进性语言”,这意味着了解其中一种(当然也包括两者!)会使更高层次的编程更容易得多。大多数软件开发人员/编码工作都需要您掌握Python或JavaScript或两者兼而有之。此外,软件开发最流行的子领域之一——Web开发——围绕着JavaScript展开。根据2023年Stack Overflow开发人员调查,65.82%的专业开发人员使用JavaScript,使其成为专业人员中最常见的语言。此外,JavaScript经常被认为是雇主需求最大的语言。LinkedIn搜索显示,英国有超过60,000个JavaScript职位空缺,而根据Indeed的数据,美国JavaScript开发人员的平均工资为108,981美元,我们可以看出JavaScript作为一种语言的需求量有多大。
但是,JavaScript通常仅用于Web开发。即使JavaScript可以用于其他应用程序,大多数JavaScript资源都集中在构建Web应用程序(各种复杂程度)上,因此找到帮助开发其他任何东西(特别是如果它很复杂)可能非常困难。另一方面,Python并没有真正受到这种缺点的影响,因为它不与计算机科学的一个方面相关联。Python可以应用于计算机科学的许多领域,例如机器学习、人工智能、数学建模等等。
因此,从技术职业的角度来看,学习JavaScript将为您打开许多大门。但是,如果您想使用编程来促进您对整个计算机科学的学习,那么Python将更适合。
外部工具(库和框架)
在学习Python和JavaScript的基础知识之后,编程旅程中的下一个重要步骤将是利用大量的外部工具,以帮助您的程序更上一层楼。
Python拥有各种非常强大的库。这些库实际上是使Python如此强大和流行的原因。一些最流行的库包括NumPy、scikit-learn和Flask。NumPy本身为Python带来了巨大的力量,它具有内置函数,可以快速处理高度复杂的数学场景。此外,NumPy促进了大规模的数学处理和建模,这使得Python非常适合研究和教育。Scikit-learn支持Python中的机器学习,这是一个非常强大的工具。最后,Flask允许我们在Python中为网页创建后端。
JavaScript工具Node.js的开发彻底改变了JavaScript,因为它同时允许在没有浏览器的情况下使用JavaScript,并允许使用JavaScript编写服务器端代码。这意味着可以编写不直接涉及Web开发的外部工具,从而导致在npm上发布的软件包比任何其他语言都多。在2022年9月,npm注册表中列出了超过210万个软件包。当时,这使得npm成为最大的单一语言(JavaScript)代码存储库。一年半后,JavaScript在可用的外部软件包数量方面仍然处于领先地位。
有很多JavaScript框架,其中最流行的两个是React和Vue。这些框架的总体目的是使Web开发更容易和更好。例如,React和Vue处理状态管理以处理数据,这使得开发大型和多层程序(需要大量数据)更容易得多。
虽然Python有很多外部工具,但JavaScript的工具更多。因此,在JavaScript中,您可以几乎保证能够找到您需要的库或框架,而在Python中,您在更利基的领域可能会遇到困难。
范例
范例是一种编程风格。有许多不同的编程范例,有些比其他范例更利基。例如,命令式(过程式)、函数式、逻辑式、面向对象、面向数据、脚本式、汇编、并发、基于列表、第四代、可视化等等。能够使用不同的范例进行编码是一项非常流行的技能,因为它可以为您的代码带来许多好处,例如提高代码的可维护性和某些代码元素的可重用性。因此,它很可能会成为您编程旅程的一部分。
Python和JavaScript都是多范例语言,这意味着您不限于始终以相同的风格编写程序。它们都支持命令式、面向对象、函数式和脚本式范例。如果您以前从未见过不同的编程范例,这里有一个简短的总结:
Python或JavaScript中的命令式编程非常相似,但在其他范例上它们差异更大。Python具有非常简洁的面向对象编程(OOP)语法,使用类来定义具有属性和方法(作为函数/过程)的对象。这种语法非常接近编程中对象的正式定义。这是因为在Python中,几乎所有东西都是对象(即使我们没有注意到它)。另一方面,JavaScript的面向对象编程语法要逊色得多,而且比Python直观得多。但是,JavaScript以其文档对象模型的使用而闻名,这使得基于事件的编程非常自然,并且比Python更容易得多。在制作Web应用程序时,基于事件的编程至关重要,因为我们希望能够使我们的网站具有一定的交互性。因此,JavaScript对于脚本范例来说是一种更好的语言(顾名思义!)。虽然可以在两种语言中实现函数式编程,但JavaScript在ES6更新中引入了const关键字和箭头函数,这使得JavaScript中的函数式编程更容易得多。
重要的是要记住,在学习面向对象和函数式编程时,最好使用专门用于这些范例的语言。例如,Java或C#用于OOP,Haskell或Elm用于函数式编程。因此,对于早期学习和试验OOP或函数式编程,Python和JavaScript将完美地工作。如果您热衷于学习脚本范例,JavaScript将更适合。
范例总结
主题 | Python | JavaScript |
---|---|---|
语法 | 优点:与英语的相似性使其非常容易学习 缺点:符号的使用使其相当难以学习 | 平局 |
在线资源 | 平局 | 平局 |
在线社区 | 缺点:Python并不像JavaScript那样流行 | 优点:JavaScript是最流行的 |
就业机会 | 缺点:并非所有工作都需要Python | 优点:由于Web开发是一个巨大的领域,几乎主要要求JavaScript |
更广泛的计算机科学用途 | 优点:Python可用于机器学习、人工智能、数据科学、数学建模等 | 缺点:JavaScript主要用于网站开发 |
外部工具的数量 | 缺点 | 优点 |
外部工具的有效性 | 平局 | 平局 |
命令式编程 | 平局 | 平局 |
面向对象 | 优点:类定义的语法与正式和理论定义非常相似 | 缺点:类定义的语法与正式定义相差甚远 |
函数式编程 | 缺点:在Python中是可能的,但使用Python的语法更难维护函数式编程的规则 | 优点:使用const和箭头函数有很大帮助 |
脚本式 | 缺点:是可能的,但如果没有文档对象模型,它就会变得非常棘手 | 优点:文档对象模型的使用使事件处理更容易 |
语法
尽管我们已经讨论了这两种语言的语法,但我们将更深入地研究这两种语言更细微的差异。我们将研究最标准的编程指令以及Python和JavaScript的不同之处。
打印
任何编程语言中一个重要的概念是打印。在任何好的初学者编程教程中,您编写的第一个程序都应该打印短语Hello, World!。以下是Python中的实现方式:
print("Hello, World!")
在JavaScript中:
console.log("Hello, World!")
如您所见,这些非常相似。但是,我们已经可以看到Python与英语的接近程度,而JavaScript则具有更技术化的感觉。
变量
编程中另一个重要的概念是能够使用变量。变量本质上是一种存储我们需要在程序中重复使用的数据的方法。Python和JavaScript在这方面大相径庭。例如,在Python中,我们只需要给出变量的名称和初始值:
best_number = 29 print(best_number)
而在JavaScript中,任何变量都必须用三个关键字之一声明——var、let或const(尽管const只能在变量的值不会重新赋值的情况下使用,在整个程序中保持不变):
var bestNumber = 29 let secondBestNumber = 20 const worstNumber = 27 console.log(bestNumber, secondBestNumber, worstNumber)
但是,根据现代JavaScript标准,var的使用已经过时,因此最好避免使用它,并对任何需要更改的变量使用let。
if语句
if语句是一种根据条件创建程序分支的方法。用英语来说,我们可以将其理解为:“如果这是真的,则运行此代码。否则,运行此代码”。对于JavaScript和Python,这非常相似。但在这里,我们开始看到前面讨论过的JavaScript括号和大括号的影响。在Python中,我们将编写:
if best_number == 29: print("That's correct! That is the best number") else: print("That's wrong...the best number is 29")
请注意,我们必须使用==来测试两个值是否彼此相等。此外,请注意每个if语句部分末尾的冒号。我们可以使用关键字elif(代表else if)向if语句添加更多分支。例如:
if best_number == 29: print("That's correct! That is the best number") elif best_number == 20: print("Close...that's the second best number!") else: print("That's wrong...the best number is 29")
在JavaScript中,我们编写:
if(bestNumber === 29){ console.log("That's correct! That is the best number") } else if(bestNumber === 20){ console.log("Close...that's the second best number!") } else{ console.log("That's wrong...the best number is 29") }
如您所见,我们使用{}大括号而不是Python中的冒号,并且必须将if语句的代码包含在括号中。此外,我们必须在JavaScript中编写===而不是==。最后,重要的是要理解,在JavaScript中,我们不需要缩进才能运行代码,我们可以像这样编写代码:
if(bestNumber === 29){console.log("That's correct! That is the best number")} else if(bestNumber === 20){ console.log("Close...that's the second best number!") } else{ console.log("That's wrong...the best number is 29") }
但这看起来非常混乱,JavaScript本身就很难阅读!因此,大多数人都试图将缩进作为其代码的一部分。
for循环
for循环是一种编程中的迭代技术,当我们想要重复执行一段代码一定次数时,我们会使用它。对于我们的示例,我们希望将for循环执行29次(显然)。因此,在Python中,我们编写:
print("Hello, World!")
在这里,x是一个临时变量,它的值在for循环的每次迭代中都会发生变化:在第一次迭代中,x = 0,在第二次迭代中,x = 1,在第三次迭代中,x = 2,依此类推。因此,我们的程序将输出0,然后是1,然后是2,依此类推,直到28。如您所见,range函数由两个限制界定:0和29。但是,上限29不包括在内。JavaScript具有完全相同的原理,但语法完全不同:
console.log("Hello, World!")
分解一下,我们有三个用分号分隔的部分:
如您所见,JavaScript具有更手动设置,需要更多符号。尽管这种设置更难阅读,但它实际上与其他著名语言(如Java和C)非常相似。此外,JavaScript(如上所述)依赖于使用不同的括号和大括号来分隔代码,而Python仅依赖于缩进和冒号。
while循环
while循环是编程中的另一种迭代技术,它充当if语句和for循环的混合体。while循环将执行一段代码,直到满足某个条件。例如,我们希望继续输出Wrong!,直到best_number等于29。在Python中,我们将编写:
best_number = 29 print(best_number)
!=表示“不等于”,其中!表示not。因此,当best_number不等于29时,我们运行print语句,这意味着while循环将运行直到best number为29。在JavaScript中:
var bestNumber = 29 let secondBestNumber = 20 const worstNumber = 27 console.log(bestNumber, secondBestNumber, worstNumber)
这些非常相似,只有细微的差别,例如!==而不是!=,以及我们上面讨论的所有差异。
语法总结
语法完全关乎语言的编写方式以及它对读者来说是什么样的。很容易看出Python的外观要干净得多,以至于即使是以前从未编程过的人也能阅读简单的Python程序并理解它所实现的目标。另一方面,JavaScript与大多数编程语言一样,更喜欢符号而不是单词。这使得外观和布局更具数学性。也许令人惊讶的是,JavaScript的语法实际上与其他流行语言(如Java)非常相似。因此,总的来说,如果我们只考虑语法,Python肯定比JavaScript更容易学习。但是,JavaScript具有更易于转移的语法,这意味着一旦您学习了JavaScript,学习Java或C等其他语言就会容易得多。
结论
现在我们已经概述了Python和JavaScript,重要的是要记住,学习任何一种都不会对您造成任何伤害!任何编码都比没有编码好!但是,从更技术性的角度来看,如果您想学习编码以寻找软件开发工作,或者您有其他语言的经验,那么我们建议您从JavaScript开始。如果您只是为了学习而学习编码,我们建议您使用Python,因为它提供了进入编码世界的更容易过渡。
以上是JavaScript vs Python:您应该先学习哪一个?的详细内容。更多信息请关注PHP中文网其他相关文章!