gpt4 book ai didi

language-agnostic - 值得学习 groovy 吗?

转载 作者:行者123 更新时间:2023-12-04 13:00:29 24 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 提供事实和引用来回答它.

6年前关闭。




Improve this question




我问的问题是,学习像 groovy 这样的新语言值得吗?因为如果我学习 groovy,感觉就像我在 groovy 而不是 java 中编码。当我将来也必须精通 Java 来编写桌面应用程序时,这有多聪明。因此,如果我在 Web 应用程序中大量使用 groovy,那么当我编写桌面应用程序代码时,我会变得更糟,并且必须重新开始在 Java 中表现出色,对吗?

那么为什么我不坚持使用 java 并擅长一种语言,而不必在两种语言及其语法之间切换。因为它会很困惑......

最佳答案

Groovy 是一个不错的、可编写脚本且更易于使用的 Java “仿冒品”——我的意思不是贬义的。 Java 是一种可以在性能很重要的企业服务器上编译、部署和(通常)运行的语言,而 Groovy 是一种可以快速创建程序以完成任务的语言。通常,有些事情相当简单,因此需要一个小时或一天的编码工作。通常代码只运行一次然后就被丢弃。因为 Java 有更多的样板和形式,所以您可以在 Groovy 中更快地执行此类程序,因此更有效。

然而,只是为了给您一些观点,Groovy 是一个相对较新的人,踩着各种其他更好的脚本语言:

  • Perl 是脚本语言的祖父之一。很少有没有 Perl 安装的 Unix 服务器,而 Perl 脚本是许多服务器的命脉。然而,Perl 是一种只写的语言,对于外行来说,它看起来就像是线路噪音。做每一件事的方法不止一种,因此风格差异很大。 Perl 编码往往有点困惑。
  • 与 Perl 相比,Python 是一种更新鲜、更简洁的脚本语言,如今已成为许多人首选的脚本语言。编程很有趣,它可以完成工作,而且因为它已经存在了几年,所以很多人都知道它。 Python 位于许多 Linux 系统实用程序的后面/内部。
  • 当 (a) 环境已经使用 JVM 和/或需要使用现有的 Java 代码(包括库)时,Groovy 将 Perl 和 Python 抛诸脑后。到现在为止还挺好。 Groovy 的速度并不快,但比 Python 快。作为动态类型,以 Java 没有的方式进行编程是“有趣”和“容易”的。
  • 但随后出现了 Scala。 Scala 就像打了兴奋剂的 Java。它是静态类型的,因此编程不像 Groovy 那样“有趣”,但它具有类型推断功能,因此您通常可以省略类型,编译器可以找出它们。 Scala 非常努力地充分利用类型。它比 Java 更无缝地处理泛型类型。它省去了许多 Java 的样板,因此 Scala 程序通常比类似的 Java 程序短 30% 左右。 Scala 在 JVM 上运行,并且与 Java 代码的接口(interface)非常好。它的运行速度也与 Java 一样快,而大多数其他语言都没有。
  • 最后按照历史顺序,有 Clojure。 Clojure 是 Lisp 的衍生版本,因此它的编程风格与你所知道的语言非常不同,而且它会烧掉很多括号!但是 Clojure 在 JVM 上运行,与 Java 的所有其他部分非常兼容,并且它是动态类型的。您可以将其用作脚本语言或将其视为编译语言......这取决于您。我发现编程很有趣,而且它几乎是一种纯函数式语言这一事实​​迫使您以新的方式思考编程。一开始它会伤到你的头,但如果你能活下来,这是一个非常值得的练习,因为你学到了一些技术,这些技术将在 future 的编程中变得更加相关(我认为)。

  • 总之,学习一种或多种这些“替代”/“脚本”语言可能对你有好处(把头发放在胸前,如果我可能如此性别歧视的话)。您可能会发现它们很有用。通常,当我的项目中有一些东西需要快速破解时,我会得到这份工作,因为我的所有同事都只会 Java,而当他们完成类框架的设置时,我已经完成了。

    关于language-agnostic - 值得学习 groovy 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2035010/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com