Porque a jvm não abstrai chamadas a baixo nivel? [RESOLVIDO]

e aí galera beleza?

Depois de penas aprendendo a commapi, descobri que um código escrito com ela faz com que minha aplicação deixe de ser portáavel, pois só se tem a comm api pra solaires e pra windows. então o jeito foi me matar pra aprender a usar o jni e um programa em c pra ler porta paralela.
Mas minha dúvida é a seguinte poruqe a jvm não abstrai a chamada a porta serial, paralela e tudo mais? A jvm é escrita pra cada plataforma pra que o codigo java fique transparente a so. Então porque isso não é abstraido também na jvm? Assim aplicações que fazem uso de hardwares específicos para a porta paralela seriam portáveis também.

Obrigado!

Já imaginou fazer driver pra sua torradeira em 5 sistemas operacionais diferentes em várias arquiteturas diferentes, e ainda ter tempo pra melhorar todo o resto?

então cara se eu colocasse a torradeira na porta paralela e tivesse como acessar a porta daí sim daria pra fazer o driver em java. então só precisaria que a jvm me abstraisse o acesso a porta paralela, serial ou usb. Esse é o seria a maior dificuladade em fazer um driver multiplataforma pra minha torradeira.

Sabe que colocara a torradeira na porta paralela não é má idéia?

Realmente iria ser muito interessante…
Mas pense o seguinte…
Estamos falando de arquiteturas diferentes!
Não é a mesma coisa que você desenvolver um site que funcione o FireFox, IE, Mozilla, Netscape e Opera!
Pois querendo ou não, eles seguem um padrão estipulado pela W3C (http://www.w3.org/)
Agora quando estamos falando em Hardware, nós temos um problema…
Se você fosse desenvolver algo somente para PC/Windows, seria “ridiculo”…
Você se dedida somente a um sistema operacional e já era…
Agora estamos falando em arquitetura de hardware diferente, Sistemas Operacionais diferentes, que não me garantem se eles vão ter algum padrão para seguir!
Por exemplo, vamos dizer que para eu acessar a porta USB no linux eu tenha que ter uma permissão X, mas no Windows não precise dessa permissão X, mas sim uma permissão Y, mas antes disse tenha que fazer uma validação pelo protocolo Z.
Agora imagine se, de repente, dá uma loca lá na MS, e resolvem re-escrever o Windows, e mudam todo esse protocolo? Quer dizer, teriamos uma JVM para Windows 2003 ou menor e outro para o novo Windows 2005 (ficticio)!!! E se todo ano tivessemos essas mudanças (não no sistema mas em algum protocolo, por exemplo)!
É muito gasto de neurônio. Lógico que iria simplificar para nós, programadores, mas ficaria inviável para quem está desenvolvendo a JVM.

Prefiro que eles fiquem quebrando a cabeça para melhorar outras coisas que ficar quebrando a cabeça com isso…

Tah, mas vc poderia desenvolver um port pra linux da comm api…

Sei lá, talvez no site do caras até tenha um pre-alpha-night-build-0.001a

VELO

[quote=velo]Tah, mas vc poderia desenvolver um port pra linux da comm api…

Sei lá, talvez no site do caras até tenha um pre-alpha-night-build-0.001a

VELO[/quote]

http://www.rxtx.org/ ?

nunca testei, mas se funcionar bem me avise! :mrgreen:

[quote=kina]Realmente iria ser muito interessante…
Mas pense o seguinte…
Estamos falando de arquiteturas diferentes!
Não é a mesma coisa que você desenvolver um site que funcione o FireFox, IE, Mozilla, Netscape e Opera!
Pois querendo ou não, eles seguem um padrão estipulado pela W3C (http://www.w3.org/)
Agora quando estamos falando em Hardware, nós temos um problema…
Se você fosse desenvolver algo somente para PC/Windows, seria “ridiculo”…
Você se dedida somente a um sistema operacional e já era…
Agora estamos falando em arquitetura de hardware diferente, Sistemas Operacionais diferentes, que não me garantem se eles vão ter algum padrão para seguir!
Por exemplo, vamos dizer que para eu acessar a porta USB no linux eu tenha que ter uma permissão X, mas no Windows não precise dessa permissão X, mas sim uma permissão Y, mas antes disse tenha que fazer uma validação pelo protocolo Z.
Agora imagine se, de repente, dá uma loca lá na MS, e resolvem re-escrever o Windows, e mudam todo esse protocolo? Quer dizer, teriamos uma JVM para Windows 2003 ou menor e outro para o novo Windows 2005 (ficticio)!!! E se todo ano tivessemos essas mudanças (não no sistema mas em algum protocolo, por exemplo)!
É muito gasto de neurônio. Lógico que iria simplificar para nós, programadores, mas ficaria inviável para quem está desenvolvendo a JVM.

Prefiro que eles fiquem quebrando a cabeça para melhorar outras coisas que ficar quebrando a cabeça com isso…[/quote]

Cara voce tem razão. Não tinha pensado por esse lado. bom então paciencia com meu jni.

Obrigado! :thumbup: