C# vs JAVA
- 강력함과 다재다능함의 대결 -
1. 서문
내가 작년 초에 크게 고민한 부분이 있다. 과연 JAVA를 배우는 것이 효과적일까, 아니면 C#을 배우는 것이 효과적일까에 대한 것이다. 두 언어 모두 IT업계의 ‘뜨거운 감자’로 취급되는 것들이었고, 지금도 그렇다. JAVA가 지금의 선두자라고 한다면 C#은 미래의 선두자가 될 수 있는 가능성을 가지고 있었다.
그렇지만 두 언어는 각각의 장점과 단점을 갖고 있었다. 프로그래밍 언어론에서 말하 듯, 완벽한 언어는 없으며 각 그 언어의 장점이 있다면 그에 상응하는 단점을 가질 수 밖에 없는 것이다. 강력한 성능의 언어는 복잡한 문법을 가지거나 Perfomance가 떨어질 수 밖에 없듯이, 그런 장단점이 있었다.
하지만 결론적으로 나는 C#과 JAVA 두 언어를 모두 공부하게 되었고, 두 언어를 C++만큼 깊게 파보진 않았지만 두 언어의 장단점을 파악할 수 있을 정도는 되었다고 생각한다. 그래서 두 언어를 비교해보자고 한다.
2. C#의 특징
A. C#에 대한 간단한 소개
C#은 Microsoft(이하 MS)의 .NET Framework와 함께 사람들의 곁으로 다가왔다. 많은 개발자들은 C#은 JAVA를 잡기 위해 MS에서 내놓은 언어라고 평한다. 실상 그런 것이 C#을 이용해보면 JAVA와 흡사하다는 느낌을 떨칠 수가 없다. 아래에서 다시 언급하겠지만 C#은 C++과 VB의 특징을 조합하고, JAVA의 강점까지 포함한 언어라고 볼 수 있다. 어떤 사람들은 ‘MS의 JAVA 킬러’ 라고 부를 정도로 JAVA를 이기기 위한 MS의 각별한 노력이 돋보이는 언어라고 할 수 있다.
B. 기본적으로 제공하는 강력한 기능
C#의 기능은 기본적으로 강력하다. JAVA의 Utility Class 들이 강력한 기능을 갖고있듯 말이다. 물론 요즘은, C++도 STL을 넘어서 Boost 등의 강력한 라이브러리를 갖고 이것을 표준안으로 채택하는 방향으로 가고 있다. 그러나 기본적으로 갖고 있고, MS에서 직접 개발한 것과는 다르다고 생각한다. 기본적으로 제공하는 강력한 성능은 C#의 큰 장점이라고 할 수 있다.
C. 편리한 개발환경을 제공하는 IDE
언어의 강력함이나 사용의 편의성만큼, 그 언어의 성패를 결정짓는 것이 IDE라는 것은 불보듯 뻔한 일이다. C#의 IDE는 누구나 알고 있고, 누구나 한번쯤은 사용한 적이 있으며, 게다가 Direct X 나 API관련 개발을 하며 누구나 썼던 Visual Studio(이하 VS)이다. 우선 이것으로 반은 먹고 들어갔다고 볼 수 있는데, 사람들에게 익숙한 VS를 개발환경으로 사용하면서 익숙하고 편리한 개발환경을 제공한다. 게다가 VS는 날이 갈수록 강력해지고 있으며, 그 기능을 십분이용할 수 있는 것이 바로 C#이다.
D. 컴포넌트 기반 언어
C#은 C/C++ 기반 언어 중에 최초의 컴포넌트 기반 언어이다. C#은 C/C++ 에서파생되며 간단하고 현대적이며 객체지향적이고 형 안정성을 갖는 언어이다. 또한C#은 Visual Studio의 높은 생산성과 C++의 강력한 힘이 합쳐진 언어이다.
E. CLR(Common Language Runtime) / CLS(Common Language Specification)의 강력함
CLR은 높은 수행 능력을 갖고 있다. 실행 엔진, 가비지 컬렉터, 실시간 컴파일러, 보안 시스템, 그리고 .NET Framework가 포함되어 있다. 여러 언어를 지원할 수 있도록 설계되어 었다.
CLS는 언어 기능에 대한 공통의 기준을 규정한다. 그 기준은 까다롭지만, 여러 언어를 묶어주는 역할을 한다. 이 그룹에 속한 언어들은 .NET Framework의 기능을 이용할 수 있으며 상호 호환기능을 갖는다. 즉 , C#의 Class 를 VB에서 상속받거나, 오버라이딩 할 수 있다는 말이다.
사실 CLR을 기반으로 만들어진 언어는 상당히 많으나, 우리가 아는 VB, VC++ 등등 또한 CLR기반의 언어라 할 수 있다.
~계속~
'IT > IT 일반' 카테고리의 다른 글
[경제] 샤와 텔러스의 치열한 가격경쟁, 소비자는 즐거워 (0) | 2016.12.27 |
---|---|
C# vs JAVA - 5/5* (0) | 2016.12.19 |
C# vs JAVA - 4/5* (0) | 2016.12.19 |
C# vs JAVA - 3/5* (0) | 2016.12.19 |
C# vs JAVA - 2/5* (0) | 2016.12.19 |
ERP 도입시 단점 (0) | 2016.11.23 |
캐나다 인터넷 속도 크게 빨라졌지만, (0) | 2016.11.22 |
ERP 도입시 장단점 (0) | 2016.11.17 |
IT 컨설턴트 (0) | 2016.11.16 |
일반 JavaScript 팁 모음 (0) | 2016.11.16 |