Lua 와 Python 선택.

1,657 views
Skip to first unread message

ilhyo...@gmail.com

unread,
Apr 10, 2006, 3:15:18 AM4/10/06
to luausers-kr
미국에 살고 있는 직장인 입니다.
이번 제 팀에서 과거 오래전에 만들어진 VB계열의
GUI어플리케에션을 속도 및 시스템 리소스 문제로
마이그래이션을 계획하고 있습니다. 그 팀에서
파일럿 프로젝으로 JAVA GUI를 이용하려고 하기는
하는데... 제 생각에는 java gui는 아주 무거워서 별로
추천하고 싶지 않더군요. 더구나 그 사람들, java는
제대로 알지도 못하는데 ......

그렇지않아도 개인적으로 쪼매한 GUI프로그램을
만들어 볼까 했는데, C++로 하자니 좀 귀찮아 하던
차였는데, 마치 회사에 이런 프로젝트가 터서 이참에
그 프로젝트에 참여하기로 했습니다.

저는 c/c++, java를 주로 사용을 했고 예전에 아주 약간
펄을 사용하기는 했었는데, 이번 목적에는 스크립트
언어로 사용하는 것이 아주 딱! 일 것이라는 생각이
들어서요.

일단 둘러보니 Python과 wxPython이 잘 맞을 것 같다는
생각이 듭니다. 그런데 많은 이들이 퍼포먼스와 약간
무겁다는 이야기를 들어서, 그렇지않아도 퍼포먼스와
시스템 자원을 많이 잡아 먹는 것이 문제가 되었는데,
좀 지례 걱정이 되었습니다.

그래서 좀 더 둘러본 결과, Lua를 찾게 되었습니다.

개인적으로 상당히 많이 홈감이 가는 점이
많았습니다. 일단 Python보다 작고 빠르고 언어 문법도
간결하다는 것이 중론이어서 만일 기능만 충분히
받쳐준다면, 더 걱정할 것이 없을 것 같습니다. 지금
계획은 Lua + wxLua를 계획하고 있습니다. 단하나
걱정이라면, Lua에 대한 리소스가 Python에 비해 딸린
다는 것입니다.

아직 두 언어에 대한 지식이 일천한 지라, 일장일단이
있는 두 언어를 두고 맴맴 돌고 있습니다.

Lua와 wxLua를 이용한다면, 외부 현재 존재하는 DLL를
바인딩할 수 있으며, 커다란 문제없이 신속하고 GUI
어플리케이션을 만들 수 있는지 조언을 주시면
감사하겠습니다.

redpixel

unread,
Apr 10, 2006, 4:02:54 AM4/10/06
to luaus...@googlegroups.com
주욱 생각나는데로 나열해보겠습니다.

 * 속도는 아시다시피 루아가 최고입니다. ^_^ 속도를 최우선으로 두신다면 루아를 추천합니다.

 * wxLua도 좋은데, 일단 wxPython에 비하면 매우 지원이 작습니다. (거의 없는 수준이죠. 1년만에 홈페이지가 리뉴얼되었으니...) activity는 이제 시작단계라고 봐도 됩니다.

 * GUI작업이라면 바인딩 라이브러리가 아닌 객체지향을 염두에 두셔야할텐데, 그런면에서 루아는 상당한 약점이 있습니다. 파이선은 자체만으로도 훌륭한 객체지향언어이므로 차후 스크립트만 가지고 작업을 하실 예정이시라면 파이선쪽을 추천드리고 싶습니다. 루아는 제가 개인적으로 작업해본 결과 C와의 연계가 불가피합니다. 루아 문법자체가 데이터기반의 흐름을 기술하는 형식이라 객체지향과는 거리가 멉니다. (상속, 인스턴스.. 모든게 불편합니다. 속도가 느리다는 뜻은 아닙니다) 메타테이블을 사용해서 추상화를 구현할 수는 있지만, 파이선, 자바, C++에서 얘기하는 언어상에서 지원하는 객체지향은 절.대.로 아닙니다. 특히 한분이 클래스를 작성하면 다른 분은 그것을 사용하는 형태라면 루아는 좋은 선택이 아닙니다.

 * 개인적인 소견입니다만, 기존 GUI라이브러리의 대부분은 추상클래스를 제공하고 상속을 통해서 확장하는 형태를 취합니다. (wxWidgets, MFC등등) 이러한 형태는 루아로 구현하기도 힘들고 조금 산만하게 되는 경향이 있습니다. wxLua도 좋은 실험입니다만, 그덕분에 C++로 wxWidgets을 사용하는 것보다 한계가 많이 드러나게 됩니다. 루아답게 사용하는 것은 루아상에서 확장이 아닌 조합을 의도하면서 바인딩할때 최상의 결과가 나온다고 생각합니다. (파이선, 자바는 반대입니다. 핵심기능을 붙이고 로직적인대부분을 자체 언어상에서 구현하죠) 만일 확장하지 않고 tk와 같이 조립하는 형태라면 루아도 좋은 환경이 될수 있으리라 생각합니다.

