由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - Sun当年设计Java的败笔
相关主题
古狗研究新出炉:C++ Is The Best Performing Language为什么我觉得c++比java简单?
c++这种语言注定了会越做越小java就是andriod慢的原因,为什么总有人要争呢? (转载)
scala vs clojure ?Java的performance
Java 写的程序在server端也是在JVM上run吗?pixie - Clojure寄生在C环境
请教,call c++ shared lib in java via jni一个嵌入式系统的设计构思
Linux/C++的工作好难找有时候我很好奇这些古怪的思想是怎么来的
【失败感言】我是做PHP的 (转载)请问一下,用什么语言/库/脚本作GUI比较方便?
c++程序员不要把头埋在沙子里了俺一直觉得C#弄个JIT挺傻逼的
相关话题的讨论汇总
话题: java话题: native话题: jni话题: net话题: jit
进入Programming版参与讨论
1 (共1页)
d****i
发帖数: 4809
1
Sun当年设计Java的时候,最大的败笔是没有把JNI的接口好好设计,这样和跑在Native
层的native语言和script语言:C,C++,Python, Perl, PHP, Ruby, JS, 等等隔开了
一层避孕套,从JVM调用其他语言比较麻烦,使得凭空造出来所谓的JVM语言:scala,
clojure等等,反而像文革造反派一样威胁到Java的地位。其实JNI完全可以重新设计,
这样使得Java和其他Native层的语言的interoperatbility大大提高,有利于不同队伍
合作。
N******K
发帖数: 10202
2
jni看了看 貌似很复杂 没看懂

Native

【在 d****i 的大作中提到】
: Sun当年设计Java的时候,最大的败笔是没有把JNI的接口好好设计,这样和跑在Native
: 层的native语言和script语言:C,C++,Python, Perl, PHP, Ruby, JS, 等等隔开了
: 一层避孕套,从JVM调用其他语言比较麻烦,使得凭空造出来所谓的JVM语言:scala,
: clojure等等,反而像文革造反派一样威胁到Java的地位。其实JNI完全可以重新设计,
: 这样使得Java和其他Native层的语言的interoperatbility大大提高,有利于不同队伍
: 合作。

w**z
发帖数: 8232
3
最好别用,有问题死的很难看。

【在 N******K 的大作中提到】
: jni看了看 貌似很复杂 没看懂
:
: Native

z****e
发帖数: 54598
4
native会跟os绑定
垮平台feature被破坏
这个可是java当年最初的承诺之一
如果不能垮平台,java就不是java了
现在做script engine
对各种跨平台的script提供接口
可以了,jni就是要让他们麻烦
谁让你平台lockin的
z****e
发帖数: 54598
5
C,C++,Python, Perl, PHP, Ruby, JS,
这串列表里面,除了前两个,其它的scripe engine都支持
前两个没有必要搞了,定位很清晰,以后不会有什么大的前途
d********g
发帖数: 10550
6
当年MS做的那些破坏Java eco system的事也很阴险啊,还好扛住了

【在 z****e 的大作中提到】
: native会跟os绑定
: 垮平台feature被破坏
: 这个可是java当年最初的承诺之一
: 如果不能垮平台,java就不是java了
: 现在做script engine
: 对各种跨平台的script提供接口
: 可以了,jni就是要让他们麻烦
: 谁让你平台lockin的

z****e
发帖数: 54598
7
嗯,就是打算从jni开始搞破坏,用jni来捆绑java到win平台
m$当年大门当家时候,还是很有威胁性的,找软肋找得比较准确
后来sb当家,基本上就是一无脑的肥猴子乱搞

【在 d********g 的大作中提到】
: 当年MS做的那些破坏Java eco system的事也很阴险啊,还好扛住了
k**********g
发帖数: 989
8

现在 2013 年, LLVM 才是一统江湖的王道。
G 家 PNaCl 也用 LLVM ,替代了上一个版本的 NaCl 。

【在 z****e 的大作中提到】
: 嗯,就是打算从jni开始搞破坏,用jni来捆绑java到win平台
: m$当年大门当家时候,还是很有威胁性的,找软肋找得比较准确
: 后来sb当家,基本上就是一无脑的肥猴子乱搞

d****i
发帖数: 4809
9
你只做web的当然不太需要搞前两个,做实体经济的还是要的。

【在 z****e 的大作中提到】
: C,C++,Python, Perl, PHP, Ruby, JS,
: 这串列表里面,除了前两个,其它的scripe engine都支持
: 前两个没有必要搞了,定位很清晰,以后不会有什么大的前途

d****i
发帖数: 4809
10
客观的说,相比于JNI接口,微软的.NET平台还是搞的比较好一点,听说.NET上调用
unmanaged native code也是很方便的,请熟悉微软平台的来说说是如何达到的。

