Dlaczego coffeescript zamiast javascript? [Zamknięte]

24

Myślę, że jakoś zbudowanie języka, który kompiluje się w innym języku, od samego początku wydaje się złym pomysłem, zamiast od samego początku poprawnie uczyć się javascript. Zajrzyj do Douglas Crockfords Good Parts, a potem jesteś uzależniony. A javascript nie jest trudny - pisanie dobrego kodu jest trudne niezależnie od języka! Jeśli napiszesz kiepski kod w javascript, prawdopodobnie napiszesz kiepski kod w coffeescript lub lattescript lub jaki będzie smak tego dnia. Powiedzieć mi, że składnia coffeescript jest piękna. Lubię moje nawiasy klamrowe i składnię C. - i najlepiej działałoby w takim języku (przepraszam VB!). Więcej zabawek, języków i platform do robienia tego samego od nowa nie wydaje mi się już postępem!

marko
źródło
5
Tak więc kompilacja Java do kodu bajtowego i C #, VB.NET i innych języków .NET kompilujących do IL to również złe pomysły?
Oded
10
Różnica polega na tym, że ludzie zwykle nie programują bezpośrednio w kodzie bajtowym i IL (chyba, że ​​się mylę), podczas gdy programowanie w JavaScript jest powszechne, stąd jego zaskoczenie / pytanie.
wildpeaks,
14
to „pytanie” zawiera trzy wykrzykniki i brak znaków zapytania
azheglov
Jeśli lubisz kodować w IL, to się mylę. Myślę tylko, że javascript jest w tym wystarczający. A kiedy przejdzie do ECMAScript 5, a tryb ścisły zostanie zaimplementowany w przeglądarkach, będzie jeszcze lepiej. Ale nie twierdzę, że robienie czegoś innego jest całkowicie złe. Chcę omówić zalety i wady, dlaczego wolisz coś innego niż js.
marko,
3
___ do bani, mam rację?
TRiG

Odpowiedzi:

21

CoffeeScript to w większości inna składnia oprócz JavaScript.

Jeśli rozumiesz JavaScript i naprawdę rozumiesz JavaScript, możesz używać CoffeeScript, jeśli mówisz, wolisz spacje i ->

Uważam, że różnica między JS i CS jest taka sama, jak w kłótniach

if (thing)
{
  // code
}

if (thing) {
  // code
}

(to drugie jest lepsze. Każdy, kto robi to pierwsze, powinien zostać zastrzelony).

W każdym razie głównym problemem z coffeescript jest to, że ludzie wchodzą do niego (głównie z szyn), a następnie piszą coffeescript bez znajomości javascript.

Dlatego coffeescript ma te same wady co jQuery. Są to po prostu więcej punktów wejścia dla złych programistów, którzy piszą więcej złego JavaScript. Naprawdę musimy jakoś rozwiązać jakość kodu.

Raynos
źródło
8
offopic : the latter is better. Anyone who does the former should get shot- zależy od języka - lubię pierwszy styl, ale nie jest kompatybilny z JS, który jest moim głównym językiem;)
69
1
it depends on the language.Myślę, że miał na myśli w odniesieniu do JavaScript.
Vardhaman Deshpande
1
Są też rzeczy, których po prostu nie można zrobić w CoffeeScript. Masz znacznie mniej szczegółową kontrolę nad tworzeniem obiektów i tym podobne.
Erik Reppen
Po prostu dodając do komentarza c69, formatowanie pierwszego sposobu może prowadzić do faktycznych problemów: encosia.com/…
Buzzology
1
(to drugie jest lepsze. Każdy, kto robi to pierwsze, powinien zostać zastrzelony) - Udowodnij to! Ekstremizm jest po prostu zły, bez względu na to, kto, kiedy, gdzie.
hrishikeshp19
13

JavaScript jest błędnie rozumiany jako język „zabawki”. To powoduje, że ludzie uważają to za coś, z czym można się bawić, a nie wykorzystywać do czegoś istotnego. Dodaj to do niskiej bariery wejścia (tj. Masz już przeglądarkę i edytor tekstu, abyś mógł zacząć pisać JavaScript), a skończysz z masami ludzi, którzy nie rozumieją języka piszącego masowe ilości kodu, i nazywając nazwę „JavaScript”.

Tam jest wyższy (bezwzględna) ilość złych JS niż innych języków z tego powodu zwiększonej widoczności. Złe nawyki stają się powszechne, gdy zły kod rozprzestrzenia się w Internecie, a ludzie przeglądają źródła na stronach, które nie zostały sprawdzone pod kątem dokładności lub dobrych praktyk, a JavaScript z tego powodu ma złą nazwę.

Z tych powodów ludzie czują potrzebę budowania bardziej znanych (bardziej „prawdziwych”) języków, które można przenosić na JavaScript. Chcą komfortu klasycznego OO, pisania statycznego i innych funkcji pojawiających się w innych językach. Widzą potworności stworzone przez niedoświadczonych programistów używających JS i uważają, że musi to wynikać z „fundamentalnych wad” (by zacytować Google) w języku.

</rant>

W każdym razie użyj tego, co chcesz. Będę trzymać się moich literałów obiektowych, dynamicznego pisania i prototypowego OO, dzięki.

Ryan Kinal
źródło
2
Hej, ale strzałka nie rozwiąże całego naszego problemu! (</sarcasm>)
Raynos,
Zgadzam się! (Nie komentarz do strzałki!)
marko
Jest 2018, a JavaScript uległ presji class: - /
ankush981
4

Myślę, że korzyścią (zrzeczenie się: nie używałem CoffeeScript poza graniem z przykładem na stronie) jest to, że JavaScript jest nieco bardziej intuicyjny dla tłumu, do którego trafia: tj. Ludzi Ruby / Python.

Osobiście nie widzę potrzeby używania CoffeeScript, ponieważ podoba mi się składnia JavaScript. Widzę jednak, jak to może być przydatne.

Wayne Molina
źródło
1
Tak, myślę, że składnia ruby ​​/ python wydaje mi się podejrzana, ponieważ pisałem głównie w językach C, takich jak Javascript, C #, PHP, ActionScript i Java.
marko
4
Wygląda mi to w większości dobrze (oprócz składni ->i =>), ponieważ trochę użyłem Ruby / Python, ale myślę, że nie powinniśmy próbować ukrywać JavaScript ze względu na jego wszechobecność. Tak, niektóre z nich są niezgrabne, ale uczenie się „czystego” JavaScript to IMO, lepszy zwrot z inwestycji ze względu na rozprzestrzenianie się „czystego” JavaScript na wolności.
Wayne Molina,
0

Niezależnie od tego, czy lubisz składnię, czy nie, jest ona subiektywna, jednak faktem jest, że CofeeScript zajmuje się irytującymi brodawkami JavaScript. Oczywiście nadal nie jest jasne, czy warto wprowadzić nowy język i poradzić sobie z krokiem kompilacji.

Nemanja Trifunovic
źródło
6
„irytujące brodawki javascript” CoffeeScript nie, daje tylko cukier i składnię. Sam mogę uniknąć brodawek i robię to.
Raynos,