Là C ++ hiện đại thay thế C #? Microsoft có thúc đẩy các nhà phát triển chấp nhận C ++ không? [đóng cửa]


91

Tôi nghe về sự phổ biến của C ++ hiện đại và một số cuộc nói chuyện về việc chuyển trở lại C ++ từ C # hoặc các ngôn ngữ giống như C khác.

Tôi biết về các tính năng của C ++ 11 nhưng tôi muốn nghe những trải nghiệm của bạn, đặc biệt là từ các nhà phát triển đã chuyển từ C # sang C ++.

Quan trọng hơn, Microsoft có thúc đẩy các nhà phát triển sử dụng C ++ không? Nếu đúng thì tại sao?


16
Tôi nghĩ C ++ luôn là ngôn ngữ được sử dụng rộng rãi hơn vì nó được thiết lập tốt hơn và dễ mang theo hơn C #. Tôi không nghĩ rằng nó sẽ thay thế C #. Đối với các ứng dụng kinh doanh dựa trên windows, C # vẫn sẽ có nhu cầu lớn như một ngôn ngữ dễ thực hiện . C ++ không bao giờ thực sự biến mất. Nó chỉ có một loại hồi sinh gần đây.
KChaloux

2
Tôi hy vọng là không. Java và C # đã được các nhà phát triển triển khai và chúng vẫn đang phát triển.
Jesse C. Choper

4
Cả C ++ và C # chỉ là công cụ : chọn công cụ tốt nhất cho công việc cụ thể. ví dụ: nếu bạn muốn viết mã đa nền tảng, bạn có thể muốn sử dụng C ++; nếu bạn muốn các ứng dụng nhỏ không yêu cầu cài đặt thời gian chạy .NET, bạn có thể muốn sử dụng C ++ (với CRT được liên kết tĩnh); nếu bạn muốn phát triển một số công cụ GUI cho Windows theo cách RAD, bạn có thể muốn sử dụng C # và WinForms; v.v.
Mr.C64

6
Đó là một câu hỏi hay, có lẽ cần viết lại. Đó không phải là ngôn ngữ khác so với ngôn ngữ B. Thay vào đó, cụ thể là vị trí của Microsoft là gì, tại sao nó lại thay đổi và họ sẽ đi đâu vì thực tế là MS đủ lớn để khi họ gây ảnh hưởng đến các ngọn núi nhỏ hơn có xu hướng để di chuyển. Và có trong trường hợp này, họ chắc chắn có ảnh hưởng.
DXM

9
Hãy giữ cho mọi người dân sự. Sự thô lỗ sẽ không được dung thứ.
maple_shaft

Câu trả lời:


95

Vâng, những nghi ngờ của bạn là chính xác. Microsoft đang đẩy C ++ trở lại và trở nên phổ biến hơn.

Bây giờ tôi không thể tìm thấy nó, nhưng cách đây một thời gian tôi đã thấy một bài thuyết trình của một trong những ông lớn của Microsoft và toàn bộ điều này đã hướng đến các nhà phát triển và đã ra mắt Windows 8 và đặc biệt là WinRT (thay thế cho .NET framework dưới dạng API Win32).

Ông có một dòng thời gian mà ông giải thích rằng những áp lực khác nhau đã ảnh hưởng đến những gì công nghệ phổ biến tại một số thời điểm nhất định. Vì vậy, lúc đầu mọi người muốn tốc độ nên tất cả đều được mã hóa bằng C / C ++ (hai ngôn ngữ riêng biệt). Khi phần cứng trở nên nhanh hơn, trọng tâm chuyển khỏi tốc độ thực thi và hướng tới tốc độ phát triển, do đó, các ngôn ngữ cấp cao trở nên phổ biến hơn nhiều.

Tuy nhiên, giờ đây, trọng tâm đang ngày càng hướng đến các máy tính di động và dựa trên ARM (Windows 8 là phiên bản Windows đầu tiên được biên dịch cho ARM) và nhiều người tin rằng chúng sẽ trở nên phổ biến hơn nhiều và đối với một số người sẽ thay thế hoàn toàn máy tính để bàn. Vì vậy, trọng tâm (ít nhất là trong mắt của Microsoft) đã trở lại với C ++ vì bây giờ chúng tôi quan tâm đến thời lượng pin. Mã cấp cao hơn = hướng dẫn nhiều hơn = yêu cầu nhiều nước trái cây hơn.

