Làm thế nào về năm điều tôi ghét về danh sách "Những điều tôi ghét về một số ngôn ngữ"? : D
5- Vẽ một màu đỏ cam không làm cho nó trở thành một quả táo.
Khi một ngôn ngữ được thiết kế, các nhà thiết kế thường nghĩ rằng nó hữu ích cho việc gì. Sử dụng nó cho một cái gì đó hoàn toàn khác nhau có thể làm việc, nhưng phàn nàn khi nó không chỉ là ngu ngốc. Lấy Python. Tôi chắc chắn ai đó sẽ có ai đó hoặc một ngày nào đó sẽ tạo ra một tiện ích để tạo exe từ mã Python. Tại sao trên trái đất của Thiên Chúa bạn muốn làm điều đó? Nó sẽ gọn gàng không khiến tôi hiểu nhầm nhưng nó không có tác dụng. Vì vậy, hãy ngừng phàn nàn về nó!
Một dự án được thiết kế tốt có thể sẽ chứa mã từ nhiều ngôn ngữ. Điều đó không có nghĩa là bạn không thể hoàn thành một dự án chỉ với một ngôn ngữ. Một số dự án có thể nằm trong khả năng của bất kỳ ngôn ngữ nào bạn đang sử dụng.
4- Bạn đang đứng trên chân gỗ?
Nền tảng có thể là một ảnh hưởng lớn của những gì ngôn ngữ có thể làm. Với những người thu gom rác hiện nay, hoặc thậm chí là những kẻ phát xít cố gắng sớm "thu gom rác", có thể hỗ trợ làm mờ bộ nhớ (có thể là malloc nhiều ram hơn ??). Máy tính nhanh hơn và tất nhiên, chúng tôi mong đợi nhiều ngôn ngữ hơn. Và khá thẳng thắn, có lẽ chúng ta nên. Tuy nhiên, có một cái giá rất lớn để trả cho sự tiện lợi của trình biên dịch để tạo các bảng hoặc chuỗi băm hoặc một loạt các khái niệm khác. Những thứ này có thể không được kế thừa cho nền tảng mà chúng được sử dụng. Để nói rằng chúng dễ dàng bao gồm một ngôn ngữ chỉ cho tôi biết bạn có thể không có chân để đứng.
3- Lỗi thực sự là của ai?
Lỗi. Bạn biết. Tôi yêu bọ. Tại sao tôi yêu bọ. Bởi vì nó có nghĩa là tôi có thể giữ công việc của mình. Nếu không có lỗi, sẽ có nhiều cửa hàng pizza đóng cửa. Tuy nhiên, người dùng ghét lỗi. Nhưng đây là một chút nước lạnh. Mỗi lỗi là lỗi lập trình viên. Không phải ngôn ngữ. Một ngôn ngữ có cú pháp chặt chẽ như vậy sẽ làm giảm đáng kể số lượng lỗi có thể tạo ra sẽ là một ngôn ngữ hoàn toàn vô dụng. Khả năng của nó có thể được tính bằng một tay. Bạn muốn linh hoạt hay sức mạnh? Bạn đã có lỗi. Tại sao? Bởi vì bạn không hoàn hảo, và bạn mắc lỗi. Lấy một ví dụ thực sự có thể xác định được trong C:
int a[10];
for (int idx = 0; idx < 15; idx++) a[idx] = 10;
Chúng ta đều biết những gì sẽ làm. Tuy nhiên, điều mà có lẽ một số người trong chúng ta không nhận ra là .. chức năng đó có thể rất có lợi. Tùy thuộc vào những gì bạn đang làm. Bộ đệm tràn là chi phí của chức năng đó. Mã đó ở trên. Nếu tôi thực sự phát hành nó cho công chúng. Đó là một lần nữa .. nói với tôi .. "Lỗi của tôi". Không phải C là cho phép tôi làm điều đó.
2- Chúng ta không nên bỏ nó vào thùng rác?
Rất dễ để chỉ ra một tính năng trong ngôn ngữ mà chúng tôi không hiểu vì chúng tôi không sử dụng nó thường xuyên và gọi nó là ngu ngốc. Khiếu nại rằng nó ở đó, vv Goto luôn luôn giải trí cho tôi. Mọi người luôn phàn nàn về việc goto đang ở trong một ngôn ngữ. Tuy nhiên, tôi đặt cược chương trình cuối cùng của bạn bao gồm một loại goto. Nếu bạn đã từng sử dụng giờ nghỉ hoặc tiếp tục, bạn đã sử dụng goto. Đó là những gì nó được. Cấp, đó là một goto "an toàn", nhưng đó là những gì nó được. Goto có công dụng của chúng. Cho dù gotos "ngầm" như tiếp tục hay phá vỡ được sử dụng hoặc gotos rõ ràng (sử dụng từ khóa "goto" thực tế cho bất kỳ ngôn ngữ nào). Không phải các nhà phát triển ngôn ngữ là hoàn hảo, nhưng thông thường ... nếu chức năng đã tồn tại từ thời bình minh (đối với ngôn ngữ đó). Có khả năng khía cạnh đó là một chất lượng xác định của ngôn ngữ đó. Có nghĩa là .. nó ' s đang được sử dụng và có khả năng không treo xung quanh vì khả năng tương thích ngược. Nó đang được sử dụng ngày hôm nay. Như trong 5 phút trước. Và sử dụng đúng cách. Chà .. có thể nói ai đó đang sử dụng nó không đúng cách, nhưng điều đó liên quan đến # 3 trong danh sách của tôi.
1. - Mọi thứ đều là một đối tượng.
Ok .. cái này thực sự là một tập hợp con của # 2. Nhưng đây là lời phàn nàn khó chịu nhất mà tôi thấy trong danh sách ghét. Không phải tất cả mọi thứ là một đối tượng. Có rất nhiều khái niệm không thuộc hoặc không cần phải là đối tượng. Đặt những thứ mà chúng không thuộc về chỉ là xấu xí và có thể làm giảm hiệu quả của một chương trình. Chắc chắn rồi. Có lẽ không nhiều tùy thuộc vào ngôn ngữ. Điều này cũng liên quan đến # 5. Điều này có nghĩa là ... có. Toàn cầu đều ổn. Các chức năng như được áp dụng cho các phương thức tĩnh là ok. Kết hợp lập trình OO với các chức năng toàn cầu là ok. Bây giờ .. điều đó không có nghĩa là tất cả chúng ta nên ra ngoài và "giải phóng" mã của chúng tôi khỏi các mô hình đối tượng. Khi thiết kế một phần mã hoặc toàn bộ dự án, những gì xảy ra đằng sau hậu trường nênđược xem xét khi đặt nó cùng nhau. Không chỉ nơi khái niệm đó sống và nhiều yếu tố khác. Tại sao bọc các hàm toàn cục trong các lớp hoặc đặt tên cho các khái niệm không gian nếu nó không phục vụ mục đích? Lấy biến thành viên tĩnh. Điều đó rất thú vị với tôi bởi vì .. tốt .. Phụ thuộc vào ngôn ngữ và việc thực hiện tất nhiên, nhưng nói chung, bạn vừa tuyên bố một toàn cầu. Có, có một số lý do để bọc các khái niệm không phải OO này trong các trình bao bọc OO. Một khóa học là tự viết mã. Điều đó có thể có ý nghĩa. Vì vậy, như tôi nói. Đừng ra ngoài và "giải phóng" mã của bạn. Nhưng bất kỳ ngôn ngữ hiện đại tốt nào cũng sẽ có một khái niệm toàn cầu bên ngoài mô hình OO. Có, tôi đặc biệt có ý chỉ ra rằng một ngôn ngữ lập trình OO không có khái niệm toàn cầu rất có thể có một lỗi thiết kế nghiêm trọng. Một lần nữa mặc dù .. phụ thuộc vào ý định và thiết kế của ngôn ngữ, vì vậy tôi không cố gắng chọn bất kỳ ngôn ngữ cụ thể nào và có quá nhiều thứ để phân tích ngay tại đây. Dù sao đi nữa, hãy xem xét nơi mã nên sống và là hiệu quả nhất. Thêm một loạt flare vào thứ gì đó không thêm chức năng hoặc hỗ trợ chỉ làm mòn bàn phím nhanh hơn. Nó không làm ai tốt cả. Chà .. trừ khi bạn thích điểm brownie từ người có lẽ đã dạy bạn không chính xác rằng mọi thứ đều là một đối tượng.
Nói tóm lại, lập trình không chỉ đơn giản là gõ nhẹ vào bàn phím. Có rất nhiều cân nhắc thiết kế cho bất kỳ dự án. Tôi biết đó là sáo rỗng, nhưng bạn phải nhìn nó từ mọi góc độ. Ngay cả với các ngôn ngữ hiện nay loại an toàn. Bạn không chỉ cần tặc mã ra và mong nó hoạt động tốt. Chắc chắn .. nó có thể hoạt động, nhưng nó có thể không phải là cách đúng đắn để đi về nó. Nhìn chung, chọn ngôn ngữ và định dạng phù hợp nhất cho công việc cụ thể VÀ môi trường. Nhưng không có ngôn ngữ nào lấy đi ý nghĩ đằng sau nó. Nếu bạn không suy nghĩ .. bạn chỉ cần gõ.