Media Log

Tiobe는 내가 심심할 때 가끔씩 찾아보는 사이트 중 하나이다.
여러 검색엔진들을 통해 프로그래밍 언어에 대한 정보들을 수집해서 순위를 매겨주는 사이트이며, 한달에 한번씩 업데이트 된다.

파이썬을 만든 Guido는 아마 나보다 훨씬 더 자주 이 사이트를 들어와보면서 파이썬의 순위를 확인해 보는 것이 분명하다.
이 정도 수준의 천재 해커가 자신이 만든 언어의 순위를 확인하면서 킬킬대는 것은 조금 웃기기도 하지만, 어떤 면에서 보면 이 사이트의 공신력을 더 높여주는 일이라고도 할 수 있겠다.

3년 정도 이 사이트를 봐왔는데 Go처럼 빠르게 성장한 언어는 그나마 루비 밖에는 없었다. 그래도 Go의 성장속도와는 역시 비교할 바가 못된다.
그렇지만 실제로 Go를 사용하고 있는 프로젝트는 아직 본 적이 없다. 아마도 아직까지는 구글에서나 쓰고 있을 것으로 생각한다. 2009년 11월에 처음 발표 되었으니 그럴만도 하다.

Position
Jan 2010
Position
Jan 2009
Delta in PositionProgramming LanguageRatings
Jan 2010
Delta
Jan 2009
Status
11Java17.482%-1.54%  A
22C16.215%+0.28%  A
35PHP10.071%+1.19%  A
43C++9.709%-0.41%  A
54(Visual) Basic7.354%-1.81%  A
66C#5.767%+0.16%  A
77Python4.453%-0.28%  A
88Perl3.562%-0.74%  A
99JavaScript2.707%-0.65%  A
1011Ruby2.474%-0.67%  A
1110Delphi2.392%-0.91%  A
1237Objective-C1.379%+1.24%  A
13-Go1.247%+1.25%  A--
1414SAS0.809%+0.01%  A
1513PL/SQL0.718%-0.29%  A
1618ABAP0.641%+0.10%  A--
1715Pascal0.624%-0.04%  B
1823Lisp/Scheme0.576%+0.14%  B
1920ActionScript0.566%+0.11%  B
2024MATLAB0.540%+0.11%  B


아래 표에서 가장 돋보이는 것은 단연 PHP이다.
범용 목적의 언어도 아닌 PHP가 10년 전의 최강자였던 C++을 제치고 3위를 차지하고 있는 것을 보고 있으면 이제는 Web의 세상이라는 것을 다시 한번 더 실감하게 만든다.

Programming LanguagePosition
Jan 2010
Position
Jan 2006
Position
Jan 2000
Position
Jan 1985
Java113-
C2211
PHP3418-
C++4329
(Visual) Basic5553
C#6713-
Python7817-
Perl864-
JavaScript91012-
Ruby1020--



YearWinner
2009Go
2008C
2007Python
2006Ruby
2005Java
2004PHP
2003C++

비록 이 사이트는 한달에 한번씩 업데이트가 되긴 하지만 매년 새해에는 올해의 언어를 선정하기도 한다. 나는 2009년에는 당연히 C#이 Winner가 되리라 예상했었는데, 바로 지난달인 작년 12월까지 순위에도 없던 Go가 2009년의 언어로 선정된 것은 정말 의외였다.

Tiobe에서는 이에 대해 나름대로 변명을 하고 있기는 하다.

Is Go a hype? May be. But even if it appears to be just another language, the fact that it is a language designed by Google is sufficient to make it really popular. Nobody will be blamed to use a language that is associated with the Google brand name. Apart from that, there is also something technically promising about Go. It has native support for concurrent programming, thus fulfilling the existing need of a language that allows efficient use of multicore processors.

It is astonishing to see that a programming language can rise so fast. Go was not listed yet last month and now it is already #13. This sudden change might be considered an inevitable consequence of our current culture, in which new information is spread and used around the globe at the speed of light.



어쨌거나 나는 아직 Go를 공부해보지는 않았지만 훌륭한 사람들이 설계한 언어이고, 또 믿을만한 회사에서 지원하는 오픈소스인만큼 곧 우리들 곁에도 가까이 다가오게 될 것이라는 생각을 한다.

내년 이 맘때는 순위가 어떻게 변해 있을지 정말 궁금하다.
신고
  1. Favicon of http://sageclarcer.textcube.com BlogIcon 세이지 at 2010.01.10 17:24 신고 [edit/del]

    프로그래밍 언어는 어떻게 만드는 걸까요...

    Reply
  2. Favicon of http://leeua.com BlogIcon 이우아 at 2010.04.25 01:14 신고 [edit/del]

    이런 통계를 어디선가 본 적이 있었는데요...
    거기서는 JAVA를 제치고 C가 1위를 탈환했다는...;;;
    제가 잘못 본 걸까요? ;;;
    아싸뵹. PHP. ㅎㅎ 오브젝트C도 인상적이네요.
    잘봤습니당. ^^

    Reply

submit
Art of UNIX Programming - 8점
Eric S. Raymond 지음, 김희석 옮김/정보문화사


오픈소스나 유닉스 계열에서 꽤나 유명한 에릭 레이몬드가 쓴 책이다.
이 책의 제목만 봐서는 유닉스 프로그래밍에 대한 고급 기법들을 다룰 것 같지만, 단지 유닉스 철학만을 이야기한다. 도날드 커누스의 Art of Computer Programming의 이름을 본 따서 지었다는데, 책 주제와 상관없는데도 제목을 이렇게 지은 걸 보면 어지간히도 커누스의 Art of 시리즈가 감명 깊었는가보다.( 책 이름이던지 내용이던지 아니면 커누스 그 자체던지간에 )

책의 목차를 한번 살펴보자. 소주제들은 제외했다.

Part 1 UNIX의 오늘
Chapter 1 철학 : 중요한 것은 철학이다
Chapter 2 역사 : 두 문화에 대한 이야기
Chapter 3 대조 : UNIX 철학과 다른 것을 비교하기

Part 2 설계
Chapter 4 모듈화 : 간단하게, 단순하게!
Chapter 5 텍스트화 : 우수한 프로토콜은 우수한 습관을 만든다
Chapter 6 투명성 : 빛이 있으라!
Chapter 7 멀티프로그래밍 : 서로 다른 작업을 위한 프로세스들
Chapter 8 미니언어 : 노래하는 기호를 찾아
Chapter 9 생성 : 명세를 한 단계 높게
Chapter 10 구성 : 순조롭게 출발하기
Chapter 11 인터페이스 : UNIX 환경의 사용자 인터페이스 디자인 패턴
Chapter 12 최적화
Chapter 13 복잡함 : 되도록 단순하게 그러나 지나치지 않게

Part 3 구현
Chapter 14 언어 : C 언어이어야 하는가? 아닌가?
Chapter 15 툴 : 개발의 용병들
Chapter 16 재사용 : 바퀴를 다시 발명하지 않기 위해서

Part 4 공동체
Chapter 17 이식 가능성 : 소프트웨어의 이식성과 표준 따르기
Chapter 18 문서화 : 소프트웨어를 종이-중심의 세계로 설명하기
Chapter 19 오픈소스 : 신 UNIX 공동체의 프로그래밍
Chapter 20 미래 : 위험 그리고 기회


vi와 emacs를 비롯한 편집기에 대한 평가와 c, java, python, lisp등 여러 언어에 대한 평가가 특히 재밌다.

편집기나 언어에 대한 평가는 언제나 인터넷을 뜨겁게 달구는 주제이다.
Effective C++의 스캇마이어스도 Effective 시리즈 중 어떤 책에서 편집기에 관한 이야기를 잠깐 언급했는데, 그 때 최고의 편집기는 바로 emacs라고 했다. 나는 그 글을 읽고 바로 Emacs를 설치하고 연습해봤는데, 몇 일 못가서 바로 포기했다. ;)

에릭 레이몬드 역시 그렇지만, 리눅스 계통의 해커들은 c, java, C#보다는 perl 이나 python, LISP 같은 언어들을 높게 평가하는 경향이 있다.
하지만, 조엘 온 소프트웨어의 조엘 같은 경우에는 자기 주위의 해커들( 아마도 마이크로소프트의 천재들 )은 그렇지 않다며 반박하는 것도 재밌다.

에릭 레이몬드는 윈도우즈를 정말 더럽게도 싫어하는데, 윈도우즈를 욕하는 내용 또한 역시 재밌는 볼거리이다.

이런 내용들 말고도 재밌게 읽은 만한 내용들이 많이 들어있다.
꼭 유닉스 프로그래머가 아니더라도 가볍게 읽어보기 좋을 것이다.

