有什么理由选择了C#脚本语言?(What are reasons to choose a scrip

2019-06-27 00:53发布

有什么理由选择非DSL在静态编译语言的脚本语言如C#?

CNC中很好的答案为止。 我觉得我应该进一步解释。 我敢肯定人们使用Python在C#进行更多的理由不仅仅是品尝和C#的Python比其他情形。

Answer 1:

脚本语言,主要擅长于2个方面:

  1. 中小型项目中的表现是不是在运行时环境的头等大事和灵活性。

  2. 领域特定语言的建设。 鸭打字,脚本语言的动态方法调用能力使其非常适用于设计领域特定语言。 Ruby on Rails的,当然,是海报男孩这种能力,但许多其他例子专有内部开发的软件,特别是存在的。



Answer 2:

程序员谁只使用一个静态类型语言可能只是接受这是做事情的必要途径。 一旦你体验鸭打字,你就会意识到,多态性真的可以这么简单 - 无码指定类型的所有多余的线条。

所有这些类型声明的东西是不需要的程序协同工作 - 这是解放经验 - 它仅仅是这样编译器可以检查某些类型的错误。

如果你不使用动态语言做测试,您可以通过运行时错误被击中,编译器会赶上在静态类型语言 - 但事实证明,这是没有那么多的胜利中静态类型语言为你可能会想,因为你本来也应该在做两种类型的语言测试。 你需要测试在静态类型语言,以赶上其他的逻辑错误,该类型检查不会赶上 - 在许多情况下,这些类型的传递反正会排除类型相关的错误测试 - 所以你不需要足够的额外在动态语言测试,以抵消类型声明编码你没有做。

其结果不只是提高生产力,但只专注于你想要做什么乐趣,问题的症结所在,在告诉编译了一堆东西,而不是陷入困境,因此它可以保护你从你的错误去(至少应)针对反正测试。

性能的权衡,因为动态语言无法在运行时承担这么多 - 但很多倍的性能不是问题。 而当它是,你可以在一个较低的水平语言重写性能关键模块。 像Python语言使这个容易。

与类型推理能力的语言有一个中间地带值得考虑。



Answer 3:

  1. 灵活性:你不必担心静态类型系统。
  2. 发展的速度:一个互动的语言,您可以编写代码和更快的测试。
  3. 内置类型:通常的脚本语言提供了字典,列表,元组,集合等与语法糖的语言(不是库),可以很方便的一部分。
  4. 更多动态功能:
    1. 在运行时可以“EVAL”代码很容易。
    2. 你可以取代在飞行功能和方法。

主要缺点是,这些功能往往过于强大,并没有严格的纪律是很容易写代码是难以维护。



Answer 4:

发展的速度一般,脚本语言中删除任何需要编译任何东西 - 只需键入即可,并执行它。 无需重新编译,没有必要“编辑和继续的支持,什么都没有 - 一般情况下,你可以根据它,如果你编辑,而你已经在调试器停止运行中键入了。

许多脚本语言也有喜欢的事情静态类型较少限制的范围,你可以不用担心您的字符串是否需要转换成整数,反之亦然只是代码,你只是把它作为,是和它的作品。 这是值得商榷的,这是否是一个好的或坏的事情,但我认为它的那些东西的地方用于一些任务时坏别人这是很好的一个。

加载项和库一般也更容易使用 - 你不需要注册或安装任何软件,也不用担心组件或GAC或签字的东西,你只是包括源文件就大功告成了。

所以剧本是让一般的工作最容易的事情,这就是为什么人们使用它。



Answer 5:

因为Python是像飞一样:



Answer 6:

移植到其他平台,和更简单的开发环境(通常只是一个文本编辑器,而不是Visual Studio中)。



Answer 7:

这是一种被切向提到的,但问题的措辞对比“静态类型”与“脚本”,这是一个错误的二分法。 这是可能的兼得,像F#,那里是简洁的语法,类型推断和交互式语言REPL 。 有一些取舍和紧张两侧,但你得到了很多的两全其美。



Answer 8:

在我的经验,有两件事是,你必须在你开始设计/编码之前做出最重要的决定:

  • 是什么语言你最熟悉和了解它的概念?

有一个在使用C ++去,如果你甚至不得到一般模板或OOP的想法没有用。

  • 是否有已经是协助您库或工具?

恕我直言,最重要的一点,因为即要编码某物像Twitter,你可以写自己的无所不能的网络服务器在Lisp和破解之类的东西Javascript成为或形式,方便,功能结合在一起 - 但为什么不只是使用Tomcat的,即/ Java的/检票或分别阿帕奇/ PHP / Synfony? 因此,所有的基本覆盖,完善的测试,并与许多资源联机。 更应该考虑的ORM框架/数据库包装 - 他们节省一个真正的大量的时间和错误的 - 如果你需要他们。

作为一个经验法则:如果你完全从头开始(即研究)接你的语言最喜欢的(和OFC是你的任务足够强大),如果你在一个共同的领域(即网站)做开发,根据挑语言你的技能和已经可用的工具。

如果性能是真的杀到,坚持使用汇编语言。

只是我的$ 0.02



Answer 9:

鸭打字 :如果走起来像鸭子,说话像鸭子,那么它就是鸭子。



Answer 10:

我想另一点添加到列表:用户定义的逻辑。

如果你写了用户应该定义一些逻辑的程序协同工作软件,脚本语言如Python是理想的选择。 使用案例包括像,例如,任务脚本的游戏,一个数据集的统计分析,以及邮件过滤器。 要设置复杂的过滤规则,你不希望你的用户启动Visual Studio来编译一些代码放到一个DLL,然后再加载DLL作为一个插件,你只是想用户提供定义过滤器的一些文本定义过滤逻辑。

当你的软件是写在一个脚本语言,包括用户编写的代码通常是微不足道的。



文章来源: What are reasons to choose a scripting language over C#?