C샵: 두 판 사이의 차이

내위키
편집 요약 없음
편집 요약 없음
3번째 줄: 3번째 줄:
[[마이크로소프트]]에서 내놓은 프로그래밍 언어로, #의 의미는 두 가지가 있다.
[[마이크로소프트]]에서 내놓은 프로그래밍 언어로, #의 의미는 두 가지가 있다.


* 음악 기호로서 #은 반음 올린다(augmented, 증강)는 의미를 가지고 있다. 즉 C를 증강시켰다는 의미를 가지고 있다.
* 음악 기호로서 #은 반음 올린다(augmented, 증강)는 의미를 가지고 있다. 즉 [[C (프로그래밍 언어)|C]]를 증강시켰다는 의미를 가지고 있다.
* #을 쪼개 보면 ++++가 된다. 즉 C++보다 더욱 더 진보된 언어라는 의미를 가지고 있다.  
* #을 쪼개 보면 ++++가 된다. 즉 [[C++]]보다 더욱 더 진보된 언어라는 의미를 가지고 있다.  


원래 [[MS]]는 [[자바]]를 [[윈도우]] 운영체제에서 돌릴 수 있는 J++이라는 것을 만든 적이 있었다. 바이트코드가 아닌 [[윈도우]] 네이티브 프로그램을 만들 수 있는 기능을 지원했는데, 당시 소유권을 가지고 있던 [[선마이크로시스템즈]]에서는 [[자바]]의 플랫폼 독립이라는 특성을 훼손한 [[MS]]에게 소송을 걸어버렸고 결국 J++을 포기한 [[MS]]가 [[.NET 프레임워크]]를 내놓으면서 아예 새로 만든 것이 C#이다.
원래 [[MS]]는 [[자바]]를 [[윈도우]] 운영체제에서 돌릴 수 있는 J++이라는 것을 만든 적이 있었다. [[윈도우]] API에 접근해서 네이티브 프로그램을 만들 수 있는 기능을 지원했는데, 당시 소유권을 가지고 있던 [[선마이크로시스템즈]]에서는 [[자바]]의 플랫폼 독립이라는 특성을 훼손한 [[MS]]에게 소송을 걸어버렸고 결국 J++을 포기한 [[MS]]가 [[.NET 프레임워크]]를 내놓으면서 아예 새로 만든 것이 C#이다.


[[자바]]의 단점을 여러 가지로 개선시켰기 때문에 프로그래밍 언어 자체로 보면 장점이 많다. 한편으로는 [[자바]] 이후의 객체지향 언어들이 [[자바]]의 특징을 많이 이어받았기 때문에 C++의 개념을 많이 받은 C#는 차이점을 보이는데, 예를 들면 [[자바]] 계열 언어는 클래스 메소드가 기본적으로 오버로딩을 할 수 있고 메소드를 정의할 때 final 키워드를 줘야 오버로딩을 막을 수 있는 것과는 반대로 C#는 C++처럼 오버로딩이 기본적으로는 안 되고 메소드에 virtual 키워드를 줘야 오버로딩을 할 수 있다.
[[자바]]의 단점을 여러 가지로 개선시켰기 때문에 프로그래밍 언어 자체로 보면 장점이 많다. 한편으로는 [[자바]] 이후의 객체지향 언어들이 [[자바]]의 특징을 많이 이어받았기 때문에 [[C++]]의 개념을 많이 받은 C#는 차이점을 보이는데, 예를 들면 [[자바]] 계열 언어는 클래스 메소드가 기본적으로 오버로딩을 할 수 있고 메소드를 정의할 때 final 키워드를 줘야 오버로딩을 막을 수 있는 것과는 반대로 C#는 [[C++]]처럼 오버로딩이 기본적으로는 안 되고 메소드에 virtual 키워드를 줘야 오버로딩을 할 수 있다. 자바 프로그래머들에게는 미묘한 차이 때문에 헷갈리는 부분도 꽤 있지만 둘 다 알고 보면 [[C++]]를 조상으로 하고 있는지라 공통점이 훨씬 더 많아서 [[자바]] 프로그래머라면 [[C++]] 배우기가 어렵지 않고 그 반대도 마찬가지다.