Để hỗ trợ quá trình chuyển đổi này trở lại C ++, họ đã giới thiệu API lập trình Windows 8 hoàn toàn mới, được gọi là WinRT (tôi đã kiểm tra lần cuối, dù sao đó cũng là tên). API này tuân theo chủ đề của .NET Framework trong phạm vi chức năng mà nó cung cấp nhưng nó sẽ có sẵn cho bất kỳ ai mã hóa bằng C ++ (thông qua giao diện COM), trong C # hoặc thậm chí trong Javascript cho những người muốn viết ứng dụng HTML 5 / Javascript. Họ cũng đang đưa XAML (công nghệ được sử dụng trong WPF, khung UI mới nhất của họ) cũng có sẵn trong C ++.

Vì vậy, với tôi điều đó cho thấy rằng chắc chắn có nhiều sự tập trung vào C ++ tại Microsoft hơn so với trước đây.

CẬP NHẬT # 1:

Vì tôi vừa nhận được huy hiệu 'câu trả lời hay' cho điều này, tôi nghĩ có lẽ tôi nên quay lại và a) làm rõ vài điều và b) làm cho cảnh sát kiểm tra thực tế hài lòng vì như chúng ta đều biết trên các diễn đàn công nghệ, bất cứ điều gì không chính xác đều có thể dẫn đến chiến tranh kéo dài trong nhiều năm.

  1. WinRT không phải là sự thay thế cho .NET framework, nhưng nó là một sự thay thế khác mà các nhà phát triển MS Windows hiện có và MS đang thúc đẩy mọi người đi theo hướng đó. Nó xuất hiện (vui lòng giữ ngọn lửa của bạn nếu điều này không chính xác 100%) rằng WinRT chủ yếu được nhắm mục tiêu cho các ứng dụng UI hiện đại mặc dù các ứng dụng máy tính để bàn thông thường cũng có thể tận dụng lợi thế của nó. Đã nói điều này, MS đang thúc đẩy mọi người chuyển sang viết một) ứng dụng UI hiện đại và b) bắt đầu sử dụng WinRT để phần trăm thay đổi phần trăm số người sử dụng .NET framework rất có thể sẽ giảm.

  2. C ++ sẽ KHÔNG BAO GIỜ thay thế các ngôn ngữ cấp cao hơn như C # hoặc python. Cũng giống như những ngôn ngữ đó sẽ KHÔNG BAO GIỜ thay thế C ++. Đây có lẽ là phần gây tranh cãi nhất trong câu hỏi của OP. Nhưng đó là tất cả về sự cân bằng và sự thật là:

    • Cộng đồng C ++ (với MS là một phần lớn của nó) đang thúc đẩy sự trở lại mạnh mẽ để định vị C ++ như một ngôn ngữ tốt cho các thiết bị có công suất thấp, có thị phần đang tăng lên như điên gần đây. Nếu bạn không tin tôi, hãy tìm kiếm loạt bài nói chuyện "Đi" bắt đầu từ năm ngoái.
    • Với tất cả nỗ lực và ảnh hưởng từ Microsoft, việc sử dụng C ++ chắc chắn sẽ tăng lên, trong khi C # có thể giảm một số thứ. Đây là những gì MS đang thúc đẩy và như tôi đã nói trong các ý kiến ​​trên, khi MS đặt vốn của họ đằng sau một ý tưởng, họ đã thay đổi phần lớn ngành công nghiệp. Tôi có thể sẽ nhận được phản hồi từ một số người sẽ tranh luận, "ngành công nghiệp nào, tôi đã luôn sử dụng Linux" và phản hồi duy nhất của tôi là, hãy thức dậy! Vâng, có những hệ điều hành khác ngoài thị trường, nhưng phần lớn thị trường máy tính để bàn, cả người tiêu dùng và doanh nghiệp hiện tại là Windows và bất kỳ nhà phát triển nghiêm túc nào muốn tối đa hóa giá trị thời gian của mình sẽ rất ngớ ngẩn khi không nhắm vào thị trường máy tính để bàn đó.

Vì vậy, kết luận: Có, MS đang thúc đẩy C ++ quay trở lại nên rất có thể mức độ phổ biến của nó sẽ tăng lên. Không, C ++ sẽ không bao giờ thay thế C #.

