Một ngôn ngữ lập trình mới có tên ANIL ( A Nice Intermediate Language ) đã làm dấy lên nhiều cuộc thảo luận trong cộng đồng lập trình viên, với các phản ứng từ những lo ngại về tên gọi cho đến những tranh luận sâu sắc hơn về triết lý thiết kế và các lựa chọn thực thi.
Tên gọi gây tranh cãi
Tên của ngôn ngữ này đã trở thành tâm điểm bàn luận bất ngờ, với nhiều lập trình viên chỉ ra những cách diễn giải có thể gây khó xử. Trong khi một số thành viên cộng đồng lưu ý rằng Anil là một tên gọi hợp pháp trong một số nền văn hóa nhất định, những người khác đề xuất việc xem xét lại từ viết tắt này cho phù hợp với khán giả quốc tế.
Triết lý thiết kế và cách thực thi
ANIL định vị mình là một ngôn ngữ lai kết hợp các yếu tố từ cả Python và C++, với tính năng kiểu tĩnh và khả năng được nhúng trong các tệp nguồn C. Tuy nhiên, cách tiếp cận này đã thu hút những phản ứng trái chiều từ cộng đồng lập trình viên, đặc biệt là về việc thực thi một số tính năng ngôn ngữ.
Tôi phải thẳng thắn về điều này. Đây là một sự kết hợp kỳ lạ giữa cả tính nhạy cảm khoảng trắng kiểu Python và dấu ngoặc nhọn kiểu C với các tính năng được lấy ngẫu nhiên từ cả hai.
Tính năng chính:
- Các lớp (Classes) có hỗ trợ template
- Nạp chồng hàm (Function overloading)
- Reflection thời điểm biên dịch
- Chú thích (Annotations)
- Tích hợp thư viện chuẩn
- Phương thức dunder kiểu Python
- Khả năng tạo mã C
Yêu cầu:
- Trình biên dịch C
- Python
- clang-format (khuyến nghị)
Công cụ học tập và ngôn ngữ sản xuất
Bối cảnh của dự án như một bài tập học tập về phát triển trình biên dịch đã trở thành một phần quan trọng trong cuộc thảo luận. Người tạo ra đã nêu rõ ba mục tiêu chính: học phát triển trình biên dịch, xây dựng một trình biên dịch tự biên dịch, và triển khai các tính năng thú vị. Sự minh bạch này đã giúp định hình dự án một cách phù hợp như một nỗ lực giáo dục thay vì một ngôn ngữ sẵn sàng cho sản xuất.
Bộ tính năng và thư viện chuẩn
ANIL triển khai một số tính năng đáng chú ý bao gồm lớp, template, nạp chồng hàm, macro, reflection thời điểm biên dịch và chú thích. Ngôn ngữ này cũng áp dụng các phương thức dunder kiểu Python, mặc dù lựa chọn này đã gây ra tranh luận về những ưu điểm của việc nhập các quy ước như vậy vào một hệ sinh thái ngôn ngữ mới.
Dự án này thể hiện một trường hợp nghiên cứu thú vị về các lựa chọn thiết kế ngôn ngữ và những thách thức của việc tạo ra ngôn ngữ lập trình mới, đồng thời nhấn mạnh tầm quan trọng của phản hồi cộng đồng trong sự phát triển của các dự án kỹ thuật.
Nguồn tham khảo: A Nice Intermediate Language (ANIL)