JavaFX Script (자바FX 스크립트)

rss
목차 보기


JavaFX Script (자바FX 스크립트)

사용자 삽입 이미지
JavaFX Script(자바FX 스크립트)에 관한 내용을 아래에 정리해 보았다. 본 내용은 기본적으로 wikipedia.org의 JavaFX Script 페이지를 바탕으로 기타 참고 자료를 덧붙여 완성한 것이다.



JavaFX Script(자바FX 스크립트)는 썬 마이크로시스템즈에 의해 고안된 스크립팅 언어(scripting language)로서, 자바 플랫폼(Java platform) 상에서 동작하는 JavaFX 제품군의 하나이다.

JavaFX(자바FX)는 리치 인터넷 애플리케이션(Rich Internet Application, RIA) 도메인(Adobe Flex나 Microsoft Silverlight와 경쟁하게 될 시장)을 겨냥하는데, 특히 데스크탑이나 모바일 시장을 위해 시각적으로 풍부한 애플리케이션(visually rich applications)을 빠른 시간에 개발하는 데 특화되었다. JavaFX Script(자바FX 스크립트)는 Netbeans나 Eclipse(이클립스)와 같은 통합 개발 환경(integrated development environment, IDE) 하에서 개발할 수 있다. JavaFX Script(자바FX 스크립트)는 썬(Sun)이 지원하는 OpenJFX 프로젝트를 통해 GNU General Public License(GPL)로 배포된다.

제임스 고슬링(James Gosling)에 따르면, 이러한 일은 기존의 자바(Java)로도 할 수 있지만 시간이 많이 걸리는 일이기에 JavaFX Script(자바FX 스크립트)가 등장하게 되었다고 한다. 또한 이렇게 함으로써 애플(Apple)이나 썬(Sun) 등에서 제시하는 유저 인터페이스 가이드라인을 따르는 종래의 인터페이스가 아닌, 사용자 또는 기업이 원하는(통제할 수 있는) 인터페이스를 만들 수 있을 것이라고 말한다. 이에 대해 "사용자가 상호 작용해야 하는 애플리케이션은 그 회사의 얼굴이기 때문"이라고 설명하고 있다.
You can do that with today's Java, but what—it's too difficult?
Gosling: It can take a long time. Also there's this strange thing in the computer GUI business—traditionally there's been this notion that you want to have consistency. Companies like Apple and Sun have published user interface guidelines that say buttons should look this and sliders should look like that. But what people are wanting these days is something where the look is totally under their control—it's totally re-skinnable. The app (application) you see is really the face of whoever has built it for you. If it's a bank or a media company, the app you interact with is the face of the company.

[ CNET news.com, Java goes back to the PC ]


역사

원래 자바(Java)는 1991년, 셋탑박스(set top box) 프로젝트에서 사용하기 위해 제임스 고슬링(James Gosling)에 의해 개발되었다. 이는 WORA(Write Once, Run Anywhere) 즉 프로그램을 한번만 작성하면 어떤 플랫폼에서든 동작할 수 있도록 하는 것이 주요한 목적 가운데 하나였다. 현재 자바가 기업용 소프트웨어 시장까지 진출하였지만 시작은 소규모 기기들을 위한 것이었던 만큼, 이번 JavaFX Script(자바FX 스크립트)의 출시는 자바(Java) 원래의 목적을 계승하는 것이라 볼 수 있다.

