'Andrei Alexandrescu'에 해당되는 글 3건
- 2009/09/19 차세대 게임개발 언어로 D에 주목하는 이유 - 1 (10)
- 2009/09/10 My Recent Tweets 20090909
- 2009/05/15 Iterators Must Go! (in favor of ranges) (2)
- 차세대 게임개발 언어로 D에 주목하는 이유 - 1
Tweet
- Game Development
- 2009/09/19 06:44
- Andrei Alexandrescu, array slicing, binarysearch, C++0x, D programming language, D 언어, unittest, 단위테스트, 이진검색
-
예전 모회사에서 새 게임 프로젝트를 준비할 때, C++ 대신 D 언어를 심각하게 고려한 적이 있습니다. 3년도 더 된 이야기입니다만... 결국 정식 디버거도 없는 열악한 개발 환경 등을 고려할 때 무리다 판단했었습니다.
그 사이 D도 더디지만 발전하여 D 2.0 스펙이 나왔더군요. 그리고 책도 출간 예정입니다. 그것도 C++ 구루의 한명인 Andrei Alexandrescu에 의해서 말입니다. 아직 몇개월이 더 지나야 책이 최종 출간될 것 같습니다만... 저는 출간 전 작성 중인 책을 미리 구입해 볼 수 있는 서비스를 통해 미완성본을 읽어보았습니다.
역시 그였습니다. D 1.0에서도 C++의 가려운 점을 많이 긁어주고 있다 생각했었는데, 그의 합류로 탄생한 D 2.0은 한층 더 발전한 느낌입니다. C++도 차기표준 C++0x로 많은 개선이 예정되어 있으나 그에 견주어도 여전히 매력적입니다.
그래서 차세대 게임개발 언어로서의 D의 강점을 앞으로 몇회에 걸쳐 다뤄볼까합니다. 자, 바로 시작해보죠.
- C++, Objective-C와 마찬가지로 C와의 하위호환성을 유지합니다.
- 이를 통해 게임개발에 필수적인 DirectX, OpenGL 등과 운영체제 API의 활용이 가능합니다.
- 그 밖에도 많은 공개/상용 C 라이브러리들을 D 언어와 조합하여 쓸 수 있습니다.
- 마지막 한 방울의 성능까지 짜내야할 부분에서 저수준으로 접근하는 것이 가능합니다.
- 언어 차원의 단위테스트/연관배열(일명, 사전)/배열쪼개기 지원
- Type-generic한 이진검색 구현의 예입니다.
- 8,9줄에서 파이썬에서와 유사한 배열쪼개기(array slicing) 기능을 확인하실 수 있습니다.
- C++0x에서와 같은 auto를 통한 타입 유추도 확인하실 수 있죠.
- unittest 키워드로 아주 간편하게 단위테스트를 작성할 수 있습니다. 이러한 단위테스트들은 컴파일 시 -unittest 인자를 주면 main 진입 전에 자동으로 수행됩니다.
참고자료
* 이 포스트는 blogkorea [블코채널 : 웹, 컴퓨터, it에 관련된 유용한 정보 및 소식] 에 링크 되어있습니다.
'Game Development' 카테고리의 다른 글
| 크라이엔진 3 발표와 크라이텍코리아 구인 (0) | 2009/10/18 |
|---|---|
| 분산버전관리 머큐리얼로 개인작업 관리하기 (2) | 2009/10/03 |
| 차세대 게임개발 언어로 D에 주목하는 이유 - 1 (10) | 2009/09/19 |
| gamescom 간단 참관기 (6) | 2009/09/02 |
| GDC Europe 2009 참관기 (2) | 2009/08/25 |
| GDC 유럽 2009 참관 세션 스케줄 (5) | 2009/08/14 |
- My Recent Tweets 20090909
Tweet
- Tweets
- 2009/09/10 05:57
- agile, Andrei Alexandrescu, bithacks, cartoon shader, CppDepend, D programming language, data-oriented design, dvcs, FeatureBranch, git, NEXUS, NP-Complete, Open-Closed Principle, OpenCL, OpenGL, pass by value, radial basis function, reflection, Single Responsibility Principle, SnowLeopard, Software Transactional Memory, stm, Syntax Highlighter, tedtalks, textmate, vim, zero-length array, 버그트래커
-
이번에는 대분류를 좀 더 세분화해보았습니다. ^^![]() Freedom by che colore ha il buio, stanotte |
씨뿔뿔C++
- CppDepend - NDepend for C++ http://su.pr/7mH3lp #programming #
- NDepend의 C++ 버전으로 강력한 소스코드 정적분석 도구입니다. 상용입니다만, 한번 써볼 가치가 있어보입니다.
- Want Speed? Pass by Value: http://su.pr/9gxO1q #C++ #programming #
- 덩치 큰 개체는 const 참조로 넘겨야 한다는 통념이 더이상 통하지 않음을 보여줍니다.
- Another great C++ blog: http://su.pr/1quwf7 #programming #
- 이제 시작 단계임에도 위 글을 비롯하여 유용한 글들이 많은 C++ 블로그
- RT programmingjoy: bithacks.h - bit hack macros #programming http://bit.ly/W1GBy #
- 비트 조작 매크로 도구 모음 헤더
- Interesting Rant on C++'s operator new: http://su.pr/2e30QP #programming #
- C++의 new 연산자의 단점에 대한 상세한 고찰
- When is a zero-length array okay? http://su.pr/1MXZyN #C++ #programming #
- "new T[0]"가 오류가 아닌 이유에 대한 Herb Sutter의 설명
- C++ introspection library and portable industrial graphical components for GPL and commercial use: http://su.pr/2p7Z9J #programming #
- 유용해보이는 C++ 리플렉션 공개 라이브러리
![]() Zakim Spires by ManicMaurice |
병행Concurrency
- RT bjoernknafla: Context, context, context - and locality - how not to lose your mind in parallel times http://post.ly/46EX #programming #
- 병행프로그래밍에 관한 독일 게임프로그래머의 블로그글
- RT SoftTalkBlog: Experiment with STM using Microsoft’s free software http://bit.ly/wTRwT #programming #
- C#에서 Software Transactional Memory를 사용해볼 수 있게해주는 실험적 STM.NET이 나왔습니다.
![]() Pac-Man gets all the girls by Crashworks |
게임개발GameDev
- RT SnappyTouch: My data-oriented design article (or why OO sucks for high-perf games) is online http://bit.ly/2vGVWd #programming #
- 고성능 게임을 위해선 개체지향이 아닌 데이터지향 설계가 필요하다는 GDMag Inner Product 칼럼니스트 Noel의 글
- RT truwater: 최고의 UI 디자인 툴 - 발사믹모컵 http://bit.ly/rnCjF 메일만 잘 보내면 공짜로 준다는... #
- 게임개발 시에 UI를 시뮬레이션해봐야 할 때가 많은데, 그 때 유용하게 쓸 수 있을듯.
- An insightful programmer from Insomniac games mike_acton #ff #followingfriday #
- Insomniac Games의 프로그래머 Mike Acton. 프로그래머에게 유용한 정보를 많이 올리는 트위터
![]() Explode of rainbow wold.(This is my wold) by Matthew Fang |
프로그래밍Programming
- RT cjunekim: Skimming Damon B. Poole's free ebook : Do It Yourself Agile http://bit.ly/J7G5K #programming #
- 김창준님이 트윗하신 애자일 관련 공짜 서적. 쓸만한 정보가 있으려나요?
- RT unclebobmartin: http://bit.ly/snflj Blog about Open-Closed Principle. #programming #
- 개체지향설계의 핵심 원칙 중 하나인 OCP를 설명
- RT programmingjoy: How Not To Optimize #programming http://bit.ly/tYmFp #
- 이제 세월이 바뀌어 더이상 통하지 않는 최적화 기법들에 대한 글
- RT unclebobmartin: http://bit.ly/WPHU2 Blog about SRP. One of the SOLID principles. #programming #
- 개체지향설계의 핵심 원칙 중 하나인 SRP(단일책임원칙)를 설명
- FeatureBranch by Martin Fowler: http://su.pr/2veSmh #programming #
- 리팩토링의 창시자 마틴파울러가 소스버전제어 시의 FeatureBranch에 대해 설명합니다.
- RT programmingjoy: Git changes the game of distributed Web development #programming http://bit.ly/3NWPg #
- 분산버전제어시스템 Git에 대한 소개
- RT programmingjoy: git rebase for the Impatient #programming http://bit.ly/Ia3OG #
- 역시 Git의 rebase 기능에 대한 소개
- RT programmingjoy: The best of both worlds: a VIM plugin for TextMate #programming http://bit.ly/C0zNP #
- ViMate - a vi plugin for TextMate
- RT programmingjoy: The Status of the P Versus NP Problem | September 2009 | Communications of the ACM #programming http://bit.ly/4fzMhw #
- 유명한 P대NP 문제에 관한 친절한 소개글
- RT programmingjoy: SD - A distributed bug tracker that can sync to Trac, Google Code, Github and RT #programming http://bit.ly/uhxAi #
- 나름 쓸만해보이는 버그트래커
- RT IntelSoftware: VIDEO: New D Programming Language with Andrei http://tmogul.com/tweet/6AtOi #programming #
- D 프로그래밍 언어 서적을 집필 중인 Andrei Alexandresue를 인텔이 인터뷰한 동영상
![]() santas - from the Animals' Merry Christmas book by pipnstuff |
그래픽스Graphics
- RT programmingjoy: OpenCL Tutorial - Building an OpenCL Project #programming http://bit.ly/UEuJU #
- 스노우레오파드가 지원하면서 최근 더 관심의 대상이 된 GPGPU 공개표준 언어 OpenCL에 관한 튜토리얼
- RT KageKirin: Stylized Lighting for Cartoon Shader #graphics #programming http://tinyurl.com/nwrkab #
- 일본에서 나온 흥미로운 카툰셰이딩 기법
- RT nvidiadeveloper: What is NEXUS? See what the fuss is about in this trailer http://bit.ly/OuPkU (Hint: Developer awesomesauce) #graphics #
- 엔비디아에서 나온 차세대 GPU 개발 및 디버깅 도구
- RT KageKirin: Noe’s tutorial on deforming 3D geometry using RBFs #graphics #programming http://tinyurl.com/nsmsas #
- 다차원 보간에 유용한 Radial Basis Function을 이용해 지오메트리를 변형하는 기법
- RT KageKirin: OpenGL 3.2 steps up to the plate #graphics #programming http://tinyurl.com/ksavnr #
- OpenGL 3.2 소식
![]() one sixty one: This is Today by Anna Gay |
기타Etc.
- RT DeliciousHot: 4 Cool Firefox Tools That Are Not Addons http://is.gd/34HER #
- 유용한 비애드온 형식의 파이어폭스 유틸
- RT sioum: RT dalgong: 숫자에 얽힌 재미있는 이야가기 있는 site소개 드립니다. http://www.numbergossip.com/ #
- RT sioum: KAIST 수리과학과에서 진행하는 "금주의 문제"(KAIST Problem of the Week) 가을학기 첫 문제(2009-14)가 지난 금요일에 나왔습니다. 수요일 정오까지 제출마감입니다. http://bit.ly/13Cxd1 #
- 이런게 있었네요. 수학 난제에 흥미가 있는 분들에게 추천
- RT gamearchitect: Scott Hanselman's 2009 Ultimate Developer and Power User Tool List For Windows: http://bit.ly/pymI1 #
- 보석같은 개발 및 비개발 관련 윈도 유틸들을 많이 소개하고 있습니다.
- RT DeliciousHot: TEDTalks as of 09.02.09 http://is.gd/2TEfI #
- 영어 공부에도 좋고 영감을 주는 강연도 많은 TEDTalks 링크 모음
- RT DeliciousHot: Professional Team Management Tips For Creative Folks | How-To | Smashing Magazine http://is.gd/2S7tG #
- 팀 관리에 관한 유용한 조언
- RT programmingjoy: Solace - a multilingual support platform inspired by StackOverflow - the BSD license #programming http://bit.ly/3sJCx8 #
- TweetMyMac - Remote Controls Your Mac via Twitter: http://su.pr/2RXfpQ #
- 트위터로 맥 원격 제어하기
- RT programmingjoy: Ars reviews SnowLeopard: LLVM/Clang, Grand Central Dispatch, and OpenCl #programming http://bit.ly/GMaw5 #
- 맥의 새 운영체제 SnowLeopard에 관한 매우 상세한 리뷰. 기술적으로도 매우 해박하여 읽어볼만합니다.
- RT programmingjoy: 7 Awesome Free Syntax Highlighters – To Enhance User Readability #programming http://bit.ly/14o5P3 #
- 블로깅 등에 유용한 일곱가지 구문강조 도구들
- RT icehit3: t3 64비트 소프트웨어 및 드라이버를 다운받을 수 있는 곳. http://www.start64.com/ >> 64비트 os 사용자라면 필히 방문! #
* 이 포스트는 blogkorea [블코채널 : 웹, 컴퓨터, it에 관련된 유용한 정보 및 소식] 에 링크 되어있습니다.
'Tweets' 카테고리의 다른 글
| My Recent Tweets 20091021 (0) | 2009/10/22 |
|---|---|
| My Recent Tweets 20090928 (0) | 2009/10/01 |
| My Recent Tweets 20090909 (0) | 2009/09/10 |
| My Recent Tweets 20090826 (0) | 2009/08/26 |
| My Recent Tweets 20090812 (0) | 2009/08/13 |
| My Recent Tweets 20090806 (0) | 2009/08/06 |
- Iterators Must Go! (in favor of ranges)
Tweet
- Game Development
- 2009/05/15 08:06
- Andrei Alexandrescu, Boost, BoostCon, C++, C++0x, CPP, D programming language, iterator, Range
-
부스트 라이브러리 관련 컨퍼런스가 있더군요. BoostCon 이라는 이름으로 얼마전 열렸습니다. 거기서 C++ 관련 대가 중 한명인 Andrei Alexandrescu가 키노트를 발표하였습니다. 제목은 "Iterators Must Go"였습니다.
결론은 말하자면 iterator는 여러가지 단점이 있으니 대신 range라는 개념을 쓰자였습니다. Range의 개념은 사실 한참 전에 나온 것으로 부스트를 비롯하여 여러 라이브러리에 이미 구현되어 있습니다. 안드레이는 여기서 한발 더 나아가 아예 range로 iterator를 대체할 것을 주장합니다. 안드레이의 결론은 다음과 같습니다.
- Range가 더 잘 추상화된 개념이다
- 안정성도 더 높다
- 쉽게 조합하여 확장할 수 있다
- 단순히 기존 iterator 버전의 STL 알고리즘들을 range로 포팅하는 수준을 넘어 한단계 업그레이드시킬 수 있다
대가답게 슬라이드 자료도 명료하고 흥미진진합니다. C++에 관심이 많은 분들은 꼭 읽어보십시오. 이곳에도 range 관련 글이 있으니 더불어 읽으시면 좋을듯.
p.s. 이러한 range를 비롯하여 STL 라이브러리 제공하는 언어가 하나 더 있으니 D 언어입니다. 저도 한때 관심을 가지고 공부했었는데... 나름 흥미로웠습니다. 게임 개발용으로도 적절한 언어로 보였거든요. 어쨌든 슬라이드나 안드레이의 홈페이지를 보셨다면 아시겠지만 조만간 그가 저술한 책, "The D Programming Language"가 나옵니다. 주류 언어로 자리잡기에는 여전히 갈길이 멀어보이지만 그래도 기대되는 행보입니다.
'Game Development' 카테고리의 다른 글
| D&D-style map of C++ (2) | 2009/06/06 |
|---|---|
| Double-checked locking 이디엄의 함정 (2) | 2009/06/03 |
| Iterators Must Go! (in favor of ranges) (2) | 2009/05/15 |
| std::stack에 관한 소고 (0) | 2009/05/12 |
| 실시간 렌더링에도 temporal coherence를 활용하자! (0) | 2009/05/06 |
| Dual Quaternion Skinning (2) | 2009/04/29 |

















Recent comment