ทำไมต้องใช้ coffeescript แทน javascript [ปิด]


24

ฉันคิดว่าการสร้างภาษาที่เรียบเรียงเป็นภาษาอื่นนั้นให้ความรู้สึกที่ไม่ดีตั้งแต่เริ่มต้นแทนที่จะเรียนรู้จาวาสคริปต์อย่างถูกต้องตั้งแต่เริ่มต้น ดูที่ Douglas Crockfords Good Parts แล้วคุณจะติดงอมแงม และจาวาสคริปต์ก็ไม่ยาก - การเขียนโค้ดที่ดีนั้นทำได้ยากโดยไม่คำนึงถึงภาษา! ถ้าคุณเขียนโค้ดเส็งเคร็งใน javascript คุณจะสามารถเขียนโค้ดเส็งเคร็งใน coffeescript หรือ lattescript หรือรสชาติของวันนั้น และจะบอกว่าไวยากรณ์ coffeescript สวยงามผ่านฉัน ฉันชอบวงเล็บปีกกาของฉันและไวยากรณ์ C - และควรจะทำงานในภาษาที่เป็นเช่นนั้น (ขออภัย VB!) และมีของเล่นและภาษาและกรอบการทำงานมากกว่าเดิมที่ทำสิ่งเดียวกันอีกครั้งรู้สึกว่าฉันไม่ก้าวหน้าอีกต่อไป!


5
ดังนั้น Java ที่คอมไพล์ไปยัง bytecode และ C #, VB.NET และภาษาอื่น ๆ . NET ที่คอมไพล์กับ IL ก็เป็นแนวคิดที่ไม่ดีเช่นกัน?
Oded

10
ความแตกต่างคือคนมักจะไม่เขียนโปรแกรมโดยตรงใน bytecode และ IL (เว้นแต่ว่าฉันเข้าใจผิด) ในขณะที่การเขียนโปรแกรมใน Javascript เป็นเรื่องปกติดังนั้นเขา / คำถามแปลกใจ
wildpeaks

14
"คำถาม" นี้มีสามเครื่องหมายอัศเจรีย์และไม่มีเครื่องหมายคำถาม
azheglov

หากคุณต้องการรหัสใน IL แล้วฉันผิด ฉันแค่คิดว่าจาวาสคริปต์นั้นเพียงพอแล้ว และเมื่อมันย้ายไปที่ ECMAScript 5 และโหมดเข้มงวดจะใช้งานในเบราว์เซอร์ก็จะดีขึ้น แต่ฉันไม่ได้บอกว่าการทำอย่างอื่นนั้นผิดทั้งหมด ฉันต้องการพูดคุยเกี่ยวกับข้อดีข้อเสียว่าทำไมคุณถึงชอบมากกว่า js
marko

3
___ แย่จังฉันถูกไหม
TRiG

คำตอบ:


21

CoffeeScript ส่วนใหญ่เป็นไวยากรณ์ที่แตกต่างกันด้านบนของ JavaScript

หากคุณเข้าใจ JavaScript และเข้าใจ JavaScript อย่างแท้จริงดังนั้นคุณจะได้รับอนุญาตให้ใช้ CoffeeScript ถ้าคุณบอกว่าชอบ whitespace และ ->

ฉันพิจารณาความแตกต่างระหว่าง JS & CS ให้เหมือนกับการโต้เถียง

if (thing)
{
  // code
}

if (thing) {
  // code
}

(อันหลังดีกว่าใคร ๆ ที่ทำอดีตควรถูกยิง)

อย่างไรก็ตามปัญหาหลักของ coffeescript คือการให้ผู้คนเข้ามา (ส่วนใหญ่มาจากทางรถไฟ) แล้วเขียน coffeescript โดยไม่ทราบว่าเป็นจาวาสคริปต์

ดังนั้น coffeescript จึงมีข้อบกพร่องเหมือนกับ jQuery พวกเขาเป็นเพียงจุดเริ่มต้นสำหรับโปรแกรมเมอร์ที่ไม่ดีที่จะเขียน JavaScript ที่ไม่ดีมากขึ้น เราจำเป็นต้องแก้ปัญหาคุณภาพของรหัสอย่างใด


8
offopic : the latter is better. Anyone who does the former should get shot- มันขึ้นอยู่กับภาษา - ฉันชอบสไตล์แรก แต่มันไม่เข้ากันได้กับ JS ซึ่งเป็นภาษาหลักของฉัน;)
c69

1
it depends on the language.ฉันคิดว่าเขาหมายถึงจาวาสคริปต์
Vardhaman Deshpande

1
นอกจากนี้ยังมีสิ่งที่คุณไม่สามารถทำได้ใน CoffeeScript คุณมีการควบคุมที่ละเอียดกว่าน้อยกว่าการสร้างวัตถุและสิ่งที่คล้ายกัน
Erik Reppen

เพียงแค่เพิ่มความคิดเห็นของ c69 การจัดรูปแบบวิธีแรกสามารถนำไปสู่ปัญหาที่แท้จริง: encosia.com/…
Buzzology

1
(คนหลังดีกว่าใคร ๆ ที่ทำอดีตควรถูกยิง) - พิสูจน์! ลัทธิหัวรนแรงเป็นเรื่องเลวร้ายไม่ว่าใครเมื่อไหร่ที่ไหน
hrishikeshp19

