http://ironpython.net/오오 -ㅁ-; iron python 1.x 의 허접함에 실망해서 거의 신경 쓰지 않고 있었는데...
엄청나게 강한 모습으로 다시 돌아왔습니다.
최근 앞으로 변화되는 플랫폼에 대응하기 위해 아래 3가지로 고민하고 있었는데...
1. HTML5 + JavaScript
2. FLASH + Action Script
3. Unity3D + JavaScript, CLR 언어
4. nebula3 + C++
사실 마음에 내키는게 별로 없었거든요.
HTML5 는 핵심인 canvas 기능에 대해 MS 가 딴청부리는 중인데다;
JavaScript 무조건 소스 공개 스타일이 게임에는 적합하지 않아보였고
FLASH 는 애플에서 노골적으로 거부를 하는 상황이죠;
Unity3D 는 과연 커스터마이징이 어느정도 될 것인가... 문제 발생시 대처가 어느정도나 가능할까...
(무엇보다 설치 후 툴이 실행 안되는 모습에 신뢰도가 -ㅅ-;; DEP 문제라는 것 같은데... )
nebula3 는 코어는 맘에드는데 최근 업데이트가 거의 없는데다가;
과연 다른 플랫폼에 대응하려면 엄청난 노력이 필요할것 같더군요.
제가 생각하는 프로그램을 만드는 가장 좋은 방법은
일단 스크립트 언어로 편하게 프로토 타입을 만든 다음
필요한 부분만 저수준 언어로 확장 모듈을 만드는 방법이거든요.
그런데 c 나 c++ 만 10년 정도 하신 분들은 새로운 언어에 대한 두려움아 꽤 많은 것 같더라구요.
더군다나 통합 디버깅 환경도 지원이 안되면... 모르겠다 -ㅁ-)~ 이런 결과가...;
이런 점에서 IronPython-2.6.1 버전은 꽤 괜찮은 솔류션으로 보입니다.
홈페이지 첫화면에 떠있는 대형 문구!
IronPython Tools
for Visual Studio 2010
오오 -ㅁ-);
다운로드 받아서 돌려보니
단독 실행 파일 생성 을 지원하더군요!!
ipy.exe Tools\Scripts\pyc.py /out:test /target:exe /main:test.py /platform:x86
Windows 뿐만 아니라 Mono 가 지원되는 유닉스 계열 운영 체제나 모바일 운영체제도 지원되죠
동일한 바이너리로 말이죠! -ㅁ-)! 오오;
파이썬 모듈은
ctypes 도 가능!
IronPython 2.6.1 (2.6.10920.0) on .NET 2.0.50727.4927
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes
>>> ctypes.cdll.msvcrt.puts(b"HAHA")
HAHA
0
>>>
ctypes 가 된다는 말은 .NET 안쓰고
기존에 c/c++ 로 작성된 dll 을 그냥 불러와서 사용할 수 있다는 이야기거든요! 확장 모듈 만들기가 쉽다는 말이죠
>ㅁ<) 와하하~
멀티 코어 시대에 GIL 때문에 난감한 CPython 과는 달리
멀티 쓰레딩도 어느정도 지원한다는 것 같고요~
다만 몇가지 문제가 있긴 한데...
그중 하나가 성능입니다.
2008 년 성능 비교 (음... ;; )
http://ironpython.codeplex.com/wikipage?title=IP20VsCPy25Perf&referringTitle=IronPython%20Performance&ProjectName=ironpython2010 년 성능 비교 ( 아아-_-;; )
http://ironpython.codeplex.com/wikipage?title=IP261Net20VsCPy26Perf&referringTitle=IronPython%20Performance2년이 지난 결과가 오히려 더 안 좋다는건 그만큼 CPython 성능이 좋아진걸로 받아드리도록 하죠. 흠흠;;
개별 성능 비교를 보면 극단적인 결과를 찾아볼 수 있습니다.
빠른건 2배 가까이 빠른데
느린건 (구체적으로 말하면 문자열 처리-_-) 2배 이상 느리네요;;
열심히 최적화하다보면 언젠가는 빨라지지 않을까 기대해 봅니다.
(왜 이렇게 느린지는 소스를 한번 뜯어 봐야 할 듯 합니다)
두번째 모듈은 아직까지 Python 모듈 포팅이 완벽하지 않습니다.
자주 사용되는 모듈 중심으로 70% 정도 진행된것 같은데...
신기하게도 제가 자주 사용하는 expat 이 빠졌더군요 T_T)~
덕분에 xml.dom.minidom 을 사용 못하고 있습니다 orz;
스크립트 언어를 쓰는 이상 느리거나 없는 건 만들어 쓰는게 당연하니
큰 문제는 없으리라고 생각됩니다~
이런 이유로 오늘부터 저는 IronPython 의 세계로 들어가겠습니다. 햐햐 -ㅂ-)~

(
0)

(
0)
http://imp17.com/tc/myevan/trackback/322