Trạng thái hiện tại của ngôn ngữ lập trình của Google là gì? [đóng cửa]


15

Phi tiêu đã ra mắt từ rất lâu (trong những năm qua internet), nhưng theo đánh giá của Google Xu hướng , nó không nhận được nhiều sự cường điệu và thực tế là nó chỉ hoạt động trong Chrome cũng không giúp được gì. Tuy nhiên, Chrome đang giành được thị phần mỗi ngày, điều này giúp bản thân có cái nhìn tốt hơn về Dart.

Bức tranh lớn bây giờ là gì? Ngôn ngữ ở trạng thái nào? Mọi người có đánh giá cao về nó? Thị phần? Ứng dụng web giới thiệu? Một số tính năng triển khai khiến bạn phải "Tôi phải sử dụng nó"?


2
Câu hỏi này có thể được đánh giá là quá cục bộ trong thời gian và không chắc chắn làm thế nào để làm cho nó ít bản địa hóa hơn mà không hỏi ý kiến ​​về chính ngôn ngữ này.
Matthieu

1
@Matthieu: Quá cục bộ? Nghiêm túc?
Jim G.

1
@JimG. : Đối với một ngôn ngữ ở phiên bản 0,06 và được cập nhật hàng tháng , tôi nghĩ thật công bằng khi nói rằng ngôn ngữ này có thể không giống nhau trong 6 tháng tới và mọi phán quyết được thông qua hôm nay sẽ vô dụng.
Matthieu

1
Phi tiêu hoạt động trong các trình duyệt hiện đại bằng cách biên dịch nó thành JavaScript.
Seth Ladd

2
Tôi không thực sự hiểu lý do này đã bị đóng cửa. Nó không yêu cầu sự thật (thị phần / cách sử dụng), tài liệu tham khảo (ví dụ trực tuyến, v.v.), trạng thái của ngôn ngữ (xem trước kỹ thuật như đã nêu trong câu trả lời), triển khai tính năng (thực tế / tham khảo / chuyên môn cụ thể). Bài đăng thậm chí còn cung cấp một số thông tin tương tự như thông tin mà nó đang mong đợi, nó rõ ràng súc tích và chính xác
Mihalis Bagos

Câu trả lời:


27

Câu trả lời ngắn gọn cho "Trạng thái của phi tiêu là gì?" là: đó là trong Bản xem trước công nghệ. Đó là một cách nói đặc biệt, "chúng tôi đã khởi chạy sớm để chúng tôi có thể mở mọi thứ và làm việc trong môi trường mở". "Xem trước công nghệ" cũng có nghĩa là "chúng tôi thậm chí chưa ở Alpha, chúng tôi có rất nhiều việc phải làm, nhưng có đủ để bạn chơi và đưa ra phản hồi."

Thời gian Internet có thể hoạt động cho các câu chuyện tin tức hoặc lặp đi lặp lại sản phẩm tiêu dùng, nhưng có lẽ không phải là thứ gì đó đầy tham vọng và rộng lớn như nỗ lực của Dart. Hãy nhớ rằng, Dart không chỉ là một ngôn ngữ. Đây cũng là một bộ thư viện, giao diện DOM tốt hơn, máy ảo, Trình chỉnh sửa và tích hợp với Chrome. Nhóm đang làm việc rất chăm chỉ trên nhiều luồng song song, nhưng cá nhân tôi hy vọng sẽ mất sáu tháng trước khi chúng tôi có hầu hết các mảnh ghép.

Không phải sự thật là Dart chỉ hoạt động trong Chrome. Dart biên dịch sang JavaScript và nhắm mục tiêu các trình duyệt hiện đại. Chắc chắn, Chrome sẽ là người đầu tiên ra mắt với sự hỗ trợ của người bản xứ, nhưng việc đảm bảo các trình biên dịch của Dart thành hiệu suất và JavaScript hiệu quả là một hạn chế cốt lõi và tính năng của dự án.

Bức tranh lớn là Dart sẽ trở thành môi trường phát triển "bao gồm pin" cho các ứng dụng web hiện đại. Mục tiêu lái xe của Dart là giúp đảm bảo web vẫn là một nền tảng hiệu quả và thú vị để phát triển và triển khai ứng dụng. Điều này có nghĩa là rất nhiều phần cần phải rơi vào vị trí: ngôn ngữ, thư viện, biên tập viên, máy ảo và tích hợp trình duyệt. Đặt tất cả lại với nhau, chúng tôi tin rằng Dart sẽ là một lựa chọn hấp dẫn cho các nhà phát triển ứng dụng web hiện đại.

