C# 언어 ... 좋은데... 정말 좋은데... 뭐라 표현할 말이 없네... ^^
이런 소식이 있었군요.
TIOBE Programming Community Index for January 2012: http://j.mp/4HU9To C++, C# 순위가 바뀌었다는게 놀랍네요..
; https://twitter.com/#!/ioklo/status/164537636906741760
개인적으로, 자바 기반의 회사에 있으면서 약간 맛배기 삼아서 자바라는 언어를 공부하긴 했습니다. 그 공부를 하면서 느낀 것이 하나 있다면... 자바가 왠지 (C#에 비하면) 낡은 구세대적 언어라는 인상을 받았다는 점입니다. 사실, 이런 수준의 언어를 배우느니 차라리 그 시간에 Python이나 F#을 공부하는 것이 더 도움이 되겠다는 판단까지 내려졌으니까요.
아래는 wiki에서 퍼온 C# 언어의 발전사입니다.
C Sharp (programming language)
; http://en.wikipedia.org/wiki/C_Sharp_(programming_language)
- C# 2.0
- Generics
- Partial types
- Anonymous methods
- Iterators
- Nullable types
- Private setters (properties)
- Method group conversions (delegates)
- C# 3.0
- C# 4.0
- C# 5.0 및 Rosyln
C#의 진화가 어디까지 될지는 모르겠지만, 아마 지금조차도 현재 나온 "Imperative 언어"들 중에서는 가장 표현력이 풍부한 언어가 아닐까 싶습니다.
그나저나... 어차피 '개발 언어' 분야도 "Zero Sum" 게임에 불과합니다. 일시적으로 신규 개발자들이 대거 유입되지 않는 한 언어의 순위가 바뀌었다는 것은 곧, 기존 개발자들의 사용언어가 바뀐 것으로 해석해 볼 수 있습니다.
일단, 1% 이상의 점유율을 가진 언어들 중에서 사용률이 하락한 것들을 뽑아보면 다음과 같습니다.
- Ruby (-0.34%)
- Python (-3.05%)
- PHP (-2.13%)
- C++ (-0.72%)
- Java (-0.29%)
- Visual Basic (-1.34%)
- Perl (-0.08%)
Ruby, Python, PHP, Perl 사용자들이 C#으로 오는 경우는 거의 없을 거라 보고, 그렇다면 나머지는 Java (0.29%), C++ (0.72%), Visual Basic (-1.34%)인데, 이를 합해 보면 2.35% 가 나옵니다. 대충 C#의 2.55% 상승율이랑 비슷하군요. (물론... 순전히 저 만의 생각일 뿐이고... 저렇게 간단하게 해석될 일이 아니지요. ^^)
참고로, 저 역시 한때 Java에 올-인한 적이 있었습니다. 그 당시가 Visual J++ 시절이었는데 아쉽게도 Sun에서 라이선스로 마이크로소프트를 걸고 넘어가는 바람에 그때 나온 Visual J++을 마지막으로 더 이상의 업데이트를 하지 않겠다고 공식 발표된 이후 저는 더 이상 Java를 접할 일이 없었습니다. 당시에는 C/C++과 비교해서 '메모리 GC' 자체가 들어가 있던 Java라는 언어는 가히 신세계라 할만 했습니다.
가끔씩, 지금 와서 그 시절을 다른 분들과 회상해 보면... 이런 말들이 나오곤 합니다. 만약 Sun이 Visual J++에 대해서 라이선스를 주장하지 않았다면, Microsoft는 .NET Framework를 안 만들었을 수도 있고 (당연히 C# 언어도 없었겠지요.)... 그랬다면 윈도우에서조차 Java 언어가 대세였을 것이라는... 가상의 시나리오 말입니다.
그런데, 어찌어찌하여 세월은 흐르고 이젠 그 Java도 연로한 모습을 보이고 있군요... (물론, 연로한 모습에 비해 모든 분야에서 엄청난 노익장을 과시하고 있지만! ^^)
워낙 얽히고 설킨 이해관계가 복잡한 언어라서 Sun 스스로가 개발했음에도 불구하고 언어적인 발전을 C#처럼 빠르게 진화하지 못한 것은 일견 이해는 됩니다. 어쩌면, 구글에서도 조차 이 상황이 지겨워서 자신들 마음대로 확장할 수 있는 "
Go"나 "
Dart"를 내놨는지도 모르겠고.
개인적으로, 최근에 제가 관심 있게 지켜보고 있는 행로는 "Java"가 아닌 "JavaScript"입니다. HTML5 분위기와 Node.js 등의 뜻하지 않은 활용 방안을 내놓으면서 비약적으로 뻗어나가는 모습을 보여주고 있는데요. "JavaScript"의 한 가지 최대 단점이라면, '모듈' 관리의 부재 및 C/C++에 버금가는 디버깅의 어려움이라고 봅니다. 아마도 그 부분만 역시 "뜻하지 않게" 해결이 된다면... C#의 가장 큰 적은 다름 아닌 "JavaScript"가 되지 않을까 생각합니다.
(* JavaScript가 디버깅이 어려운 것은 사실 C/C++의 상황과는 다른 관점에서 해석되어야겠지요. ^^ 아마, JavaScript로 개발해 본 분들은 공감할만한 사항이라고 여겨집니다.)
결론적으로 보면... 그래도 나름대로 해외에서는 C#의 인기가 꽤나 있는 것 같습니다. ^^;