이와는 별개로, JavaFX Script(자바FX 스크립트)는 원래 F3(Form Follows Function)라 불렸다. F3는 크리스 올리버(Chris Oliver)[Chris Oliver's Weblog]에 의해 개발되었는데, 2005년 9월 SeeBeyond Technology Corporation이 인수되면서 선(Sun)의 직원이 되었다. 그 후 이름이 JavaFX Script(자바FX 스크립트)로 변경되었고, 2007년 JavaOne(자바원)에서 오픈 소스가 되었다.


특징(Features)

JavaFX Script(자바FX 스크립트)는 자바 플랫폼(Java platform)을 위한, 컴파일되는(compiled) 정적 타입의(statically typed) 선언적(declarative) 스크립팅 언어(scripting language)로서 자동 데이터 바인딩(automatic data-binding), 2D 그래픽과 표준 스윙(Swing) 요소 완벽 지원, 게다가 선언적 애니메이션을 지원한다. 자바 플랫폼 위에서 만들어졌기 때문에, JavaFX Script(자바FX 스크립트) 내에서 자바 클래스(Java classes)를 사용하는 것이 손쉽다. [ 출처: Wikipedia ]

JavaFX(자바FX)는 자바 런타임(Java Runtime)이 설치된 플랫폼이라면 어디에서든 구동할 수 있다. JavaFX(자바FX) 인터프리터(interpreter)가 디폴트 자바 바이트코드(default Java bytecode)를 생성하기 때문에 아무런 수정이 필요하지 않다. JavaFX(자바FX)를 직접 바이트코드로 컴파일하는 과정을 통해 성능을 개선할 수 있도록 향후 컴파일러도 만들어질 예정이다.

유저 인터페이스(user interface)를 생성해 내는 데 쓰이는 JavaFX Script(자바FX 스크립트)의 선언적 문법(declarative syntax)은 스윙(Swing)에서 동일한 인터페이스를 만들기 위해 필요한 더 장황한 일련의 메소드 콜(the more verbose series of methods calls)과 선명히 대조된다.


예제(Examples)

Hello world program

다음은 JavaFX Script(자바FX 스크립트)로 작성한 Hello world program이다. 다음 두 가지 방식으로 작성될 수 있다.
import javafx.ui.*;

Frame {
	title: "Hello World F3"
	width: 200
	content: Label {
		text: "Hello World"
	}
	visible: true
}
var win = new Frame();
win.title = "Hello World F3";
win.width = 200;
var label = new Label();
label.text = "Hello World";
win.content = label;
win.visible = true;

이렇게 작성된 코드는 다음과 같은 창을 생성한다.
사용자 삽입 이미지


JavaFX Script와 WPF/XAML의 비교

WiredPrairie.us의 "Separated at birth? JavaFX and WPF/XAML?"이라는 글에서는 JavaFX Script(자바FX 스크립트)와 마이크로소프트(Microsoft)의 WPF(Windows Presentation Foundation)/XAML(eXtensible Application Markup Language)을 비교하고 있다.


JavaFX Script 언어

예제를 통한 JavaFX Script 학습

썬 개발자 네트워크(Sun Developer Network, SDN)에서는 JavaFX Script에 대한 간단한 가이드를 제공하고 있다. 여기에서는 JavaFX Script JavaFXPad를 이용하여 소스 코드를 작성하고 수정하면서 사용법을 이야기하고 있다.


The JavaFX Script Programming Language Reference

JavaFX Script 언어를 익히려면 java.net에서 제공하는 <The JavaFX Programming Language> 페이지를 참조하면 된다.


Introduction to JavaFX Script

원문: onjava.com, "Introduction to JavaFX Script", 2007/08/01.
번역: 한빛미디어, "JavaFX 스크립트 소개 (1부, 2부, 3부, 4부)", 2007/09/27 - 2007/10/05.


경쟁 제품 및 기술

현재 리치 인터넷 애플리케이션(Rich Internet Application) 부문은 웹 개발자들이 미디어 공유 사이트, 데스크탑 스타일 프로그램 등 더욱 복잡한 온라인 애플리케이션을 개발하기 시작하면서 소프트웨어 개발 분야에서 가장 뜨거운 감자로 떠오르고 있다.

자바스크립트(JavaScript)를 주로 사용하는 에이젝스(Ajax) 스타일 프로그래밍은 매핑 서비스나 웹 2.0 소셜 네트워킹 애플리케이션 제작 과정에서 유저 인터페이스를 구성하는 데 많이 사용되고 있으며, 어도비(Adobe)에서는 미디어 리치(media-rich) 유저 인터페이스 개발에 널리 사용되는 플래시 플레이어(Flash Player)와 이를 보조해 주는 플렉스(Flex) 개발 툴의 개발에 투자하고 있다. 또, 마이크로소프트(Microsoft)는 실버라이트(Silverlight) 브라우저 플러그인 개발에 힘을 쏟고 있다. [Martin LaMonica, CNET news.com]

현대 PC, 휴대폰, 셋탑박스, 모바일 단말 등 수많은 기기가 웹으로 통합되고 있기 때문에 썬과 마이크로소프트(Microsoft)도 이 시장에 큰 관심을 보이고 있다. 하지만 기존의 자바(Java)는 웹에 적용하기에는 다소 무겁고 닷넷(.NET)은 윈도우(Windows) 플랫폼에서만 동작 가능한 폐쇄성이 단점으로 지적되어 왔다. 이러한 상황에서의 요구 사항은 플랫폼 독립성과 리치 인터넷 애플리케이션(Rich Internet Applications, RIAs)을 지원하면서도 유연한 프로그래밍 환경으로 요약 가능하다.

2007년 6월 한국 썬 마이크로시스템즈에서 주최한 자바FX 기술 기자 간담회에서 언급된 JavaFX Mobile(자바FX 모바일)과 어도비(Adobe) 플렉스(Flex)와의 비교에서, 플렉스는 인터넷 환경에서 강점을 가지고 있으며, 플래시 플레이어(Flash Player)의 보급도 상당하고 또 멀티미디어 코덱 자체가 미디어 플레이어에 내장되어 있어서 멀티미디어 관점에서는 플레스가 우위에 있지만, 개발자 입장에서의 개발 생산성은 JavaFX Script(자바FX 스크립트)가 나을 것으로 예측했다.

한편, 이에 대해 제임스 고슬링(James Gosling)은, 자바 플랫폼은 엄청나게 많이 설치되어 있으며 자바 플랫폼을 통해 할 수 있는 일도 어마어마하다고 강조했다. 자바(Java)로 작성된 애플릿(applet)을 이용한다면, 플래시(Flash)를 이용해서 할 수 있는 일보다 훨씬 많은 일을 할 수 있을 것이라 주장했다.
So why are you guys doing this now? It seems a lot of this action is happening now with Adobe's Flash and perhaps Microsoft's Silverlight.
Gosling: This is certainly in that space. The Java platform has got a huge installed base, and the depth of what you can do in the Java platform is really huge. If you compare what you can do with Java coded in an applet, it's far more than what you can do with things like Flash. But the issue for us really has been that while the capability was there, it's been difficult to do. So we've been on this mad tear to make the easy stuff easy. We've gotten pretty good at making the hard stuff possible, and over the last couple years we've focused pretty heavily on the enterprise world and making (it easy to build) these giant enterprise apps.

[ CNET news.com, Java goes back to the PC ]



References
  1. Wikipedia.org, "JavaFX"
  2. Wikipedia.org, "JavaFX Script"
  3. Sun Microsystems, JavaFX website
  4. Wikipedia.org, "Java (programming language)"
  5. Martin LaMonica, "썬, 소비자 입맛에 맞춘 자바로 재도전",
    CNET News.com (원문, "Sun tries again with consumer-flavored Java"), zdnet.co.kr (번역), 2007/05/09.
  6. 전자신문, "차세대 개발 플랫폼 별들의 전쟁…선, 자바FX 공개", 2007/05/10.
  7. Stephen Shankland, "자바, PC로의 귀환",
    CNET News.com (원문, "Newsmaker: Java goes back to the PC"), zdnet.co.kr (번역), 2007/05/14.
  8. 세계일보, "자바FX 모바일, '스마트폰 OS' 맹주 노린다", 2007/06/28.
  9. Wired Prairie, "Separated at birth? JavaFX and WPF/XAML?", 2007/05/09.
  10. SDN Korea, "JavaFX 스크립트 학습, 1부: Java 프로그래머를 위한 JavaFX 스트립트 소개".
  11. openjfx.dev.java.net, "Getting Started with the JavaFX Script Language (for Swing Programmers)".
  12. onjava.com, "Introduction to JavaFX Script", 2007/08/01.
  13. 한빛미디어, "JavaFX 스크립트 소개 (1부, 2부, 3부, 4부)", 2007/09/27 - 2007/10/05.
  14. Inyoung Cho, “Java Scripting: Java FX Script and JRuby”, 2007/10/05.
  15. Simon Ritter, “JavaFX”.
  16. Chris Oliver, Chris Oliver's Weblog.


Posted by EXIFEEDI
,