Bức tranh lớn LỚN là chúng tôi muốn đưa các nhà phát triển ứng dụng lên web và chúng tôi muốn các nhà phát triển web viết các ứng dụng web phức tạp hơn. Nếu họ sử dụng phi tiêu, điều đó thật tuyệt. Nhưng vào cuối ngày, ngôn ngữ không thành vấn đề. Điều duy nhất quan trọng là sự phức tạp, phía khách hàng, độ trung thực cao, độ trễ thấp, các ứng dụng web đẹp hiện đại đang được xây dựng.

Ngôn ngữ đang trong tình trạng phát triển. Chúng tôi thấy các bản phát hành mới cho thông số kỹ thuật khoảng một lần mỗi tháng. Các tính năng chính bị thiếu, chẳng hạn như phản chiếu, nhưng chúng tôi tiếp tục lặp lại. Chúng tôi chỉ thêm hỗ trợ map () vào Bộ sưu tập, ví dụ. Gilad Bracha, một anh chàng biết ngôn ngữ của mình (đã tạo NewSpeak và làm việc với Java Lang Spec) và Josh Bloch, một anh chàng biết các thư viện của mình (đã viết Java hiệu quả và làm việc trên các thư viện Bộ sưu tập Java) đang làm việc về ngôn ngữ và thư viện, cùng với đội ngũ lớn hơn.

Có phải mọi người đánh giá cao về Dart rất khó để khái quát hóa và có lẽ điều đó không quá quan trọng với bạn. Bạn nên rút ra kết luận của riêng mình sau khi chơi với Dart. Kinh nghiệm của tôi là các nhà phát triển ứng dụng từ các nền tảng khác như Java, C # hoặc Flex thấy Dart hấp dẫn và quen thuộc. Kinh nghiệm của tôi với các nhà phát triển JavaScript bị chia tách. Nếu nhà phát triển JavaScript đó cũng đã xây dựng các ứng dụng trên các nền tảng khác, họ sẽ lạc quan một cách thận trọng về Dart (hoặc, ít nhất, giải pháp mà nó đang cố gắng cung cấp). Nếu nhà phát triển JavaScript đó lớn lên trên JavaScript và chỉ được lập trình bằng JavaScript, sẽ có nhiều do dự hơn. Đây có thể là một số mối quan tâm cơ bản về ngôn ngữ hoặc do dự trong việc để lại một vùng thoải mái hoặc chỉ đơn giản là không chạy vào các trường hợp cạnh với JavaScript. Đây chỉ là khái quát, nhưng tôi

Về thị phần, nó cực kỳ sớm trong trò chơi. Đây có lẽ không phải là câu hỏi đúng, vì Dart thậm chí không vận chuyển. Một câu hỏi thú vị hơn sẽ là "thị phần của các ứng dụng trên web là gì?" và sau đó tìm hiểu làm thế nào chúng ta có thể giải quyết điều đó.

Đối với một chương trình giới thiệu Ứng dụng web, nhóm Dart đã xây dựng Swarm, một trình đọc tin tức khéo léo. Thật không may, chúng tôi chỉ có nó trong mã nguồn ngay bây giờ: http://www.dartlang.org/samples/index.html

Đối với một số tính năng "sát thủ", tôi sẽ nói có một vài tính năng khá thú vị:

  • loại tùy chọn là trơn, họ thêm chú thích và tài liệu cho con người và máy móc.
  • Cô lập là một cách tuyệt vời để đạt được đồng thời một cách an toàn.
  • Các thư viện (tính mô đun) cực kỳ cần thiết cho ngăn xếp web và Dart có các thư viện và các lớp.
  • Ảnh chụp nhanh sẽ cho phép khởi động cực nhanh
  • Các thư viện được đóng gói (như bộ sưu tập, Đồng hồ bấm giờ, v.v.) sẽ thống nhất các cơ sở mã và thu nhỏ mã có thể chuyển đổi
  • Giao diện DOM mới tuyệt vời, giúp làm việc với DOM thú vị hơn nhiều. Nó cảm thấy giống như mã phi tiêu bản địa.

