Ce parere aveti de sintaxa CoffeeScript ?

es6
coffe-script

(Adavidoaiei Dumitru-Cornel) #1

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/


(Ionuț Staicu) #2

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:


(Red) #3

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.


(Adavidoaiei Dumitru-Cornel) #4

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


(Ionuț Staicu) #5

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


(Red) #6

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.


(Horia Coman) #7

(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.


(István F.) #8

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


(Adavidoaiei Dumitru-Cornel) #9

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.


(cosmos) #10

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