Kenapa coffeescript bukan javascript? [Tutup]

24

Saya pikir entah bagaimana membangun bahasa yang mengkompilasi ke bahasa lain terasa seperti ide yang buruk dari awal, bukannya belajar javascript dengan benar dari awal. Lihat ke Douglas Crockfords Good Parts dan kemudian ketagihan. Dan javascript tidak sulit - menulis kode yang bagus sulit terlepas dari bahasa! Jika Anda menulis kode jelek dalam javascript, maka Anda mungkin akan menulis kode jelek dalam coffeescript atau lattescript atau bagaimana rasanya hari itu. Dan untuk mengatakan bahwa sintaksis kopi itu indah, melewati saya. Saya suka kurung kurawal dan sintaks C - dan lebih disukai bekerja dalam bahasa yang seperti itu (maaf VB!). Dan lebih banyak mainan dan bahasa dan kerangka kerja untuk melakukan hal yang sama lagi rasanya tidak seperti kemajuan bagi saya lagi!

marko
sumber
5
Jadi, kompilasi Java ke bytecode dan C #, VB.NET dan bahasa NET lainnya. Mengkompilasi ke IL juga merupakan ide yang buruk?
Oded
10
Perbedaannya adalah orang biasanya tidak memprogram secara langsung dalam bytecode dan IL (kecuali saya salah) sedangkan pemrograman dalam Javascript adalah umum, maka itu mengejutkan / pertanyaannya.
wildpeaks
14
"pertanyaan" ini mengandung tiga poin seru dan tidak ada tanda tanya
azheglov
Jika Anda suka kode dalam IL maka saya salah. Saya hanya berpikir bahwa javascript sudah cukup. Dan ketika ia pindah ke ECMAScript 5 dan mode ketat akan diimplementasikan di browser maka itu akan menjadi lebih baik. Tetapi saya tidak mengatakan bahwa melakukan sesuatu yang lain sama sekali salah. Saya ingin diskusi tentang pro dan kontra, mengapa Anda lebih suka hal lain daripada js.
marko
3
___ menyebalkan, apakah saya benar?
TRiG

Jawaban:

21

CoffeeScript sebagian besar adalah sintaks yang berbeda di atas JavaScript.

Jika Anda memahami JavaScript dan benar-benar memahami JavaScript, maka Anda diizinkan menggunakan CoffeeScript jika Anda berkata, lebih suka spasi dan ->

Saya menganggap perbedaan antara JS & CS sama dengan berdebat

if (thing)
{
  // code
}

if (thing) {
  // code
}

(Yang terakhir lebih baik. Siapa pun yang melakukan yang pertama harus tertembak).

Bagaimanapun, masalah utama dengan coffeescript adalah membuat orang masuk ke dalamnya (terutama dari rails) dan kemudian menulis coffeescript tanpa mengetahui javascript.

Karenanya coffeescript memiliki semua kekurangan yang sama dengan jQuery. Mereka hanya lebih banyak titik masuk bagi programmer yang buruk untuk menulis lebih banyak JavaScript yang buruk. Kami benar-benar perlu memecahkan kualitas kode.

Raynos
sumber
8
offopic : the latter is better. Anyone who does the former should get shot- itu tergantung pada bahasa - saya suka gaya pertama, tetapi tidak kompatibel dengan JS, yang merupakan bahasa utama saya;)
c69
1
it depends on the language.Saya pikir maksudnya sehubungan dengan JavaScript.
Vardhaman Deshpande
1
Ada juga hal-hal yang tidak bisa Anda lakukan di CoffeeScript. Anda memiliki kontrol granular yang jauh lebih sedikit atas pembuatan objek dan sejenisnya.
Erik Reppen
Hanya dengan menambahkan komentar c69, memformat dengan cara pertama dapat menyebabkan masalah aktual: encosia.com/...
Buzzology
1
(Yang terakhir lebih baik. Siapa pun yang melakukan yang pertama harus tertembak) - Buktikan! Ekstremisme itu buruk, tidak peduli siapa, kapan, di mana.
hrishikeshp19
13

