互联网和SO上有很多讨论,即这里和这里,关于静态和动态语言.
我不打算再问一个与另一个.相反,我的问题是那些从静态类型语言移动(或至少试图移动)到动态的人.
我不是在谈论在您的网页上使用JS以及嵌入到静态类型软件或小型个人脚本中的其他脚本语言.我的意思是将动态语言作为您在团队中开发生产质量软件的主要通用语言.
那很容易吗?最大的优势和最大的挑战是什么?它有趣吗?:)
UPD:你觉得IDE支持足够好吗?您是否发现需要较少的IDE支持?
那很容易吗?
中等.一些Java主义是很难打破的习惯.我的前六个月,我用Python编写了Python.恶心.但是,一旦我结束了,我就没有回头.
最大的优势是什么?
从"写 - >编译 - >构建 - >运行 - >中断 - >调试 - >写入"循环到"写 - >运行 - >中断 - >写"循环.需要时间来熟悉Python命令行解释器的即时满足感.在尝试编写(更少编译)任何代码之前,我已经习惯了无休止的设计和规划.
起初我认为python命令行是一种"仅限教育"的界面.然后阅读在>>>提示符下输入应用程序的文档字符串,doctests和用户指南,我开始意识到真正优秀的Python软件会将复杂性和细微差别归结为可以交互式输入的内容.
[我希望我可以设计干净利落的东西.]
最大的挑战是什么?
多重继承.我很少使用它.
它有趣吗?
至今.
它的效率也非常高.更多时间用户需求和实际数据.使用适当的接口规划继承层次结构以减少捕获意义并正确编译并且可扩展到足以至少持续到下一个修订版的时间更少.
如果我是你,我会尝试Scala !!!
Scala有一些非常有趣的方面让你感觉做动态,同时做静态.
Scala是一种具有动态类型气味的静态类型语言,因为编译器可以减少重复性地推断您的分配.
一种编译语言,具有温暖而精彩的脚本风格.因为您可以使用scala控制台,甚至可以像ruby或python一样编写脚本.因此,您可以选择"写入 - >编译 - >构建 - >运行 - >中断 - >调试 - >写入"或"写入 - >运行 - >中断 - >写入",如S.Lott所说.
Scala是一种完整的功能语言,完全支持OO.因此,您不会丢失许多重要的OO方面,如继承,封装,多态等.
为什么回答你提出Scala的问题?因为我之前尝试过脚本语言,主要是Ruby.就像S.Lott说的那样.但对我和我的团队来说并不那么容易.大多数时间静态是安全的,不易出错,如果你有正确的语言,甚至更快.
回答你将Scala放入我们的三个问题:
那很容易吗?
是.有时候你需要集中精力把旧的概念放在一边,然后深入.
最大的优势是什么?
您觉得在家中因为您不需要更改环境或重写现有应用程序以迁移到Scala(谈论Java).如果你来自Java,你可以在阅读一些文章后开始使用Scala.没太多的努力.另一个重要的优点是使用功能语言和嵌入式功能.
它有趣吗?
当然!改变主意,改变解决问题的方法,确实很有趣.
这是我的愿景.你并不需要留下静态来抓住动态的优势.