Một điều xảy ra với tôi vào một ngày khác, là các loại cụ thể vẫn cần thiết hoặc một di sản đang giữ chúng tôi lại. Ý tôi là: chúng ta có thực sự cần short, int, long, bigint, v.v.
Tôi hiểu lý do, các biến / đối tượng được giữ trong bộ nhớ, bộ nhớ cần được phân bổ và do đó chúng ta cần biết một biến có thể lớn đến mức nào. Nhưng thực sự, không phải một ngôn ngữ lập trình hiện đại có thể xử lý "các loại thích ứng", nghĩa là, nếu một thứ gì đó chỉ được phân bổ trong phạm vi ngắn thì nó sử dụng ít byte hơn và nếu một thứ gì đó được cấp phát một số lượng rất lớn thì bộ nhớ được cấp phát accordinly cho trường hợp cụ thể đó.
Float, real và double là một chút phức tạp hơn vì loại phụ thuộc vào độ chính xác bạn cần. Tuy nhiên, các chuỗi có thể chiếm ít bộ nhớ hơn trong nhiều trường hợp (trong .Net) trong đó phần lớn ascii được sử dụng nhưng các chuỗi luôn chiếm gấp đôi bộ nhớ do mã hóa unicode.
Một đối số cho các loại cụ thể có thể là đó là một phần của đặc tả, ví dụ: một biến không thể lớn hơn một giá trị nhất định nên chúng tôi đặt nó thành ngắn. Nhưng tại sao không có ràng buộc loại thay thế? Sẽ linh hoạt và mạnh mẽ hơn nhiều khi có thể đặt các phạm vi và giá trị cho phép trên các biến (và thuộc tính).
Tôi nhận ra vấn đề to lớn trong việc cải tiến kiến trúc kiểu vì nó được tích hợp chặt chẽ với phần cứng cơ bản và những thứ như tuần tự hóa thực sự có thể trở nên khó khăn. Nhưng từ góc độ lập trình thì có nên tuyệt vời không?
type hour is range 0 .. 23;