在我看来,在某些方面,Java是C的一段时间回来。两者都是相当简约的语言为他们的时间,用较清洁的、简单的核心的建立。(我指的核心语言在这里, 图书馆。) 两者都是极其受欢迎。两者都是正lingua francas,吨的遗产代码。两者都是/缺乏的几个现代化的生产效率功能的程序的语言常常错过。这两个似乎非常惯性占主导地位的和缓慢适应一个不断变化的世界。

我看来像是合理的,以创建一个Java++这大约是一个超集Java、C++是C.这种语言将试图提Java出的相对停滞,它的经历,打破向后兼容性,只是在少数次要的方法只有在绝对必要的,添加很多现代的特点是普通的老Java缺失,并担心的标准化后。功能,可能是一个很好的想法包括:

  1. 第一类职能,与会代表。
  2. 关闭。
  3. 静态型推理,类似于 var C#或 auto 在D。
  4. 操作超载。
  5. 结构作为值类型不同类的,像C#和D。
  6. 属性。
  7. 一种选择忽视检查的例外情况。
  8. 能够宣布超过一个顶级公共类在文件。
  9. 更强大的内部阵列,让事情像追加。
  10. 更好的仿制药的/实际的模板。
  11. 类似动态的关键词C#4.0这可以让鸭子打字时有必要在一个一般静的语言。
  12. 由于Java主要是一个虚拟机语言,也许有些铁杆元编程功能像产生的代码在飞行的某些事情。

你认为会有需求,这样的语言?你认为这样一个事会成功吗?

编辑:我不是说兼容在运行时间/字节的水平,我说的兼容性w/Java在 来源 水平。此外,是的,Java7可以添加一些,但它似乎是"官方"过程中添加的特点以Java是非常保守的。真正的问题是分叉Java成的一个分支的重点是在创新更多的稳定/标准化。

有帮助吗?

解决方案

要获得downvoted通过Java粉丝于这一点,但作为一个人写Java和C#我说,C#是因为接近Java++为你会得到的。

C C++是一个范例转变,从程序方面向对象,唯一的原因,他们保留的名称是宇C程序,认为这是同样的语言,从而导致负荷的真的很糟糕代码C伪装C++。

Java不断扩大和太阳快速地将更多的和更多的功能,所以它有可能Java7或8Java++

其他提示

比如说, 斯卡拉 或者更好的是时髦的其账单本身作为一个动态的java版本?

我认为答案"我们需要一个Java++?"取决于谁"我们"有(并且我不知道"我们"都是情况的一个类;-).这个问题已经讨论了在多个场合通过 Java Posse.

大型企业用户的Java有一个趋势是更加保守。他们有大型开发人员和大机构的现有编码。因此,有较高感知的成本和风险的变化语言或库(培训、维修,破损现有码,等等)。

另一方面,有很多小,光在他们的英尺,开发团队(开放源或其他方式),随时准备锁上的下一个伟大的思想在节目。它不清楚,我认为一个单一的答案将让每个人都充分满意。

我建议,日益增长的生态系统的JVM基于语言的可能有助于解决这一紧张局势。如果新的语文(拉斯卡拉、风扇、独立,JavaFxScript,等等。) 提供性特点(和新),第二组的愿望,同时保持互操作性与现有的Java(它可以移动一个更稳定的步伐),或许这两个群体可拥有自己选择的风味的蛋糕。

我有点困惑,有些人似乎想要一个真正的语言。在当天返回,这是相当常听到的想法,即每种语言(符号)的"甜点"的适用性;有时候正确的解决办法是编写每个系统的一部分在适当的语言,并将它们连接在一起。

回到未来,任何人吗?

问题真的是你如何决定什么"下一个语言"。只是增加或删除的特点零敲碎打的会的结果在一堆垃圾。这是更好的考虑如何添加或删除的那些特点(通常工作组合)的方式改变你的节目根据新的原则。例如,我认为这是有趣,Java封锁遭受的建议在许多方面具有处理静的打字没有丰富的类型推理。有大量的例子动态语言漂亮的封锁--这一起去很好。和斯卡拉和其他语言有所示,静态的输入加上丰富的类型推断也可以使封锁的很漂亮。我的一点是,把语言X和使语言X++可能是不是很有趣。这是更有趣的问题在X和作出新的语言Y。

