【问题标题】:Where is Java going?Java 将走向何方?
【发布时间】:2009-05-01 10:30:46
【问题描述】:

我是一名经验丰富的 Java 程序员,在过去的两年里 在 C# 和 Javascript 中进行必要的编程。现在有了这两种语言 我已经使用了一些有趣的特性,比如闭包和匿名函数(在我已经使用过指针函数的 c/c++ 中有效),我非常欣赏代码的方式 变得更清晰,我的风格更有成效。确实,事件管理(事件委托模式)也比 Java 使用的更清晰......

现在,在我看来,Java 似乎不像过去那样具有创新性......但是 为什么???

C# 正在发展(具有许多新功能),C++0x 正在发展(它将支持 lambda 表达式、闭包和许多新功能)和 我很沮丧,在 Java 编程上花了很多时间之后,它在没有任何好的解释的情况下正在衰落,而且 JDK 7 在语言特性方面没有任何创新(是的,它会优化 GC、编译器等),但语言本身 将有一些重要的进化变化。

那么,未来会怎样?我们怎么还能相信 Java?小鹅,你在哪里???

【问题讨论】:

  • 高斯林就在这里:blogs.sun.com/jag
  • Java 语言没有进化? 1)Java 类型的 JSR 308 注释和 2)Java7 中的 JSR 294 超级包怎么样?

标签: java programming-languages


【解决方案1】:

C 多年来没有太大变化,但它仍然是最流行的语言之一。我不相信 Java 必须添加语法糖来保持相关性。相信我,Java 已经存在很长时间了。对 Java 来说更好的是具体化泛型。

您不必相信 Java,如果您不喜欢它,请选择另一种语言,有很多。 Java 的生存与否取决于商业利益,以及能否实现商业目标。不在于它是否酷。

【讨论】:

  • 同意,但我认为 Java 迫切需要完全闭包才能保持相关性。但是,如果将 groovy 部署为 JVM 和 JDK 的一部分,我将在其中进行编程。
  • 必须同意Software Monkey。我不认为任何未来的语言都希望在没有闭包的情况下采用主流用法,而且我相信 Java 与所有其他语言之间的相对差距只会越来越大,直到它赶上主流为止。
【解决方案2】:

我认为您正在经历大多数 Java 程序员尝试 C# 体验的经典幻灭阶段。我重拾对 java 的信心,原因很简单,尽管语言没有太大变化,但作为一个生态系统,java 发生了很多变化。我希望 喜欢 有闭包和正确的方法类型,但在一天结束的时候我还是过得去。 Java 的纯粹活力仍然胜过 C#,尽管在语言层面并没有发生太多变化。

【讨论】:

  • 这种幻灭有什么说法吗?我从来没有真正感受到它,因为我的第一次接触是使用 .NETv1,但我想用谷歌搜索它。
  • 自从 .net 的第一个版本以来,我一直在来回走动,而且随着 C# 中添加的每个花哨的新功能,情况变得越来越糟。我已经在相同情况下与其他人讨论过这个问题,但是 AFAIK 没有专门的术语。
  • 先是幻灭,然后是墨守成规。
  • 我几乎不认为我在 java 中所做的事情是一致的;有很多不同的层次可以表达美。在微语法级别,java 没有赢得任何奖品。你仍然可以制作漂亮的软件。
【解决方案3】:

如果您想要 Java 平台 的工具集不受 Java 语言 的限制,那么您绝对应该看看一些下一代 JVM 语言. Groovy、Scala 和 Clojure 在许多领域都获得了发展势头(例如,Twitter 是用 Scala 编写的)。