Cập nhật số 2:

Tôi không biết tại sao nhưng cộng đồng kỹ thuật có xu hướng nhìn mọi thứ theo thuật ngữ đen / trắng rất tuyệt đối khi thực tế tràn ngập màu xám. Đây là phản hồi cho một số bình luận mới đã được thêm vào bài đăng này:

  1. .NET framework sẽ không biến mất bất cứ lúc nào sớm (hoặc bao giờ). Gần như mọi công nghệ mà các cửa sổ có từ những năm 90 vẫn còn tồn tại ở một số dạng hoặc thời trang. Vì vậy, đối với những người gắn bó với .NET framework: a) đừng lo lắng về việc nó biến mất và b) ngừng tranh luận về lợi ích của mình như thể cuộc sống của bạn phụ thuộc vào nó, API của bạn an toàn.

  2. WinRT thực hiện lại rất nhiều chức năng mà trước đây được cung cấp bởi các API khung Win32 và .NET. Những người muốn chức năng đó sẽ có lựa chọn nếu họ muốn sử dụng WinRT, .NET framework hoặc tiếp tục với Win32 API (điều đó cũng không chết). Nếu WinRT không hỗ trợ dễ dàng tạo các ứng dụng web ngày hôm nay, rất có khả năng nó sẽ hỗ trợ chúng trong tương lai.

Vị trí mà Microsoft công bố là WinRT là một khung lớn giúp Microsoft có cơ hội bắt đầu với một bảng xếp hạng sạch sẽ và xây dựng API bằng các bài học kinh nghiệm trong chính Win32 API và .NET framework. Tôi đã thử tìm video đó và vẫn không thể tìm thấy video đó, nhưng một trong những điều mà người nói đã đề cập là có một số khu vực nhất định của .NET framework có thể được định nghĩa tốt hơn / đơn giản hơn / sạch hơn và WinRT hiển thị cùng chức năng đó trong giao diện mới sạch hơn.


7
Có phải đó là cuộc nói chuyện của Herb Sutter tại C ++ và hơn thế nữa, với tiêu đề "Tại sao lại là C ++?" Có một video về nó trên Kênh 9, mặc dù hiện tại tôi đang gặp sự cố khi truy cập nó, có lẽ vì Redmond đang tổ chức một sự kiện phát trực tuyến lớn. Logic của bạn có ý nghĩa, nhưng những loại tuyên bố này thực sự cần được sao lưu với một số tài liệu tham khảo, vì điều này sẽ đại diện cho một sự thay đổi chiến lược lớn cho Microsoft và bất kỳ ai khác phát triển phần mềm với các sản phẩm của Microsoft.
Robert Harvey

13
WinRT không thay thế cho .NET. Giữ sự thật của bạn trong kiểm tra xin vui lòng.
Euphoric

4
@Euphoric: Nói cách khác, .NET framework không bao giờ thay thế cho Win32 API. Đồng thời, khi C # xuất hiện, nhiều người đã chuyển qua và quên tất cả về việc thực hiện các cuộc gọi chức năng kiểu C thành các DLL của windows. MS đang đẩy cho cùng một chuyển đổi bây giờ. Vì vậy, yeah, .NET framework sẽ tiếp tục tồn tại dưới sự bảo trợ của WinRT và chắc chắn bạn vẫn có thể sử dụng .NET framework, nhưng MS đang thúc đẩy mọi người chuyển sang sử dụng framework mới.
DXM

21
@gbjbaanb - Điều này sai 100%. ALL .NET đầu tiên luôn là trình bao bọc rất đẹp cho thư viện Win32. Thứ hai, chỉ có những khác biệt nhỏ giữa FullHồ sơ .NET và Hồ sơ .NET của 'WinRT', những khác biệt lớn, là rất nhiều thứ được triển khai kém từ 10 - 15 năm trước đã bị xóa và được thay thế bằng mã được thiết kế tốt hơn. Cho đến khi họ thoát khỏi thư viện Win32, tất cả cùng nhau .NET vẫn ở đây. Nhận xét của bạn cho thấy sự thiếu HOÀN TOÀN và TOTAL thiếu kiến ​​thức liên quan đến chính ngôn ngữ .NET và C #.
Ramhound

