Tôi làm công việc tin sinh học ở D. Đối với tôi, điều quan trọng nhất ở D là nó cần một cách tiếp cận rất cấp độ để đánh đổi và nhận ra nguyên tắc giảm lợi nhuận.
Không giống như C ++, tuân thủ nghiêm ngặt nguyên tắc không chi phí, D cho phép các tính năng có thể có chi phí hiệu năng / không gian nhỏ nếu chúng làm cho ngôn ngữ trở nên hữu dụng hơn rất nhiều. Chúng bao gồm bộ sưu tập rác, một đối tượng giám sát cho từng lớp, thông tin loại thời gian chạy, v.v.
Không giống như Ruby, Python, PHP, v.v., D cố gắng nhanh như C, ngay cả khi nó kém năng động hơn và khó lập trình hơn một chút so với các ngôn ngữ script.
Kết quả là một ngôn ngữ là tối ưu khi cả thời gian phát triển và thời gian thực hiện đều quan trọng như nhau, trong lĩnh vực của tôi hầu hết là thời gian.
Tương tự như vậy, D có một cách tiếp cận rất cấp độ để an toàn và linh hoạt. Nó giả định rằng các lập trình viên về cơ bản biết họ đang làm gì, nhưng lại phạm sai lầm.
Không giống như C và C ++, nó giả định rằng bạn không muốn sử dụng con trỏ, phôi không an toàn, quản lý bộ nhớ thủ công, v.v., ở mọi nơi trong mã của bạn, vì chúng dễ bị lỗi và giả sử rằng bạn không muốn lọc qua nhiều thông báo lỗi mẫu -page khi bạn bắt vít chỉ để sử dụng các mảng có thể thay đổi kích thước.
Không giống như Java và các ngôn ngữ ràng buộc và kỷ luật khác, D giả định rằng đôi khi con trỏ, phôi không an toàn, quản lý bộ nhớ thủ công, v.v ... là một điều ác cần thiết và cho rằng bạn đủ thông minh để xử lý các mẫu thực, quá tải toán tử, v.v. mã bị xáo trộn. Nó cũng giả định rằng bạn có thể làm hỏng và truy cập một mảng ngoài giới hạn, nhưng lập trình viên biết rõ nhất nên đánh đổi giữa an toàn và tốc độ trong bất kỳ tình huống nào. Do đó, việc các mảng có giới hạn được kiểm tra hay không chỉ được xác định bởi một trình chuyển đổi trình biên dịch.