Tôi hy vọng tôi đã trả lời câu hỏi của bạn. Tôi nghĩ rằng câu hỏi duy nhất quan trọng là "Ngôn ngữ của tôi có giúp tôi xây dựng các ứng dụng web phức tạp, độ trung thực cao, độ trễ thấp, mô-đun, hiện đại không?" Trạng thái kết thúc của tất cả những điều này chỉ đơn giản là giúp nhiều nhà phát triển ứng dụng cung cấp các ứng dụng thành công hơn cho web hiện đại.


đã đến chủ đề này trong khi xem video của bạn Introduction to Dart. Sẵn sàng cho một số thực hành trên phi tiêu. :)
SachinGutte

8

Bạn không thể đo tuổi ngôn ngữ lập trình trong "năm internet". Trên thực tế, bạn không thể đo lường bất kỳ công nghệ thực tế nào trong những năm qua internet. Tất cả những gì bạn thực sự có thể đo được trong những năm qua internet là sự cường điệu, nhưng sự cường điệu không phản ánh đúng thực tế.

Phi tiêu được công khai từ 3 tháng nay. So sánh điều đó với các công nghệ "mới" và "nóng" trong lĩnh vực này, như CoffeeScript hoặc Node.js, công khai lần lượt từ 2 năm và gần 3 năm. Ngoài ra, đáng chú ý là cả hai đều là những bước tương đối nhỏ so với Dart. Về cơ bản CoffeeScript có nghĩa là cắm trình tạo JavaScript vào trình phân tích cú pháp dựa trên Ruby và Node.js có nghĩa là ràng buộc I / O không chặn đối với Google V8.

Dart là một nỗ lực để thiết kế lại lập trình web mặt trước ở tất cả các cấp, tức là cú pháp, tính năng ngôn ngữ, môi trường thời gian chạy, API. Chẳng hạn, so sánh Dart với CoffeeScript, giống như so sánh một nguyên mẫu của một máy bay cá nhân tự động điều khiển bằng năng lượng mặt trời với Shelby GT năm 1968. Chắc chắn, trước đây có tiềm năng hơn nhiều, nhưng đầu tư vào nó, hãy để một mình lên nó đòi hỏi rất nhiều sự táo bạo. Cái sau có rất nhiều thiếu sót đã biết, nhưng chúng được biết đến, điều này làm cho toàn bộ điều có thể dự đoán và đáng tin cậy.

Tất nhiên đây chỉ là suy đoán, nhưng tôi nghĩ rằng Dart là một ngõ cụt, cuối cùng sẽ được cứu vãn để đưa JavaScript về phía trước hoặc các giải pháp khác. Nếu bạn muốn có một ngôn ngữ động, CoffeeScript và Parenscript đã thực hiện những gì mà Dart hứa hẹn. Nếu bạn thích một ngôn ngữ gõ tĩnh, thì haXe và Opa sẽ thực hiện thủ thuật này. Tất cả bốn người có một khởi đầu trên Dart. Và tất cả chúng được thiết kế để được biên dịch thành JavaScript như một mặc định, không chỉ là một dự phòng.


3
Tôi nghĩ rằng trong khi Dart là mới như một ngôn ngữ, tôi đã không nhìn thấy bất cứ điều gì đặc biệt sáng tạo trong đó. Theo như tôi có thể nói, nó chủ yếu được tạo thành từ các tính năng từ các ngôn ngữ cũ. Vì vậy, nó thực sự không giống như một "nguyên mẫu của một máy bay cá nhân tự động chạy bằng năng lượng solare".
Tikhon Jelvis

@ back2dos +1 "Bạn không thể đo tuổi ngôn ngữ lập trình trong" năm internet ". Thực tế, bạn không thể đo bất kỳ công nghệ thực tế nào trong những năm qua internet." Điều này đã mở ra một cái nhìn sâu sắc mới cho tôi suy nghĩ. Tại sao không thể và làm thế nào công nghệ có thể được đo lường trong thời đại internet trước và sau?
Ubermensch

@TikhonJelvis: Sự so sánh là về sự trưởng thành. Tuy nhiên, năng lượng mặt trời, tự động điều khiển và hàng không đều tồn tại, vì vậy chiếc xe mà tôi mô tả tương tự như Dart, "chỉ" là sự kết hợp lại các ý tưởng hiện có. Thách thức của kỹ thuật không phải là kết hợp lại, mà là làm cho nó bay lên;)
back2dos