6
Chưa kể rằng đối với các ứng dụng Web, .NET là tuyệt vời. Nếu nó từng là một 'sự thay thế', thì nó sẽ dành cho các ứng dụng trên máy tính để bàn chứ không phải cho các ứng dụng Web.
George Stocker

22

Không, Windows 8 là tất cả về việc sử dụng bất kỳ ngôn ngữ nào bạn cần (hoặc biết) để hoàn thành công việc. Các ngôn ngữ JavaScript, .Net (C #) và C / C ++ đều được hỗ trợ như nhau.

Không có gì được thay thế và cuối cùng tùy thuộc vào các nhà phát triển. Tuy nhiên, có một sự thúc đẩy cho tuổi thọ pin tốt hơn mà WinRT làm cho dễ dàng hơn.

Ngoại lệ là các trò chơi mà C ++ đang nhận được nhiều hỗ trợ hơn, đặc biệt là trên Windows Phone 8 trong khi các ngôn ngữ được quản lý không có hỗ trợ riêng (còn gọi là không có xna).


1
+1 Microsoft đang mong muốn được áp dụng Windows 8 trên thị trường điện thoại thông minh và máy tính bảng. Apple kiếm được nhiều doanh thu từ iPhone hơn so với Microsoft. Một trở ngại là có rất ít ứng dụng cho điện thoại / máy tính bảng Windows so với các nền tảng đã được thiết lập. Vì vậy, họ muốn làm cho mọi người có thể tạo một ứng dụng bằng ngôn ngữ yêu thích của họ. C #, C ++ hoặc JavaScript.
MarkJ

Tôi không biết lý do tại sao họ quyết định bỏ hỗ trợ c / c ++ bản địa bắt đầu từ windows phone 7. Kể từ ngày đó, windows + windows mobile đã trở thành nền tảng chính 90% cho công ty chúng tôi chuyển sang tầm quan trọng 10%. 10% chỉ vì các công cụ phát triển tốt nhất (visual studio), nếu không, chúng tôi không tạo ra các sản phẩm nữa ngay cả cho máy tính để bàn windows.
Pavel P

1
@Pavel Tôi không chắc bạn đang nói gì ở đó ..
Daniel Little

@Pavel - họ đã bỏ mã gốc từ WinPhone7, sau đó bỏ mã được quản lý từ WinPhone8. Có lẽ bạn có thể truy cập lại nền tảng ngay bây giờ hoặc chỉ cần bỏ qua nó cho đến khi / nếu nó có được thị phần lớn hơn nhiều.
gbjbaanb

19

Tôi biết về các tính năng của C ++ 11 nhưng tôi muốn nghe trải nghiệm của bạn

Ý nghĩ rằng mọi người sẽ thích C ++ hơn C # (hoặc gần như bất kỳ bài đăng nào khác năm 1990 [không phải php] thay thế) cho lập trình mục đích chung là đáng cười . C ++ 11 thêm một số bit bị thiếu tốt, nhưng nó vẫn đóng đinh vào chân một con chó .

C ++ có một số ngóc ngách tốt và đây vẫn là lựa chọn tốt nhất trên một số nền tảng có hỗ trợ trình biên dịch hạn chế. Nhưng không, C ++ hiện đại không nơi nào có thể thay thế bất cứ thứ gì ngoại trừ C ++ có thể lỗi thời.


31
Đọc những gì bạn đang viết. Bạn hoàn toàn khẳng định rằng việc sử dụng C ++ để lập trình cho mục đích chung trên C # là điều đáng cười . Đây có phải là một sự thật mà bạn tin tưởng, hay đó chỉ là ý kiến ​​phóng đại của chính bạn?
zxcdw

38
@zxcdw - Nếu tôi có 100 vấn đề lập trình chung, tôi sẽ giải quyết được ~ 90 trong số đó nhanh hơn, tốt hơn, với ít lỗi hơn khi sử dụng C # hoặc Java hoặc Python hoặc Scala hoặc ... Và đó là sự hào phóng. Đây là quan điểm chung của khá nhiều lập trình viên chuyên nghiệp mà tôi biết; ngay cả những người sử dụng C ++ làm ngôn ngữ chính của họ.
Telastyn

33
@zxcdw: Tôi là một nhà phát triển C ++ khó tính. Tôi đã thực hiện C ++ hơn 15 năm và hoạt động chủ yếu trên các ứng dụng phụ cần C ++. Tôi đã vượt qua STL và một nửa Boost. Rất nhiều điều làm mất tinh thần của nhóm tôi đã giới thiệu siêu lập trình mẫu ở một vài nơi mà tôi nghĩ là xứng đáng. Điểm tôi đang cố gắng thực hiện là tôi yêu C ++ và làm việc với nó. Phải nói rằng, tôi đồng ý với Telastyn, nếu tôi gặp vấn đề chung không yêu cầu C ++ cung cấp những gì, tôi thà chọn C # hoặc thậm chí là Python. Chúng là ngôn ngữ cấp cao hơn và bạn chỉ cần hoàn thành công việc nhanh hơn. Điều này đúng với ít nhất là dành cho các nhà phát triển Win
DXM

5
@MadKeithV - Nếu tôi không làm việc trên ứng dụng C # đang chạy trên OSX, iOS và Android, tôi có thể đưa ra đối số đa nền tảng đó nặng hơn một chút. Ngay cả khi bỏ qua điều đó, các ngôn ngữ không phải C # mà tôi liệt kê hầu như luôn là các tùy chọn tốt hơn C ++ khi đa nền tảng là mối quan tâm mạnh mẽ. C ++ 11 không làm gì nhiều để đẩy các tùy chọn đó đi.
Telastyn

14
Nếu tất cả những gì bạn có là một cái búa, mọi thứ trông giống như một cái đinh. Những cải tiến trong C ++ 11 sẽ không làm giảm tác động lan rộng của C # và các ngôn ngữ bất khả tri tương tự, nhưng có lẽ nhiều nền tảng hơn, thay vào đó nó sẽ giữ cho con tàu đó nổi lên. Điểm bán hàng lớn nhất của C ++ 11 vẫn là ngôn ngữ từ đầu đến cuối cho một hệ thống chọc vào sâu trong hệ thống, nhưng vẫn mang đến cơ hội mày mò với những thứ trừu tượng cao hơn.
JustinC

2

DXM đã viết:

Vì vậy, trọng tâm (ít nhất là trong mắt của Microsoft) đã trở lại với C ++ vì bây giờ chúng tôi quan tâm đến thời lượng pin. Mã cấp cao hơn = hướng dẫn nhiều hơn = yêu cầu nhiều nước trái cây hơn.

Theo những từ này, việc chọn Java làm ngôn ngữ / khung chính cho Android của Google là một sai lầm. Nó không phải là. Ngôn ngữ cấp cao hơn thường có nghĩa là hoàn thành công việc nhanh hơn và tôi nghĩ đây là điều quan trọng nhất đối với Microsoft và Google. Càng nhiều ứng dụng tốt hơn được tạo ra cho nền tảng, lợi nhuận của nhà sản xuất HĐH càng cao.

Mặt khác, có rất nhiều phần mềm cho Windows vẫn được viết bằng C ++, vì vậy việc thúc đẩy các nhà phát triển đó chuyển sang C # / JavaScript / bất cứ điều gì khác sẽ là điên rồ. Microsoft tập trung vào việc cung cấp khả năng phát triển ứng dụng Win8 cho nhiều nhà phát triển nhất có thể, đó là lý do tại sao theo tôi, họ đã quyết định hỗ trợ C ++ và JavaScript trong ngăn xếp phát triển Win8.


5
Java là một sai lầm. Nếu bạn muốn hiệu suất thô (và bạn thường làm) thì bạn muốn viết bằng C / C ++. Nếu bạn muốn năng suất của nhà phát triển thì bạn muốn có một ngôn ngữ cấp cao hơn như Python hoặc PHP hoặc Ruby hoặc JS. Java (và C #) là các hệ thống trung cấp cung cấp cho bạn hiệu suất tốt nhất hoặc năng suất tốt nhất. Như vậy, C ++ không tệ lắm - bạn có thể có được năng suất tốt từ nó một khi bạn biết bạn đang làm gì.
gbjbaanb

8
@gbjbaanb Tôi có cảm xúc lẫn lộn về nhận xét của bạn: một vài năm trước, đặt Java và C # ở cùng mức độ trừu tượng sẽ có ý nghĩa, nhưng việc giới thiệu LINQ, biểu thức lambda và các tính năng lập trình async trong các phiên bản .NET mới hơn có đã chuyển C # lên một mức cao hơn (Java sẽ bắt kịp sự thiếu lập trình chức năng trong JDK8, nhưng đó vẫn ở giai đoạn truy cập sớm).
mã công viên

2
@gbjbaanb may mắn thay, WCF chỉ là một phần rất nhỏ của .NET và việc khái quát hóa rằng áp dụng cho ngôn ngữ C # là không hợp lệ. Bạn đã thực sự sử dụng các tính năng mới kể từ .NET 3 chưa? Bởi vì VS hoàn toàn không phải là một môi trường phát triển tuyệt vời (thực tế, nó thực sự gây phiền nhiễu nếu không có ReSharper). Vì vậy, xem xét rằng chính trang web này (và toàn bộ mạng SE) được xây dựng bằng C #, nhận xét của bạn có vẻ không chính xác.
mã công viên

1
@rotman Vui lòng không trả lời câu trả lời của người khác trong câu trả lời của riêng bạn. Câu trả lời chỉ nên giải quyết câu hỏi ban đầu :)
Andres F.

6
@gbjbaanb: Tôi sẽ nói rằng đó là khẳng định mà không có bằng chứng cho thấy các hệ thống giữa mặt đất mang lại cho bạn hiệu suất tốt nhất hoặc năng suất tốt nhất là một sai lầm. Cho rằng hiệu suất và năng suất đều quan trọng, giải pháp tốt nhất là cân bằng cả hai và một lựa chọn trung bình như Java hoặc C # là một lựa chọn tuyệt vời cho nhiều trường hợp sử dụng.
Carson63000

2

C ++ vẫn có các tệp Tiêu đề, bộ tiền xử lý linh hoạt (#define), ... những thứ như vậy mà một số người coi các tính năng này là 'xấu xa' hoặc 'khó quản lý'.

Mặt khác, C # sử dụng siêu dữ liệu, không cần phải viết và duy trì các tệp tiêu đề.

Về việc Microsoft bổ sung thêm nhiều tính năng cho C ++: Không có vấn đề gì.

Mỗi trình biên dịch C ++ đang bổ sung thêm nhiều tính năng, bao gồm các tính năng của C ++ 11. gcc cũng được.


7
Nếu tất cả những gì bạn có thể nói xấu về C ++ là các tệp tiêu đề tốt, thì bạn đã gián tiếp chứng minh điểm này. Tôi có thể liệt kê toàn bộ các vấn đề nghiêm trọng về C #, không tính di động, không xác định, chi phí thời gian chạy, độc quyền, v.v.
user805547

1
Sử dụng đúng công cụ cho đúng công việc. C ++ rất tốt ở các công ty như Intel vì hiệu suất mã không được quản lý khác nhau cần mức độ thấp cho các dự án huy chương, nhưng nếu bạn cần một trang web / dịch vụ web mà mọi công ty đều LÀM, thì thật may mắn với C ++ vì điều đó!
Tom Stickel

1

Chỉ có thể là tôi, nhưng, tôi thấy việc sử dụng C đơn giản hơn nhiều so với C ++.

Việc C ++ đã nuốt chửng toàn bộ C khiến chúng ta khó có thể suy ra ai đang sử dụng cái gì.

Nhưng có rất nhiều dự án nguồn mở C hơn C ++.

Quan điểm của tôi là nếu bạn cần gần với tốc độ sử dụng kim loại C. Nếu bạn cần linh hoạt và dễ quản lý với hiệu suất hợp lý, hãy sử dụng C # hoặc Java. Nếu bạn muốn một thiết kế sạch được thực hiện nhanh chóng, hãy sử dụng Python, Scala, Groovy hoặc bất kỳ ngôn ngữ nào có đầy đủ tính năng.


2
Không, tôi nghĩ bạn sai ở đây. C ++, nếu bạn vô hiệu hóa các ngoại lệ, gần với kim loại như C, miễn là bạn biết bạn đang làm gì. Vấn đề là ABI. Trong C ++, tình hình vẫn phải giải quyết, họ đang nghiên cứu nó. Một khi điều này được thực hiện, tôi nghĩ sẽ không có nhiều hấp dẫn để sử dụng C thay vì C ++ khi thực tế C ++ có kiểm tra lỗi tốt hơn và là một superset, vì vậy công cụ sẽ vượt trội hơn vào thời điểm đó.
Germán Diago

0

c ++ không thay thế c #. Hãy để chúng tôi xem xét nơi ngôn ngữ c ++ được sử dụng. Nó được sử dụng khi cần hiệu năng cao, để viết thư viện phần mềm trung gian, truy cập mức thấp và để viết mã cho các thiết bị bị hạn chế tài nguyên. Mặc dù bạn có thể sử dụng c # cho một số trong những c ++ này phù hợp hơn cho những điều này. Sự thúc đẩy của Microsoft cho c ++ có liên quan cao đến cú hích lớn của nó vào không gian di động. Không ai sẽ yêu cầu bạn viết ứng dụng web tiếp theo của bạn bằng c ++. Nhưng với Qt, đối số năng suất không thể được thực hiện đối với c ++. Nhưng tôi nghĩ nhiều người không quen thuộc với Qt.


C ++ vẫn được sử dụng nhiều trong phát triển phần mềm Windows thương mại không theo chiều dọc.
bit-twiddler

1
C ++ giống như công cụ chuyên nghiệp nhất mà bạn có thể sử dụng để viết phần mềm. Nhưng bạn phải có kỹ năng viết mã tốt, vì nó khá miễn phí và có một số điều kỳ quặc để làm tương thích ngược. Tôi nghĩ rằng nó rất phù hợp cho tất cả các loại phần mềm ngoại trừ kịch bản. Vấn đề là đường cong học tập. Với các thư viện hiện đại, nó rất có thẩm quyền ngay cả ở năng suất. Và nghĩ rằng nếu ứng dụng thành công, bạn phải port nó. Chuyển dễ dàng hơn với các cơ sở mã C / C ++, làm để sẵn sàng trình biên dịch. Danh sách các phần mềm được viết bằng C ++ là vô tận: amazon, google, dropbox, viễn thông, trò chơi, facebook ...
Germán Diago

-4

Không, C ++ không thể thay thế C # vì tất cả các ứng dụng Windows Phone 8 không phải Direct3D phải được phát triển bằng C #. Bạn không thể phát triển và xuất bản ứng dụng lên kho ứng dụng wp8 chỉ bằng cách sử dụng C ++ hoặc HTML5 / Javascript. Và miễn là Microsoft không loại bỏ hạn chế này, C ++ sẽ không thay thế bất cứ điều gì. Do đó, tôi chắc chắn sẽ có rất ít người phát triển cho WP8. Nokia tội nghiệp, mất thêm một lần nữa.

Đây là đoạn trích từ trung tâm dev microsoft :

Windows Phone 8 không hỗ trợ Giao diện người dùng XAML với mô hình ứng dụng mã phía sau C ++ được hỗ trợ cho các ứng dụng Windows Store.

khác

Điều này có nghĩa là tôi không thể sử dụng C ++ với XAML để phát triển ứng dụng trên Windows PHone 8, tôi có bị hạn chế sử dụng C # + XAML không?

Đúng rồi. XAML chỉ có thể được sử dụng với C #. C ++ có thể được sử dụng cho một thành phần WinRT được sử dụng bởi dự án C #.

Ngay cả các MVP của Microsoft cũng cho rằng tin đồn này là thông tin sai lệch có chủ ý do chính Microsoft tạo ra:

Tôi thích những gì Microsoft đang làm với WinRT và Windows Phone 8, nhưng tôi ước họ sẽ không bán quá nhiều vì nó sẽ khiến người dùng thất vọng khi họ biết được sự thật hoàn toàn của vấn đề.

Và điều này cố tình tiếp thị sai làm lãng phí hàng tháng của mọi người :

Rất vui được biết AGTHS AGO này, trước khi tôi đi xuống tuyến đường mã gốc với ứng dụng Metro của mình.


1
Cả hai liên kết của bạn đều có thể sử dụng C ++ để phát triển WP8 và chỉ XAML yêu cầu C #. Hơn nữa, Direct3D chỉ được hỗ trợ bởi C ++.
Lee

@Lee, bạn có thể phát triển ứng dụng không Direct3D mà không cần sử dụng C # cho WP8 không?
Özgür
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.