【讨论】:

    【解决方案4】:

    我可能没有一些让他们的 cmets 的程序员一半好,但以我目前的智力水平,这就是我的想法 -

    如果一种语言使编程更容易/富有表现力/更简洁,那不是一件好事吗?语言进化不是好事吗?

    如果 C、C++ 是优秀的语言,因为它们已经使用了几十年,那么为什么 Java 变得如此流行?我想那是因为 Java 帮助摆脱了一些恼人的问题并降低了维护成本。现在有多少大型应用程序是用 C++ 编写的,有多少是用 Java 编写的?

    我怀疑不改变某事的论点是否比有充分理由改变某事更好。

    【讨论】:

    • 我真的不相信 Java 如此出色以至于它最终接管了世界的论点。 OCaml 与 Java 几乎同时出现,如果你将 1996 年的 OCaml 与它的闭包、fast-as-C 运行时、类型推断、泛型一切、类、函子和几乎等效的基类库进行比较,你不得不问你自己:当强大的 OCaml 几乎闻所未闻时,为什么像 Java 这样的弱语言会接管世界?答案:$$$$。 Java 得到了 Sun 的支持,OCaml 得到了法国一个小型研究小组的支持。最终结果是可以预见的。
    【解决方案5】:

    【讨论】:

      【解决方案6】:

      我认为至少有一些创新来自同样运行在同一个 JVM 上的其他类似脚本的语言,然后你有 Java 作为主干,以及各种语言中的其他很酷的新特性来制作所有的铃声和口哨声。

      此外,如果语言不断变化,它就无法真正做出标记 - C 和 C++ 发生了多少剧烈变化以及多久发生一次?

      成熟的语言也是稳定的。

      【讨论】:

        【解决方案7】:

        看看Java 7 proposals,尤其是Project coin 的作品(语言发生了变化)。后者包含了更好的集合初始化、泛型类型推断等内容。

        当然,重要的是要考虑平台 Java 以及Java 语言。 Scala / Groovy / Clojure 等语言正在取得更多进展,(当然)这些可以利用可用的 Java 库。

        【讨论】:

          【解决方案8】:

          我听过 Gosling 关于这个问题的演讲,并且(我希望我不会过多地破坏他的信息)他说了一些类似的话......编程的未来在于我们将使用的工具。

          我倾向于同意他的观点,Java 所要求的许多特性都背离了 OOP 的原则,但如果你发现它们对你有用,那么还有其他语言可以部署到 java 平台上,因此您的语言偏好应该能够与您对 Java 堆栈的了解共存。

          【讨论】:

            【解决方案9】:

            Java 似乎已经停滞了一段时间,但在 JVM 上运行的其他语言(例如 Scala 和 Clojure)也有很多创新,我怀疑它们是未来所在。重要的不是 Java 语言,而是虚拟机……

            说到这里,对于一种不是移动目标的语言,还有很多话要说。尽管我很喜欢 C#,但似乎每年左右都会有一个新版本。尽管 Java 从 C# 中添加了一些特性(例如注解),但它没有与 C# 陷入语言“军备竞赛”,这很好

            【讨论】:

              【解决方案10】:

              实际语言应该几乎被冻结,因为这也允许旧版本的 Java 也可以使用进度。我们有使用 Java 1.4(供应商支持)的客户。通过将进展和开发放入库中,它们也可用于这些场景。

              【讨论】:

                【解决方案11】:

                想想 Cobol!

                【讨论】:

                • 在 IBM 世界中,Java 新的 Cobol...应用程序永远存在 :)
                【解决方案12】:

                Java 从来都不是“创新的”。它开始是一个残缺的、“对程序员友好”的 C++ 版本,然后开始慢慢地重新引入其他编程语言中已经存在很长时间的缺失特性。只是那些几十年前的“新奇事物”被破坏了,以使其适应 JVM 的限制。

                但也许我误解了你的“创新”概念。

                【讨论】:

                • Java 做了一件其他编程语言很少做的事情,即处理不受信任的代码的执行。您在 Java 字节码中看不到缓冲区溢出或堆栈操作技巧。这就是 Java 的设计目的 - 安全性 - 单一的设计决定最终影响了其他一切。
                • @zvrba 如果是 lisp 程序员,我会理解,但是 c++ ......认真吗?
                【解决方案13】:

                此时 Java 仍然是排名第一的语言 :-)

                http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2013-06-27
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多