首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >人们发现动态语言有什么吸引力?

人们发现动态语言有什么吸引力?
EN

Stack Overflow用户
提问于 2008-09-04 00:46:36
回答 17查看 41K关注 0票数 81

最近似乎每个人都加入了动态的、非编译的潮流。我基本上只使用过编译的、静态类型的语言(C、Java、.Net)。我使用动态语言的经验是像ASP (Vb Script)、JavaScript和PHP之类的。在考虑动态语言时,使用这些技术给我留下了不好的印象。一些通常会被编译器捕捉到的事情,比如变量名称拼写错误和为变量分配了错误类型的值,直到运行时才会发生。即使这样,您可能也不会注意到错误,因为它只是创建了一个新变量,并分配了一些默认值。我也从未见过intellisense在动态语言中工作得很好,因为变量没有任何显式类型。

我想知道的是,人们发现动态语言有什么吸引力?在动态语言允许你做在编译语言中做不到或难以做的事情方面,主要的优势是什么?在我看来,我们很久以前就已经决定,像未编译的asp页面抛出运行时异常这样的事情不是一个好主意。为什么这类代码会卷土重来?至少在我看来,Ruby on Rails看起来并不像10年前用ASP做不到的事情?

EN

回答 17

Stack Overflow用户

发布于 2008-09-04 02:09:09

不要忘记,您需要在单元测试中编写10倍的代码覆盖率,以取代编译器所做的工作:

我已经在那里,用动态语言做到了这一点,我完全看不到任何好处。

票数 70
EN

Stack Overflow用户

发布于 2008-09-04 01:13:15

动态语言的优点之一就是能够更改代码并继续运行。不需要重新编译。在VS.Net 2008中,在调试时,您实际上可以更改代码并继续运行,而无需重新编译。随着编译器和IDE的进步,使用动态语言的这种优势和其他优势可能会消失。

票数 6
EN

Stack Overflow用户

发布于 2009-04-15 14:24:38

啊,我发similar question的时候没有看到这个话题

除了这里提到的关于动态语言的其他人的好特性之外,我认为每个人都忘记了一个最基本的东西:元编程。

编写程序。

在编译语言中很难做到这一点,通常以.Net为例。要让它工作,你必须制作各种mambo巨型代码,它通常以运行速度慢约100倍的代码结束。

大多数动态语言都有一种方法来进行元编程,这是我一直保持的--能够在内存中创建任何类型的代码,并将其完美地集成到我的应用程序中。

例如,要在Lua中创建计算器,我所要做的就是:

代码语言:javascript
复制
print( loadstring( "return " .. io.read() )() )

现在,试着在.Net中做到这一点。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档