So sánh phi tiêu với các ngôn ngữ khác là từ cuộc thảo luận này, và theo như tôi có thể tưởng tượng với bất kỳ cuộc thảo luận nào, vì dù sao chúng là những thứ khác nhau. Phi tiêu không chỉ là một bộ tiền xử lý và nó chắc chắn không phải là hướng máy chủ. Mặc dù vậy, tôi đồng ý với suy đoán về tương lai của phi tiêu, và đó là một trong những điều tôi mong chờ được trả lời
Mihalis Bagos

@MihalisBagos: Chà, vì Dart có thể biên dịch thành JS, nên bạn có thể chạy nó trên Node.js, vì vậy nó có thể được sử dụng ở phía máy chủ. Ngoài ra thời gian rất khó để đo lường một cách có ý nghĩa, vì vậy để hiểu được cách mà Dart có thể đi được bao xa trong thời gian nào, so sánh với một ngôn ngữ nhất định ở giai đoạn xa hơn với số lượng tính năng dễ hiểu là khung tham chiếu tốt nhất bạn có thể nhận được.
back2dos

5

Phi tiêu vẫn còn trong bản xem trước kỹ thuật. Hiện tại, đặc tả ngôn ngữ có phiên bản 0.0.6, 0,0.7 được mong đợi ở đâu đó trong tuần này. Nó là xa "hoàn thành". Có một số ví dụ trong kho lưu trữ: http://www.dartlang.org/samples/index.html

Đây là một quan điểm về những gì tốt hơn về mặt cú pháp so với JavaScript: http://www.grobmeier.de/10-reasons-why-dart-is-cooler-than-javascript-03012012.html Tuyên bố từ chối trách nhiệm: đó là bài đăng của tôi . Tôi cần phải nói ở đây tôi thích JavaScript, nhưng tại một số điểm, nó có những điểm kỳ quặc, điều mà tôi không thích lắm.

Ngoài ra còn có một cộng đồng đang phát triển xung quanh nó: http://www.dartosphere.org

Một số người đã tìm cách chuyển Box2D sang Dart, một người khác kết nối với CouchDB. Dù sao, không có gì bạn nên sử dụng trong sản xuất.

Trước đó, Josh Blochua đã tham gia nhóm để làm việc tái cấu trúc API. Bạn có thể mong đợi một số thay đổi ngay cả trong API lõi.

Hỗ trợ trình duyệt: bạn có thể biên dịch từ Dart sang JavaScript, tốt nhất là với Frog (không phải là DartC, nó biên dịch thành các tệp javascript lớn). Dartium là một trong những trình duyệt hỗ trợ Dart bản địa, một nhánh Webkit được tranh luận cũng ở đâu đó.

Kỳ vọng cá nhân của tôi là sẽ có được một cái gì đó cụ thể hơn vào giữa năm tới. Theo kinh nghiệm của tôi, Google Devs đang làm rất nhiều để làm cho ngôn ngữ trở nên phù hợp và tốt, không chỉ vay mượn từ Java mà còn từ Erlang và JavaScript.

Dưới đây là một ví dụ, một trò chơi được chuyển từ JavaScript: http://blog.sethladd.com/2011/12/10-lessons-from-porting-javascript-to.html

Người ta có thể mong đợi Dart đến Android, thậm chí có thể là "ngôn ngữ chính". Mọi người đang nói rằng nó sẽ đến với AppEngine.

Cá nhân tôi nghĩ rằng Dart rất thanh lịch và đã khá đẹp. Ngoài ra, tôi nghĩ rằng nó sẽ có một thị trường một khi nó được hoàn thành.

Bạn sẽ tìm thấy nhiều câu hỏi của bạn được trả lời trong Câu hỏi thường gặp này: http://www.dartlang.org/support/faq.html#compare-to-coffeescript


Cảm ơn đã trả lời theo định hướng thực hành, các liên kết rất thú vị!
Mihalis Bagos

0

Phi tiêu đã được phát hành từ lâu đời (trong những năm qua internet)

Nó thậm chí không được sử dụng rộng rãi và nó chưa trưởng thành. Các công nghệ sẵn sàng sản xuất đã tồn tại từ 10 - 15 năm ... đối với Dart, bạn thậm chí không thể nói đó là tiền alpha. Các công nghệ mới luôn trông đẹp, trên giấy, khi không có ai sử dụng nó.

nó đã không nhận được nhiều sự cường điệu

Tôi nghĩ ngược lại. Thật xấu hổ khi một ngôn ngữ lạc hậu, tồi tệ như vậy lại nhận được những đánh giá tích cực như vậy. Nó trở lại từ Ecma / Java Script OOP tuyệt đẹp với sự kế thừa ký sinh, đóng cửa và gọi lại cho một số OOP bằng gỗ, thập kỷ được lấy từ Java với tất cả các thực tiễn lập trình khủng khiếp mà Java đi kèm.

