¿Por qué coffeescript en lugar de javascript? [cerrado]

24

Creo que de alguna manera construir un lenguaje que se compila en otro idioma parece una mala idea desde el principio, en lugar de aprender JavaScript correctamente desde el principio. Mira Douglas Crockfords Good Parts y luego estás enganchado. Y javascript no es difícil: escribir un buen código es difícil independientemente del idioma. Si escribes código malo en javascript, entonces probablemente escribirás código malo en coffeescript o lattescript o cuál será el sabor del día. Y decir que la sintaxis de coffeescript es hermosa me pasa. Me gustan mis llaves y la sintaxis C, y preferiblemente trabajaría en un lenguaje que sea así (¡perdón VB!). ¡Y más juguetes e idiomas y marcos para hacer lo mismo una vez más ya no me parecen progresos!

marko
fuente
55
Entonces, ¿compilar Java en bytecode y C #, VB.NET y otros lenguajes .NET compilando en IL también son malas ideas?
Oded
10
La diferencia es que las personas generalmente no programan directamente en bytecode e IL (a menos que me equivoque), mientras que la programación en Javascript es común, de ahí su sorpresa / pregunta.
wildpeaks
14
esta "pregunta" contiene tres signos de exclamación y ningún signo de interrogación
azheglov
Si te gusta codificar en IL, entonces estoy equivocado. Solo estoy pensando que javascript es suficiente. Y cuando se pasa a ECMAScript 5 y el modo estricto se implementará en los navegadores, será aún mejor. Pero no digo que hacer otra cosa esté completamente mal. Quiero una discusión de los pros y los contras, de por qué preferirías algo más que js.
marko
3
___ apesta, ¿estoy en lo cierto?
TRiG

Respuestas:

21

CoffeeScript es principalmente una sintaxis diferente a la de JavaScript.

Si entiendes JavaScript y realmente entiendes JavaScript, entonces puedes usar CoffeeScript si dices, prefieres espacios en blanco y ->

Considero que la diferencia entre JS y CS es la misma que discutir sobre

if (thing)
{
  // code
}

if (thing) {
  // code
}

(lo último es mejor. Cualquiera que haga lo primero debería recibir un disparo).

De todos modos, el problema principal con coffeescript es que las personas entren (principalmente desde rieles) y luego escriban coffeescript sin saber javascript.

Por lo tanto, coffeescript tiene todos los mismos defectos que jQuery. Son solo más puntos de entrada para que los programadores malos escriban más JavaScript incorrecto. Realmente necesitamos resolver la calidad del código de alguna manera.

Raynos
fuente
8
offopic : the latter is better. Anyone who does the former should get shot- depende del idioma - me gusta el primer estilo, pero no es compatible con JS, que es mi idioma principal;)
c69
1
it depends on the language.Creo que se refería con respecto a JavaScript.
Vardhaman Deshpande
1
También hay cosas que simplemente no puedes hacer en CoffeeScript. Tiene un control considerablemente menos granular sobre la creación de objetos y similares.
Erik Reppen
Simplemente agregando al comentario de c69, formatear la primera forma puede conducir a problemas reales: encosia.com/…
Buzzology
1
(lo último es mejor. Cualquiera que haga lo primero debería recibir un disparo) - ¡Pruébalo! El extremismo es malo, no importa quién, cuándo y dónde.
hrishikeshp19
13

Existe una idea errónea de JavaScript como lenguaje de "juguete". Esto hace que las personas lo consideren como algo con lo que jugar, en lugar de usarlo para algo sustancial. Agregue eso a la barrera de entrada baja (es decir, ya tiene un navegador y un editor de texto, para que pueda comenzar a escribir JavaScript), y termine con una gran cantidad de personas que no entienden el idioma escribiendo cantidades masivas de código, y sulying el nombre "JavaScript".

No es una mayor (absoluta) cantidad de malas JS que otros idiomas, debido a que el aumento de la visibilidad. Los malos hábitos se vuelven comunes a medida que el mal código se propaga por la web y las personas ven la fuente en páginas que no han sido verificadas por su precisión o buena práctica, y JavaScript termina con un mal nombre debido a eso.

Por estas razones, las personas sienten la necesidad de construir lenguajes más familiares (más "reales") que se trasladen a JavaScript. Quieren la comodidad de la OO clásica, la escritura estática y otras características que aparecen en otros idiomas. Ven las monstruosidades creadas por programadores inexpertos que utilizan JS, y piensan que debe ser el resultado de los "defectos fundamentales" (para citar a Google) en el lenguaje.

</rant>

De todos modos, usa lo que quieras. Me quedaré con mis literales de objetos, escritura dinámica y prototipos de OO, gracias.

Ryan Kinal
fuente
2
¡Oye, pero el dardo no resolverá todos nuestros problemas! (</sarcasm>)
Raynos
¡Amen a eso! (¡No es el comentario del dardo!)
marko
Es 2018 y JavaScript ha sucumbido a la presión de class: - /
ankush981
4

Creo que el beneficio (descargo de responsabilidad: no he usado CoffeeScript más allá de jugar con el ejemplo en el sitio web) es que hace que JavaScript sea un poco más intuitivo para la multitud a la que atiende: es decir, la gente de Ruby / Python.

Personalmente, no veo la necesidad de CoffeeScript, ya que me gusta la sintaxis de JavaScript. Sin embargo, veo cómo podría ser útil.

Wayne Molina
fuente
1
Sí, creo que la sintaxis de ruby ​​/ python me parece sospechosa, porque he codificado principalmente en lenguajes de estilo C como Javascript, C #, PHP, actionscript y java.
marko
44
Me parece bien principalmente (excepto la sintaxis ->y =>) ya que he usado Ruby / Python un poco, pero creo que no deberíamos tratar de ocultar JavaScript debido a lo ubicuo que es. Sí, algunos de ellos son torpes, pero aprender JavaScript "puro" es IMO, un mejor retorno de la inversión debido a la proliferación de JavaScript "puro" en la naturaleza.
Wayne Molina
0

Si te gusta la sintaxis o no es subjetiva, sin embargo, el hecho es que CofeeScript se encarga de algunas molestas verrugas de JavaScript. Por supuesto, aún no está claro si vale la pena introducir un nuevo lenguaje y hacer frente al paso de compilación.

Nemanja Trifunovic
fuente
66
"molestas verrugas javascript" CoffeeScript no lo hace, solo da azúcar y sintaxis. Puedo evitar las verrugas yo mismo, y lo hago.
Raynos