일단 복잡하게 어떤 사이트나 저장소 찾아가서 소스코드 컴파일하고 이런 난리 치는 것은 빼고
우분투의 소프트웨어 관리자에서 쉽게 선택해서 다운로드 받을 수 있는 정도 수준의 것들만 골라보면…
(1) Sage Notebook
이것은 프로그램 설치형이 아니고, 웹에서 바로 사용하는 것입니다.
http://sagenb.org/ 들어가서 구글플러스 같은 오픈아이디로 로그인하면 그냥 쓸 수 있습니다.
문법은 매틀랩과는 달리 파이썬 기반이므로, 파이썬 문법 학습효과도 볼 수 있습니다.
간단히 몇 줄 짜서, 그 자리에서 그래프 플랏해서 확인해 보거나, 그림을 캡춰해서 발표자료 같은데 넣어서 쓰기 좋습니다.
간이형 계산기로 써먹기도 좋고요.
웹서비스 이므로, 운영체제 가리지 않고 아무데서나 들어가서 쓰기도 좋죠.
(2) Scilab
우분투 소프트웨어 관리자에서 찾아도 나오고, 아니면 홈페이지 http://www.scilab.org/ 에 가서 직접 배포본을 다운로드 받아서 써도 됩니다.
윈,리눅스,맥용 다 있습니다.
문법 및 사용법은 매틀랩과 거의 유사하나, 조금 차이가 있어서 매틀랩의 m파일 소스를 그대로 돌리지는 못합니다만
자체적으로 매뉴 안에 m파일을 Scilab 파일로 변환해주는 번역기가 제공됩니다.
때문에 m파일을 이걸 이용해서 변환한 다음에 실행시키면 잘 돌아갑니다.
다만 매틀랩 m파일 중에서 좀 수준높은 함수들을 쓴 것은 곤란합니다. (GUI 같은거 구사한 경우)
또, 매틀랩의 시뮬링크(소스코드 짜지 않고 블록식으로 갖다붙여서 개발하는 툴)에 대응하는 XCOS 툴도 제공됩니다.
라이브러리도 상당히 빵빵하고 완성도도 높습니다.
(3) Octave
매틀랩 m파일을 왠만하면 그냥 갖다 돌려도 다 돌아가죠.
다만 이것만 받으면 GUI환경은 제공되지 않기 때문에, QtOctave 를 우분투 소프트웨어 관리자에서 찾아서 깔아주고 쓰면 됩니다.
다만 QtOctave는 지금 개발이 중단된 것으로 압니다… 더이상 업데이트는 없을 것이지만, 이에 상응하는 다른 GUI환경들도 여럿 있을 겁니다.
잘 찾아서 쓰면 됩니다.
Octave는 윈도우에서는 사용하지 않는 것이 좋습니다.
윈도우용으로 컴파일된 것들은 대부분 아직 버그 투성이라서 사용이 불가능한 수준이고
시그윈을 윈도우에 깔아준 후, Octave를 그 위에 올려서 쓰기도 합니다만 이 경우엔 GUI 사용이 곤란하다고 생각되고, 또 너무 복잡하죠.
(4) FreeMAT
우분투 소프트웨어 관리자에서 찾아도 나오고, 또 http://freemat.sourceforge.net/ 여기서 직접 받아도 됩니다.
별로 활발하거나 규모가 크게 개발되고 있는 것은 아니지만, 윈도우버전도 꽤 안정적이고 또 물론 리눅스에서도 잘 돌아갑니다.
라이브러리는 아직 크게 확장되어 있는 상황은 아니지만, 기본적인 매틀랩 m파일로 그래프 플랏하는 정도는 아무 문제 없습니다.
일단 패키지 사이즈가 작기 때문에, 간단히 쓰기에 좋습니다.
(5) iPython + Numpy + Scipy + MatPlotLib
이상의 것들은 물론 전부 우분투 소프트웨어 관리자에서 찾을 수 있고, 그냥 선택해서 깔아주면 됩니다.
iPython은 그냥 파이썬 환경보다 응답문이 더 친절하게(?) 잘 나오기 때문에 이걸 많이 쓰더군요.
위에 Sage 프로젝트도 iPython 위에서 개발된 거라고 합니다.
Numpy는 행렬계산 할 수 있는 파이썬 라이브러리 입니다. 매틀랩 흉내내려면 필수겠죠.
Scipy는 과학계산용 라이브러리 입니다. 공돌이라면 물론 반드시 필요.
MatPlotLib는 매틀랩하고 거의 똑같이 플랏 명령을 사용하게 해 주는 라이브러리 입니다.
일단 다 받아서 깐 다음에, http://matplotlib.org/ 홈페이지 가서 튜토리얼 열심히 따라하면서 배우면 됩니다.
이 환경에서는, 파이썬 프로그램으로 위의 라이브러를 이용해서 매틀랩에 거의 육박하는 생산성을 보여줄 수 있는 것 같습니다.
물론 문법은 파이썬 문법이기 때문에, 매틀랩 m파일과의 호환성은 없습니다.
하지만 요즘 많은 대학원 등의 공학도들이 이 환경을 선택하고 있는 중인 듯 합니다.
매틀랩 패키지가 너무 비싸니까요.
(6) MayaVi2
이것도 우분투 소프트웨어 관리자에서 찾아서 간편하게 깔 수 있습니다.
http://code.enthought.com/projects/mayavi/ 여기가 이 프로젝트의 현재 집주소입니다.
파이썬 위에서 돌아가는 놈으로, 이걸 깔고 나면 이것의 라이브러리를 파이썬에서 그대로 쓸 수도 있습니다.
즉 이걸 깔고나서 그냥 iPython이나 Python 터미널에서 코딩해도 됩니다.
또는 함께 깔린 MayaVi2의 통합개발환경(IDE)에서 코딩해도 됩니다. 물론 이쪽이 더 편할 듯 합니다.
MayaVi가 뭐하는 거냐면, 파이썬으로 아주 화려한 공학해석 결과 데이타의 3D 비쥬얼을 보여주게 해 줍니다.
원래 이것은 유체해석(CFD) 분야에서 해석결과를 그래픽으로 뿌려주기 위한 목적으로 개발된 것인데
그래픽이 원체 이쁘게 나오니깐 그냥 일반적인 다른 목적으로도 써도 되지 않냐 해서 많이 이용되는 듯 합니다.
(7) Processing Language
프로그램 작성용 언어입니다. http://processing.org 가서 보시면 됩니다.
JAVA 기반인데, JAVA 프로그램도 짜기 어렵고 복잡하다는 불평 때문에 개발된 것이라고 합니다.
때문에 JAVA 문법을 더 간략하게 하고, 고유의 라이브러리를 집어넣어서 엄청나게 쉽게 해 놨더군요.
물론 그렇게 짠 소스는 JAVA로도 번역되어 저장됩니다.
GUI 통합개발환경(IDE)도 함께 제공되는데…
일단 설치 방법은… 홈페이지에서 압축파일 받아서 원하는 장소에 풀어넣어 주면 됩니다.
그 안에 processing 이라는 실행파일을 실행시키면, IDE 창이 뜹니다. 그렇게 그냥 쓰면 되는 거고요.
제가 이거 매뉴얼 보면서 10줄 정도 간단히 짜 주니깐, 화려한 그래픽의 Sine 곡선을 뿌려주고, 슬라이드 바를 띄워서 그 곡선의 모양을 마음대로 바꾸는 게 가능하더라고요. 이제까지 본 것 중에서 최고로 쉬운 언어 같습니다.
원래 공학을 전공하지 않은 디자이너나 미디어 아티스트를 위해 만들어졌다고 합니다.
원래 이 녀석의 경쟁상대는 매크로미디어 플래쉬, 디렉터 같은 것들이었는데
요즘 아시다시피 플래쉬 같은 것들은 죽어가는 상황이기도 하고… 또 3D 그래픽 쪽은 약하다는 단점이 있었는데
프로세싱 언어로 하면 완전 개쩔어주는(?) 3D 영상을 만들어낼 수 있겠더라고요.
또 Arduino 같은 오픈소스 하드웨어랑 연결해서 하드웨어 제어도 하고, 컴퓨터 음악이나 음향 같은 것도 하고 등등
아티스트 쪽에서는 각광받는 것 같습니다.
저도 공돌이긴 한데 이거 보고 정말 감탄했고, 이걸로 뭐 하나 간단한거 짜 보기 정말 좋더라고요.
단점은… 우분투에 기본으로 제공되는 JAVA 환경은 OpenJDK,Icedtea 환경인데
프로세싱으로 만든 스크립트는 호환이 안되더라구요.
그래서 정품(?) 오라클 JDK를 따로 우분투에 깔아주고 그걸 기본으로 사용하도록 설정을 바꿔줘야 되는 번거로운 점이 있습니다.
(하는 방법은 구글링 해 보면 잘 나옵니다.)
(8) JULIA
새로운 언어이던데요.
아직은 한창 개발중이고 발전중이기 때문에, 본격적으로 이걸 활용해서 뭘 하거나 할 수 있는 단계는 아닌 듯 합니다만
일단 여기 가서 대략 훑어보면… http://julialang.org/
매틀랩과 유사한 문법으로(차이점은 있지만) 매틀랩 스크립트 짜듯이 짜는 방식입니다.
헌데 이넘은 인터프리터가 아니라 컴파일러 방식인데다가 최신의 LLVM 컴파일러를 이용하는 모양입니다.
줄리아 소스 -> CLANG(C++언어) 소스로 변환 -> LLVM으로 컴파일 -> 실행
대략 이런 절차인가 본데, 사용자는 거의 느끼지 못할 정도로 그냥 인터프리터 스크립트 같은 느낌입니다.
설치방법은 아직 제대로 된 패키지는 제공되지 않기 때문에, 소스코드 받아서 직접 컴파일해서 설치해야 합니다.
라이브러리도 아직 제대로 안 갖춰졌습니다.
하지만 이넘의 파괴력은… 속도가 엄청나다는데 있는듯 합니다.
아시다시피 매틀랩으로 공학해석하면, 문법도 쉽고 라이브러리도 빵빵해서 생산성이 높습니다만
실행속도가 엄청나게 느리기 때문에 대규모 데이타를 다루지는 못하쟎아요.
헌데 줄리아는 속도가 매틀랩이나 자바 같은 것은 즐 때리고
거의 포트란 수준에 육박한다는 거에요… 벤치마킹 표를 보고도 믿기 힘들더군요.
아무튼 좀 기다려보면, 이 녀석도 잘 발전해서 고속연산+쉬운문법의 무기를 가지고 한바탕 유행이 일어날지도 모르겠다는 생각이 들었습니다.
오픈소스 프로젝트들이 대부분 고만고만하고 허접하거나 완성도가 미비하다고들 하는데
간혹 이런 줄리아 같은거 보면 등골이 오싹해질 정도입니다.
아마 이걸 이용하는 계획은 대충 이런 것 같아요.
- 리눅스 서버에 줄리아를 깔아놓는다. 리눅스 서버는 클러스터링 같은걸로 성능을 엄청 올려놓는다.
- 줄리아 웹서버를 활성화시킨다.
- 사용자는 웹브라우저로 줄리아 서버의 웹사이트에 접속해서, 작업을 한다.
- 대규모 연산은 서버에서 처리.
- 결과 그래프 같은 것은 웹브라우저에서 인터액티브하게 바로 바로 띄워서 보여준다.
나중에 슈퍼컴퓨터에 줄리아 깔아놓고 돌리는 시대가 올지도…