에릭 레이몬드의 글 중 이 책에 없고 인터넷에 올려진( 어딘가에서 한번씩은 읽어봤을만한 ) 재밌는 글들 또한 많다.

다음 링크들에서 볼 수 있다.
How To Become A Hacker
해커가 되는 방법
Why Python
How To Ask Questions The Smart Way
좀더 나은 질문을 하기 위한 방법
에릭 레이몬드의 홈페이지



신고
  1. Favicon of http://bombfox.textcube.com BlogIcon bombfox at 2009.10.23 23:08 신고 [edit/del]

    전 읽어 볼려다 포기한책....ㅠㅠ

    Reply

submit
해커와 화가 - 10점
폴 그레이엄 지음, 임백준 옮김/한빛미디어

어떤 사람들은 폴 그레이엄이 건방지거나 혹은 그가 주장하는 바가 틀렸다고 말하면서도 하나 같이 그의 글은 재밌다고 한다. -에릭 싱크, 조엘, 그리고 이 책의 역자인 임백준까지

나도 폴 그레이엄의 글을 좋아한다.

이 책을 읽고 나서 그의 글에 매료되어서 개인 블로그를 즐겨찾기 해두고 종종 가보곤 한다.( 물론 내 빌어먹을 영어 실력 탓에 그 재밌는 최신 글들을 잘 이해할 수 없다는 것이 화가 나지만. )

이 책의 내용은 조엘 온 소프트웨어 처럼, 폴 그레이엄의 블로그에 이미 쓰여진 많은 에세이들을 기반으로 작성되었다.

나는 그가 그림을 얼마나 잘 그리는 지는 따위는 관심 없다.
단지, 이 책에서 그가 LISP, Python, 펄, 그리고 해커를 말할 때면 내 집중력은 200%가 되었다.

프로그래밍 언어에 대한 비교는 언제나 많은 논란거리를 가지고 오는 위험한 주제이기도 하면서 또한 프로그래머들의 흥미를 유발하는 최고의 주제이기도 하다.

그는 LISP에 대한 광신도였다.

그의 블로그에서 그는 자바가 쓰레기라고 말하고 있지는 않지만, 자바 프로그래머는 파이썬 프로그래머보다 멍청하다고 말한다.
자바 사람들이 반발하자, 그는 자바 프로그래머가 멍청하다는 것이 아니라 상대적으로 파이썬 프로그래머가 영리하다. 라고 다시 말한다.

그는 LISP에 대한 광신도이면서 다른 언어로는 파이썬과 펄, 그리고 루비를 인정한다.
에릭 레이몬드가 윈도우즈를 쓰레기라고 번번히 말하듯이 그 역시 다른 언어들은 가차없이 깍아내린다.
아마 그는 속으로 이렇게 생각하고 있을 것이 분명하다.
( 도대체 어떻게 자바 따위로 프로그래밍을 할 수 있다는 말이지? )

하지만 내가 사용하는 언어가 쓰레기가 된들 뭐 어떤가. 그의 글은 재밌는걸.
그리고 LISP와 파이썬이 미치도록 공부하고 싶어지는 것을.

실제로 그랬다. 이 책을 덮고나서부터 머리속에 LISP와 파이썬 밖에 없었다.
LISP를 접해보려고 했지만, 괜찮은 국내 서적을 찾을 수가 없었다.
인터넷에서 배우지 뭐, 했으나 괴물 형상의 괄호 투성이 언어와 영어로된 설명은 날 금방 질리게 만들었다.

LISP는 나중으로 미뤘지만 Python과 펄 그리고 루비 마저 버릴 수는 없었다.
하나씩 책을 구해서 읽어보고는 그 중 내 두번째 무기로써 Python을 선택하게 되었다.
( 첫 번째 무기는 물론 C++ 이다. ^_^ )

비즈하드 프로젝트를 하면서 파이썬으로 뭔가를 만들어보고 싶은 욕구가 넘쳐난다.
꽤 적당하다고 생각되는 몇 몇 기능들은 이미 다른 언어로 만들어져 있기 때문에 굳이 바꾸지 않고 앞으로 새로 추가될 기능에 대해서 한 번 시도해 보려고 한다.

아 얼마나 즐거울까.



신고
  1. at 2010.03.25 10:18 [edit/del]

    비밀댓글입니다

    Reply

submit