2012년 5월 8일 화요일

SWIG



wxWidgets 를 쓰려면, SWIG 를 써야할지도 모른다.

어쩌면, GO 보다 C++ 를 더 열심히 해야할지도 모른다.



http://www.swig.org/

SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages.

Support for the Go language was added in swig-2.0.1.



GUI

눈에 보이는것이 전부다.
손에 만질수 있는것이 전부다.

나는 cross-platform GUI library 를 찾고 있다.

GO 언어로 쓸수 있다면 더 좋을 것이다.





wxWidgets 에 포함된 wxAUI 를 통해 docking window 를 쓸수 있다고한다.







wxAUI is incorporated into the wxWidgets library





2012년 5월 6일 일요일

go languange



{ goroutine, channel, select } 의 조합은 무엇을 의미하는가.

이것은 { 데이터통신과 동기화 } 를 하나로 합쳐놓은것을 의미한다.

이것은 강력한 조합이다.

이 조합의 파급효과는 개발기간단축으로 나타날것이다.



struct, method, interface 조합은  무엇을 의미하는가.

개발이 장기간 진행되어 프로젝트의 파일수/라인수가 늘어나면
개발자가 필연적으로 마주치게되는,
class hierachy 의 복잡도가 증가하는 현상을
제거한다는것을 의미한다.
소스코드의 전체적인 의존성, 복잡도를 낮춘다는것을 의미한다.


C++ 에서 함수의 인자로 base class pointer 를 넘겨줄때나,
virtual function 을 써야할때,
GO 에서는 interface 를 함수의 인자로 넘기고,
interface 를 통해 함수를 호출하면,
마치 virtual function 과 같이 해당 type 의 method 가 호출된다.


디자인을 변경할때, 수정해야하는 코드의 양이 줄어든다.
디자인을 변경할때, 개발자가 머리속으로 처리해야하는 정보의 양이 줄어든다.
따라서 코드는 버그에대한 면역력이 높아지며, 개발기간은 단축된다.


쓰는 사람에게는 Script 언어가 주는 즐거움을 주는 이 언어는
놀랍게도 machine code 를 생성해낸다.
즉, 실행속도가 JAVA 나 .NET C# 보다 빠를것으로 예상된다.



다만, 아직은 성숙되지 않았다.
디버거와 통합된 쓸만한 IDE 가 몇년안에 제공되어야 한다.
UI 라이브러리를 포함한 여러가지 라이브러리가 오픈소스진영에서 쏟아져나와야 한다.

현재 Google App Engine 은 GO 언어를 지원한다고 한다.

Android 개발에도 GO 언어가 지원된다면.