Trang 4 trên tổng số 4 Đầu tiênĐầu tiên ... 234
Từ 31 tới 33 trên tổng số 33 kết quả

Đề tài: Tương lai của C++ : C++ 0x

  1. #31
    Ngày gia nhập
    07 2007
    Bài viết
    41

    Mặc định Tương lai của C++ : C++ 0x

    Đây là thread giới thiệu C++0x, làm ơn dẹp C# vs C++ qua 1 bên ! Đừng spoil my thread please. Ai theo C# hay ai theo C++ thì kệ họ, mình học cho mình chứ cho ai mà ngồi đó cãi cho mệt vậy !
    Mở đầu bài viết xin sorry r2 vì lại lật lại vấn đề. Tuy nhiên tranh luận không phải là không tốt, nhưng khi tranh luận không phải cứ thích cái nào thì cứ ca ngợi cái đó, mỗi khi nói một vấn đề thì phải dẫn chứng ra cơ sở của nó, nếu mọi người đều tranh luận như vậy thì tranh luận là một cách để nhưng người chưa biết về một vấn đề nào đó có thể biết về nó, những người đã biết có thể đã quên có dịp refresh lại kiến thức.

    C++ và C# có 1 khoảng cách rất là xa. C++ là native còn (C#,VB..) .NET là managed. Do đó nên việc "sau này nó mạnh thì nó thành C#" là chuyện không thể bởi vì C++ luôn native (tự nhiên).
    Cái này chả biết nói sao nữa. Thứ nhất C++ cũng có 3, 7 c++, trên môi trường Managed thì cái thằng C++/CLI cũng rất mạnh, nó có nhiều đặc tính mà các ngôn ngữ managed khác không có, có lẽ điểm nổi bật nhất là Mixed Moded. Thứ 2 cái việt C++ trở thành C#, nếu hiểu theo một nghĩa nào đó thì đó là chuyện đã rồi, chứ không phải sau này, hiểu theo một nghĩa nào đó thì nó là điều không bao giờ xảy ra. Tôi chỉ muốn đưa ra một link tham khảo là seria 8 bài phỏng vấn kiến trúc sư trưởng của C#: http://www.artima.com/intv/anders.html, mặc dù đây chỉ là ý kiến một chiều nhưng đọc nó có lẽ các bạn sẽ hiểu một phần nào đó về design decision của C#, và phần nào tránh được những tranh luận không cần thiết.

    Đọc vài chữ của cậu thì hình như cậu nghĩ là 1 class ở C# không thể sử dụng được ở C++.
    Chỉ có một lưu ý nhỏ về vấn đề này, không phải tất cả các class ở C# đều gọi được thông qua COM, trong C# có một cái attribute là ComVisible. Tôi thì không rành về COM vì nó quá phức tạp, tuy nhiên chỉ thấy thế này: các class của .net thấy rất ít class set thuộc tính GUID => không biết khi update version thì GUID của class đó sẽ thế nào, vì thế khi sử dụng nên cẩn thận, nếu quan tâm và tìm hiểu được nó thế nào khi update version thì share tui biết với.

    Muốn dùng class của managed mà dùng COM thì có lẽ hơi cực, dùng C++/CLI ở chế độ mixed mode, viết một cái wapped class (proxy hay adapter) rồi dùng trong C++ native thì có lẽ nhẹ nhàng hơn nhiều.

    Tóm lại với tôi mọi thứ C++ là quá đủ rồi.
    @ZCoder: Cũng tốt, tuy nhiên không học thêm thì không nên. Như bác TQN rất expect C/C++ nhưng cũng học thêm C++/CLI vì không thể bỏ qua mảnh đất .Net được, nếu cậu thích C++ thì đi theo con đường này cũng rất hay.

    Cùng một project, làm trên dot net bao giờ cũng xướng hơn C++
    @NamVoDang: đã đồng ý rằng project ngày nay thường viết đa ngôn ngữ, tùy vào vấn đề, và yêu cầu mà chọn ngôn ngữ cũng như thư viện, framework sao còn phát biểu câu này. Một ví dụ: các vấn đề xử lý dữ liệu trên cấp độ byte thì có vẻ chả có thằng nào dễ dàng hơn C/C++ cả.

    Cái mà C# có được cũng chỉ là kéo thả mà thôi.
    1. Cái tầng quan trọng nhất trong 1 project hình như là Bussiness, mà cái tầng này thì tôi chưa biết cái tool kéo thả nào thì phải, ai biết chỉ tui với (WF không biết có giúp gì tầng này không, tui chưa học )

    Giao diện cậu kéo thả thì cũng mất chừng 1 ngày. Tôi dùng tay code thì mất 1 tuần.
    Tại sao không để 6 ngày đó vào bussiness đi?

    Nhưng tuổi thọ 1 chương trình mới đáng nói. Các phần mềm lớn đều tồn tại và phát triển. Yahoo cũng có tuổi thọ gần 10 năm. Office, hay Photoshop... cũng tương tự.
    Hiểu theo một nghĩa nào đó, các phần mềm này chả có cái nào thọ được 1 tháng.
    Vấn đề ăn bám
    Không hiêu lắm khi mọi người dùng từ này. Nhưng có một số câu hỏi: Giao diện của windows bắt nguồn từ đâu? độ phổ biến của windows thế nào? Linus bây giờ đang làm gì? Người giữ quyền sở hữu trí tuệ đầu tiên của máy nghe nhạc cầm tay thu được lợi gì từ sự phổ biến của IPod?

    nó rất hay trong việc sử dụng nhiều ngôn ngữ lập trình trong cùng một project(các ngôn ngữ này phải được .NET hỗ trợ).
    Các project không nhất thiết được .net hỗ trợ. Kid đề cập đến là win32 native mà. Các ngôn ngữ lập trình hiện đại hầu hết đều hỗ trợ cơ chế interlop sang môi trường khác (thường là native), và hỗ trợ websevice. Về Interlop, .Net thì có RuntimeInterlop (DllImport), riêng thằng C++/CLI có cơ chế IJW (It just work). Java thì có NInterface thì phải (tui chỉ biết java căn bản )
    Đã được chỉnh sửa lần cuối bởi zxc : 02-10-2008 lúc 01:53 PM.

  2. #32
    Ngày gia nhập
    09 2008
    Nơi ở
    Kĩ viện
    Bài viết
    169

    @NamVoDang: đã đồng ý rằng project ngày nay thường viết đa ngôn ngữ, tùy vào vấn đề, và yêu cầu mà chọn ngôn ngữ cũng như thư viện, framework sao còn phát biểu câu này. Một ví dụ: các vấn đề xử lý dữ liệu trên cấp độ byte thì có vẻ chả có thằng nào dễ dàng hơn C/C++ cả.
    Hix, đang nói làm sướng hơn, sao bạn lại nâng quan điểm của tớ lên thế. Sướng hơn có phải là chắc chắn tốt hơn đâu . Sướng hơn có phải là bỏ cái không sướng hơn đâu.

    Cùng một project làm trên C# bao giờ cũng sướng hơn, làm trên C++ bao giờ cũng có hiệu năng cao hơn -> Tốt nhất là mix cả hai, chỗ nào cần hiệu năng cao thì C++, chỗ nào cần tính năng nhiều thì C#. Hai tay hai súng, chuyện hiển nhiên .

    Muốn dùng class của managed mà dùng COM thì có lẽ hơi cực, dùng C++/CLI ở chế độ mixed mode, viết một cái wapped class (proxy hay adapter) rồi dùng trong C++ native thì có lẽ nhẹ nhàng hơn nhiều.
    Nhất trí cao.
    Phá toái hư không - Bạch nhật thăng thiên.

  3. #33
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Kiến thức của anh zxc thật là đang ngưỡng mộ.

    Thôi chúng ta dừng tại đây đi. Em cũng đang xem thử tương lai C++ mà R2 vẫn thường nhắc này sẽ đi đến đâu. Hi vọng R2 sẽ quản tốt mục này, để mọi người cùng phát triển.

Trang 4 trên tổng số 4 Đầu tiênĐầu tiên ... 234

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn