@
terrytowne 你说了部分事实。Jigsaw的难产,是件很尴尬的事情,其实Jigsaw设计的已经比较简单。但对于巨大单一的Java运行时来说,困难还是不少。Java8推出了compact profile,我机器上cp1的大小是20M多点,不知比其他语言的运行时大小如何?再比如,你提到Annotation,Java8引入了type annotation,这个特性较少被人提及,但其实是一个潜在的很有用的设计,它允许annotation一般性的出现在代码各个的地方,这就允许对代码中的很多地方进行约束和检查。java8的革命性,我以为是超出Java2以来的任何版本,但我承认新功能在Java圈里流行相当慢。Java社区也能引领前沿,正是我的一个期待。
> Java 8引入Lambda表达式的作用只相当于语法糖。
1. 对于newcomer将lambda看成语法糖是可以的,但lambda的实现原理并不是传统的匿名内部类。这利用了Java7一项字节码增强invokedynamic,该增强为JVM上的动态语言准备;有意思的是,其性能比匿名内部类略强,有兴趣可以看Hotspot VM工程师的一个分享:
http://medianetwork.oracle.com/video/player/2623576348001这主要2点原因,JIT优化和匿名类(不同于“匿名内部类”),具体展开就多了,我愿意以后在v2的Java节点做些详细介绍,包括一些前沿的做法。
2. Scala和其他的JVM语言其实也收益于Java的改进。
这里有关于Scala使用methodhandle的讨论:
http://stackoverflow.com/questions/14285894/advantages-of-scala-emitting-bytecode-for-the-jvm-1-7我承认Scala和其他的JVM语言有很多有趣的特性,但从工程角度将这些特性,是否是必须的,还可以商榷。
OpenResty,春哥的事迹有所耳闻:)Techempower的测试里就有OpenResty。我不知道OpenResty对nignx的改进有多少,但nignx本身的epoll模块实现,我撸过一眼,事件处理使用了锁,Techempower的通量测试成绩也低于我的预期。
感谢你的鼓励,我其实是受了投资的“刺激”:)我原计划是准备在v2发第一贴找些有兴趣的同志一起做些事情。我无语的是,种子投资要种子用户,当作为种子的项目它还没有生长出来,种子用户又从何谈起?当然这些是另一个话题:)
最后,不管如何,项目开源会继续,Landz会在round 9过后的某个时刻加入Techempower的测试,原因在测试的论坛上我有说明:
https://groups.google.com/forum/#!topic/framework-benchmarks/HH2K8xDut3I现在committed的部分不包括HTTP栈,同时TCP模块的线程池设计属于实验性的,没有针对通量优化,这是目前可预见的坑。其他部分无坑,有各种测试保证,landz现在的各种测试只比我见到过的开源软件严格,里面甚至还有Disruptor和JDK的bug测试。