Các lựa chọn thay thế cho JavaScript


144

Hiện tại, ngôn ngữ duy nhất được hỗ trợ đầy đủ và tiêu chuẩn thực tế cho thao tác cây DOM trong trình duyệt là JavaScript. Có vẻ như nó có các vấn đề thiết kế sâu sắc khiến nó trở thành một mỏ của các lỗi và lỗ hổng bảo mật cho người mới.

Bạn có biết bất kỳ sáng kiến ​​tồn tại hoặc có kế hoạch nào để giới thiệu một ngôn ngữ (được thiết kế lại) tốt hơn dưới bất kỳ hình thức nào (không chỉ javascript) cho thao tác cây DOM và các yêu cầu HTTP trong các trình duyệt thế hệ tiếp theo không? Nếu có, lộ trình tích hợp vào Firefox là gì, và nếu không, vì lý do gì (ngoài khả năng tương tác) nên JavaScript là ngôn ngữ được hỗ trợ duy nhất trên nền tảng trình duyệt?

Tôi đã sử dụng jQuery và tôi cũng đọc "javascript: những phần hay". Quả thực các đề xuất là tốt, nhưng điều tôi không thể hiểu là: tại sao chỉ có javascript? Trên phía máy chủ (nền tảng os yêu thích của bạn), chúng ta có thể thao tác một cây DOM với mọi ngôn ngữ, thậm chí cả fortran. Tại sao phía khách hàng (nền tảng trình duyệt) chỉ hỗ trợ javascript?


4
Google Dart, Script #, CoffeeScript, JSX (cả hai cách triển khai khác nhau của JS), JavaScript Harmony, v.v ... Xem liên kết này để biết thêm github.com/jashkenas/coffee-script/wiki/iêu
nawfal

25
Câu hỏi hay. Ngôn ngữ được phát triển trong 10 ngày vẫn còn với chúng tôi vào năm 2013. wtfjs.com
Den

2
"tại sao chỉ có javascript? Trên phía máy chủ (nền tảng os yêu thích của bạn), chúng tôi có thể thao tác một cây DOM với mọi ngôn ngữ, thậm chí cả fortran. Tại sao phía máy khách (nền tảng trình duyệt) chỉ hỗ trợ javascript?" Về phía máy chủ, bạn có thể cài đặt bất cứ thứ gì bạn muốn, nhưng tôi không thể buộc khách hàng của mình cài đặt bổ sung / bổ trợ, nếu chúng tôi gặp nhiều lỗi và vấn đề bảo mật với javascript, chúng tôi sẽ gặp phải bao nhiêu lỗi và vấn đề bảo mật chúng tôi thêm một vài?
Peter

6
@Peter Tôi không thể biết cuộc tranh luận của bạn là nghiêm túc hay là một trò đùa. Mọi người dễ dàng cài đặt nền tảng nếu họ muốn. Nếu một giải pháp thay thế cho Javascript có sẵn và hoạt động tốt, thì các nhà cung cấp thương mại sẽ chỉ yêu cầu người dùng tải xuống bất cứ thứ gì cần thiết để chạy nó - giống như họ đã luôn làm với Flash và như họ đã làm trong một thời gian với Silverlight. Trong tất cả các lý do tại sao có thể không xuất hiện các lựa chọn thay thế ở phía máy khách, khó khăn trong việc đảm bảo người dùng của bạn có nền tảng của bạn không phải là một trong số đó.
ely

1
@ely: Và hóa ra cũng tốt? Tốc biến? Các applet Java? Ánh bạc? Tôi thậm chí chưa từng cài đặt Silverlight.
Sebastian Mach

Câu trả lời:


41

Vấn đề với javascript không phải là ngôn ngữ - đó là một ngôn ngữ nguyên mẫu và năng động hoàn toàn tốt. Nếu bạn đến từ nền tảng OO, có một chút khó khăn trong học tập, nhưng đó không phải là lỗi của ngôn ngữ.

Hầu hết mọi người đều cho rằng Javascript giống như Java vì nó có cú pháp tương tự và tên tương tự, nhưng thực ra nó giống với lisp hơn rất nhiều. Nó thực sự khá phù hợp với thao tác DOM.

Vấn đề thực sự là nó được trình duyệt biên dịch và điều đó có nghĩa là nó hoạt động theo một cách rất khác tùy thuộc vào máy khách.

