BGGA闭包作为java的固定解决方案?

时间:2008-10-11 07:31:05

标签: java closures bgga

昨天@headius / Charles Nutter在twitter上提出了一个非常有趣的想法:

@danny_l Gafter made the same mistake; I don't mean a forked Java any more than Groovy is a fork. I want a "mostly Java" with closures. 

或@danny_l / Danny Lagrouw的回复:

@headius or could the BGGA prototype be "bolted on" any future version of Java? That might be useful 

这也是我想要看到的。难道我们不能使用某种字节码预处理器来使BGGA原型适用于任何现代Java版本吗?我的意思是scala,Groovy和JRuby有闭包并产生有效的字节码!

我甚至愿意帮助并付出努力。虽然我真的不知道从哪里开始。

(上面是我写的关于这个主题的blogpost的摘录)

别人怎么看待这个想法?

2 个答案:

答案 0 :(得分:2)

“预处理器”这个词让我回到了C ++,它吓到了我。

有一种奇怪的二分法:我在JVM上庆祝各种语言花园,但我认为“Mama Bear”(又名Java)不应该像这样分散。我们需要一个坚实的基础。

那就是说,我赞成BGGA封闭。我还认为语言应该提供其全部功能。如果一个团队有人无法处理关闭(或通用,或线程(!!)),那么该团队应该通过代码审查和静态分析来监管自己。

也许有一个想法是让编译时切换到“禁止”这样的高级功能,但即使这样看起来有点苛刻。

我认为“蠢蠢欲动”的想法确实试图解决Java领域中破碎的领导力问题。这个问题更具政治性和外交性而非技术性。

答案 1 :(得分:1)

将这些事情搞砸的问题是你创建一个支离破碎的语言。

java语言是java,java的最小部分。图书馆和文化构成了更大的部分。使闭包和泛型成为一个螺栓意味着要么它们不能在核心库中使用,要么核心库需要在所使用的SDK中存在螺栓。这最多会在库中创建碎片(因为一些开发人员在核心工作,有些需要使用螺栓),最糟糕的是,我们将开始在java的庄园中开始“分发”java,每个包含一个不同的集合罐子和'螺栓'。

我想说这是一个滑溜溜的开始,我宁愿远离它。