用于Web开发的脚本语言与编译语言

时间:2010-06-03 13:02:09

标签: language-agnostic

虽然我来自编程的Web开发方面的纯PHP背景,但我也花了很多时间在桌面上使用C#和C ++。

我真的不想引发任何火焰战争,但是:

什么时候应该使用脚本语言而非编译语言进行网站开发?
(反之亦然)

为了澄清,为了这个问题,我将“脚本语言”定义为PHP,Python或Ruby等解释性语言,并将“编译语言”定义为类似C#的强类型编译语言。 ,C ++,Java或VB。

7 个答案:

答案 0 :(得分:17)

取决于: - )

在...

  • ...您希望部署应用程序的位置和方式
  • ......贵组织工程师的技能组合
  • ...您希望与哪些第三方组件集成或合并

部署

如果您需要能够在许多不同的平台上部署解决方案,您可能会发现使用PHP比使用Java更好(例如)。有数十万个Java托管服务提供商,但可能有数百万个PHP托管服务提供商。 (我说这是一个Java负责人,他发现PHP“充其量”。)

这也适用于操作系统。除了单声道,.Net的东西会限制你进行基于Windows的部署(或者落后于最前沿,并且必须非常非常严格地测试你带来的每个第三方组件,以确保它没有Mono ...问题)。

技能组

在环境或语言中加快速度是非常重要的。对于我们大多数人来说,掌握基础知识非常快,但是你可能没有做出最好的架构/设计决策,因为你(在环境/语言方面)相对较弱。技能计数。

与此相关:技能组招聘计数。雇用具有3 - 4年经验的PHP开发人员,或具有3 - 4年经验的Java开发人员,或者C#开发人员,或者......?

是否更容易(和/或更便宜)

购买/寻找/整合与建设

在您的目标开发区域中,您要与哪些服务器端组件或软件包集成? PHP有一个浩大的可用的数组,就像Java一样,C#或ASP.Net也是如此。但它们是不同的东西(大体上),所以你要看看你真正想要使用的东西。

结论

所以我认为这不是编译脚本(在今天的世界中)的问题,更多的是关于什么是最符合你的其他标准的问题我正试图这样做。

附录:两者/和

当然,总有“两者兼有”。例如,我现在在两个主要的,不相关的环境中工作,两者都使用脚本和编译资源的组合。 (其中一个是Tomcat上通过Rhino的Java + JavaScript,另一个是IIS上编译的COM对象+ JScript [再次,服务器端]。)

答案 1 :(得分:3)

程序员可以用任何语言编写好/坏的快/慢可伸缩/不可解代码。虽然,某些语言和技术使得它更难做到。根据我的经验,使用脚本语言,您可以比使用Java等编译语言更快地生成中小规模的应用程序。但是,随着应用程序的大小增加,编译语言变得更适合于我认为这来自强类型对象,更深层次的体系结构层来管理任务,以及更多QA框架来验证事物正在运行的任务,因为它们应该随着更改发生。

答案 2 :(得分:2)

我发现这主要是一个意见问题。起初我讨厌asp.net提供的预编译的web应用程序,但我已经习惯了,所以我不再讨厌了它。它有优点和缺点:

  • 预编译的Web应用程序易于部署,通常您只需要更新bin-directory
  • 预编译的Web应用程序表现良好
  • 你不需要上传源代码,这是很好的imho。

N

  • 更新预编译的Web应用程序通常意味着Web应用程序已重置,因此除非您更改了会话状态,否则它将结束所有会话并将所有人都记录下来
  • 重建大型Web应用程序可能需要一些时间,这会增加到您首先编写更改所花费的时间。我有时候不耐烦了。

我一直都很喜欢在PHP项目中更新一个文件而不必重建项目或类似的东西是多么容易,另一方面,.net有一个很好的IDE,允许你调试每个,从后端(C#,VB.net)到前端(Javascript),在一个包中。 但是又一次;两者都有优点和缺点。

答案 3 :(得分:2)

我不会在编译语言和解释语言之间划出如此明显的区别 - 这实际上只是一个实现细节,并且往往随着时间的推移而变化(比语言本身更改的速度更快。)例如,感谢Facebook,{ {3}}也是。另一个例子 - 我喜欢使用PHP is now a "compiled language"进行Web开发 - 而我首选的Scheme现在运行一个VM,在这个意义上至少与Java一样编译。

所以我认为要关注的问题是语言的表现力,性能和易于部署 - 编译与解释仅在涉及这些事情时才是重要的。

答案 4 :(得分:0)

我是各地编译语言的狂热粉丝,如果仅仅是静态输入。另一方面,脚本语言非常方便 - 没有二进制文件可以处理,只有文本文件,这对Web服务器来说是一个很大的胜利。

最后,它并不重要 - 使用你所知道的任何语言,并且感觉最适合这份工作。

答案 5 :(得分:0)

我认为速度是Web应用程序中的一个关键问题,尤其是

  • 编写代码的速度有多快
  • 修复我的代码的速度有多快
  • 重构代码的速度有多快
  • 测试我的代码的速度有多快

也就是说,我担心最慢链接的速度:我自己。对于类似Twitter的负载,其他任何东西都足够快。

今天,我的新项目评估列表中的第一名是Tornado and Python

当然,如果我有平台选择的话。

啊,Python是among the fastest in scripting languages

答案 6 :(得分:0)

对于脚本语言,拥有软件副本的任何人都可能会修改您的源代码,因为它是开源的。

对于编程语言,拥有该软件副本的任何人都不能简单地修改您的源代码,因为它是经过编译的。

所以我想这取决于您的喜好。