Ce parere aveti de sintaxa CoffeeScript?

Lucrez acuma la un proiect Ruby on Rails cu PosgreSQL, AngularJS, CofeeScript, fiind obisnuit cu limbaje cu sintaxa de C(C#, JavaScript), mi s-a parut un pic diferit CofeeScript, incadrandu-l din punct de vedere al sintaxei in aceeas familie cu Ruby, Python, asa ca am inceput sa caut documentatie, pe pluralsight.com, egghead.io nu am gasit nimica, momentan ma bazez pe documentatia oficiala:

http://coffeescript.org/

si:

http://www.tutorialspoint.com/coffeescript/

Eu am lucrat la un moment dat la un proiect ce folosea Coffee; chiar dacă nu mi-a ridicat prea multe probleme, nici n-aș putea spune că am fost vreodată nerăbdător să mai interacționez cu așa ceva.

(Dacă ești obișnuit cu C#, cred că te-ai împăca foarte bine cu Typescript.)

A avut ceva succes în lumea Rails, dar asta înainte ca ES6, Typescript, Elmscript și altele să ia avânt. Eu unul consider că e cam pe ducă :slight_smile:

http://billpatrianakos.me/blog/2015/07/06/we-dont-use-coffeescript-ever/


Ca să-ți răspund la întrebare: sintaxa în sine e … uhm, interesantă. Chiar dacă nu-s fanul limbajelor bazate pe indentare (e.g. Python), m-aș obișnui cu ea. De nevoie. :smiley:

1 Like

Coffescript:

solipsism = true if mind? and not world?

What’s this? A language for people who aren’t developers? Jeez:

/**
 * Determine if a variable is defined and its value is different than NULL
 *
 * @param mixed item The var/variable to check
 */
function isSet(item ) {
  if (typeof item !== 'undefined' && item !== null) { return true;}
  return false;
}

/** Determine if a variable is defined and its value is, in actuality, NULL
 *
 * @param mixed item The value/variable to check
 */
function isSetNull(item) {
  if (typeof item !== 'undefined' && item === null) { return true;}
  return false;
}

if (isSet(mind) && isSetNull(world)) {
   solipsism = true;
}

E mai logică sintaxa standard.

Proiectul e legacy, deja implementat, asa ca ma adaptez la ce era :slight_smile:

Când ai tone de ruby scrise de tine… s-ar putea să fie mai logică sintaxa din coffee :smiley:

2 Likes

Observ un trend de a inventa limbaje care sunt mai apropiate de propoziții decât de logică binară, limbaje care încurcă un dezvoltator sănătos și promovează… nu știu, persoanae non-tehnice.

(unele limbaje (sunt-gandite (pentru programatori) 'nesanatosi))

True though wrt CofeeScript - e pe duca din cauza ca ES6/ES7/TypeScript/Flow au devenit OK. Care-i o chestie buna IMO, nu neaparat pe partea de sintaxa, cat ca era un fel de hack&fix. Nu mai e asa nevoie de hacking si fixing, nu mai e nevoie nici de CS.

2 Likes

CoffeeScript n-are nici un sens, ES6/7 e perfect.

Eu zic ca se poate si mai rau ca sintaxa:

-module(server). 
-export([start/2, rpc/2]). 

start(Name, Mod) -> 
   register(Name, spawn(fun() -> loop(Name, Mod, Mod:init()) end)). 
rpc(Name, Request) -> 
   Name ! {self(), Request}, 
   receive 
      {Name, Response} -> Response 
   end. 
   
loop(Name, Mod, State) ->
   receive 
      {From, Request} ->
         {Response, State1} = Mod:handle(Request, State), 
         From ! {Name, Response}, 
         loop(Name, Mod, State1) 
   end.

Cod-ul e dintr-o documentatie:

https://www.tutorialspoint.com/erlang/erlang_otp.htm

Si Erlang e considerat cel mai relieble limbaj pentru telecomunications software development.

Acesta e un limbaj pur functional care nu are conceptul de variabila, acestea fiind immutable, nepuntandu-si schimba valorile.

Fun fact:
Whatsapp are partea de backend in Erlang.
Erlang a fost dezvoltat de Ericsson. Erlang este si deasemenea o unitate de masura
:smiley: