C샵
C#[1]
마이크로소프트에서 내놓은 프로그래밍 언어로, #의 의미는 두 가지가 있다.
- 음악 기호로서 #은 반음 올린다(augmented, 증강)는 의미를 가지고 있다. 즉 C를 증강시켰다는 의미를 가지고 있다.
- #을 쪼개 보면 ++++가 된다. 즉 C++보다 더욱 더 진보된 언어라는 의미를 가지고 있다.
원래 MS는 자바를 윈도우 운영체제에서 돌릴 수 있는 J++이라는 것을 만든 적이 있었다. 바이트코드가 아닌 윈도우 네이티브 프로그램을 만들 수 있는 기능을 지원했는데, 당시 소유권을 가지고 있던 선마이크로시스템즈에서는 자바의 플랫폼 독립이라는 특성을 훼손한 MS에게 소송을 걸어버렸고 결국 J++을 포기한 MS가 .NET 프레임워크를 내놓으면서 아예 새로 만든 것이 C#이다.
자바의 단점을 여러 가지로 개선시켰기 때문에 프로그래밍 언어 자체로 보면 장점이 많다. 한편으로는 자바 이후의 객체지향 언어들이 자바의 특징을 많이 이어받았기 때문에 C++의 개념을 많이 받은 C#는 차이점을 보이는데, 예를 들면 자바 계열 언어는 클래스 메소드가 기본적으로 오버로딩을 할 수 있고 메소드를 정의할 때 final 키워드를 줘야 오버로딩을 막을 수 있는 것과는 반대로 C#는 C++처럼 오버로딩이 기본적으로는 안 되고 메소드에 virtual 키워드를 줘야 오버로딩을 할 수 있다.
MS라는 곳이 워낙에 오픈 소스에 대해 적대감이 많았고 MS 기술은 거의가 윈도우에서만 쓸 수 있었기 때문에 C# 역시 윈도우 전용 언어였다.[2] 하지만 모노 프로젝트를 통해 .NET 프레임워크를 리눅스에서 쓸 수 있는 길이 열리면서 C#도 윈도우 감옥에서 벗어났고, 모노 프로젝트가 자마린으로 발전하면서 이제는 안드로이드, iOS, 윈도우 모바일까지 같이 지원하는 언어가 되어서 새롭게 조명을 받고 있다. 아직까지 모바일 크로스플랫폼 개발 언어로는 자바스크립트가 널리 쓰이고 있지만 자마린의 성장세도 무시할 수 없는 수준이다. 자세한 내용은 자마린 항목 참조.