Ada kesalahpahaman tentang JavaScript sebagai bahasa "mainan". Hal ini menyebabkan orang menganggapnya sebagai sesuatu untuk dimainkan, daripada digunakan untuk sesuatu yang substansial. Tambahkan itu ke penghalang rendah untuk entri (yaitu Anda sudah memiliki browser dan editor teks, sehingga Anda dapat mulai menulis JavaScript), dan Anda berakhir dengan massa orang yang tidak mengerti bahasa yang menulis sejumlah kode, dan mengotori nama "JavaScript".

Ada adalah lebih tinggi (mutlak) jumlah JS buruk dari bahasa lain karena itu peningkatan visibilitas. Kebiasaan buruk menjadi hal biasa ketika kode buruk menyebar ke seluruh web dan orang-orang melihat sumber pada halaman yang belum diperiksa untuk akurasi atau praktik yang baik, dan JavaScript berakhir dengan nama yang buruk karenanya.

Karena alasan ini, orang merasa perlu untuk membangun bahasa yang lebih familiar (lebih "nyata") yang berubah menjadi JavaScript. Mereka menginginkan kenyamanan OO klasik, pengetikan statis, dan fitur lain yang muncul dalam bahasa lain. Mereka melihat monstrositas yang diciptakan oleh programmer yang tidak berpengalaman menggunakan JS, dan berpikir itu pasti hasil dari "kelemahan mendasar" (mengutip Google) dalam bahasa tersebut.

</rant>

Pokoknya, gunakan apa yang Anda inginkan. Saya akan tetap menggunakan objek literal saya, pengetikan dinamis, dan OO prototipal, terima kasih.

Ryan Kinal
sumber
2
Hei, tapi bukankah anak panah akan menyelesaikan semua masalah kita! (</
sarcasm
Amin untuk itu! (Bukan komentar panah!)
marko
Ini tahun 2018 dan JavaScript telah menyerah pada tekanan class: - /
ankush981
4

Saya pikir manfaatnya (penafian: Saya belum pernah menggunakan CoffeeScript selain bermain dengan contoh di situs web) adalah membuat JavaScript sedikit lebih intuitif untuk orang banyak yang melayani: yaitu orang-orang Ruby / Python.

Saya pribadi tidak melihat kebutuhan untuk CoffeeScript, karena saya suka sintaksis JavaScript. Namun, saya melihat bagaimana ini bisa bermanfaat.

Wayne Molina
sumber
1
Ya, saya pikir sintaks ruby ​​/ python terlihat mencurigakan bagi saya, karena saya sebagian besar telah mengkode dalam bahasa C-style seperti Javascript, C #, PHP, actioncript dan java.
marko
4
Ini terlihat baik bagi saya sebagian besar (kecuali ->dan =>sintaks) karena saya telah menggunakan sedikit Ruby / Python, tapi saya pikir kita tidak boleh mencoba untuk menyembunyikan JavaScript karena betapa mana-mana itu. Ya, beberapa di antaranya kikuk tetapi mempelajari JavaScript "murni" adalah IMO pengembalian investasi yang lebih baik karena menjamurnya JavaScript "murni" di alam liar.
Wayne Molina
0

Apakah Anda menyukai sintaks atau tidak itu subjektif, namun faktanya adalah CofeeScript menangani beberapa kutil JavaScript yang mengganggu. Tentu saja, masih belum jelas apakah perlu memperkenalkan bahasa baru dan mengatasi langkah kompilasi.

Nemanja Trifunovic
sumber
6
"menjengkelkan javascript kutil" CoffeeScript tidak, itu hanya memberi gula dan sintaksis. Saya dapat menghindari kutil sendiri, dan saya melakukannya.
Raynos