2017.07.07

"함수 언어 프로그래밍에 시각적 개발 구현"··· '루나'(Luna)의 약속

Paul Krill | InfoWorld
개발자들은 일반적으로 코딩 전에 콤포넌트와 디펜던시를 스케치하기 시작한다. 루나(Luna)의 제작사가 텍스트만으로 로직을 구현하는 것이 그리 타당하지 않다고 주장하는 배경이다.

제작사에 따르면, 루나 함수 언어(functional language)는 개발자가 화이트보드에 시각적 요소를 클릭하고 드래그하여 애플리케이션 어셈블리를 구현할 수 있게 해준다.

베타 단계에서 오픈소스로 배포될 것으로 관측되는 루나는 또 리눅스, 맥OS, 윈도우, 자바스크립트에 대해 개발자의 선택에 따라 컴파일러가 네이티브 코드를 생성하게 된다. 루나 개발팀은 현재 프라이빗 알파 릴리즈를 위한 후보자를 물색하고 있다.

루나 제작진의 주장에 따르면 개발자들은 일반적으로 코딩에 앞서 화이트보드에 컴포넌트와 디펜던시를 스케치하곤 한다. 따라서 텍스트로만 구성된 로직은 그리 타당하지 않다. 소프트웨어는 수백, 수천 개의 파일에 분산된 수천 수만 줄의 코드를 가지고 있으며, 이는 시각적 데이터 플로우와 애플리케이션 아키텍처에 실수를 일으킬 수 있는 요인이 된다. 루나 제작진은 UML 아키텍처 다이어그램과 같은 도구의 경우 문제의 원인이 아닌 증상만 다룬다고 강변하고 있다.

반면 루나는 시각적 표현과 텍스터 표현을 갖추고 있으며, 이에 따라 개발자는 자신의 코딩 습관을 유지하면서도 화이트보드와 같은 그래픽 인터페이스를 보유할 수 있다고 개발진은 전했다.

루나의 시각적 표현은 구조, 행동, 데이터 플로우를 드러내준다. 또 프로토타이핑과 비주얼 프로파일을 허용해 성능 병목을 이해할 수 있게 해준다. 연산 시간, CPU/GPU 메모리 할당, 네트워크 전송, 쓰레딩 모델과 같은 통계 수치를 수집하기 때문이다.

루나가 약속하는 다른 기능으로는 다음과 같은 것들이 있다.

- 패러럴리즘(parallelism)
- 고차 함수(higher order functions)
- 논-스트릭트 시맨틱(non-strict semantics)
- 사용자 정의 대수 유형(user-defined algebraic types)
- 유형 검사기와 영향 요인을 내장한 모나딕(Monadic) I/O 시스템. 어떤 펑션이 I/O 행동이거나 퓨어(pure)인지 이해하게 해줄 수 있음.
- 데이터 플로우 오류 처리
- 강력한 디펜던트 타입 시스템

이 밖에 루나는 개발자가 외부(foreign) 노드를 생성하고 파이썬이나 하드켈 코드를 붙여넣을 수 있는 언어 호환성을 지원할 예정이며 자바스크립 및 C++와의 상호 운용성도 계획돼 있다. 그러나 루나 제작진은 다른 언어의 경우 시각적 표현을 염두에 두고 개발되지 않았으며, 이에 따라 이들의 소스 코드가 루나와 달리 그래픽으로 표현될 수 없는 점에 유의해야 한다고 경고하고 있다. ciokr@idg.co.kr 



2017.07.07

"함수 언어 프로그래밍에 시각적 개발 구현"··· '루나'(Luna)의 약속

Paul Krill | InfoWorld
개발자들은 일반적으로 코딩 전에 콤포넌트와 디펜던시를 스케치하기 시작한다. 루나(Luna)의 제작사가 텍스트만으로 로직을 구현하는 것이 그리 타당하지 않다고 주장하는 배경이다.

제작사에 따르면, 루나 함수 언어(functional language)는 개발자가 화이트보드에 시각적 요소를 클릭하고 드래그하여 애플리케이션 어셈블리를 구현할 수 있게 해준다.

베타 단계에서 오픈소스로 배포될 것으로 관측되는 루나는 또 리눅스, 맥OS, 윈도우, 자바스크립트에 대해 개발자의 선택에 따라 컴파일러가 네이티브 코드를 생성하게 된다. 루나 개발팀은 현재 프라이빗 알파 릴리즈를 위한 후보자를 물색하고 있다.

루나 제작진의 주장에 따르면 개발자들은 일반적으로 코딩에 앞서 화이트보드에 컴포넌트와 디펜던시를 스케치하곤 한다. 따라서 텍스트로만 구성된 로직은 그리 타당하지 않다. 소프트웨어는 수백, 수천 개의 파일에 분산된 수천 수만 줄의 코드를 가지고 있으며, 이는 시각적 데이터 플로우와 애플리케이션 아키텍처에 실수를 일으킬 수 있는 요인이 된다. 루나 제작진은 UML 아키텍처 다이어그램과 같은 도구의 경우 문제의 원인이 아닌 증상만 다룬다고 강변하고 있다.

반면 루나는 시각적 표현과 텍스터 표현을 갖추고 있으며, 이에 따라 개발자는 자신의 코딩 습관을 유지하면서도 화이트보드와 같은 그래픽 인터페이스를 보유할 수 있다고 개발진은 전했다.

루나의 시각적 표현은 구조, 행동, 데이터 플로우를 드러내준다. 또 프로토타이핑과 비주얼 프로파일을 허용해 성능 병목을 이해할 수 있게 해준다. 연산 시간, CPU/GPU 메모리 할당, 네트워크 전송, 쓰레딩 모델과 같은 통계 수치를 수집하기 때문이다.

루나가 약속하는 다른 기능으로는 다음과 같은 것들이 있다.

- 패러럴리즘(parallelism)
- 고차 함수(higher order functions)
- 논-스트릭트 시맨틱(non-strict semantics)
- 사용자 정의 대수 유형(user-defined algebraic types)
- 유형 검사기와 영향 요인을 내장한 모나딕(Monadic) I/O 시스템. 어떤 펑션이 I/O 행동이거나 퓨어(pure)인지 이해하게 해줄 수 있음.
- 데이터 플로우 오류 처리
- 강력한 디펜던트 타입 시스템

이 밖에 루나는 개발자가 외부(foreign) 노드를 생성하고 파이썬이나 하드켈 코드를 붙여넣을 수 있는 언어 호환성을 지원할 예정이며 자바스크립 및 C++와의 상호 운용성도 계획돼 있다. 그러나 루나 제작진은 다른 언어의 경우 시각적 표현을 염두에 두고 개발되지 않았으며, 이에 따라 이들의 소스 코드가 루나와 달리 그래픽으로 표현될 수 없는 점에 유의해야 한다고 경고하고 있다. ciokr@idg.co.kr 

X