Talk:CoffeeScript

Latest comment: 2 years ago by Anodrageduard in topic Questionable edit

Rails edit

There have been reports that official support for CoffeeScript 
will be included in the next point release of Ruby on Rails.[4] 

'next' as in which version? Most of this article is not time-independent. as in, next year it will be wrong, and a year ago it was wrong. Say 'as of June 2010...' or something like that to qualify now-dependent statements. Think of someone reading this 5 or 10 years from now - your words will still be here.

OsamaBinLogin (talk) 17:26, 23 March 2011 (UTC)Reply

  • Good point, but moot now that the official announcement has been made. Proper citation (a tweet by a Rails Core Team member, linking to a commit in the official Rails repository) included. --Trevor Burnham (talk) 15:55, 13 April 2011 (UTC)Reply

Dialects, forks, derivatives edit

One should probably talk about Coco, a dialect of CoffeeScript, and furthermore LiveScript, a fork of Coco. — Preceding unsigned comment added by 82.150.248.29 (talk) 14:12, 25 July 2012 (UTC)Reply

Example edit

The example of coffeescript isn't really mind blowing and doesn't show the advantages, disadvantages or construct differences of using CoffeeScript instead of JavaScript. Why not give a simple example of list comprehension or classes? — Preceding unsigned comment added by 81.206.220.44 (talk) 08:20, 2 January 2013 (UTC)Reply

I agree that it is rather uninformative. CoffeeScript's website is far more informative than Wikipedia, and is actually itself relatively encyclopedic. I would say it is one of the most well documented languages I've seen. The home page has a bias, but it isn't much more significant than that of Wikipedia's Python article. It isn't good enough to copy and paste, though. It would be a fantastic reference to draw a lot of up-to-date information from. impinball (talk) 04:04, 29 July 2014 (UTC)Reply

CoffeeScript Classes edit

CoffeeScript is prototype-based, just as JavaScript us (with a one-to-one correlation). It is also class-based, which isn't reflected at all on here. These two examples here are equivalent code.

Prototype-based:

Person = (name, age) -> # Constructor
  @name = name
  @age = age

Person::say = (sentence) -> # Instance method
  console.log "#{@name}: #{sentence}"

Person::sayAge = ->
  @say "My name is #{@name}"

Person::sayAge = ->
  @say "My age is #{@age}"

Person.getName = (person) -> # Static method
  person.name

Person.getAge = (person) ->
  person.age

Class-based:

class Person
  constructor: (name, age, gender) -> # Constructor
    @name = name
    @age = age
    @gender = gender

  say: (sentence) -> # Instance method
    console.log "#{name}: #{sentence}"

  sayName: ->
    @say "My name is #{@name}"

  sayAge: ->
    @say "My age is #{@age}"

  @getName: (person) -> # Static method
    person.name

  @getAge: (person) ->
    person.age

Inheritance is more complete than its common JavaScript counterpart foo.prototype = bar.prototype.

CoffeeScript

class Mother extends Person
  constructor: (info..., children) ->
    super info...
    @children = new Array([children])[0] # convert to Array

  sayChildrenNames: ->
    for child of @children
      [pronoun, relation] = if child.gender is 'male' then ['His', 'son'] else ['Her', 'daughter']
      @say "This is my #{relation} #{child.name}. #{pronoun} age is #{child.age}."

console.log Mother instanceof Person # true

JavaScript

function Mother() {
  var info = Array.prototype.slice.call(arguments);
  var children = info.pop();
  Person.call(this, args);
  this.children = new Array([children])[0]
}

Mother.prototype = Person.prototype;

