2009-08-11 9 views
11

Chỉ cần có tâm trí của tôi hôm nay. Tôi đã dành một số thời gian trong chế độ gỡ lỗi IE, duyệt web như bình thường, và oh cậu bé để tôi thấy nhiều lỗi :) Hầu hết các lỗi này là bởi vì một số giá trị của một loại khác nhau hơn dự kiến ​​(ít nhất là như tôi giải thích các lỗi tin nhắn).javascript và các ngôn ngữ kịch bản tương tự có được lợi từ việc gõ mạnh không?

Lý do JavaScript và ngôn ngữ kịch bản tương tự không được nhập mạnh? Nó chỉ là để làm cho các ngôn ngữ "dễ dàng hơn" để hiểu và dễ tiếp cận hơn, hoặc là thiếu một "thời gian biên dịch" vấn đề thực sự?

+0

Bạn có lẽ nên gửi ý kiến ​​của bạn như một câu trả lời - để đánh giá như thế nào mạnh mẽ người (dis) đồng ý – karim79

+0

Làm rõ: Không có gì ngăn cản bạn từ phân tích cú pháp javascript hoặc bất kỳ ngôn ngữ năng động khác là. Những gì bạn đang nói về là đánh giá ngữ nghĩa văn bản được phân tích cú pháp. – JaredPar

+0

Đã thêm ý kiến ​​của riêng tôi làm câu trả lời. Và anh em, Jared, nhưng giả sử một môi trường trình duyệt, không ai biết điều đó (ít nhất là không phải với kiến ​​thức của tôi?). Nếu bạn có một ngôn ngữ kịch bản được gõ mạnh, bạn có thể bị ép buộc phải không? :) – cwap

Trả lời

15

Chắc chắn bạn phải nhập mạnh khả dụng. Actionscript 3 được gõ mạnh mẽ, nhưng vẫn có thừa kế nguyên mẫu và một loại ký tự đại diện nếu bạn cần các đối tượng động.

Không có nhược điểm nào khi có tính năng đó và tôi phải nói, đối với một dự án có kích thước từ vừa đến lớn, việc nhập mạnh sẽ ngăn TẮT vấn đề. Để tận dụng tối đa nó, bạn cần hỗ trợ IDE để có thể báo cáo lỗi và cung cấp các tùy chọn tự động hoàn thành, nhưng Javascript sẽ ở trong một thế giới hoàn toàn mới nếu nó có các lớp thực và gõ mạnh.

+0

+1 cho "Tác hại khi thêm nó" là gì; những người không muốn nó không phải sử dụng nó. –

+0

Sau 6 năm, điều này rất gần xảy ra - Javascript có các lớp học thực sự. Mặc dù, tôi không chắc lắm về cách gõ mạnh. –

1

Phản đối của riêng tôi: Bạn có thể phân tích cú pháp các tập lệnh trước khi thực thi chúng. Điều này sẽ bắt hầu hết các lỗi kiểu, và có nghĩa là người dùng không cần phải xem một đoạn scriptresult được thực thi một phần-sau đó. Thậm chí tốt hơn, nó sẽ dễ dàng hơn nhiều để gỡ lỗi điều này, nếu nó có một trình phân tích cú pháp :)

2

Nó có tính linh hoạt khi không được nhập. Cá nhân tôi thích những ngôn ngữ được đánh máy yếu.

Vì vậy, câu trả lời là sẽ có lợi ích và hạn chế.

Đối với những người muốn có ngôn ngữ được đánh máy mạnh trong trình duyệt, GWT và Script # khả dụng.

+0

Tôi sẽ không nói rằng họ linh hoạt quá nhiều khi họ giới thiệu một lớp toàn bộ các lỗi có thể được ngăn chặn tự động, và họ làm điều đó trong khi không cung cấp thêm chức năng bổ sung. Bạn có thể đảm bảo rằng đối tượng mà bạn đã vượt qua chức năng đó sẽ hỗ trợ phương thức bạn cần, nhưng bạn sẽ không bao giờ biết trừ khi dòng mã đó được thực thi ... – weberc2

0

Tôi xây dựng khung nguyên mẫu nhanh cho eLearning theo ActionScript 2 khi nào. Nắm tay lớn nhất của tôi là AS2 đã không được đánh máy mạnh mẽ và nó gây cho tôi rất nhiều đau đầu khi gỡ lỗi. Tôi nghĩ rằng việc gõ mạnh mẽ làm cho mã dễ đọc hơn. Tôi nghĩ rằng một ngôn ngữ đánh máy yếu cung cấp sự linh hoạt hơn.

Tôi dựa nhiều hơn vào khả năng đọc khi tôi phải quay lại và tìm ra những gì heck đang xảy ra trong mã tôi đã viết cách đây 6 tháng.

+1

AS2 được nhập mạnh mẽ. Chỉ cần chỉ định loại sau biến. ví dụ: var vector1: Vector – Marius

1

Tôi thích các mặt gõ yếu của hầu hết các ngôn ngữ kịch bản. Lý do duy nhất mà tôi muốn gõ mạnh mẽ, ngoài việc thực hiện, là nó dễ dàng hơn cho các công cụ để tái cấu trúc các ngôn ngữ gõ mạnh hơn là yếu.

+0

Ngoài ra, gõ mạnh mẽ dường như loại bỏ toàn bộ các lớp lỗi, và nó làm cho nó dễ dàng để nhớ những gì các phương pháp đối tượng của bạn hỗ trợ. Với Javascript, hai đối tượng cùng loại có thể có các phương thức hoàn toàn khác nhau. Yippee! – weberc2

2

Ngôn ngữ kịch bản javascript và ngôn ngữ tương tự có được gõ mạnh không?

Vâng, họ sẽ, JavaScript 2.0 giới thiệu một type system:

Loại Hệ thống JavaScript 2.0 hỗ trợ các khái niệm về một loại, có thể được coi như là một tập hợp con của tất cả các giá trị có thể . Có một số loại được tích hợp sẵn như đối tượng, số và chuỗi; mỗi lớp do người dùng định nghĩa (phần 6) cũng là một loại.

Xem thêm: http://timkadlec.com/2008/04/an-objective-look-at-javascript-2-0-strong-typing/

Nói chung, hỗ trợ cho gõ mạnh cung cấp nhiều cơ hội thú vị cho việc biên soạn và tối ưu hóa đi.

0

Microsoft đã đi một chặng đường dài để giải quyết vấn đề nhập mạnh mẽ trong thời gian tạm thời với bản ghi. Có một cái nhìn:

http://www.typescriptlang.org/