Microsoft MVP성태의 닷넷 이야기
.NET이 왜 성공할 수밖에 없는가? [링크 복사], [링크+제목 복사]
조회: 4269
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
왜 .NET이 성공할 수밖에 없는가?

뭐... 제목이야 거창하지만. 짧게 의견을 적어보고자 한다.
그 질문에 대한 대답은 "쉽다"일 뿐이다.

뭐 있겠는가? 쉬우니 성공할 수밖에 없다. 이 사례는 쉽게 C++과 자바, C++과 VB에서 찾아 볼 수 있다.

개발자는 어찌되었든 간에... 대부분은 대학교에서 공부했거나 뜻한 바 있어 "학원"에서 배출된 경우가 대부분일 것이다. 사실 "기업" 내부의 필요에 의해서 양성되는 경우도 적잖이 있는 것으로 안다.

현상은 단순하다. 100명이면... 그중에 C++을 배울 수 있는 역량을 가진 사람이 몇 명이나 될 것이라고 생각하는가? 상대적으로 자바는 어떠한가? 매우 쉽다. 그걸로 끝이다. 매우 쉬울 뿐이었다.

기업은 시스템을 구축해야 함에 있어, 어려운 C++을 사용할 수는 없는 노릇이다. 대학에서는 학생들에게 무조건 어려운 언어만을 목표로 삼을 수는 없다. 알고리즘이 중요할 뿐이며, 그에 대한 도구로 훌륭한 자바 언어가 있을 뿐이다. 학원에선... 결국 기업이 요구하는 인력을 배출하는 것이 학원이다. 당연히 자바 인원이 많을 수밖에 없다.

과거, Microsoft는 VC++밖에는 없었다.

VB는 왜 성공하지 못했는가? 라고 질문하실 분이 계실 것 같다. 그렇다... 자바만큼이나 VB도 매우 쉽다. 그럼에도 불구하고 VB는 자바를 누르지 못했다. 그 이유가 무엇인가?

간단하다... VB는 언어가 쉬웠을 뿐이지, 프로그램하기에 쉽지는 않았다. 일례로 암호화를 해야 하는 등의 문제에서는 어쩔 수 없이 VC++의 힘을 빌어야 했다. 하지만 그 모든 것을 자바에서는 SDK로 제공하고 있다. (사실, 자바를 누르진 못했지만 VB의 시장 점유율은 결코 낮은 것이 아니다. 그러한 성과를 거두는 데에 있어 가장 중요한 역할을 한 것은 단지 "쉽다"는 특징 뿐이다.)

명확하다... 자바는 쉬웠고... C/C++에 낙오한 사람들(이 말에 찔리는 사람들도 적지 않을 것이라 본다.)조차도 자바는 쉽게 다가설 수 있었다.

플랫폼 독립적이니... 하는 그런 형식적인 말은 변명에 불과하다. 아는 사람은 다 알지 않는가. 벤더 종속적이라는 말을 빼먹진 말자. 종속의 대상만 다를 뿐이다.

다시 물어보자. 왜 .NET이 성공할 수밖에 없는가?
이해 되는가? 이제 C/C++에 지친 사람들은 선택이 2개로 늘어났다. 예전에는 오직 "자바" 하나뿐이었다. 자바는 .NET이 나오기 전에는, "성장"할 수밖에 없었다.

자바와 .NET 중에 어느 것이 더 쉽냐는 것에 대해서는 우열을 가리기 힘들 정도이다. 이젠... 조직력과 단결력이 그 힘의 균형을 깰 수 있을 것이다. (국가 또는 대기업 차원에서의 제한을 MS에 명시적으로 가하지 않는 한.)

오픈 소스 진영으로 인한 의사 결정의 지지 부진, 그로 인한 각 벤더들의 무분별한 표준 확장이라는 부작용을 낳고 있는 "자바"와... 오직 하나의 목표를 가지고 질주하는 "MS"가 내놓은 ".NET"은... 어느 것이 승자가 될지는 필자로서는 너무나 예측하기 쉬운 문제일 뿐이다.

또한, 웹 서비스의 출현으로, 이기종간의 호출 장벽이 허물어지고 있다는 것은... Microsoft에게 날개를 달아준 효과와 같을 것이다.




donaricano-btn



[최초 등록일: ]
[최종 수정일: 6/27/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

비밀번호

댓글 쓴 사람
 




[1]  2  3  4  5  6  7  8 
NoWriterDateCnt.TitleFile(s)
197정성태7/30/2021110.NET : 63. Spectre.Console
196정성태10/28/20191484장치 관리자처럼 각 장치들에 할당된 리소스(예: Memory Range) 상태를 코드로 알아내는 방법
195정성태4/25/20191560Extracting Text from an Image Using Tesseract in C#
194정성태4/25/20191326Parse the Command Line with System.CommandLine
193정성태8/2/20174081.NET : 62. github - C# to JavaScript, WPF to JavaScript and Samples
192정성태6/29/20163764.NET : 61. TreeLib: Balanced Binary Trees ? Rank Augmented, for .NET
191정성태10/13/20154989.NET : 60. MICROSOFT TRANSLATOR HUB
190정성태6/20/20155781Win32 : 6. UMDH Visualizer - Memory profile viewer
189정성태1/19/20147062.NET : 59. QR 코드를 ASP.NET과 WPF에서 사용하는 방법
188정성태1/15/20147466.NET : 58. 윈도우폰 7 - 안면인식, Cartooning...
187정성태1/14/20147422.NET : 57. BCL에서 제공되는 컬렉션에 만족하지 못한다면? [1]
186정성태6/26/20137435.NET : 56. The managed way to retrieve text under the cursor (mouse pointer)
185정성태9/27/20128351.NET : 55. Face Detection with Emgu CV in C# and WPF
184정성태9/23/20127204.NET : 54. What was that sound Visual Studio? Audio Editor Beta For VS 2012 (plus free sounds library too!)
183정성태4/19/20128793.NET : 53. Virtual Router 소스 코드 및 실행 파일 (C#)
182정성태4/16/20129407.NET : 52. SharpDX [1]
181정성태3/3/201212210.NET : 51. .NET에서 DirectX를 이용하여 스크린 캡쳐를 빠르게 하는 방법 [3]
180정성태3/3/20127913.NET : 50. Restart Manager 를 이용하여 .NET 에서 잠긴 파일을 소유하고 있는 프로세스 찾는 방법
179정성태1/14/20127361.NET : 49. WebAPI Developer Preview 6: Self Hosted Mode Example
178정성태10/31/20119326.NET : 48. app.config의 supportedRuntime 종류
177정성태10/15/20118208.NET : 47. Irony - Language Implementation Kit
176정성태7/22/20118174.NET : 46. Manual Validation with Data Annotations
175정성태5/18/20119798Win32 : 5. UuidCreateSequential
174정성태5/4/20118327.NET : 45. NTrace v2 now available (think Managed VS2010/.Net 4 Event Tracing for Windows)
173정성태4/12/20119660레지스트리 : 11. BHO를 IE와 탐색기에서 선택적으로 로드하고 싶다면?
[1]  2  3  4  5  6  7  8