Một số tính năng triển khai khiến bạn phải "Tôi phải sử dụng nó"?

Không ai. Nếu bạn biết java và bạn không dung nạp kiến ​​thức để học Ecma / JavaScript đúng cách thì có lẽ đó là điều duy nhất sẽ phù hợp với bạn.

Bạn biết google hoạt động như thế nào. Họ sử dụng Java rất nhiều, vì vậy có lẽ đó là lý do tại sao họ tạo ra ngôn ngữ khủng khiếp như vậy ... họ chỉ quen với nó.

Bên cạnh đó, nó còn phân mảnh trang web và tôi chỉ có thể hy vọng Mozilla và Opera không bao giờ thực hiện điều này (vì chắc chắn MS sẽ không hỗ trợ cho một số ngôn ngữ như java java). Bên cạnh toàn bộ khái niệm là DATED, chúng ta nên loại bỏ các ngôn ngữ như C ++ hoặc Java ít nhất là khi mã hóa UI vì những thứ này rất không hiệu quả. Nó giống như thay thế C ++ bằng Trình biên dịch, bởi vì các lập trình viên ở độ tuổi cuối thập niên 50 từ chối học những điều mới.


2
Bạn có thể muốn giảm bớt sự thiên vị ngôn ngữ của bạn một chút; đoạn đầu tiên của bạn làm cho một bản tóm tắt tốt và bạn kết thúc với một quan sát tốt đẹp nhưng những điều đó bị lạc trong tất cả "khủng khiếp".
Patrick Hughes

+1 trên toning down, c ++ vẫn còn rất nhiều (như là trình biên dịch) cho các ứng dụng cụ thể. Nó có thể không phải là công cụ tốt nhất cho mọi công việc, nhưng trong rất nhiều trường hợp, nó thật tuyệt vời. Trình biên dịch ví dụ được sử dụng trong các công cụ trò chơi mà tôi tin.
Paul Hiemstra

Tôi không nói Java hay C ++ là xấu ... cả hai đều xấu cho giao diện người dùng, đó là những gì mà JS được sử dụng (nguyên thủy) để lập trình. Cả hai đều tốt trong các lĩnh vực khác. Dart chỉ là một cách tiếp cận ngây thơ của những người chỉ lập trình trong Java nên có lẽ họ nghĩ Java tốt cho mọi thứ. Bên cạnh đó, tôi đã làm việc với MFC và Java trên các giao diện người dùng vì vậy tôi nghĩ tôi có quyền nói như vậy :) Giống như nói Trình biên dịch nâng cao hơn C vì ASM là tất cả những gì bạn biết :)
Slawek

Tôi đã làm việc với Java và JavaScript và tôi có thể nói rằng bài viết của bạn thật kinh khủng và ngây thơ. Ngôn ngữ lập trình không phải là tôn giáo, và Dart có cách tiếp cận khá tốt. Tôi không nghĩ chúng ta có thể hoặc nên loại bỏ các ngôn ngữ như Java. Đây chỉ là lời nói của hacker mà không có lý do.
Christian

Lý luận? Bạn có thể làm điều tương tự trong JS rằng trong Java ... chỉ cần một vài TIMES nhanh hơn + mã dễ quản lý và thay đổi hơn nhiều, nếu chúng ta đang nói về UI. Thời gian = Tiền bạc. Nó đã đủ tệ khi chúng ta có VBScript và ECma trên các trình duyệt cùng nhau ... tại sao lại quay trở lại thập niên 90? JS là ngôn ngữ cụ thể cho trường hợp rất cụ thể tại sao thay thế nó bằng một cái gì đó chung chung và tào lao?
Slawek

0

Phi tiêu là một khái niệm thiếu sót theo bước chân của Javascript. Google nên hợp tác trong việc tạo thời gian chạy tiêu chuẩn cho các trình duyệt web (giống như HTML 6). Tương tự như mã byte java hoặc IL của microsoft.

Chúng ta không nên chuẩn hóa các ngôn ngữ cụ thể, nhưng vào thời gian chạy. "Trình duyệt là một hệ điều hành". Đúng? WTF google? Theo tầm nhìn của riêng bạn !!!


2
Mã byte Java một ngôn ngữ cụ thể. CIL cũng vậy.
Jörg W Mittag
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.