Độ dài là một xu hướng sử dụng số lượng lớn văn bản và Việc sử dụng rất ít văn bản ...
Độ dài là xấu vì:
- nó giới thiệu nhiều cơ hội hơn cho lỗi đánh máy
- nó làm cho việc đọc mã trên màn hình hoặc giấy trở nên khó khăn hơn và / hoặc nhập vào punchcard
- điều này làm tăng thời gian gỡ lỗi
- điều này làm cho việc hiểu mã để nâng cấp / bảo trì khó hơn
- điều này có thể dẫn đến sự trùng lặp mã ngoài ý muốn
- nó làm tăng khả năng lỗi cú pháp
- nó làm giảm tính linh hoạt của mã hóa, trong đó, hầu hết các ngôn ngữ dài dòng có cấu trúc cao và không có nhiều cách để nói cùng một điều.
- nó làm tăng thời gian mã hóa và biên dịch
- nó có thể mất nhiều không gian lưu trữ hơn.
Một mức độ dài nhất định là cần thiết cho sự rõ ràng, tuy nhiên ...
mức độ tối thiểu của Verbosity là tốt bởi vì:
- con người dễ đọc và gắn giá trị ngữ nghĩa hơn là mã đơn thuần
- Trong cách đặt tên biến và hàm, việc gỡ lỗi, chuyển và duy trì mã dễ dàng hơn
- trong các hoạt động ngôn ngữ cấp cơ sở và từ khóa của các ngôn ngữ phức tạp, nó dẫn đến ít thao tác / từ khóa không chính xác.
Một số ví dụ tuyệt vời về các lệnh quá ngắn cho nhiều người bao gồm các ký tự BASIC cũ của val(x$)
, str$(x)
và chr$(x)
... trả về một số từ biểu diễn chuỗi của nó, trả về một chuỗi cho một số và trả về một ký tự có giá trị ascii x dưới dạng chuỗi.
Hoặc con trỏ C / C ++ và bởi các toán tử tham chiếu &
và *
so với byref
từ khóa BASIC . Trong C / C ++, tôi có thể có một biến X và truyền một con trỏ tới biến đó, nhưng tôi phải nhớ đó là con trỏ nào và đó là "con trỏ sử dụng làm biến nó trỏ tới"; về cơ bản, tôi chỉ đơn giản chuyển tham chiếu bằng từ khóa byref trong lệnh gọi hàm, rõ ràng hơn, nhưng kém linh hoạt hơn:
def fn Foo(x byref as float) foo= (x += x+1)
...
Foo(x)
Trong mã này, nội dung của x được sửa đổi do cờ byref. Một số hương vị cho phép byref tại cuộc gọi, một số khác trong định nghĩa, một số trong một trong hai.
Độ dài rất quan trọng đối với các lập trình viên thông thường để có thể sử dụng biểu tượng dễ dàng hơn; BASIC hoặc python dễ đọc hơn và dài dòng hơn C / C ++, và do đó hữu ích hơn nhiều cho các lập trình viên thông thường; sự căng thẳng của C / C ++ giúp các lập trình viên có kinh nghiệm hơn, những người cần xem nhiều mã hơn và mã phức tạp hơn trong một màn hình, nhưng phải học các quy ước cấu trúc biểu tượng khác nhau. Ở phía xa là APL, gần như hoàn toàn không thể đọc được.
Một vấn đề liên quan mật thiết là sự rõ ràng - mã terse thường không rõ ràng và mã dài dòng quá mức (như trong AppleScript) có thể không rõ ràng như nhau. Sự quen thuộc với một ngôn ngữ nhất định làm tăng sự rõ ràng của mã terse trong ngôn ngữ đó - một người mới bắt đầu, đối mặt với mã C ++ có khả năng chỉ có thể phân tích các công thức và thậm chí nhiều mã BASIC hoặc Python có chức năng quá khó hiểu, nhưng táo bạo có thể nói chung là khó hiểu mà không cần phải đọc từ điển ngôn ngữ. Ít rõ ràng nhất mà tôi gặp phải mà không có sự cố ý che giấu là Thông báo 7 ...
Vào những ngày xưa
Một cân nhắc quan trọng khác trong quá khứ, nhưng một điều không còn quan trọng đối với người viết mã sở thích, đó là không gian hoạt động và lưu trữ. .
Một số giải pháp đã tồn tại - mã thông báo là cực kỳ phổ biến trong BASIC; các từ khóa ngôn ngữ riêng lẻ đã được giảm xuống thành một từ 1 hoặc 2 byte ở khoảng trên 128 hoặc không gian ký tự điều khiển. Mã thông báo cũng dẫn đến việc biên dịch mã byte (như trong Thông tin và Máy Z).
Nhiều trình biên dịch và liên kết tệp đối tượng cũng được sử dụng để khắc phục các giới hạn về không gian. Phần mã Pascal 100KiB có thể biên dịch thành chỉ 5KiB; bằng cách liên kết nhiều tệp được biên dịch, người ta có thể xây dựng các ứng dụng lớn mà không cần truy cập vào các ổ đĩa định dạng lớn (hãy nhớ rằng 10MiB có dung lượng lớn đáng kinh ngạc và mua một chiếc xe mới đắt tiền).
Tuy nhiên, nhiều ngôn ngữ ngắn hơn đã nhận được nhiều mã hơn vào một đoạn nhất định của cả đĩa và ram, và do đó biên dịch các khối lớn hơn tại một thời điểm. Hãy ghi nhớ: "máy tính mini" đầu thập niên 1970 có thể chỉ có 64KiB ram (Honeywell 800 có cài đặt cơ bản gồm 4 ngân hàng mỗi ngân hàng 2048 từ 8B). APL và các ngôn ngữ tượng trưng tương tự đã tiếp cận 1B mỗi lệnh cộng với toán hạng của nó, so với 3B-10B lớn hơn trên mỗi lệnh cộng với toán hạng. (Đó là một cơn ác mộng khi gõ vào thẻ đục lỗ, đặc biệt là vì các biểu tượng về cơ bản là một phông chữ trên bóng loại và nhiều thẻ bài không có ký hiệu trên các phím ...)
Ngoài ra, hãy nhớ rằng thẻ không thể bị xóa ... và nhiều chương trình đã được nhập vào thẻ. Mặc dù không đắt tiền riêng lẻ, mã của bạn có thể được nén trên thẻ càng nhiều, bạn càng cần ít hơn và các chương trình có thể lớn hơn hoặc ít tốn kém hơn. Đây là một phần lý do BASIC có nhiều hướng dẫn trên mỗi dòng trong hầu hết các hương vị - nó được giới thiệu để tiết kiệm thẻ đục lỗ. .