JavaScript의 한계는 어디까지일까요. Basic, Ruby, Smalltalk 를 구현한 데 이어 또 다른 언어를 구현했습니다.
John Resig 씨에 따르면, 일본의 Shibuya.JS 사용자 그룹에서 JavaScript로 JavaVM을 구현한 Orto [PDF, 일본어] 프로젝트를 진행하고 있다고 합니다. 보다 정확히 말하면 Java를 작성하고, bytecode로 컴파일한 뒤 Orto를 통해 실행해볼 수 있다는 것입니다(이 때 Orto에서 Java -> JavaScript로의 변환과정을 거칩니다).
생성되는 코드는 이런 형태로 사람이 읽을만한 모양은 아닙니다:
실행해볼 수 있는 예제로 테트리스가 있는데, 사람이 밀리는지 접속이 여의치 않네요.

다만, 몇 가지 부족한 부분도 있는데, 이를 테면 쓰레드 구현을 위해 setTimeout을 엄청나게 쓸 수 밖에 없었다와 같은 문제들입니다(JavaScript는 싱글스레드라서 어쩔 수 없는 문제입니다).
John Resig 씨의 블로그에 가보면 댓글에 iPhone에서도 작동했다는 얘기가 있습니다.
from Java in JavaScript from Ajaxian
John Resig 씨에 따르면, 일본의 Shibuya.JS 사용자 그룹에서 JavaScript로 JavaVM을 구현한 Orto [PDF, 일본어] 프로젝트를 진행하고 있다고 합니다. 보다 정확히 말하면 Java를 작성하고, bytecode로 컴파일한 뒤 Orto를 통해 실행해볼 수 있다는 것입니다(이 때 Orto에서 Java -> JavaScript로의 변환과정을 거칩니다).
생성되는 코드는 이런 형태로 사람이 읽을만한 모양은 아닙니다:
"java/lang/Thread 1316742099":function(){var orto333=orto245[0];
var orto336=orto350(orto333);
if(orto336.orto340!=orto310){orto223("java/lang/IllegalThreadStateException",null);
return ;
}
case 117:orto246[orto247-2]={high:(~orto246[orto247-2].high)
&0xffffffff,low:(~orto246[orto247-2].low+1)&0xffffffff};
if(orto246[orto247-2].low==0){orto246[orto247-2].high++;
orto246[orto247-2].high&=0xffffffff;
orto246[orto247-2].low=0;
}break;
실행해볼 수 있는 예제로 테트리스가 있는데, 사람이 밀리는지 접속이 여의치 않네요.

Orto에서 실행한 Tetris
다만, 몇 가지 부족한 부분도 있는데, 이를 테면 쓰레드 구현을 위해 setTimeout을 엄청나게 쓸 수 밖에 없었다와 같은 문제들입니다(JavaScript는 싱글스레드라서 어쩔 수 없는 문제입니다).
John Resig 씨의 블로그에 가보면 댓글에 iPhone에서도 작동했다는 얘기가 있습니다.
from Java in JavaScript from Ajaxian
'[IT] Web Tech' 카테고리의 다른 글
모바일 브라우저 동시성 테스트: 모바일 브라우저를 준비하세요 (0) | 2008.05.04 |
---|---|
Aptana Cloud : 클라우드로의 개발을 데스크탑에서! (0) | 2008.05.04 |
FancyUpload : Swiff, Ajax를 만나다 (0) | 2008.05.03 |
Coherent: Ajax를 위한 Cocoa 데이터 바인딩 (0) | 2008.05.03 |
JavaScript로 실행하는 Java (0) | 2008.05.03 |
Ext JS : 오픈소스 FLOSS 예외사항 (0) | 2008.05.03 |
OpenExt : ExtJS의 포크 프로젝트 (0) | 2008.05.02 |
Ext JS와 오픈소스 라이센스의 재밌는 점 (0) | 2008.05.02 |
Cuzillion: 최적화 성능 테스트 툴 (0) | 2008.04.29 |
댓글을 달아 주세요