虽然我来自编程的Web开发方面的纯PHP背景,但我也花了很多时间在桌面上使用C#和C ++。
我真的不想引发任何火焰战争,但是:
什么时候应该使用脚本语言而非编译语言进行网站开发?
(反之亦然)
为了澄清,为了这个问题,我将“脚本语言”定义为PHP,Python或Ruby等解释性语言,并将“编译语言”定义为类似C#的强类型编译语言。 ,C ++,Java或VB。
答案 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应用程序,但我已经习惯了,所以我不再讨厌了它。它有优点和缺点:
临
N
我一直都很喜欢在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)
对于脚本语言,拥有软件副本的任何人都可能会修改您的源代码,因为它是开源的。
对于编程语言,拥有该软件副本的任何人都不能简单地修改您的源代码,因为它是经过编译的。
所以我想这取决于您的喜好。