현대 C ++ 인기에 대해 듣고 C # 또는 다른 C 유사 언어에서 C ++로 다시 마이그레이션하는 것에 대해 이야기합니다.
C ++ 11 기능에 대해 알고 있지만 특히 C #에서 C ++로 마이그레이션 한 개발자의 경험을 듣고 싶습니다.
더 중요한 것은 Microsoft가 개발자에게 C ++을 사용하도록 강요합니까? 그렇다면 왜 그렇습니까?
현대 C ++ 인기에 대해 듣고 C # 또는 다른 C 유사 언어에서 C ++로 다시 마이그레이션하는 것에 대해 이야기합니다.
C ++ 11 기능에 대해 알고 있지만 특히 C #에서 C ++로 마이그레이션 한 개발자의 경험을 듣고 싶습니다.
더 중요한 것은 Microsoft가 개발자에게 C ++을 사용하도록 강요합니까? 그렇다면 왜 그렇습니까?
답변:
예, 당신의 의심은 맞습니다. 마이크로 소프트는 C ++를 다시 방문하여 더 인기를 끌고있다.
지금은 찾을 수 없지만 얼마 전 Microsoft의 큰 전문가 중 한 명이 프레젠테이션을 보았고 모든 것이 개발자를 대상으로했으며 Windows 8과 특히 WinRT (.NET 프레임 워크의 대체품)에서 출시되었습니다. Win32 API로).
그는 다양한 압력이 특정 시간에 어떤 기술이 대중적으로 영향을 받는지 설명하는 타임 라인을 가지고있었습니다. 처음에는 사람들이 속도를 원했기 때문에 모두 C / C ++ (2 개의 개별 언어)로 코딩되었습니다. 하드웨어가 빨라짐에 따라 초점은 실행 속도에서 멀어지고 개발 속도로 이동하여 고급 언어가 훨씬 더 대중화되었습니다.
그러나 이제는 모바일 및 ARM 기반 컴퓨터 (Windows 8이 ARM 용으로 컴파일 된 최초의 Windows 릴리스 임)에 초점을 맞추고 있으며, 많은 사람들이 자신들이 훨씬 더 대중화 될 것이며 일부는 데스크탑을 완전히 대체 할 것이라고 믿고 있습니다. 따라서 배터리 수명에 관심을 갖기 때문에 (적어도 Microsoft의 눈에) 초점은 C ++로 돌아갑니다. 높은 수준의 코드 = 더 많은 지시 사항 = 더 많은 주스가 필요합니다.
C ++ 로의 이러한 전환을 지원하기 위해 WinRT (마지막으로 확인한 이름)라는 완전히 새로운 Windows 8 프로그래밍 API를 도입했습니다. 이 API는 제공하는 기능 범위에서 .NET Framework의 주제를 따르지만 HTML 5 / Javascript 앱을 작성하려는 사용자는 C ++ (COM 인터페이스를 통해), C # 또는 Javascript로 코딩하는 모든 사람이 사용할 수 있습니다. 또한 C ++에서도 사용할 수 있도록 XAML (최신 UI 프레임 워크 인 WPF에 사용 된 기술)을 제공합니다.
그래서 나에게 그러한 종류는 과거보다 Microsoft의 C ++에 더 많은 초점이 있음을 나타냅니다.
방금 이것에 대한 '좋은 답변'배지를 얻었으므로, 나는 돌아와야 할 것이라고 생각했습니다 .a) 몇 가지 사항을 분명히하고 b) 기술 포럼에서 모든 것이 부정확 한 것이 전쟁을 초래할 수 있기 때문에 사실 확인 경찰을 행복하게 만듭니다. 몇 년 동안 지속됩니다.
WinRT는 .NET 프레임 워크를 대체하지는 않지만 MS Windows 개발자가 현재 보유하고있는 또 다른 대안이며 MS는 사람들이 그러한 방향으로 나아가도록 강요하고 있습니다. 일반 데스크탑 앱에서도이 기능을 활용할 수 있지만 WinRT는 주로 Modern UI 앱을 대상으로 한 것으로 보입니다 (100 % 정확하지 않은 경우 화염을 유지하십시오). MS는 사람들이 a) 최신 UI 앱을 작성하고 b) WinRT를 사용하기 시작하여 .NET 프레임 워크를 사용하는 사람들의 비율이 가장 낮아질 것으로 예상하고 있습니다.
C ++은 C #이나 python과 같은 고급 언어를 대체하지 않습니다. 이러한 언어가 C ++을 대체하지 않는 것처럼. 이것은 아마도 OP의 질문에서 가장 논쟁의 여지가있는 부분 일 것입니다. 그러나 그것은 균형에 관한 것이며 사실은 다음과 같습니다.
결론적으로, 그렇습니다. MS는 C ++이 다시 돌아 오도록해서 인기가 높아질 가능성이 높습니다. 아니요, C ++는 C #을 대체하지 않습니다.
왜 그런지 모르겠지만 기술계는 현실이 회색 음영으로 가득 찬 경우 매우 절대적인 흑백 용어로 사물을 보는 경향이 있습니다. 이 게시물에 추가 된 몇 가지 새로운 의견에 대한 답변입니다.
.NET 프레임 워크는 조만간 사라지지 않을 것입니다. 창문이 90 년대 이후 가지고 있었던 거의 모든 기술은 여전히 어떤 형태 나 방식으로 존재합니다. 따라서 .NET 프레임 워크에 연결된 사람들의 경우 : a) 사라질 것에 대해 걱정하지 마십시오. b) 마치 인생이 의존하는 것처럼 유리하게 논쟁하지 마십시오 .API는 안전합니다.
WinRT는 과거에 Win32 및 .NET 프레임 워크 API에서 제공했던 많은 기능을 다시 구현합니다. 이 기능을 원하는 사람들은 WinRT, .NET 프레임 워크를 사용하거나 Win32 API를 계속 사용하려는 경우 선택할 수 있습니다 (죽지 않았 음). WinRT가 오늘날 웹 응용 프로그램의 쉬운 생성을 지원하지 않는다면, 앞으로 웹 응용 프로그램을 지원할 가능성이 매우 높습니다.
Microsoft가 발표 한 입장은 WinRT가 Win32 API 및 .NET 프레임 워크 자체에서 배운 교훈을 사용하여 Microsoft가 깨끗한 슬레이트로 시작하고 API를 구축 할 수있는 큰 프레임 워크라는 것입니다. 나는 그 비디오를 찾으려고 시도했지만 여전히 그것을 찾을 수는 없지만 화자가 언급 한 것 중 하나는 .NET 프레임 워크의 특정 영역이 더 좋고 간단하고 깨끗하게 정의되어 WinRT가 동일한 기능을 노출한다는 것입니다 새로운 깔끔한 인터페이스에서
Full
.NET 프로파일과 'WinRT'.NET 프로파일 사이에는 약간의 차이점 만 있습니다 . 주요 차이점은 10-15 년 전에 구현이 제대로 수행되지 않았으며 더 나은 디자인의 코드로 대체 된 것입니다. 그들이 모두 Win32 라이브러리를 제거 할 때까지 .NET이 여기에 있습니다. 귀하의 의견은 .NET 및 C # 언어 자체와 관련하여 완전한 지식과 지식이 부족하다는 것을 보여줍니다.
아니요, Windows 8은 업무 수행에 필요한 언어를 사용하는 것입니다. JavaScript, .Net 언어 (C #) 및 C / C ++는 모두 동일하게 지원됩니다.
대체되는 것은 없으며 어쨌든 결국 개발자에게 달려 있습니다. 그러나 WinRT를 통해 배터리 수명을 연장 할 수 있습니다.
C ++가 특히 Windows Phone 8에서 더 많은 지원을 받고있는 반면, 관리되는 언어는 기본 지원 (일명 xna는 아님) 인 게임은 예외입니다.
C ++ 11 기능에 대해 알고 있지만 귀하의 경험을 듣고 싶습니다
사람들이 범용 프로그래밍을 위해 C ++보다 C ++을 선호한다는 생각 (또는 1990 년대 이후의 [non-php] 대안)은 우스운 일 입니다. C ++ 11은 누락 된 비트를 추가하지만 여전히 개에게 다리를 못 박습니다 .
C ++에는 좋은 틈새가 있으며 컴파일러 지원이 제한적인 일부 플랫폼에서 여전히 가장 좋은 옵션입니다. 그러나 아닙니다. 현대 C ++은 구식이며 깨진 C ++을 제외하고는 대체 할 수있는 곳이 없습니다.
DXM은 다음과 같이 썼다.
따라서 배터리 수명에 관심을 갖기 때문에 (적어도 Microsoft의 눈에) 초점은 C ++로 돌아갑니다. 높은 수준의 코드 = 더 많은 지시 사항 = 더 많은 주스가 필요합니다.
이 단어에 따르면 구글 안드로이드의 기본 언어 / 프레임 워크로 자바를 선택하는 것은 실수였다. 아니었다. 높은 수준의 언어는 일반적으로 작업 속도를 높이는 것을 의미하며 이것이 Microsoft와 Google에게 가장 중요한 것이라고 생각합니다. 플랫폼을 위해 더 나은 응용 프로그램을 만들수록 OS 생산자의 이익이 높아집니다.
반면에 C ++로 작성된 Windows 용 소프트웨어는 여전히 많기 때문에 개발자가 C # / JavaScript / 다른 것으로 전환하도록하는 것은 미치게됩니다. Microsoft는 가능한 많은 개발자에게 Win8 앱 개발 가능성을 제공하는 데 주력하고 있기 때문에 Win8 개발 스택에서 C ++ 및 JavaScript를 지원하기로 결정했습니다.
C ++에는 여전히 헤더 파일, 유연한 전 처리기 (#define)가 있습니다. ... 일부 사람들은 이러한 기능을 '악한'또는 '관리하기 어려운'것으로 간주했습니다.
반면에 C #은 메타 데이터를 사용하므로 헤더 파일을 작성하고 유지할 필요가 없습니다.
C ++에 더 많은 기능 추가하기 : 정보
모든 C ++ 컴파일러는 C ++ 11 기능을 포함하여 더 많은 기능을 추가하고 있습니다. gcc도 있습니다.
나일지도 모르지만 C ++보다 훨씬 더 일반적인 C 사용법을 봅니다.
C ++가 일반 C 전체를 삼킨 사실은 누가 무엇을 사용하는지 추론하기 어렵게 만듭니다.
그러나 C ++보다 훨씬 많은 C 오픈 소스 프로젝트가 있습니다.
제 생각에는 금속 속도 C를 사용하는 것이 필요합니다. 합리적인 성능으로 유연성과 관리 효율성이 필요한 경우 C # 또는 Java를 사용하십시오. 깔끔한 디자인을 원한다면 Python, Scala, Groovy 또는 여러 기능을 갖춘 다양한 언어를 사용하십시오.
C ++은 C #을 대체하지 않습니다. C ++ 언어가 사용되는 곳을 살펴 보자. 고성능, 미들웨어 라이브러리 작성, 저수준 액세스 및 자원 제한 장치에 대한 코드 작성이 필요할 때 사용됩니다. 이러한 C ++ 중 일부에 c #을 사용할 수 있지만 이것에 더 적합합니다. c ++에 대한 Microsoft의 추진은 모바일 공간으로의 큰 추진과 관련이 있습니다. 아무도 C ++로 다음 웹 앱을 작성하도록 요구하지 않습니다. 그러나 Qt를 사용하면 c ++에 대해 생산성 주장을 할 수 없습니다. 그러나 많은 사람들이 Qt에 익숙하지 않다고 생각합니다.
아니요, Direct3D가 아닌 모든 Windows Phone 8 앱 은 모두 C #으로 개발 해야 하므로 C ++은 C #을 대체 할 수 없습니다 . C ++ 또는 HTML5 / Javascript 만 사용하여 애플리케이션을 wp8 앱 스토어에 개발하고 공개 할 수 없습니다. 그리고 Microsoft가이 제한을 제거하지 않는 한 C ++은 아무것도 대체하지 않습니다. 결과적으로 WP8을 위해 개발할 사람은 거의 없습니다. 불쌍한 노키아, 한 번 더 잃었다.
다음은 Microsoft 개발자 센터 에서 발췌 한 내용입니다 .
Windows Phone 8은 Windows 스토어 앱에서 지원되는 C ++ 코드 숨김 앱 모델을 사용하는 XAML UI를 지원하지 않습니다.
이것은 Windows PHone 8에서 앱을 개발하기 위해 XAML과 함께 C ++을 사용할 수 없다는 것을 의미합니까? C # + XAML을 사용하도록 제한되어 있습니까?
맞아요. XAML은 C #에서만 사용할 수 있습니다. C ++ 프로젝트에서 사용하는 WinRT 구성 요소에 C ++을 사용할 수 있습니다.
마이크로 소프트 MVP조차도이 소문은 마이크로 소프트 자신이 만든 고의적 인 잘못된 정보라고 주장 합니다.
Microsoft가 WinRT 및 Windows Phone 8을 사용하여하는 일을 좋아하지만 문제의 완전한 진실을 알게되면 사용자를 실망시키기 때문에 일부를 과도하게 팔지 않기를 바랍니다.
그리고이 고의적 인 잘못된 마케팅은 사람들의 달을 낭비합니다 .
Metro 앱으로 모든 기본 코드 경로를 내려 가기 전에이 MONTHS AGO를 아는 것이 좋았을 것입니다.