Mother.prototype.sayChildrenNames = function () {
  var children = this.children;
  for (var i = children.length, child; i-- > 0; ) {
    var child = children[i];
    var pronoun, relation;
    if (child.gender === 'male') {
      pronoun = 'His';
      relation = 'son';
    } else {
      pronoun = 'Her';
      relation = 'daughter';
    }
    this.say('This is my ' + relation + ' ' + child.name + '. ' + pronoun +
             ' age is ' + child.age);
};

console.log(Mother instanceof Person); # false

Could we add a more complete description of classes in CoffeeScript? These specific examples aren't very encyclopedic, but this needs covered.

I would also like to add that it is starting to replace JavaScript. Github no longer has the "any more JavaScript must be written in CoffeeScript" in their guide. That link points to an exclusively CoffeeScript-oriented guide (even though it says "JavaScript" in the navigation bar). impinball (talk) 03:38, 29 July 2014 (UTC)Reply

Should we remove Dynamic Variables in a Class section? edit

Not only is the code wrong (no need for the `do (variable) =>` closure). This 'technique' is exactly the same in JavaScript and isn't specific to CoffeeScript at all, I'm not sure I see the relevance. — Preceding unsigned comment added by 60.242.198.15 (talk) 06:30, 20 January 2015 (UTC)Reply

Yeah, you're right. I almost thought this CoffeeScript is about drinking coffee while writing scripts... 197.129.155.250 (talk) 18:56, 30 January 2015 (UTC)Reply

Maintenance and rating of JavaScript articles edit

Concerning editing and maintaining JavaScript-related articles...

Collaboration... edit

If you are interested in collaborating on JavaScript articles or would like to see where you could help, stop by Wikipedia:WikiProject JavaScript and feel free to add your name to the participants list. Both editors and programmers are welcome.

Where to list JavaScript articles edit

We've found over 300 JavaScript-related articles so far. If you come across any others, please add them to that list.

User scripts edit

The WikiProject is also taking on the organization of the Wikipedia community's user script support pages. If you are interested in helping to organize information on the user scripts (or are curious about what we are up to), let us know!

If you have need for a user script that does not yet exist, or you have a cool idea for a user script or gadget, you can post it at Wikipedia:User scripts/Requests. And if you are a JavaScript programmer, that's a great place to find tasks if you are bored.

How to report JavaScript articles in need of attention edit

If you come across a JavaScript article desperately in need of editor attention, and it's beyond your ability to handle, you can add it to our list of JavaScript-related articles that need attention.

Rating JavaScript articles edit

At the top of the talk page of most every JavaScript-related article is a WikiProject JavaScript template where you can record the quality class and importance of the article. Doing so will help the community track the stage of completion and watch the highest priority articles more closely.

Thank you. The Transhumanist 01:07, 12 April 2017 (UTC)Reply

External links modified edit

Hello fellow Wikipedians,

I have just modified one external link on CoffeeScript. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

This message was posted before February 2018. After February 2018, "External links modified" talk page sections are no longer generated or monitored by InternetArchiveBot. No special action is required regarding these talk page notices, other than regular verification using the archive tool instructions below. Editors have permission to delete these "External links modified" talk page sections if they want to de-clutter talk pages, but see the RfC before doing mass systematic removals. This message is updated dynamically through the template {{source check}} (last update: 18 January 2022).

  • If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
  • If you found an error with any archives or the URLs themselves, you can fix them with this tool.

Cheers.—InternetArchiveBot (Report bug) 06:33, 10 August 2017 (UTC)Reply

"atom is also written in the language" in Adoption edit

But if you look at the github repository, only 3% of atom is currently written in Coffeescript.  AltoStev Talk 19:38, 14 May 2021 (UTC)Reply

Questionable edit edit

Some of the changes done by ExtabyteWiki have already been reverted or fixed in subsequent edits and 2 other remaining changes should be verified and addressed, if needed:

1) This change to the daily page hits sentence doesn't make any sense:

- By that time the project had attracted several other contributors on GitHub, and was receiving over 300 page hits per day.
+ By that time the project had attracted several other contributors on GitHub and was receiving over 30300-pages per day.

And besides that, traffic information on GitHub is only provided to the repository owner and is not verifiable. This whole sentence about attracting contributors should be removed, because it doesn't provide any real value and if emphasis on popularity is wanted, some other verifiable metrics could be used.

2) This added statement about the project status was false then and is false now:

It's currently unknown if the project will continue or not as it has been not updated for a long time.

This sentence should be removed, because the page is about a Programming language, and programing languages are slow to evolve. The previous release for the language was made 3 months before ExtabyteWiki's edit and there were several changes made to the language in the week before the edit; see this change request that was created one day before the edit and merged 1h and 12m after the edit. — Preceding unsigned comment added by Anodrageduard (talkcontribs) 22:17, 7 April 2022 (UTC)Reply