Không chỉ DOM thực tế khác nhau tùy thuộc vào trình duyệt, mà còn có sự khác biệt lớn về hiệu suất và bố cục.


Chỉnh sửa làm rõ sau câu hỏi

Giả sử nhiều ngôn ngữ thông dịch được hỗ trợ - bạn vẫn gặp vấn đề tương tự. Các trình duyệt khác nhau vẫn sẽ có lỗi và có các DOM khác nhau.

Ngoài ra, bạn sẽ phải có một trình thông dịch được tích hợp trong trình duyệt hoặc bằng cách nào đó được cài đặt dưới dạng trình cắm (mà bạn có thể kiểm tra trước khi phục vụ trang) cho mỗi ngôn ngữ. Phải mất nhiều thời gian để có được Javascript nhất quán.

Bạn không thể sử dụng các ngôn ngữ được biên dịch theo cùng một cách - sau đó bạn đang giới thiệu một ngôn ngữ thực thi mà không thể dễ dàng xem xét kỹ lưỡng về những gì nó làm. Rất nhiều người dùng sẽ chọn không để nó chạy.

OK, vậy còn một số loại hộp cát cho mã được biên dịch thì sao? Âm thanh như Java Applet với tôi. Hoặc ActionScript trong Flash. Hoặc C # trong Silverlight.

Một số loại tiêu chuẩn IL thì sao? Điều đó có nhiều tiềm năng. Phát triển bằng bất kỳ ngôn ngữ nào bạn muốn và sau đó biên dịch nó sang IL, trình duyệt sau đó là JIT.

Ngoại trừ, Javascript là loại IL đã có - chỉ cần nhìn vào GWT . Nó cho phép bạn viết các chương trình bằng Java, nhưng phân phối chúng dưới dạng HTML và JS.


Chỉnh sửa sau đây làm rõ thêm trong câu hỏi

Javascript không, hay đúng hơn là không phải là ngôn ngữ duy nhất được các trình duyệt hỗ trợ: trở lại thời kỳ đen tối của Internet Explorer mà bạn có thể chọn giữa Javascript hoặc VBScript để chạy trong IE. Về mặt kỹ thuật IE thậm chí không chạy Javascript - nó chạy JScript (chủ yếu để tránh phải trả Sun cho từ java , Oracle vẫn sở hữu tên Javascript ).

Vấn đề là VBScript thuộc sở hữu của Microsoft, nhưng cũng không phải là nó rất tốt. Mặc dù Javascript đã thêm chức năng và nhận các công cụ gỡ lỗi tốc độ hàng đầu trong các trình duyệt khác (như FireBug) nhưng VBScript vẫn chỉ có IE và không thể gỡ lỗi (các công cụ dev trong IE4 / 5/6 không tồn tại). Trong khi đó VBScript cũng mở rộng để trở thành một công cụ kịch bản khá mạnh mẽ trong HĐH, nhưng không có tính năng nào trong số đó có sẵn trong trình duyệt (và khi chúng trở thành lỗ hổng bảo mật lớn).

Vẫn còn một số ứng dụng nội bộ của công ty sử dụng VBScript (và một số ứng dụng dựa trên các lỗ hổng bảo mật đó) và chúng vẫn đang chạy IE7 (chúng chỉ dừng IE6 vì cuối cùng MS đã tắt nó).

Đưa Javascript về trạng thái hiện tại là một cơn ác mộng và mất 20 năm. Nó vẫn không có sự hỗ trợ nhất quán, với các tính năng ngôn ngữ (được chỉ định vào năm 1999) vẫn còn thiếu ở một số trình duyệt và rất nhiều miếng chêm được yêu cầu.

Thêm một ngôn ngữ thay thế để diễn giải trong trình duyệt phải đối mặt với hai vấn đề chính:

  • Bắt tất cả các nhà cung cấp trình duyệt thực hiện tiêu chuẩn ngôn ngữ mới - thứ mà họ vẫn chưa quản lý được Javascript trong 20 năm.

  • Một ngôn ngữ thứ hai có khả năng làm loãng sự hỗ trợ mà bạn đã có, cho phép (ví dụ) IE có hỗ trợ Javascript tốc độ thứ hai nhưng VBScript tuyệt vời (một lần nữa). Tôi thực sự không muốn viết mã bằng các ngôn ngữ khác nhau cho các trình duyệt khác nhau.

