Neden javascript yerine coffeescript? [kapalı]


24

Her nasılsa, başka bir dile derleyen bir dil oluşturmak, javascript'i baştan düzgün bir şekilde öğrenmek yerine, başlangıçtan itibaren kötü bir fikir gibi geliyor. Douglas Crockfords Good Parts'e bakın ve sonra kancayı taktınız. Ve javascript zor değil - iyi kod yazmak dili ne olursa olsun zor! Javascript'te crappy kodu yazarsanız, kahve veya latsetcript'te crappy kodunu yazmanız ya da günün lezzetinin ne olacağını kesin olarak yazacaksınız. Ve coffeescript sözdiziminin güzel olduğunu söylemek beni geçer. Kıvrımlı ayraçlarımı ve C sözdizimini seviyorum - ve tercihen bunun gibi bir dilde çalışırdım (üzgünüm VB!). Ve aynı şeyi yapmak için daha fazla oyuncak, dil ve çerçeveler tekrar tekrar yapmaktan hoşlanmıyor!


5
Yani, bytecode ve C #, VB.NET ve IL'ye derleyen diğer .NET dillerini derlemek Java da kötü fikirlerdir?
Oded

10
Aradaki fark, insanlar genellikle doğrudan bytecode ve IL (yanılmıyorsam) programlamazlar, Javascript'te programlama ise yaygındır, bu yüzden onun şaşkınlığı / sorusu.
wildpeaks,

14
bu "soru" üç ünlem işareti içeriyor ve soru işareti içermiyor
azheglov 12.01.2011

IL kodlamak isterseniz o zaman hatalıyım. Sadece javascript'in yeterli olduğunu düşünüyorum. ECMAScript 5'e geçtiğinde ve sıkı mod tarayıcılarda uygulanacaksa daha iyi olacaktır. Ama başka bir şey yapmanın tamamen yanlış olduğunu söylemiyorum. Artıları ve eksilerini, neden js'den başka bir şeyi tercih ettiğinizi tartışmak istiyorum.
marko,

3
___ berbat, haklı mıyım?
TRiG

Yanıtlar:


21

CoffeeScript, çoğunlukla JavaScript'in üstünde farklı bir sözdizimidir.

JavaScript’i anlıyorsanız ve gerçekten JavaScript’i anlıyorsanız, söylerseniz CoffeeScript kullanmanıza izin verilir, ->

JS ve CS arasındaki farkın tartışmakla aynı olduğunu düşünüyorum.

if (thing)
{
  // code
}

if (thing) {
  // code
}

(İkincisi daha iyidir. Birincisini yapan herkes vurulmalıdır).

Her neyse, coffeescript ile ilgili asıl mesele insanların içine girmesini sağlamak (çoğunlukla raylardan) ve sonra javascript'i bilmeden coffeescript yazmaktır.

Bu nedenle, coffeescript, jQuery ile aynı kusurlara sahiptir. Sadece kötü programcıların daha kötü JavaScript yazması için giriş noktaları. Kod kalitesini bir şekilde çözmemiz gerekiyor.


8
offopic : the latter is better. Anyone who does the former should get shot- dile bağlı - ilk stili seviyorum, ancak ana dilim olan JS ile uyumlu değil ;)
c69 12:11

1
it depends on the language.Bence JavaScript ile ilgili demek istedi.
Vardhaman Deshpande

1
CoffeeScript'te yapamayacağınız şeyler de var. Nesne oluşturma ve benzerleri üzerinde çok daha az ayrıntılı denetiminiz vardır.
Erik,

Sadece c69'un yorumuna eklemek, ilk yolu biçimlendirmek gerçek sorunlara yol açabilir: encosia.com/…
Buzzology

1
(İkincisi daha iyidir. Eskisini yapan herkes vurulmalıdır) - Kanıtla! Aşırılıkçılık kim, ne zaman, nerede olursa olsun kötüdür.
hrishikeshp19

13

JavaScript’in “oyuncak” dili olarak yanlış algılanması var. Bu, insanların kayda değer bir şey için kullanmak yerine, oynanacak bir şey olarak görmelerine neden olur. Bunu giriş engelinin düşük seviyesine ekleyin (yani zaten bir tarayıcınız ve bir metin editörünüz var, bu yüzden JavaScript yazmaya başlayabilirsiniz) ve sonunda dili büyük miktarda kod yazarken dilini anlamayan bir grup insanla karşılaşırsınız. "JavaScript" adını yazdırarak.

Orada olduğunu çünkü artan görünürlük diğer dillere göre daha kötü JS daha yüksek (mutlak) miktarı. Kötü kodlar web’de yayıldıkça kötü alışkanlıklar yaygınlaşır ve insanlar doğruluk veya iyi uygulama için onaylanmamış sayfalarda kaynak görür ve JavaScript bu nedenle kötü bir adla sonuçlanır.

Bu nedenlerden dolayı insanlar JavaScript'e geçen daha tanıdık (daha "gerçek") diller oluşturma ihtiyacı duyuyorlar. Klasik OO'nun, statik yazmanın ve diğer dillerde görünen diğer özelliklerin rahatlığını istiyorlar. JS kullanan deneyimsiz programcılar tarafından yaratılan canavarlıkları görüyorlar ve bunun dilde "Google’ın alıntı yapması" nın temel hataları "nın bir sonucu olması gerektiğini düşünüyorlar .

</ Rant>

Neyse, ne istersen onu kullan. Nesnemin değişmezleri, dinamik yazma ve prototip OO'ma sadık kalacağım, teşekkürler.


2
Hey ama dart tüm sorunlarımızı çözmeyecek! (</sarcasm>)
Raynos 12:11

Amin! (Dart yorum!)
marko 12:11

2018 ve JavaScript şu baskıya yenildi class: - /
ankush981

4

Sanırım yararı (feragatname: Web sitesinde örnekle oynamanın ötesinde CoffeeScript'i kullanmadım), JavaScript'i hazırladığı kalabalık için biraz daha sezgisel hale getiriyor: yani Ruby / Python insanları.

JavaScript sözdizimini sevdiğim için kişisel olarak CoffeeScript'e ihtiyaç duymuyorum. Ancak, nasıl faydalı olabileceğini görüyorum.


1
Evet, ruby ​​/ python sözdiziminin bana şüpheli göründüğünü düşünüyorum, çünkü çoğunlukla Javascript, C #, PHP, actionscript ve java gibi C tarzı dillerde kod yazıyordum.
marko,

4
Ruby / Python'u biraz kullandığımdan beri çoğunlukla ( ->ve =>sözdizimi hariç) bana iyi geliyor , ancak her yerde olduğu için JavaScript'i gizlemeye çalışmamamız gerektiğini düşünüyorum. Evet, bazıları sakar ama "saf" JavaScript öğrenmek, IMO'nun vahşi doğada "saf" JavaScript'in çoğalması nedeniyle daha iyi bir yatırım getirisi olduğunu gösteriyor.
Wayne Molina

0

Sözdizimini beğenip beğenmemeniz öznel olsa da, gerçek şu ki, CofeeScript bazı can sıkıcı JavaScript siğilleriyle ilgileniyor. Elbette, yeni bir dil eklemeye ve derleme adımıyla baş etmeye değip değmeyeceği hala belirsizliğini koruyor.


6
"can sıkıcı javascript siğiller" CoffeeScript değil, sadece şeker ve sözdizimi veriyor. Siğilleri kendimden uzak tutabilirim.
Raynos,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.