앞 블로그 글에서 살펴본 JDK 7의 새로운 기능 중 Java 외 다른 개발 언어 지원 기능에 대해 좀 더 알아보자.
Java Virtual Machine은 사실 Java 언어와는 아무런 연관이 없다. Java Virtual Machine 스팩 문서의 Introduction을 보면 아래와 같은 문장이 나온다.
The Java virtual machine knows nothing of the Java programming language, only of a particular binary format, the class file format. A class file contains Java virtual machine instructions (or bytecodes) and a symbol table, as well as other ancillary information.
즉, JVM은 Java 언어에 대해서는 아무것도 모르며 단지, byte 코드와 기타 정보를 가진 class 파일 포맷에 대해서만 알고 있다는 것이다. Java 언어가 아니라도 Java Virtual Machine 스팩 문서에서 정의한 클래스 포맷과 byte 코드 명령어 규칙을 따르기만 하면 JVM에서 실행할 수 있다.
JRuby - Java로 구현한 RubyJython - Java로 구현한 PythonGroovy - JVM에서 실행되는 새로운 동적 스크립트 언어Rhino - Java로 구현한 JavaScriptJavaFX - Oracle이 RIA를 위해 새로 만든 언어Mirah - Ruby와 유사한 문법의 정적 타입 언어
이미 위와 같이 다양한 개발 언어들을 Java Virtual Machine에서 실행할 수 있다. 왜 이처럼 여러 개발 언어들을 JVM에서 실행하게끔 새로 구현하는 것일까? 몇 가지 이유가 있을 수 있다.
Java가 비록 전 세계적으로 가장 많은 개발자를 거느린 훌륭한 개발 언어임은 틀림없지만 Ruby나 Python과 같이 새롭게 떠오르고 있는 동적 언어를 사용하길 원하는 개발…
Java Virtual Machine은 사실 Java 언어와는 아무런 연관이 없다. Java Virtual Machine 스팩 문서의 Introduction을 보면 아래와 같은 문장이 나온다.
The Java virtual machine knows nothing of the Java programming language, only of a particular binary format, the class file format. A class file contains Java virtual machine instructions (or bytecodes) and a symbol table, as well as other ancillary information.
즉, JVM은 Java 언어에 대해서는 아무것도 모르며 단지, byte 코드와 기타 정보를 가진 class 파일 포맷에 대해서만 알고 있다는 것이다. Java 언어가 아니라도 Java Virtual Machine 스팩 문서에서 정의한 클래스 포맷과 byte 코드 명령어 규칙을 따르기만 하면 JVM에서 실행할 수 있다.
JRuby - Java로 구현한 RubyJython - Java로 구현한 PythonGroovy - JVM에서 실행되는 새로운 동적 스크립트 언어Rhino - Java로 구현한 JavaScriptJavaFX - Oracle이 RIA를 위해 새로 만든 언어Mirah - Ruby와 유사한 문법의 정적 타입 언어
이미 위와 같이 다양한 개발 언어들을 Java Virtual Machine에서 실행할 수 있다. 왜 이처럼 여러 개발 언어들을 JVM에서 실행하게끔 새로 구현하는 것일까? 몇 가지 이유가 있을 수 있다.
Java가 비록 전 세계적으로 가장 많은 개발자를 거느린 훌륭한 개발 언어임은 틀림없지만 Ruby나 Python과 같이 새롭게 떠오르고 있는 동적 언어를 사용하길 원하는 개발…