Cần lưu ý rằng Javascript chưa 'hoàn thành' - nó vẫn đang phát triển để trở nên tốt hơn trong các trình duyệt mới. Các phiên bản mới nhất là năm tới của việc triển khai của các trình duyệt và họ đang làm việc trên kế tiếp.


5
Tôi muốn nói rằng nó "được giải thích", không được "biên dịch" bởi trình duyệt.
Flavius ​​Stef

19
Các trình duyệt mới hơn thực hiện biên dịch JIT trên JavaScript.
Nosredna

4
Tôi cũng đã xử lý yêu cầu bồi thường và, hóa ra, Firefox 3.1 sẽ có hỗ trợ tích hợp. Hãy xem andreasgal.com/2008/08/22/tracing-the-web hoặc people.mozilla.com/~schrep/ tm-image-điều
chỉnh.swf

2
Công cụ JavaScript V8 (chrome) biên dịch trực tiếp.
Dave W. Smith

3
Tôi hoàn toàn không đồng ý với câu trả lời đầu tiên của bạn "vấn đề với JavaScript không phải là ngôn ngữ". Tôi nghĩ rằng về mặt cú pháp, đây là một ngôn ngữ rất xấu và thiếu các tính năng bạn có được từ hầu hết các ngôn ngữ khác. Các tính năng mà ít nhất là tôi vẫn cần trong các ứng dụng lớn (tải phụ thuộc, nguyên tắc OO có thể đọc được ). Nếu bây giờ chúng tôi phải làm điều đó (internet), tôi không nghĩ JavaScript sẽ là lựa chọn 'tốt nhất' cho một ngôn ngữ.
SirLenz0rlot

28

Biên dịch sang Javascript

Hiện tại, sử dụng ngôn ngữ biên dịch thành Javascript dường như là cách thực tế duy nhất để tiếp cận tất cả các nền tảng trong khi viết mã thông minh hơn, và điều này có thể sẽ còn tồn tại trong một thời gian dài. Với bất kỳ ưu đãi mới nào, sẽ luôn có một số lý do tại sao một hoặc nhiều nhà cung cấp sẽ không vội vã gửi nó.

(Nhưng tôi thực sự không nghĩ rằng đây là một vấn đề. Javascript hiện đã được tối ưu hóa tốt. Mã máy cũng không an toàn nếu được viết bằng tay, nhưng hoạt động tốt như một ngôn ngữ thực thi và biên dịch.)

Rất nhiều lựa chọn

Ngày càng có nhiều ngôn ngữ biên dịch sang Javascript. Một danh sách khá toàn diện có thể được tìm thấy ở đây:

Đáng chú ý

Tôi sẽ đề cập đến một số ít tôi nghĩ là đáng chú ý (trong khi không có nghi ngờ bỏ qua một số đá quý mà tôi không biết):

  • Spider xuất hiện vào năm 2016. Nó tuyên bố sẽ lấy những ý tưởng tốt nhất về Go, Swift, Python, C # và CoffeeScript. Nó không phải là loại an toàn , nhưng nó có một số tính năng an toàn nhỏ .

  • Elm : Haskell có thể là ngôn ngữ thông minh nhất trong tất cả, và Elm là một biến thể của Haskell cho Javascript. Nó có tính nhận thức cao và súc tích, và cung cấp Lập trình phản ứng chức năng như một sự thay thế gọn gàng cho các mẫu phản ứng hoặc spaghetti MVC. Nhưng nó có thể là một cú sốc cho các lập trình viên thủ tục .

  • Google Go hướng đến sự đơn giản, đơn giản và an toàn. Mã Go có thể được biên dịch thành Javascript bởi GopherJS .

  • Dart sau đó là nỗ lực của Google để thay thế Javascript. Nó cung cấp các giao diện và các lớp trừu tượng thông qua cú pháp giống C / Java với kiểu gõ tùy chọn.

  • Haxe giống như ActionScript của Flash, nhưng nó có thể nhắm mục tiêu nhiều ngôn ngữ để mã của bạn có thể được sử dụng lại trong các chương trình Java, C, Flash, PHP và Javascript. Nó cung cấp các đối tượng năng động và an toàn.

  • Opalang thêm đường cú pháp vào Javascript để cung cấp quyền truy cập cơ sở dữ liệu trực tiếp , tiếp tục thông minh, kiểm tra loại và hỗ trợ phân tách máy khách / máy chủ. (Đã liên kết với NodeJS và MongoDB.)

  • GorillaScript , "ngôn ngữ biên dịch thành JavaScript được thiết kế để trao quyền cho người dùng trong khi cố gắng ngăn chặn một số lỗi phổ biến." gần giống với Coffeescript nhưng toàn diện hơn, cung cấp một loạt các tính năng bổ sung để tăng tính an toàn và giảm các mẫu nồi hơi lặp đi lặp lại.

  • LiteScript nằm ở đâu đó giữa Coffeescript và GorillaScript. Nó cung cấp cú pháp async /ield cho các cuộc gọi lại "nội tuyến" và kiểm tra các lỗi chính tả.

  • TypeScript của Microsoft là một superset nhỏ của Javascript cho phép bạn đặt các hạn chế loại đối với các đối số chức năng, có thể bắt gặp một vài lỗi. Tương tự BetterJS cho phép bạn áp dụng các hạn chế, nhưng trong Javascript thuần túy, bằng cách thêm các cuộc gọi bổ sung hoặc bằng cách chỉ định các loại trong các nhận xét JSDoc. Và bây giờ, Facebook đã cung cấp Flow , thực hiện bổ sung suy luận kiểu.

  • LiveScript là một bản spin-off từ Coffeescript vốn nổi tiếng vì sự ngắn gọn của nó nhưng trông tôi không dễ đọc lắm. Có lẽ không phải là tốt nhất cho các đội.

