Dlang là một trong những ngôn ngữ mà mình có hứng thú tìm hiểu và vọc vạch chơi. Có lẽ cảm giác thân thương về syntax (khá giống C++) cùng với những tính năng ưu việt (mà sau này C++ hiện đại dần dần mang sang phiên bản của họ) là những điều mà mình thực sự thích thú về dlang. Rất tiếc, ngôn ngữ này không có được một cộng đồng hỗ trợ mạnh mẽ và đông đảo như một số ngôn ngữ hiện đại khác như Rust hay Julia. Tuy vậy, trên các forum và reddit mình thấy đội ngũ phát triển cũng khá tích cực. Tuy là bao, nhưng mình cũng hi vọng bài viết này sẽ giúp dlang có thêm vài người (Việt) ủng hộ khác.
Khi sử dụng dlang
, mình cảm nhận được sử thân thương từ 2 ngôn ngữ mà mình đã và đang gắng bó: C++ và Python. Gần như 80% syntax của Dlang là từ C++. Và những điểm khác, và thậm chí nổi bật của dlang lại khá giống với Python: ta có từ khóa import
để sử dụng các module, ta có từ khóa in
để kiểm tra 1 phần tử có tồn tại trong container hay không. Thậm chí, cách khai báo associated array rất giống cách khai báo Dict trong Python.
Tính năng
Mặc dù trang chủ đã đề cập chi tiết những tính năng đáng chú ý của dlang. Nhưng cá nhân mình khá thích một số tính năng sau:
Ngôn ngữ
Biểu thức của dlang
hỗ trợ khá nhiều tính năng hay ho mà nhiều người (hoặc chí ít là mình) mong muốn ở C++:
- Biểu thức
in
: mặc dù chỉ hỗ trở associated array, nhưng từ khóa này cực kì thuận tiện. - Phép toán lũy thừa:
^^
: với những đứa làm về graphics và numerical problems như mình, đây là một điểm cộng nữa.
Câu lệnh (statements) trong dlang
là một sự cải tiến nhẹ nhàng từ C/C++. Và đây chính là điểm mà mình thấy rất ưng ý với dlang
: mình không mất quá nhiều thời gian để học một ngôn ngữ mới bởi gần 90% những cú pháp cơ bản trong ngôn ngữ giống hệt 2 anh em C/C++, và một vài điểm cải tiến giúp đời sống người coder dễ thở hơn là một điều đáng hoan nghênh:
static if
: vâng, C++ cũng bắt đầu được câu lệnh điều kiện lúc biên dịch vào trong các phiên bản mới của C++. Nhưng có lẽdlang
có thiết kế hoàn thiện hơn cả, một phần bởi vìdlang
thiết kế tính năng này ngay từ những phiên bản đầu tiên của ngôn ngữ. Điều này giúpstatic if
gắng bó tự nhiên với ngôn ngữ hơn.
Generic Programming
Mình khá tiếc là phần document của dlang không thực sự chi tiết về Generic Programming xét về tính dễ đọc cho beginner. Nếu bạn đã từng thử generic programming trên C++ và cảm thấy nó quá đau thương, thì dlang thực sự giúp bạn xoay đi nỗi đau đó.