13

มีความเข้าใจผิดของ JavaScript เป็นภาษา "ของเล่น" สิ่งนี้ทำให้คนมองว่ามันเป็นสิ่งที่จะเล่นกับแทนที่จะใช้สำหรับสิ่งที่เป็นกอบเป็นกำ เพิ่มเข้าไปในสิ่งกีดขวางต่ำสำหรับการเข้า (เช่นคุณมีเบราว์เซอร์และโปรแกรมแก้ไขข้อความอยู่แล้วเพื่อให้คุณสามารถเริ่มเขียน JavaScript) และคุณก็จบลงด้วยคนจำนวนมากที่ไม่เข้าใจภาษาที่เขียนโค้ดจำนวนมากและ การกลั่นแกล้งชื่อ "JavaScript"

มีจำนวน JS ที่ไม่ถูกต้องสูงกว่า (สัมบูรณ์) มากกว่าภาษาอื่นเนื่องจากการมองเห็นที่เพิ่มขึ้น นิสัยที่ไม่ดีกลายเป็นเรื่องธรรมดาเนื่องจากโค้ดไม่ดีแพร่กระจายไปทั่วทั้งเว็บและผู้คนดูแหล่งข้อมูลบนหน้าเว็บที่ไม่ได้รับการตรวจสอบความถูกต้องหรือแนวปฏิบัติที่ดีและ JavaScript ก็จบลงด้วยชื่อที่ไม่ดีเพราะมัน

ด้วยเหตุผลเหล่านี้ผู้คนรู้สึกว่าจำเป็นต้องสร้างภาษาที่คุ้นเคยมากขึ้น (มากกว่า "ของจริง") ที่เปลี่ยนไปใช้จาวาสคริปต์ พวกเขาต้องการความสะดวกสบายของ OO แบบคลาสสิกการพิมพ์แบบสแตติกและคุณสมบัติอื่น ๆ ที่ปรากฏในภาษาอื่น พวกเขาเห็นสิ่งประหลาดที่สร้างขึ้นโดยโปรแกรมเมอร์ที่ไม่มีประสบการณ์โดยใช้ JS และคิดว่ามันจะต้องเป็นผลมาจาก "ข้อบกพร่องพื้นฐาน" (เพื่ออ้างถึง Google) ในภาษา

</ พูดจาโผงผาง>

อย่างไรก็ตามใช้สิ่งที่คุณต้องการ ฉันจะยึดตามตัวอักษรวัตถุของฉันการพิมพ์แบบไดนามิกและต้นแบบ OO ขอบคุณ


2
เฮ้ แต่ไม่โผจะแก้ปัญหาทั้งหมดของเรา! (</
sarcasm

สาธุนั่น! (ไม่ใช่ความคิดเห็นโผ!)
marko

มันคือปี 2018 และ JavaScript ได้ยอมแพ้ต่อแรงกดดันของclass: - /
ankush981

4

ฉันคิดว่าประโยชน์ (ข้อจำกัดความรับผิดชอบ: ฉันไม่ได้ใช้ CoffeeScript นอกเหนือจากการเล่นกับตัวอย่างบนเว็บไซต์) คือมันทำให้ JavaScript ง่ายขึ้นอีกเล็กน้อยสำหรับฝูงชนที่รองรับ: เช่นคน Ruby / Python

โดยส่วนตัวฉันไม่เห็นความต้องการ CoffeeScript เนื่องจากฉันชอบไวยากรณ์ JavaScript อย่างไรก็ตามฉันเห็นว่ามันมีประโยชน์อย่างไร


1
ใช่ฉันคิดว่าไวยากรณ์ ruby ​​/ python ดูน่าสงสัยสำหรับฉันเพราะฉันส่วนใหญ่ได้รับการเข้ารหัสในภาษา C-style เช่น Javascript, C #, PHP, actionscript และ java
marko

4
มันดูดีสำหรับฉันเป็นส่วนใหญ่ (ยกเว้น->และ=>ไวยากรณ์) เนื่องจากฉันใช้ Ruby / Python เล็กน้อย แต่ฉันคิดว่าเราไม่ควรพยายามซ่อน JavaScript เนื่องจากความแพร่หลาย ใช่มันบางส่วนเป็น clunky แต่การเรียนรู้ JavaScript "บริสุทธิ์" เป็น IMO ผลตอบแทนการลงทุนที่ดีขึ้นเนื่องจากการแพร่กระจายของ JavaScript "บริสุทธิ์" ในป่า
Wayne Molina

0

ไม่ว่าคุณจะชอบไวยากรณ์หรือไม่ก็ตาม แต่ความจริงก็คือ CofeeScript ดูแลหูด JavaScript ที่น่ารำคาญ แน่นอนว่ามันยังคงไม่ชัดเจนถ้ามันคุ้มค่าที่จะแนะนำภาษาใหม่และการรับมือกับขั้นตอนการรวบรวม


6
"หูดจาวาสคริปต์ที่น่ารำคาญ" CoffeeScript ไม่ได้ให้แค่น้ำตาลและซินแท็กซ์ ฉันสามารถหลีกเลี่ยงหูดเองได้และฉันก็ทำได้
Raynos
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.