Chọn như thế nào?

Khi chọn một ngôn ngữ thay thế, có một số yếu tố cần xem xét :

  • Nếu các nhà phát triển khác tham gia dự án của bạn trong tương lai, họ sẽ mất bao lâu để tăng tốc và học ngôn ngữ này, hoặc cơ hội mà họ đã biết là gì?

  • Có phải ngôn ngữ có quá ít tính năng (mã sẽ vẫn đầy ắp) hoặc quá nhiều tính năng (sẽ mất nhiều thời gian để thành thạo và cho đến khi đó một số mã hợp lệ có thể không thể giải mã được)?

  • Liệu nó có các tính năng bạn cần cho dự án của bạn? (Dự án của bạn có cần kiểm tra kiểu và giao diện không? Có cần tiếp tục thông minh để tránh địa ngục gọi lại lồng nhau không? Có nhiều phản ứng không? Có cần phải nhắm mục tiêu vào các môi trường khác trong tương lai không?)

Tương lai...

Jeff Walker đã viết một loạt các bài đăng trên blog đầy suy nghĩ về "vấn đề Javascript", bao gồm cả lý do tại sao anh ta nghĩ rằng cả TypeScript , hay Dart hay Coffeescript đều không cung cấp giải pháp thích hợp. Ông đề xuất một số tính năng mong muốn cho một ngôn ngữ được cải thiện trong kết luận .


ES6 mở rộng Javascript với một loạt các tính năng cho phép các lớp được chỉ định rõ ràng hơn và "không đồng bộ nội tuyến" thông qua các trình tạo. Vẫn tự động gõ dù!
joeytwiddle 15/03/2015

Cách tiếp cận của Elm tương tự như Nitrogen hoặc N2O (khung erlang) đó là lý do tại sao tôi thích nó.
DenisKolodin

Ngày nay, chúng ta có một số đường cú pháp của CoffeeScript trong ES8 và TypeScript, cũng như async-await. TypeScript đã ngăn chặn rất nhiều lỗi tại nơi làm việc của tôi, mặc dù vẫn còn một số cơ hội cho những điều bất ngờ!
joeytwiddle

Hiện tại cũng có Wasm , cho phép nhiều ngôn ngữ khác chạy trong trình duyệt. Tuy nhiên, giao tiếp với DOM vẫn đang thông qua JavaScript.
joeytwiddle

22

JavaScript có nên là ngôn ngữ được hỗ trợ duy nhất trên nền tảng trình duyệt không?

Có và không. Có một giải pháp thay thế được gọi là Dart của Google, nó biên dịch thành JavaScript và giống như jQuery, nó cố gắng làm cho thao tác DOM dễ dàng hơn một chút. Nó có thể là niềm vui để thử nghiệm, kiểm tra xem nó.

Xem thêm


15

Đúng là Javascript đã từng rất khó đối phó nhưng cộng đồng phát triển web đã đi một chặng đường dài kể từ đó. Thay vào đó, tôi khuyến khích bạn hãy xem jQuery . Thật dễ dàng và trừu tượng hóa tất cả các vấn đề khác nhau.

Và thực sự không có lựa chọn thay thế nào hoạt động trên bảng. Flash xuất hiện trong tâm trí nhưng đó cũng là kịch bản ECMA và có lẽ nó đã bị tiêu diệt đối với hầu hết mọi thứ.


1
hoặc MooTools, Nguyên mẫu và Dojo. jqueryvsmootools.com là một so sánh tuyệt vời giữa mootools và jquery.
Ryan Florence

Javascript không có gì sai cả. Bạn có thể đề cập đến các vấn đề trong JScript của IE và các vấn đề kết xuất chung và sự không nhất quán với các trình duyệt khác nhau.
Gavin

7

Ngắn hạn, tôi sẽ sử dụng những thứ như jQuery để che giấu sự không tương thích của trình duyệt. Về lâu dài, các công nghệ như Silverlight hay Adobe AIR có thể biến nơi này thành một bãi mìn rất khác (nhưng vẫn là mỏ khai thác) trong tương lai.


1
+1 để sử dụng jQuery để ẩn sự không tương thích của trình duyệt. Tôi đã đọc một cuốn sách giải thích một số cơ chế đó hoạt động như thế nào và tin tôi khi tôi nói rằng jQuery đang cứu các lập trình viên đau đầu trong bộ phận này.
Sông Vivian

1
nhìn vào câu trả lời công nghệ trong nhận thức muộn luôn là một quan điểm lạ. bây giờ chúng ta biết web đã thắng: ánh sáng bạc, đèn flash và không khí đều đã chết, và người chiến thắng còn lại là javascript trong tất cả các câu thần chú kỳ lạ và tuyệt vời của nó.
oligofren 7/07/2015

6

Doug Crockford đã nói chuyện với Google chi tiết các phần xấu và tốt của JavaScript và tương lai của nó. Nó thực sự đã không thay đổi nhiều kể từ năm 1999 - có thể nói là một điều tốt (hầu như tất cả các trình duyệt có thể chạy cùng một mã miễn là bạn biết về những hạn chế của chúng) và Doug cho thấy những phần tốt chủ yếu là những hiểu lầm hóa ra rất mạnh mẽ.

Đối với thao tác DOM, hãy xem JQuery như một thư viện phía máy khách thay thế hầu hết các API DOM khủng khiếp bằng các thao tác gây khó khăn khi ghi vào các đoạn mã khá thanh lịch dễ viết hơn.


5

Nếu bạn nghĩ rằng JavaScript có vấn đề sâu sắc, tôi khuyên bạn nên đọc cuốn sách của Doug Crockford, JavaScript: The Good Parts . .

Tôi không biết về kế hoạch thay thế JavaScript như là phương tiện thực tế để thao túng DOM. Vì vậy, tốt nhất học cách sử dụng nó một cách an toàn và tốt.


1
Đọc lại lần nữa. Rõ ràng là anh ấy đã chỉnh sửa câu hỏi của mình sau khi đọc câu trả lời.
Dave W. Smith

4

Về mặt máy khách, Javascript là cách duy nhất để thao tác DOM. Về mặt máy chủ, có vô số cách.


4

Internet Explorer hỗ trợ các ngôn ngữ kịch bản có thể cắm được, mặc dù ngôn ngữ duy nhất được bao gồm trong IE ngoài JScript là VBScript.

Theo như tôi đã thấy, dường như có một sự thiên vị chung đối với các ngôn ngữ động trong trình duyệt và JavaScript dường như đáp ứng nhu cầu này đủ để các hiệu ứng mạng làm cho bất kỳ ngôn ngữ nào khác không phải là khởi đầu. Ngôn ngữ thực sự khá mạnh mẽ, mặc dù việc triển khai trong các trình duyệt còn nhiều điều mong muốn.


1
Đừng sử dụng VBScript trong IE - đó là một biến thể khủng khiếp của VB mà MS lớn nghĩ sẽ cất cánh nhưng không được. Nó không thực sự hoạt động như VB hay VBScript bình thường và Javascript chậm hơn.
Keith

1
Điều gì đang thiếu trong các triển khai JavaScript / ECMAScript của WebKit hoặc Gecko có sẵn trong các triển khai không phải của trình duyệt? Nhận xét đó là hoàn toàn khó hiểu với tôi.
mí mắt