[[MS]]라는 곳이 워낙에 [[오픈 소스]]에 대해 적대감이 많았고 MS 기술은 거의가 윈도우에서만 쓸 수 있었기 때문에 C# 역시 윈도우 전용 언어였다.<ref>정확히는 C#은 .NET 프레임워크에 묶여 있는 언어였고 .NET이 윈도우 전용이었기 때문이다.</ref> 하지만 모노 프로젝트를 통해 .NET 프레임워크를 [[리눅스]]에서 쓸 수 있는 길이 열리면서 C#도 윈도우 감옥에서 벗어났고, 모노 프로젝트가 자마린으로 발전하면서 이제는 [[안드로이드]], [[iOS]], [[윈도우 모바일]]까지 같이 지원하는 언어가 되어서 새롭게 조명을 받고 있다. 게다가 최근 [[MS]]가 [[오픈 소스]]를 포용하고 적극 활용하는 쪽으로 정책을 180도 바꾸면서 원래 유료였던 자마린까지 무료는 물론이고 아예 오픈 소스로 풀어버렸기 때문에 더더욱 관심이 커지고 있는 상태다. 아직까지 모바일 크로스플랫폼 개발 언어로는 [[자바스크립트]]가 널리 쓰이고 있지만 [[자마린]]의 성장세도 무시할 수 없는 수준이다. 자세한 내용은 [[자마린]] 항목 참조.
[[MS]]라는 곳이 워낙에 [[오픈 소스]]에 대해 적대감이 많았고 MS 기술은 거의가 윈도우에서만 쓸 수 있었기 때문에 C# 역시 윈도우 전용 언어였다.<ref>정확히는 C#은 .[[NET 프레임워크]]에 묶여 있는 언어였고 [[.NET]]이 윈도우 전용이었기 때문이다.</ref> 이런 점에서는 [[애플]] 운영체에 묶여 있는 [[오브젝티브C]]나 [[스위프트]]와 비슷한 처지라 할 수 있다. 하지만 모노 프로젝트를 통해 [[.NET 프레임워크]]를 [[리눅스]]에서 쓸 수 있는 길이 열리면서 C#도 [[윈도우]] 감옥에서 벗어났고, 모노 프로젝트가 자마린으로 발전하면서 이제는 [[안드로이드]], [[iOS]], [[윈도우 모바일]]까지 같이 지원하는 언어가 되어서 새롭게 조명을 받고 있다. 게다가 최근 [[MS]]가 [[오픈 소스]]를 포용하고 적극 활용하는 쪽으로 정책을 180도 바꾸면서 원래 유료였던 자마린까지 무료는 물론이고 아예 오픈 소스로 풀어버렸기 때문에 더더욱 관심이 커지고 있는 상태다. 아직까지 모바일 크로스플랫폼 개발 언어로는 [[자바스크립트]]가 널리 쓰이고 있지만 [[자마린]]의 성장세도 무시할 수 없는 수준이다. 자세한 내용은 [[자마린]] 항목 참조.


{{각주}}
{{각주}}

2017년 1월 28일 (토) 13:22 판

C#[1]

마이크로소프트에서 내놓은 프로그래밍 언어로, #의 의미는 두 가지가 있다.

  • 음악 기호로서 #은 반음 올린다(augmented, 증강)는 의미를 가지고 있다. 즉 C를 증강시켰다는 의미를 가지고 있다.
  • #을 쪼개 보면 ++++가 된다. 즉 C++보다 더욱 더 진보된 언어라는 의미를 가지고 있다.

원래 MS자바윈도우 운영체제에서 돌릴 수 있는 J++이라는 것을 만든 적이 있었다. 윈도우 API에 접근해서 네이티브 프로그램을 만들 수 있는 기능을 지원했는데, 당시 소유권을 가지고 있던 선마이크로시스템즈에서는 자바의 플랫폼 독립이라는 특성을 훼손한 MS에게 소송을 걸어버렸고 결국 J++을 포기한 MS.NET 프레임워크를 내놓으면서 아예 새로 만든 것이 C#이다.

자바의 단점을 여러 가지로 개선시켰기 때문에 프로그래밍 언어 자체로 보면 장점이 많다. 한편으로는 자바 이후의 객체지향 언어들이 자바의 특징을 많이 이어받았기 때문에 C++의 개념을 많이 받은 C#는 차이점을 보이는데, 예를 들면 자바 계열 언어는 클래스 메소드가 기본적으로 오버로딩을 할 수 있고 메소드를 정의할 때 final 키워드를 줘야 오버로딩을 막을 수 있는 것과는 반대로 C#는 C++처럼 오버로딩이 기본적으로는 안 되고 메소드에 virtual 키워드를 줘야 오버로딩을 할 수 있다. 자바 프로그래머들에게는 미묘한 차이 때문에 헷갈리는 부분도 꽤 있지만 둘 다 알고 보면 C++를 조상으로 하고 있는지라 공통점이 훨씬 더 많아서 자바 프로그래머라면 C++ 배우기가 어렵지 않고 그 반대도 마찬가지다.

MS라는 곳이 워낙에 오픈 소스에 대해 적대감이 많았고 MS 기술은 거의가 윈도우에서만 쓸 수 있었기 때문에 C# 역시 윈도우 전용 언어였다.[2] 이런 점에서는 애플 운영체에 묶여 있는 오브젝티브C스위프트와 비슷한 처지라 할 수 있다. 하지만 모노 프로젝트를 통해 .NET 프레임워크리눅스에서 쓸 수 있는 길이 열리면서 C#도 윈도우 감옥에서 벗어났고, 모노 프로젝트가 자마린으로 발전하면서 이제는 안드로이드, iOS, 윈도우 모바일까지 같이 지원하는 언어가 되어서 새롭게 조명을 받고 있다. 게다가 최근 MS오픈 소스를 포용하고 적극 활용하는 쪽으로 정책을 180도 바꾸면서 원래 유료였던 자마린까지 무료는 물론이고 아예 오픈 소스로 풀어버렸기 때문에 더더욱 관심이 커지고 있는 상태다. 아직까지 모바일 크로스플랫폼 개발 언어로는 자바스크립트가 널리 쓰이고 있지만 자마린의 성장세도 무시할 수 없는 수준이다. 자세한 내용은 자마린 항목 참조.

각주

  1. 미디어위키에서는 제목에 # 기호를 쓰면 표제어의 하부 섹션을 뜻하는 것으로 해석되기 때문에 표제어에 #를 쓰지 못한다. 그래서 표제어를 'C샵'으로 쓴 것. 표준 표기법으로는 C샤프가 맞지만 C샵이 워낙에 널리 퍼진지라...
  2. 정확히는 C#은 .NET 프레임워크에 묶여 있는 언어였고 .NET이 윈도우 전용이었기 때문이다.