얘기가 장황합니다만, 결론적으로 자체 GUI라이브러리를 생각하신다면 대부분의 기능을 C/C++에서 구현하시고, 루아에서 조립만 하신다면 루아를 추천합니다. 조금이라도 차후에 스크립트상에서의 확장을 생각하신다면 파이선이나 ruby를 보시는게 좋을거 같습니다.

건투를 빕니다!

- redpixel

--
Kwon Tai-in
http://www.redwiki.net
PGPkey: https://keyserver2.pgp.com/vkd/DownloadKey.event?keyid=0xAFA5E4510E5B4EF9

정한기

unread,
Apr 10, 2006, 5:00:55 AM4/10/06
to luaus...@googlegroups.com
제가 지금 GUI 작업을 하고 있는데요,,
GUI 콤포넌트나 일반적인 인터페이스나 기능은 C++로 구현했고
GUI 를 생성하고 메시지를 처리하는 부분을 루아로 하고 있습니다.

일단 redpixel 님의 말대로,
GUI의 조립 및 메시지나 이벤트 핸들링을 루아로 하고 있는데 정말 좋습니다.
인터페이스 함수만 루아에 바인딩 시키고 GUI 콤포넌트가 일반화가 되어있다면,,
놀랄 정도로 작업의 유연성을 얻을 수 있습니다. :)

류광

unread,
Apr 10, 2006, 5:09:45 AM4/10/06
to luausers-kr
루아에만 국한된 것은 아니지만, 신속하게 GUI를
만드는 게 목표라면 구글 데스크탑 같은 형태의 응용
프로그램도 괜찮을 것 같습니다. 즉, 작고 특화된 웹
서버를 만들고, GUI는 HTML로 만드는 것이지요. 어떤
형태의 응용 프로그램인지는 모르겠지만 주로 자료를
그럴듯하게 표시하고 몇 가지 선택이나 입력을
받아들이는 경우라면 HTML도 충분히 쓸만할 것입니다.
(Ajax까지 동원한다면 훨씬 더 많은 일을 할 수
있겠구요.)

루아를 웹 스크립트로 사용할 수 있는 http 서버로는
http://luaforge.net/projects/xavante/ 가 있습니다. 물론 C/C++로
된 작은 http 서버들도 쉽게 구할 수 있구요.

그리고 luacom이라는 것도 있는데요.(
http://luaforge.net/projects/luacom/ ) 이것은 루아에서 COM
객체(ActiveX 등)를 사용할 수 있게 하는 것입니다. 만일
기존 COM 객체들이 있는 상황이라면 속도에 조금
희생이 있겠지만 루아를 직접 C/C++과 연동시키는
것보다 훨씬 편할 것입니다.

ilhyo...@gmail.com

unread,
Apr 10, 2006, 8:37:09 AM4/10/06
to luausers-kr
상세하고 친절한 답변 감사합니다.
가능하면 언어자체에서 모든 것을 구현하고
싶었는데, c++로 바인딩이 들어간다면, 개발자들이
c++경험이 그리 많지 않은지라, 아무래도 Lua는 무리가
따르겠군요.

그렇다면, 자바나 비쥬얼베이직으로 된
GUI어플리케에션에 비해 Python은 과연 좋은 해결책이
될 수 있을런지요?
왠만한 속도에 적은 메모리랄지....

질문이 이 포럼의 성격에 맞지는 않지만, 도움을
주신다면 감사하겠습니다.

김일형.

redpixel

unread,
Apr 10, 2006, 11:18:22 AM4/10/06
to luaus...@googlegroups.com
어느쪽에 익숙한가..가 문제 아닐까요? 제 개인적인 사견으로는 SWT같은 위젯으로 작업한다면 자바도 그리 나쁜 타겟은 아니라고 봅니다. (물론 제주위에서는 악평이 많습니다만... 개인적인 의견입니다) C빌더나 델파이 같은 3rdparty 툴도 고려를 해보시는게 어떨는지요?
 
장기적으로 보신다면 c#도 좋은 타겟이 될거라 생각합니다. winforms를 사용하기 위한 가장 쉬운 타겟이 될수 있기 때문이지요. vb.net을 하느니 c#이 낫지 않을까 하는생각도 듭니다. ^_^

redpixel

unread,
Apr 10, 2006, 11:19:23 AM4/10/06
to luaus...@googlegroups.com
GUI를 HTML로 만드는 방법이라! 네이트온 같은 어플리케이션에서 쓰는 방법이겠지요. ^_^ 올만에 반갑습니다. 잘 지내시는지요?

06. 4. 10일에 류광 <ryug...@gmail.com>이(가) 작성:
Reply all
Reply to author
Forward
0 new messages