Ý đồ thiết kế
-
-:
- Bản thân việc lập trình bằng ngôn ngữ bậc cao đã là một dạng comment
- Các ngôn ngữ lập trình tiến hoá dần để trở thành Lisp
- Mọi ngôn ngữ bậc cao đều là đường cú pháp của hợp ngữ
- Ngôn ngữ bậc thấp phù hợp với những nơi cần tiết kiệm tài nguyên. Nó kém an toàn và tốn nhiều thời gian để lập trình hơn ngôn ngữ bậc cao
- Ngôn ngữ dựa trên lớp định nghĩa hàm dựng và các thuộc tính của lớp trước khi tạo vật thể. Ngôn ngữ dựa trên nguyên mẫu thì tạo vật thể trước rồi mới định nghĩa các thuộc tính của nó
- Việc dùng các ngôn ngữ có nhiều cách để làm một thứ sẽ khiến việc đọc code của người khác đòi hỏi mình phải hiểu được cách họ nghĩ gì trước
- Ý đồ thiết kế
-
Ngôn ngữ kiểu động:
- JavaScript cố gắng đoán ý định của người viết chứ không báo lỗi
- JavaScript là lập trình dựa trên prototype, Java là lập trình dựa trên lớp
- JavaScript vốn được sinh ra để chạy trên trình duyệt và không được dùng để làm việc với lượng code lớn
- Python tách bạch từ điển và vật thể ngay từ đầu, còn JS mãi về sau mới có từ điển
- Python tập trung vào việc cung cấp một ngôn ngữ lập trình tổng quát, dễ đọc và dễ viết
- TypeScript là để thêm kiểu vào một ngôn ngữ từ đầu đã không muốn có kiểu
- Vì những người đầu tiên sử dụng JavaScript muốn tiện nên tác giả của nó đã làm nó có những thứ kỳ quặc
-
Ngôn ngữ kiểu tĩnh:
- C khai báo kiểu trước biến. Các ngôn ngữ sau này khai báo kiểu sau biến
- C không xem text là công dân hạng nhất, mà chỉ là chuỗi các ký tự. Java hay Csharp thì có
- C, Pascal đã hơn 50 tuổi
- Vì C quá phổ biến, nên những thư viện muốn dùng cho nhiều ngôn ngữ khác nhau sẽ dùng C
- Gleam có sự đơn giản của Go, hệ kiểu của OCaml, mô hình concurrency của Elixir, và cú pháp của Rust
- Gleam tập trung vào việc cải thiện trải nghiệm của lập trình viên hơn là tính năng
- Dùng Rust chỉ cần tập trung vào viết kiểm thử cho logic
- Kiểu String hữu ích khi tạo hoặc thay đổi chuỗi. Kiểu &str hữu ích khi đọc mộc chuỗi đã có sẵn
- Mọi chuỗi trong Rust đều là UTF-8 để đảm bảo có thể làm việc với các ngôn ngữ và hệ thống khác
- Mỗi lần refactor là một cực hình
- Nếu compiler không làm cho lập trình viên thấy rõ lỗi của họ là gì, thì đó là lỗi của Rust, không phải của họ
- Rust cho dùng nhiều lập trình hàm trong khi không làm phá hỏng cách viết kiểu C
- Rust kết hợp giữa lập trình hàm bậc cao với điều kiển bậc thấp
- Rust phù hợp khi code đã ổn định rồi
- Rust được lấy cảm hứng từ OCaml
- Rust được thiết kế để loại bỏ hoàn toàn các lỗi về bộ nhớ
- Trong JS, ta tạo ra các hàm hỗ trợ. Trong Rust nhiều khi phải chấp nhận là không làm được
- Viết chương trình bằng Rust giống như sống trong mối quan hệ bạo hành
- Rust và Go