Trong khi câu hỏi là "Mục đích của các ngôn ngữ có giống nhau không?", Câu hỏi thực sự là: "Làm thế nào chúng ta có thể làm cho lập trình web tốt hơn từ nơi chúng ta đang ở?" .
Cả hai dự án đều cố gắng làm điều này
ngôn ngữ lập trình (TypeScript thực hiện một bước nhỏ nhưng rất sạch sẽ, Dart thực hiện bước chuyển đổi mang tính cách mạng hơn mà vẫn đang di chuyển)
khả năng tương tác với mã js hiện tại (chuyển đổi 0 trong TypeScript biên dịch thành js, phức tạp trong Dart, vì 2 VM nói chuyện với nhau)
thực hành kỹ thuật phần mềm (chỉ phi tiêu, các thành phần web và bóng dom)
Trong 3 ngày qua, tôi đã đi sâu vào Dart và sau đó vào TypeScript. Cơ sở mã CoffeeScript của tôi đã đi đến những dòng mã của những năm 2000, quá nhiều để được xử lý với CoffeeScript đáng yêu nhưng quá mịn. Vấn đề tôi gặp phải là CoffeeScript thiếu các tính năng mà các ngôn ngữ được thiết kế cho lập trình quy mô vừa và lớn có: giao diện, mô-đun, loại an toàn. Nhưng có một thậm chí nhiều nghiêm trọng hơn vấn đề với cà phê và js: Các js "con trỏ này" weirdness ảnh hưởng sự tỉnh táo của tôi và CoffeeScript không giúp bất cứ điều gì ở đây.
Vì vậy, đây là kết quả của tôi sau 3 ngày sử dụng và sử dụng:
Phi tiêu
Đi kỹ lưỡng qua hướng dẫn, đọc 1 cuốn sách, đọc lướt quyển thứ 2 và thử các bản demo. Tôi nghĩ, đó là tương lai . Sau đó, tôi đã cố gắng di chuyển ứng dụng của mình sang Dart. Đó là sự nhiệt tình của tôi đã giảm từ 100 xuống 10. Đây là lý do:
The Editor Editor là cách duy nhất để lập trình Dart. Trong khi các plugin cho Sublime Text tồn tại, chúng không cung cấp các tính năng như intellisense, hoàn thành mã (sửa tôi nếu tôi sai). Tuy nhiên, Trình chỉnh sửa Dart có chất lượng trước alpha. Mặc dù nó hỗ trợ các siêu phẩm ma thuật như cập nhật trang web khi bạn chỉnh sửa tệp CSS (! Thực sự tuyệt vời) nhưng nó bị treo hoặc gặp sự cố vài lần một phút. Vì vậy, bạn gõ 5 chữ cái và 2 lần bạn phải đợi 2 giây hoặc 15 giây giữa khi gõ. Và tôi đã có một dự án với một số dòng mã, vì vậy tôi không muốn chờ đợi điều gì sẽ xảy ra khi dòng 1000 được nhập. Đã chuyển một tệp từ thư mục này sang thư mục khác trong Dart Editor, bị sập. Gỡ lỗivới Trình chỉnh sửa phi tiêu ngay từ cái nhìn đầu tiên tốt hơn tất cả các công cụ gỡ lỗi js mà tôi biết (chrome là lựa chọn của tôi), nhưng vẫn còn quá nhiều thứ còn thiếu: Không có cửa sổ ngay lập tức (điều này làm cho js gỡ lỗi tốt hơn nhiều vào lúc này), không có đồng hồ.
Chính trị và khả năng thoát hiểm : Một số người nói rằng Apple, MS và Firefox sẽ không bao giờ cung cấp máy ảo Dart. Chà, tôi không chắc lắm, nhưng ít nhất đối với Apple điều này xuất hiện vào lúc này rất chắc chắn. Đối với những người khác, nó có nhiều khả năng hơn ngược lại. Vì vậy, không có vấn đề gì, chúng ta có thể chuyển đổi Dart sang JavaScript. Cách tích hợp này hoạt động thực sự tuyệt vời, Dart duy trì một cs js giữ mã js được kết nối với Trình chỉnh sửa phi tiêu, do đó, một print()
tuyên bố vẫn xuất hiện trong Trình chỉnh sửa phi tiêu, tuyệt vời. Nhưng ở đây có nhưng: dấu chân của mã chuyển đổi như vậy là cao. 150kB hoặc hơn (trước khi thu nhỏ). Tôi đã không đào quá nhiều vào kích thước chính xác, vì vậy đừng hiểu tôi về điều này.
Trưởng thành ngôn ngữ . Bên cạnh cách các vấn đề quá nghiêm trọng với Trình soạn thảo Dart xuất hiện trong khuôn mặt của tôi 3 lần một phút, tôi cũng thấy không thể chấp nhận được rằng mọi nguồn về mã Dart mà bạn tìm thấy đều sử dụng một loại khác nhau. Ngôn ngữ thay đổi mỗi ngày. Bạn tìm thấy một bài viết từ 5 tuần trước? Nó đã lỗi thời. Bạn thử các mẫu từ hướng dẫn của Google? Ít nhất 1 mẫu không biên dịch kể từ khi API thay đổi. Ngay cả những thứ trần tục, như gắn một sự kiện vào một phần tử DOM cũng đang hoạt động tốt .
Tích hợp với các thư viện js hiện có một chút liên quan. 2 VM cần liên lạc ở đây, nó khó.
Như một kết luận, bạn không thể nghiêm túc sử dụng Dart như ngày hôm nay, và việc đi sâu vào nó không quá thú vị do 1 và 3. Cả hai điểm sẽ biến mất theo thời gian. Về điểm 2, Google đã công bố điểm chuẩn hiệu suất vài ngày trước chứng tỏ rằng js được biên dịch của họ tốt hơn js viết tay. Lời khen của tôi, công việc tuyệt vời. Thời gian tải vẫn có thể bị chậm lại do vấn đề dấu chân như đã nói. Tuy nhiên, nếu mã dấu chân được sử dụng bởi nhiều trang web, nó có thể được lưu trong bộ nhớ cache và voila, cũng sẽ biến mất.
Vì vậy: Tôi coi Dart là một dự án tuyệt vời, sử dụng nó vào lúc này mang một phần rủi ro không lường trước được và sẽ mất năm nay để đưa nó đến mức ổn định tốt.
TypeScript
Đánh giá TypeScript rất dễ dàng, mất 1 hoặc 2 giờ và bạn biết tất cả mọi thứ. Đọc tài liệu đặc tả ngôn ngữ và một cuốn sách ngắn (TypeScript tiết lộ) tiết lộ, tôi biết tất cả mọi thứ và bắt đầu lập trình. Sau đó, tôi đã rất ngạc nhiên khi thấy rằng các bổ sung của TypeScript cho JavaScript chỉ đáp ứng mọi nhu cầu nghiêm trọng mà tôi có để tăng cường lập trình máy khách của mình . Dưới đây là những điểm nổi bật:
Giao diện . Đóng gói và giao diện cho phép tôi cấu trúc mã của mình một cách dễ dàng. Hoàn hảo!
Đẳng cấp nhà nước. . TypeScript cho phép thể hiện trạng thái mà các thể hiện của một lớp mang rõ ràng, hoặc tốt hơn là nó thực thi nó. Đây là một bước lớn tốt hơn so với js hoặc cà phê.
this
gọi craziness giảm nhẹ . Bên trong các hàm mũi tên, TypeScript làm cho this
con trỏ giống như mọi công dân có hành vi thông thường.
Biên tập, Intellisense . TypeScript đi kèm với 100% intellisense hoàn hảo hàng đầu phản ứng trong phạm vi vi mô hoặc mili giây như được sử dụng từ Visual Studio khi lập trình C #. Tiêu đề TypeScript cho tất cả các thư viện js quan trọng cũng tồn tại . Tuyệt vời vĩ đại tuyệt vời.
Kinh nghiệm và rủi ro . Sử dụng TypeScript mang lại rủi ro bằng không, ngôn ngữ được xác định rõ ràng, hoàn toàn ổn định, nó chỉ là js với đường, không có gì là không lường trước được.
Trên thực tế, những cải tiến này cho tôi mọi thứ tôi cần. Điều duy nhất tôi muốn thấy trong tương lai là các bộ sưu tập chung chung. Nhưng đó là đậu phộng.
Vậy hiệu suất thì sao? Mặc dù tôi tự coi mình là một kẻ lập dị hiệu suất, tôi không tin rằng có bất kỳ dự án nào sẽ đưa ra lựa chọn công nghệ ở đây dựa trên hiệu suất. Cả hai đều ở trong js liga.
Nếu bạn quan tâm đến tương lai của lập trình web, cả hai đều là những nỗ lực tuyệt vời, TypeScript thực tế hơn nhiều và có thể sử dụng được bây giờ, Dart là một dự án phòng thí nghiệm rất thú vị sẽ có thể sử dụng được khi có các trình soạn thảo và trình gỡ lỗi trưởng thành và phạm vi của các dự án có thể thực hiện được nó sẽ phụ thuộc vào chính trị.
Trong mọi trường hợp, 3 ngày eval chủ yếu là niềm vui và tôi đã học được rất nhiều, nếu bạn tìm thấy thời gian, phải mất 1 ngày để Dart và 2 giờ để TypeScript đưa ra ý kiến của riêng bạn. Thử nó.
Cập nhật tháng 10 năm 2014
Đã được một thời gian và bài đăng cũ xuất hiện giả định rằng Typecript là tuyến đường ổn định an toàn để đi là hoàn toàn đúng. Tôi vừa tìm thấy một tuyên bố (rất) nổi bật về Bản mô tả, Phi tiêu và Đóng cửa:
Tôi đã quan tâm đến thách thức của lập trình Web trong một thời gian khá dài. Tôi tin rằng Google Clos hiện vẫn là lựa chọn tốt nhất để phát triển JavaScript / Web quy mô lớn, nhưng cuối cùng nó sẽ được thay thế bằng thứ gì đó ít dài dòng hơn. Mặc dù Dart cho thấy nhiều hứa hẹn, tôi vẫn không hài lòng với kích thước của JavaScript mà nó tạo ra. Bằng cách so sánh, nếu TypeScript có thể được dịch trực tiếp sang JavaScript có thể được biên dịch bằng chế độ nâng cao của Trình biên dịch đóng, thì chúng ta có thể có tất cả các lợi ích của JavaScript được tối ưu hóa từ Đóng mà không cần tính chi tiết. Hơn nữa, bởi vì TypeScript là một siêu bộ JavaScript, tôi tin rằng các phần mở rộng cú pháp của nó có cơ hội biến nó thành tiêu chuẩn ECMAScript tại một số điểm,
http://blog.bolinfest.com/2013/01/generating-google-clenses-javascript.html
Michael Bolin là một anh hùng front-end (ex) google (ex) fb, cũng tham gia vào việc đóng cửa google (lấy cuốn sách của anh ấy về Đóng cửa).
Google Traceur
Thẩm định của Google để phát trực tiếp ECMA Script 6 là dự án Traceur của nó:
https://github.com/google/traceur-compiler
So với Typecript, hỗ trợ công cụ có lẽ còn thua xa so với ngày nay. Tuy nhiên, về mặt tích cực, nó sẽ nhanh hơn rất nhiều trong việc áp dụng các hiệu ứng ngôn ngữ js quá tuyệt trong tương lai như các trình lặp hoặc hiểu.
Dòng chảy Facebook, Google AtScript
cung cấp các tính năng tương tự như TypeScript.
"Người ta có thể tự hỏi những gì với các giải pháp kiểm tra loại JavaScript khác nhau này và phải làm gì với nó. Một tin tốt là Microsoft, Facebook và Google đang hợp tác về những giải pháp này, theo Jonathan Turner của Microsoft:
Nhóm TypeScript đang làm việc với cả hai nhóm Flow và AtScript để giúp đảm bảo rằng các tài nguyên đã được tạo bởi cộng đồng gõ JavaScript có thể được sử dụng trên các công cụ này. Có rất nhiều dự án này có thể học hỏi lẫn nhau và chúng tôi mong muốn được làm việc cùng nhau trong tương lai và tạo ra các công cụ tốt nhất có thể cho cộng đồng JavaScript. Về lâu dài, chúng tôi cũng sẽ làm việc để gấp các tính năng tốt nhất của các công cụ này thành ECMAScript, tiêu chuẩn đằng sau JavaScript. "
thông tin bài viết về lưu lượng fb