Tại sao coffeescript thay vì javascript? [đóng cửa]


24

Tôi nghĩ bằng cách nào đó xây dựng một ngôn ngữ biên dịch sang ngôn ngữ khác cảm thấy như một ý tưởng tồi ngay từ đầu, thay vì học javascript đúng cách ngay từ đầu. Nhìn vào Douglas Crockfords Các bộ phận tốt và sau đó bạn bị cuốn hút. Và javascript không khó - viết mã tốt là khó bất kể ngôn ngữ! Nếu bạn viết mã crappy trong javascript, thì bạn có thể sẽ viết mã crappy bằng coffeescript hoặc lattescript hoặc hương vị sẽ là gì trong ngày. Và để nói rằng cú pháp coffeescript là đẹp vượt qua tôi. Tôi thích các dấu ngoặc nhọn và cú pháp C của tôi - và tốt nhất là sẽ làm việc trong một ngôn ngữ giống như vậy (xin lỗi VB!). Và nhiều đồ chơi và ngôn ngữ và khuôn khổ để làm điều tương tự một lần nữa cảm thấy không thích tiến bộ với tôi nữa!


5
Vì vậy, Java biên dịch sang mã byte và C #, VB.NET và các ngôn ngữ .NET khác biên dịch sang IL cũng là những ý tưởng tồi?
Oded

10
Sự khác biệt là mọi người thường không lập trình trực tiếp bằng mã byte và IL (trừ khi tôi nhầm) trong khi lập trình trong Javascript là phổ biến, do đó bất ngờ / câu hỏi của anh ta.
wildpeaks

14
"câu hỏi" này chứa ba dấu chấm than và không có dấu chấm hỏi
azheglov

Nếu bạn thích viết mã trong IL thì tôi đã nhầm. Tôi chỉ nghĩ rằng javascript là đủ. Và khi nó chuyển sang ECMAScript 5 và chế độ nghiêm ngặt sẽ được thực hiện trong các trình duyệt thì nó sẽ còn tốt hơn nữa. Nhưng tôi không nói rằng làm việc khác là hoàn toàn sai. Tôi muốn một cuộc thảo luận về những ưu và nhược điểm, về lý do tại sao bạn thích cái gì khác hơn js.
marko

3
___ hút, tôi có đúng không?
TRiG

Câu trả lời:


21

CoffeeScript chủ yếu là một cú pháp khác nhau trên JavaScript.

Nếu bạn hiểu JavaScript và thực sự hiểu JavaScript, thì bạn được phép sử dụng CoffeeScript nếu bạn nói, thích khoảng trắng và ->

Tôi coi sự khác biệt giữa JS & CS giống như tranh luận về

if (thing)
{
  // code
}

if (thing) {
  // code
}

(cái sau tốt hơn. Bất cứ ai làm cái trước nên bị bắn).

Dù sao, vấn đề chính với coffeescript là có người vào đó (chủ yếu từ đường ray) và sau đó viết coffeescript mà không biết javascript.

Do đó, coffeescript có tất cả các lỗi tương tự như jQuery. Chúng chỉ là nhiều điểm vào để các lập trình viên xấu viết JavaScript xấu hơn. Chúng tôi thực sự cần phải giải quyết chất lượng mã bằng cách nào đó.


8
offopic : the latter is better. Anyone who does the former should get shot- nó phụ thuộc vào ngôn ngữ - tôi thích phong cách đầu tiên, nhưng nó không tương thích với JS, đó là ngôn ngữ chính của tôi;)
c69

1
it depends on the language.Tôi nghĩ rằng ông có ý liên quan đến JavaScript.
Vardhaman Deshpande

1
Cũng có những thứ bạn không thể làm trong CoffeeScript. Bạn có quyền kiểm soát chi tiết ít hơn đáng kể đối với việc tạo đối tượng và tương tự.
Erik Reppen

Chỉ cần thêm vào nhận xét của c69
Buzzology

1
(cái sau tốt hơn. Bất cứ ai làm cái trước nên bị bắn) - Chứng minh điều đó! Chủ nghĩa cực đoan chỉ là xấu cho dù ai, khi nào, ở đâu.
hrishikeshp19

