编程语言和脚本语言有啥区别? [复制]
Posted
技术标签:
【中文标题】编程语言和脚本语言有啥区别? [复制]【英文标题】:What is the difference between a programming language and a scripting language? [duplicate]编程语言和脚本语言有什么区别? [复制] 【发布时间】:2011-03-29 23:57:34 【问题描述】:可能的重复:What’s the difference between a “script” and an “application”?When is a language considered a scripting language?
Web 应用程序核心语言和 Web 脚本语言有什么区别?像 Python 这样的网络脚本语言的确切用途是什么?
当我们将 Python 等脚本语言与 Java 或 .NET 等 Web 应用程序编程语言结合使用时,Web 应用程序编译器能否理解脚本语言代码并进行编译?
是否可以使用 Python 等脚本语言编写全新的 Web 应用程序?
【问题讨论】:
我认为将 Python 标记为脚本语言已经不公平了 @deceze:不是真的重复,不。充其量是相关的。 【参考方案1】:1.没有区别。 “编程语言”和“脚本语言”之间的区别已经过时,而且从来没有真正明确定义过。过去大致是这样的:脚本语言倾向于解释而不是编译,人们倾向于在其中编写更小的代码(“脚本”)。然而,如今,这种区别不再有用了,我们将 C# 和 Python 都称为编程语言。
2. 根据定义,Java 或 C# 编译器分别编译 Java 和 C#。这样的编译器通常也不能编译用另一种编程语言(如 Python 或 javascript)编写的代码。
3. 是的,可以用 Python 编写 Web 应用程序——事实上,这是更传统的方法。许多 Google 网络应用程序(例如 Google Docs)都是用 Python 编写的。 MediaWiki(由 Wikipedia 使用)是用 php 编写的,而 LiveJournal 是用 Perl 编写的。这三种编程语言非常相似(当然与 Java 和 C# 相比)。使用编译的、静态类型的、基于 VM 的语言(Java 和 C#)来编写 Web 应用程序是最近的发展。
【讨论】:
你能说明为什么脚本化和编译的区别不再有用了吗?我只是好奇。 @dehmann:因为区别太模糊了。如今,大多数语言都是两者的混合体。例如,Java 被编译成 Java 字节码,然后字节码被 JITted。 JITting 算作编译还是解释?相反,Perl 传统上被认为是解释型的,但 Perl 6 更接近于被编译成它自己的字节码类型,然后再进行解释。将 SQL 查询转换为执行计划是编译还是解释?最后,即使你直接编译成本机机器码,处理器不仍然“解释”吗?【参考方案2】:主要区别在于scripting languages 往往用于特定目的,也就是说,它们往往有一个限制域,例如JavaScript
用于浏览器脚本,同样,许多DB's
包含某种脚本语言,用于对 DB
特定任务进行编程。
Programming languages,作为一种名称,倾向于指通用编程语言,其中一个很好的例子是Java
,它可用于开发从移动应用到企业应用的多种不同类型的应用程序。
【讨论】:
这是有争议的。有人可能会争辩说,Java
也具有限制性,因为它需要 JVM 才能运行。
另外,ActionScript
呢?它与 Java 一样,源自 ECMAScript,仅在其自己的运行时(AVM/AVM2/“Flash Player”,AIR)中运行,也用于开发移动和桌面应用程序。当然,ActionScript 并不总是那么强大,但它现在是一个完美的例子,说明语言如何从一种愚蠢的小脚本语言发展为成熟的面向对象编程语言,同时保持它的脚本标题并模糊脚本和脚本之间的定义。编程语言。【参考方案3】:
Web 应用程序核心语言和 Web 脚本语言有什么区别?像 python 这样的网络脚本语言的确切用途是什么?
编程语言是编译的,并且通常是强类型的。
脚本语言是解释的,并且通常是弱类型的。
Python 可用于任何其他图灵完备语言可用于的任何事情:)
当我们将python之类的脚本语言与Java或.net之类的Web应用程序编程语言一起使用时,Web应用程序编译器是否可以理解脚本语言代码并进行编译?
不。嗯,有 jython,一个用 java 编写的 python 解释器,所以从这个意义上说,是的。但实际上,没有。
是否可以使用像 python 这样的脚本语言来编写一个全新的 Web 应用程序?
是的,但是 python 没有很多像 php 或 asp 这样的内置网络东西语言。但是,使用 Django 之类的框架,完全有可能相当快地构建完整、专业的 Web 应用程序(我发现即使对 python 本身了解甚少)。
【讨论】:
以上是关于编程语言和脚本语言有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
C语言中signed char和char有啥区别? [复制]