Tôi là một lập trình viên và có kinh nghiệm với cả mã gốc và mã được quản lý. Tôi bắt đầu với Pascal và C, sau đó chuyển sang C ++ và cuối cùng thành C #.
Trong khoảng một năm qua, tôi đã mã hóa gần như độc quyền trong C # và đã mất rất nhiều thứ đã từng xuất hiện một cách tự nhiên khi tôi là một lập trình viên C ++.
Vài tuần trước khi tôi ngồi viết một số mã C ++ bản địa, tôi thấy mình lóng ngóng khi dần dần làm quen với sự phức tạp, kỳ quặc và sự bình dị của tất cả. Tôi gần như lúng túng khi nói rằng tôi đã hoàn toàn quên rằng việc truyền một mảng được phân bổ động cho một hàm mà không vượt qua kích thước của nó có nghĩa là hàm nhận sẽ không có cách nào để biết mảng đó dài bao nhiêu.
Có vô số bài báo và tài liệu so sánh và đối chiếu được quản lý so với mã không được quản lý. Chúng ta đều biết rằng mã gốc, nếu được tối ưu hóa tốt, có thể chạy nhanh hơn và nhẹ hơn đáng kể so với mã được quản lý. Mặt khác, mã được quản lý có bộ thu gom rác và tối ưu hóa cụ thể cho CPU và hệ điều hành thời gian chạy, có thể giúp mã gốc chạy được tiền của nó.
Hoàn toàn từ góc độ kỹ thuật, không có người chiến thắng rõ ràng.
Không có nghi ngờ rằng mã được quản lý là các đơn đặt hàng có cường độ đơn giản hơn để mã hóa và hiểu. Chỉ cần nhìn vào sự khác biệt về số lượng dòng cần thiết để xây dựng GUI đơn giản trong Win32 C ++ so với C #.
Quay trở lại những ngày mã hóa bản địa của tôi, tôi chủ yếu viết các mô phỏng toán học chạy trên siêu máy tính. Họ có CLI xấu xí và chủ yếu tập trung vào thuật toán. Ngày nay tôi viết bằng C # và tạo ra các ứng dụng GUI đẹp mắt, nhưng sẽ bị mất nếu tôi phải tạo ra một thứ gì đó có tầm cỡ tương tự trên ngôn ngữ bản địa. Ngay cả với một khung như QT, vẫn sẽ mất gấp đôi thời gian để tạo ra thứ gì đó trong C ++ / QT so với C #.
Bất cứ khi nào tôi thấy ai đó đã viết một ứng dụng GUI có quy mô lớn, đầy đủ tính năng trong C / C ++, tôi không thể không cảm thấy sợ hãi và một chút ghen tị.
Tôi tò mò làm thế nào các lập trình viên có kinh nghiệm khác nhìn thấy các ngôn ngữ được quản lý và không được quản lý. Bạn có thấy mã được quản lý là nghiệp dư không? Bạn có thấy lập trình bản địa như nhiều Hardcore ?