13

Có một quan niệm sai lầm về JavaScript như một ngôn ngữ "đồ chơi". Điều này khiến mọi người coi nó như một thứ gì đó để chơi, hơn là được sử dụng cho bất cứ thứ gì đáng kể. Thêm vào đó là rào cản thấp đối với mục nhập (nghĩa là bạn đã có trình duyệt và trình soạn thảo văn bản, do đó bạn có thể bắt đầu viết JavaScript) và kết thúc với hàng loạt người không hiểu ngôn ngữ viết số lượng lớn mã và hờn dỗi cái tên "JavaScript".

một cao hơn (tuyệt đối) lượng JS xấu hơn các ngôn ngữ khác vì lý do đó tầm nhìn tăng lên. Thói quen xấu trở nên phổ biến khi mã xấu lan truyền trên web và mọi người xem nguồn trên các trang chưa được xem xét về tính chính xác hoặc thực tiễn tốt và JavaScript kết thúc bằng một tên xấu vì nó.

Vì những lý do này, mọi người cảm thấy cần phải xây dựng các ngôn ngữ quen thuộc hơn (thực tế hơn) để dịch mã sang JavaScript. Họ muốn sự thoải mái của OO cổ điển, gõ tĩnh và các tính năng khác xuất hiện trong các ngôn ngữ khác. Họ nhìn thấy những điều quái dị được tạo ra bởi các lập trình viên thiếu kinh nghiệm sử dụng JS và nghĩ rằng đó phải là kết quả của "lỗ hổng cơ bản" (để trích dẫn Google) bằng ngôn ngữ.

</ rant>

Dù sao, sử dụng những gì bạn muốn. Tôi sẽ gắn bó với nghĩa đen của đối tượng, gõ động và OO nguyên mẫu, cảm ơn.


2
Này nhưng không phải là phi tiêu sẽ giải quyết tất cả vấn đề của chúng ta! (</ mỉa mai>)
Raynos

Amen đến đó! (Không phải bình luận phi tiêu!)
marko

Đó là năm 2018 và JavaScript đã chịu khuất phục trước áp lực của class: - /
ankush981

4

Tôi nghĩ lợi ích (từ chối trách nhiệm: Tôi chưa sử dụng CoffeeScript ngoài việc chơi với ví dụ trên trang web) là nó làm cho JavaScript trực quan hơn một chút cho đám đông mà nó phục vụ: tức là người Ruby / Python.

Cá nhân tôi không thấy nhu cầu về CoffeeScript, vì tôi thích cú pháp JavaScript. Tuy nhiên, tôi thấy làm thế nào nó có thể hữu ích.


1
Vâng, tôi nghĩ rằng cú pháp ruby ​​/ python có vẻ đáng ngờ đối với tôi, bởi vì tôi chủ yếu viết mã bằng các ngôn ngữ kiểu C như Javascript, C #, PHP, Actioncript và java.
marko

4
Nó có vẻ tốt đối với tôi (trừ cú pháp ->=>cú pháp) vì tôi đã sử dụng Ruby / Python một chút, nhưng tôi nghĩ chúng ta không nên cố gắng che giấu JavaScript do mức độ phổ biến của nó. Đúng, một số trong số đó là khó hiểu nhưng học JavaScript "thuần túy" là IMO mang lại lợi tức đầu tư tốt hơn do sự phổ biến của JavaScript "thuần túy" trong tự nhiên.
Wayne Molina

0

Cho dù bạn có thích cú pháp hay không là chủ quan, tuy nhiên thực tế là CofeeScript sẽ chăm sóc một số mụn cóc JavaScript gây phiền nhiễu. Tất nhiên, vẫn chưa rõ liệu có đáng để giới thiệu một ngôn ngữ mới và đối phó với bước biên dịch hay không.


6
"javascript gây phiền nhiễu" CoffeeScript không, nó chỉ cung cấp đường và cú pháp. Tôi có thể tránh được mụn cóc, và tôi làm.
Raynos
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.