我现在的主要语言是D,我正在学习Python,因为这是我正在学习的课程所必需的.虽然我理解为什么动态语言会让人们在没有类型推断或模板的情况下使用静态语言进行编程(IMHO模板在很大程度上是编译时的鸭子打字),但我很好奇动态语言的好处是什么即使你有那些.
最重要的是,如果我要学习Python,我想以一种真正改变我对编程思路的方式来学习它,而不仅仅是在Python中编写D.我没有使用动态语言,因为我是一个相当新手的程序员,无法欣赏他们所提供的灵活性,并希望学会现在充分利用它们.在静态语言中,即使使用模板,多态,静态类型推断以及可能的运行时反射,在动态类型化的解释语言中,可以轻松/优雅地完成哪些操作?
从理论上讲,动态语言无法做到,静态语言也无法做到.聪明的人在制作非常好的动态语言方面付出了很多努力,导致人们认为动态语言领先,而静态语言需要赶上.
随着时间的推移,这将以另一种方式摆动.已经有各种静态语言:
泛型,通过让对象传递时选择正确的类型来使静态类型变得更简单,从而使程序员不必自己编译它
类型推断,这节省了不必浪费时间编写应该显而易见的东西
闭包,其中许多其他东西有助于将机制与意图分开,让您从大多数现有成分中汇集复杂的算法.
隐式转换,可让您模拟"猴子修补",而不会产生通常涉及的风险.
代码加载和编程器的简单编程访问,因此用户和第三方可以编写程序脚本.谨慎使用!
更有利于在其中创建域特定语言的语法.
......毫无疑问会有更多.动态运动在静态语言设计中产生了一些有趣的发展,我们都从竞争中获益.我只希望更多这些功能成为主流.
有一个地方我没有看到主流动态语言被替换,这是浏览器中的Javascript.现有的市场需要更换太多,所以重点似乎是让Javascript本身变得更好.