那里肯定没什么阻止你forking Java现在和使它成为任何你想要的(只要你不要叫它Java或希望通过测试suite)。如上所述,目前已经有一套令人兴奋的高质量的语言正是这样做并保持互操作性Java。我想主要的常规,斯卡拉,题和风扇的和小的港口的现有语文的JVM喜欢它,Script,犀牛其往往具有更具挑战性的时执行清洁Java integration。

这是很有可能的 JSR292功能 来JVM在 Java7 将提供一个更丰富的游乐场进行语言发展的已经精湛的JVM基础。和CLR+德国航天中心也在推动许多有趣的界限。

越来越多,我认为未来是要去的趋势,挑选合适的语言的工作。是将要发生在语言,与一个混合传统(斯卡拉是一个很好的例子FP/OO的实例)或在虚拟机(JVM,CLR,束,鹦鹉,任何),促进清洁之间的融合多种语言。或者最有可能的,这两种。我认为我们并不倾向任何一个的下一个大的语言,这是一个衍生物的Java(或任何其他).

目前正在Java有解决方法对于许多这样的,这不会使它难以引入更多的自然的方式做这些事情。

  1. 第一类职能,与会代表。

大多数情况下都更短的使用反映。(但是不自然的)

.4.结构作为值类型不同类的,像C#和D。

此我同意。

.5.属性。

这是可以做到现在,但是一些努力是必需的。适当的系统支助会更好。

.6.一种选择忽视检查的例外情况。

你可以现在这样做的,但它是一个黑客。注:检查的例外情况是一个汇编的时间功能。

我而不是持怀疑态度,这真是一个好主意,除非人们真的明白的例外情况。通常人们谁表明这种不喜欢被迫认为关于错误的条件、记录或处理它们。

.7.能够声明多于一类在文件。

你可以这样做。只要不超过一个顶级公类。

.8.更强大的内部阵列,让事情像追加。

参议院ArrayUtils.一系列其中有一个理智的toString()将开始。

.9.更好的仿制药的/实际的模板。

我同意,这取决于你是什么意思。我觉得他们应该得到当前的点方法的实现方式看起来也工作之前,首先改善。例如所以Java Api可以编制没有未经检查的预警。

.10.类似动态的关键词C#4.0这可以让鸭子打字时有必要在一个一般静的语言。

再次,反映做到这一点,但其相对丑陋的。

.11.由于Java主要是一个虚拟机语言,也许有些铁杆元编程功能像产生的代码在飞行的某些事情。

像JavaCompiler(java6)、脚本支持(In java6)中,青年商会或或平板电脑.

如果你要作大的改动,你不会想要重新开始?有很多事情可以做的固定/除去。你可以不考虑独特的-他们这样做进行交互在意想不到的方式。一个大而复杂的语言可能是一个坏的语言(见C++)。

Java++ 已经在这里...D

这些东西都是主要的绒毛.

你需要解决一些更大的问题,制作并发码容易设计和理由。

所有这些看起来像而不是"肤浅"的语言变化主要动机通过开发便利,而不是从根本上 改变语言的哲学.

在我看来,小的调整语法 不辩解 批发动新的语言,特别是如果这意味着扔掉大量投资平台、码的基地和开发技能.

的微小的变化可以被添加到Java语言随时间(在Java7,8,9...)如果有足够的需求。但是有一个真正的问题,它们是否有道理的,因为曾经这样的变化,使语言更加复杂,因此更难以学习和维持码的基地,因为不同的开发人员开始使用一个不同的子集中的特点。

例如C++:在理论上,这是一个惊人的语言,允许的程序在任何可能的水平抽象,同时仍然允许机器码级别的性能优化的代码。在实践中的复杂性,所有这种语言功能意味着很少人能够希望了解什么是真的,大代码基地成为几乎不可维护.

在我看来,唯一改变将证明的批发"Java++"将是基本的范式转变,改变的方式,开发软件的好转。根本变化,由Java一个成功的(超过C++等。在1995-2000年期间)都是在我的观点:

  • 字节的执行在一个便携式、标准、跨平台的运行环境(JVM/java运行环境),而不需要重新编译
  • 一个大的、稳健的标准类图书馆(包括穿线、网络、GUI等)。 -即一个认识的平台是关于更多的不仅仅是语言
  • 垃圾回收作出强制性的