4

Nếu bạn sẵn sàng giới hạn khách hàng / khách truy cập của mình vào các trình duyệt cụ thể và có thể sẵn sàng yêu cầu họ cài đặt trình cắm, bạn có thể xem MS Silverlight - một tổng quan dễ đọc wikipedia . Với Silverlight 2, bạn có thể chạy, phía máy khách, mã bạn đã viết bằng C #, IronPython, IronRuby, VB.NET, v.v; bản sao Moonlight miễn phí của Silverlight, từ dự án Mono, hứa hẹn sẽ mang lại chức năng tương tự cho Linux.

Trong thực tế, hầu hết các nhà phát triển ứng dụng web và trang web thích tiếp cận đối tượng rộng hơn Silverlight (và cuối cùng là Moonlight) hiện có thể phân phối - có nghĩa là gắn bó với Javascript, hoặc có thể là Flash (sử dụng ngôn ngữ lập trình tương tự, Actioncript).

Vì vậy, đạt được tư duy đáng kể, chấp nhận và kéo theo bất cứ điều gì khác đang chứng tỏ là một cuộc chiến khó khăn ngay cả đối với Microsoft với các nhóm kỹ sư và ngân sách tiếp thị lớn một dự án phần mềm miễn phí ở bên cạnh (để có thể giảm bớt lo lắng về việc khóa độc quyền ) - có thể giúp giải thích lý do tại sao có rất ít sự quan tâm, ví dụ như về phía Mozilla Foundation, trong việc thúc đẩy mục tiêu như vậy. "Ngoài khả năng tương tác", bạn nói: nhưng rõ ràng vấn đề về khả năng tương tác là vấn đề lớn ở đây, với những gì chúng ta quan sát thấy sự tiến bộ của Silverlight ...


3