【在 z****e 的大作中提到】
: native会跟os绑定
: 垮平台feature被破坏
: 这个可是java当年最初的承诺之一
: 如果不能垮平台,java就不是java了
: 现在做script engine
: 对各种跨平台的script提供接口
: 可以了,jni就是要让他们麻烦
: 谁让你平台lockin的

相关主题
Linux/C++的工作好难找为什么我觉得c++比java简单?
【失败感言】我是做PHP的 (转载)java就是andriod慢的原因,为什么总有人要争呢? (转载)
c++程序员不要把头埋在沙子里了Java的performance
进入Programming版参与讨论
p*****2
发帖数: 21240
11

这个有什么难的?

【在 d****i 的大作中提到】
: 客观的说,相比于JNI接口,微软的.NET平台还是搞的比较好一点,听说.NET上调用
: unmanaged native code也是很方便的,请熟悉微软平台的来说说是如何达到的。

k**********g
发帖数: 989
12

不明觉厉,貌似很 JIT
.NET JIT is certainly "not afraid of" jitting the glue code for a .NET to
Native function call. This is known as the P/Invoke. 蝙蝠
http://www.pinvoke.net/

【在 d****i 的大作中提到】
: 客观的说,相比于JNI接口,微软的.NET平台还是搞的比较好一点,听说.NET上调用
: unmanaged native code也是很方便的,请熟悉微软平台的来说说是如何达到的。

d****i
发帖数: 4809
13
zkss, 是把.NET上的语言编译成bytecode后然后JIT,那么如何连接C/C++/assembly编
译成的machine code?

【在 k**********g 的大作中提到】
:
: 不明觉厉,貌似很 JIT
: .NET JIT is certainly "not afraid of" jitting the glue code for a .NET to
: Native function call. This is known as the P/Invoke. 蝙蝠
: http://www.pinvoke.net/

k**********g
发帖数: 989
14

PInvoke stored as .NET Attributes (MSIL Metadata, see http://en.wikipedia.org/wiki/Metadata_(CLI) )
These attributes tell JIT how to generate the glue code. This aspect of code
-generating metadata cannot be easily encoded by bytecodes alone.

【在 d****i 的大作中提到】
: zkss, 是把.NET上的语言编译成bytecode后然后JIT,那么如何连接C/C++/assembly编
: 译成的machine code?

g*****g
发帖数: 34805
15
JNI是给JDK跨平台用的,懂了这个,就没啥好纠结了。
JNI本来就不是打算给你用的。
F****n
发帖数: 3271
16
中国人设计的。

Native

【在 d****i 的大作中提到】
: Sun当年设计Java的时候,最大的败笔是没有把JNI的接口好好设计,这样和跑在Native
: 层的native语言和script语言:C,C++,Python, Perl, PHP, Ruby, JS, 等等隔开了
: 一层避孕套,从JVM调用其他语言比较麻烦,使得凭空造出来所谓的JVM语言:scala,
: clojure等等,反而像文革造反派一样威胁到Java的地位。其实JNI完全可以重新设计,
: 这样使得Java和其他Native层的语言的interoperatbility大大提高,有利于不同队伍
: 合作。

d****i
发帖数: 4809
17
真的是Sun的中国人设计的?呼唤oracle效仿.NET->Native的机制把JNI重新reengineer
。据说JDK 9有这个计划,把JNI重新设计,从而增加Java和其他native层上的语言的
interoperatbility

【在 F****n 的大作中提到】
: 中国人设计的。
:
: Native

F****n
发帖数: 3271
18
JNI最大的问题是native code和Java交换数据overhead过大,其他还好
这个问题是Java的数据结构造成的,比如一个Java int array有他自己的内存结构,
传到native code只好copy。但大多数此类为题可以通过恰当的design解决,如果要用
native code计算array, matrix, 就应该一开始就用native 数据结构(可以用JNI wrap
), 而不是pass Java array。

reengineer

【在 d****i 的大作中提到】
: 真的是Sun的中国人设计的?呼唤oracle效仿.NET->Native的机制把JNI重新reengineer
: 。据说JDK 9有这个计划,把JNI重新设计,从而增加Java和其他native层上的语言的
: interoperatbility

1 (共1页)
进入Programming版参与讨论
相关主题
俺一直觉得C#弄个JIT挺傻逼的请教,call c++ shared lib in java via jni
Android C/C++ native calls Java APIs (转载)Linux/C++的工作好难找
我来尽量客观地谈谈GC/ref count,还有RAII【失败感言】我是做PHP的 (转载)
蜥蜴和好虫掐起来了c++程序员不要把头埋在沙子里了
古狗研究新出炉:C++ Is The Best Performing Language为什么我觉得c++比java简单?
c++这种语言注定了会越做越小java就是andriod慢的原因,为什么总有人要争呢? (转载)
scala vs clojure ?Java的performance
Java 写的程序在server端也是在JVM上run吗?pixie - Clojure寄生在C环境
相关话题的讨论汇总
话题: java话题: native话题: jni话题: net话题: jit