例的下一阶段的基本转变将是:

  • 扔掉对象的方向赞成的 编程功能
  • 消除锁定赞成 软件事务存储器 启用高性能的线安全并发为大规模多的核心结构
  • 替换变化的变量 不可改变的价值观 在语言和类库(使它能够理解并发状态)
  • 拥抱的编写时间宏元编程作为一个通用的解决的任何希望加入新的语法语言或创建Dsl

哦,是的,有一个JVM的语言,做所有的这个-

大多数功能已经存在。

这种语言是:

groovy
(资料来源: codehaus.org)

=

为:

能够声明多于一类在文件。

它已经存在java开始。

不会这样的努力,通过太阳简单地被称为Java7(或1.7或2.0)?不会这样的努力通过一些其他人群被称为东西比Java?

如果你支持这些机构的JVM(在必要时,例如,关闭),然后创造必要的语法糖的书面语言和编译器。当然如果您希望保留向后兼容性,那么你必须设计的决定作出的,这就是为什么Java仿制不好,因为他们可能已。你想要打破免费的,获得一个更完美的Java我想,但是会有很少的需求,因为兼容性是它在哪里。

和7可以直接走。我们不是在运行的反对FAT12文件限制在软盘在这里。

作为java正在成为开放源代码, 你的 可以采取的来源(如果是所有可用),使自己版本的java。如果这个被广泛采用那伟大的,如果没有,那么它可能不是一个设定的特征是必要的。

Java可以而且应该改进的,但我不认为需要有一种语言,以适应所有需要。这通常是一个坏主意,就像该死的星星。

很多程序都是懒惰和不想要学习新的东西。他们宁愿坚持使用一种语言,他们已经在使用的最后10年。

如果你需要的速度和更多的控制你的硬件,使用什么样C。如果你需要的系统管理任务,你probabely结壳脚或脚本语言喜欢perl,蟒蛇或红宝石。如果你做了很多具体数学的东西,Matlab是一个好的选择。等等。pp.

使用的最佳工具的任务,不管用什么语言,它可能是。一个优秀的程序员,应该能够与任何语言(对于我来说,我还在那)。

我建议要有一个看看 超过Java.

有一个很好的 审查Joel在软件.

检查出来的信息可在Java7.我想你会发现它是计划中添加几个特点,每个人都要求,特别是关闭。

其实我真的很同意你的情绪,具有运行问题与Java,可以缓解你的建议。

原则上,你可以写你自己的javac,作为这种和使用现有的java运行环境热点.但是,您真的不能做到这一点没有太阳的帮助。

真正的问题是双重的:1)太阳的方法是支持"Java平台"并抵抗一个新的标准,甚至超集和2)获得的任何改变爪哇,你有得到JSR印发--并且,通常需要一个企业的提案国。该公司往往具有其他优先事项。

然后我要再次敦促你推它。毕竟,直到2007许多聪明的人几乎翻拍Java从头开始=GNU类路径。因此有必要的人才为"第二类JVM的语言。"

尽我所做的感到,Java已成为过时的事实是,我认为我们都知道,作为一种语言,它仍然运作得很好。当然,很多新的东西,我们可以找到其他语种并不存在,但它仍然有效!你仍然可以做的一切,这仅仅是有时需要更长的时间,并需要更多的工作。我肯定期待着有一天它所取代的,但是我只是认为与所有现有的码和应用程序都是书面,只是没办法的时刻,(几乎)没有人会使移到Java++.我认为我们正在等待一个真正的范式转变,就像C++是C.也许编程功能可能是下一个重大事件和斯卡拉将会是下一个Java。

C++是面向对象C.Java已经是面向对象,因此,如何将我们去另一个模式转变,使它Java++?

在某种程度上,我认为它是周围的其他方法。Java是前进的道路C++.Java具有高水平的库和框架,而C++经常仍然是低级别和混合ansi C(因为我们可以).

Java具有良好的unittesting的可能性,并大社区都指向同一方向。

有更多的"功能"并不能使语言更好。我认为,它能够使情况变得更糟。

在结束时,将一种语言"前面的"其他不是要帮助。选择最佳工具。我认为Java作为一种语言是很确定,因为它是。C++但是可以使用一些更好的图书馆,就像一个港口的弹簧的实例。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top