Như đã nói, bạn có Flash (ActionScript, ngôn ngữ bắt nguồn từ Javascript) và Silverlight / Moonlight (IronPython, IronRuby, JScript, VBScript, C #) có thể chạy trong trình duyệt thông qua các plugin (ngôn ngữ đầu tiên phổ biến hơn nhiều) .

Ngoài ra còn có một lựa chọn khác nếu bạn thích Ruby: HotRuby , đó là một triển khai ruby ​​trong javascript sẽ chạy trong trình duyệt. Nó chưa trưởng thành lắm, nhưng bạn có thể nhìn vào nó.


3

Một điều tôi chưa từng thấy được đề cập (ồ, tôi thấy Alcides đã đề cập đến HotRuby khi tôi đang viết và Nosredna đã đề cập đến GWT và Script #) và muốn ném ra có một số cách triển khai [ngôn ngữ chèn] -on- JavaScript (ví dụ: các trình dịch cho phép bạn chuyển đổi Ruby , Python , C # , Java , Obj-J / Cappuccino [tương tự Obj-C / Ca cao] hoặc Chế biến [cho Canvas] sang JavaScript trên máy khách hoặc trước khi triển khai [và một số trong đó cũng có các thư viện trừu tượng khác nhau]). Tất nhiên có một chi phí hoạt động nếu nó được dịch trên máy khách, nhưng nếu bạn cảm thấy thoải mái hơn với ngôn ngữ khác, nó sẽ cho phép bạn linh hoạt hơn.

Cá nhân, mặc dù vậy, tôi khuyên bạn nên học cách yêu thích JavaScript. Đó là một ngôn ngữ xuất sắc, mạnh mẽ và khá thanh lịch khi bạn biết đến nó. Tôi đang phải đối mặt với tình trạng khó xử ngược lại, đang cố gắng để có một giải pháp JavaScript / DOM phía máy chủ có khả năng đáp ứng tất cả các nhu cầu của tôi. / ý kiến ​​không mong muốn


Tôi đã đề cập đến GWT và Script #. Đối với những người quan tâm đến Script #, liên kết là dự
án.nikhilk.net/ScriptSharp

Cảm ơn bạn đã chỉ cho tôi đến Obj-J / Cappuccino. Thật tuyệt vời khi tạo các ứng dụng web và tôi chỉ mở nó vì bạn đã đề cập đến nó và tên (và liên quan đến ca cao) khiến tôi tò mò.
Timo

2

Không có JavaScript, nhưng nó sẽ phát triển. Phiên bản tiếp theo là "JavaScript Harmony" và bạn có thể tìm hiểu thêm nếu bạn Google.

Bây giờ và sau đó ai đó đề nghị đưa một trình thông dịch mã byte vào các trình duyệt cùng với JavaScript. Có lẽ sẽ không xảy ra, ít nhất là trong một lúc.

Tôi tình cờ yêu thích JavaScript. Nhưng có những giải pháp khác, bao gồm cả GWT, biên dịch Java thành JavaScript và Script #, biên dịch C # thành JavaScript.


2

Jquery (vẫn là javascript nhưng) nó thực sự sẽ giúp bạn, họ có hỗ trợ cho hầu hết các trình duyệt và nó thực sự không khó học lắm :)


2

JavaScript là ngôn ngữ tiếng Anh của web. Tiếng Anh trong lịch sử lan rộng vì nó có một lực lượng hải quân mạnh mẽ chinh phục các quốc gia khác nhau. Điều này có thể so sánh với các công ty lớn đã chinh phục web bằng JavaScript. Đó là một ngôn ngữ được kết hợp với nhau từ nhiều nguồn châu Âu (tiếng Hy Lạp, tiếng Latin, tiếng Đức, tiếng Pháp thậm chí một số từ tiếng Trung và Ấn Độ). JavaScript đã mượn rất nhiều khái niệm trong suốt nhiều năm từ các ngôn ngữ khác (cấu trúc, OO, chức năng). Tiếng Anh được nói ở những nơi khác nhau với sự thay đổi nhỏ về phương ngữ và giọng nói, điều đó có thể khiến việc hiểu khó hiểu. Giống như JavaScript có các trình duyệt khác nhau diễn giải nó một chút khác nhau.

Mặc dù ban đầu tiếng Anh rất dễ học, nhưng nó có cách phát âm rất không nhất quán và nhiều ngoại lệ hơn so với quy tắc. Giống như JavaScript, nó luôn luôn ở đó để cung cấp một bất ngờ.

Mặc dù có những điểm nhấn khác nhau, JavaScript là ngôn ngữ chung của web. Giống như bạn có thể không phải là người Anh và viết bằng tiếng Anh ở đây, mọi trình duyệt web đều có một mức độ hiểu tiếng Anh nhất định. IE6 giống như anh chàng nói trong lý lịch của mình rằng anh ta thông thạo, nhưng chỉ tham gia khóa học hai tuần về tiếng Anh như một ngoại ngữ.

Đã có những nỗ lực thay thế tiếng Anh như ngôn ngữ chính của thế giới, ví dụ Esperanto. Nhưng tất cả đều thất bại, vì hầu hết mọi người trên trái đất đều nói được một ít tiếng Anh. Theo cách tương tự, sẽ rất khó để giới thiệu các lựa chọn thay thế tốt hơn cho JavaScript.


1

Tôi không nghĩ Javascript sẽ sớm được thay thế. Đối với cách tiếp cận hoàn toàn khác với khách hàng giàu có, bạn có thể muốn điều tra Flex, đây là công nghệ dựa trên Flash.


1

Có lẽ một cái gì đó như haxe (xem haxe.org) có thể giúp bạn. Đây là một ngôn ngữ có vẻ sạch hơn JavaScript và có thể được biên dịch thành JavaScript, vì vậy nó có thể được chạy trong trình duyệt.

Tôi biết rằng đây không phải là một câu trả lời trực tiếp cho câu hỏi của bạn, tuy nhiên tôi nghĩ nó có thể thú vị với bạn.


1

Nhiều người hiểu rằng Javascript không phải là ngôn ngữ tốt nhất và đẹp nhất từng có. Tuy nhiên, hiện tại nó được hỗ trợ bởi các trình duyệt và do đó sẽ cực kỳ khó để giới thiệu một ngôn ngữ khác. Chúng tôi chỉ đơn giản là không cần một cuộc chiến trình duyệt khác.

Điều này giải thích tại sao tôi biết không có kế hoạch chuyển sang ngôn ngữ phía khách hàng khác.

Nhưng tôi nghĩ Javascript không tệ lắm nếu bạn bắt đầu nghĩ về mô hình DOM và cách người ta làm việc với nó. Nhiều thứ lộn xộn với JS là kết quả của cách mô hình DOM hoạt động.

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.