Skip to content
This repository has been archived by the owner on Feb 19, 2018. It is now read-only.

Project name / coffeescript6 #2

Closed
DomVinyard opened this issue Jul 11, 2016 · 21 comments
Closed

Project name / coffeescript6 #2

DomVinyard opened this issue Jul 11, 2016 · 21 comments
Labels

Comments

@DomVinyard
Copy link

This may be a good opportunity to adopt ECMAs naming scheme and schedule. And push for releases at the same rate that they do. Not aiming to reach feature parity of course, just ensuring that we are releasing regularly and allowing us to hop onto the annual 'press bandwagon' of Javascript development.

"What made it into ES2017?" and "What made it into CS2017" would both be valid questions, albeit with largely different answers.

It would also communicate that we were fundamentally aware and concerned with the progress and development of the 'mother language'.

@carlsmith
Copy link

carlsmith commented Jul 11, 2016

I don't think the ES2016 naming scheme works for us. They are developing two specs in parallel, so ES2016 is what will be finalised this year, and ES2017 is what they expect to be worked out by next year. We don't have an analogue of that.

We should have a distinct name, entirely distinct or just a play on CoffeeScript. It'd be nice if it referred to the focus on being evergreen.

@rattrayalex
Copy link
Contributor

FWIW, I have some interest in creating an entirely separate language based on CoffeeScript.

But for now, for this project, let's stick with CS6 as a target for ES6, CS7 as a target for ES7, etc. ES6 is baked and getting to the point of feature-completion would be a great milestone.

Once we have the basics built I'm all ears in terms of naming conventions, semver, etc.

@objectkit
Copy link

objectkit commented Jul 18, 2016

Hi - I'd be inclined to say the name of this language should be distinct from ECMAScript edition numbers and even the word CoffeeScript. Oracle owns the beans, so... we pick a different plant? Is horticulture really a good guide? Shouldnt the undecorated aesthetics of the language play a part in the naming strategy?

It would be my hope that the transpilation target language (including its version number) should have a more freeform relationship with the name and editions of this language. For example, the first release may offer transpilation to ES5 for convenience, the next release may also offer transpilation to both ES4 and ES6... or even WebAssembly which would be nice, while the language specification remains unchanged. Its good marketing to name it CS6, but is it a sustainable strategy to tie the release cycles of this project to the release cycles of ECMAScript?

How about deciding to start at edition 1 and focus on the language name as a separate matter? It could be named officially close to 1.0.0? I mean, if this goes through and works, its relationship to CoffeeScript will be known. Perhaps focus on edition 1 as having exactly the same language specification as CS today, focusing on the AST for the first release - a rewrite of the parser/lexer/compiler with a much looser coupling to the language?

The next edition of this language (independent from CS), could possibly even reuse the rewritten parser/lexer/compiler, as the language specification for this language should be a versioned DSL that a general purpose parser is capable of reading...

If this language shifted in scope, could it even transpile to CS as it is today? I can't really see a practical reason for this, bar integration with legacy projects. That would help uptake of this language in rare enterprise cases?

As for suggesting the actual name of the language... that would keep me awake for nights... but I would suggest keeping the relationship of the language to CS and the naming of the language as distinct undertakings....

Sorry - late night - I'll tidy this up later!

CS6 would be a good working title, but perhaps not an ideal official title!?

@carlsmith
Copy link

What about calling our project ESlang and treating the E as silent (like esquire), so it's just pronounced slang?

Obviously, ESlang implies the ECMAScript language. Almost no one called JavaScript ECMAScript until recent years, when the standards process took off, and we got ES6. Now, lots of new era JavaScript projects use names with an es prefix, especially for language tools.

The word slang makes sense as a more fluid, looser flavour of a more formal language, and slang tends to be used by people who are very comfortable using the formal language, but still use something less proper, and less widely understood, because it's more efficient and expressive to the people that do understand it.

There is a thing called eslang, which is a Spanish website (http://www.eslang.es), but that's no showstopper. There's also a project on GitHub called Erlang S-Lang Bindings, which they shorted to eslang, which may create confusion, so that could be an issue.

Apart from a possible clash with Erlang S-Lang Bindings, I quite like ESlang pronounced slang.

@rattrayalex
Copy link
Contributor

rattrayalex commented Jul 20, 2016

Some interesting thoughts/ideas here – I think a name depends highly on the degree of backwards-compatibility with CoffeeScript.

If it's "mostly backwards compatible" or better, chances are we'll want to keep the name CoffeeScript and add a modifier, whether that's a 6, a 2, a 7, or a word (à la "Redux").

If it's a major departure, I'll let y'all choose without me 😄 as I'd likely hand over the reigns of this project. The separate language I am planning is called LightScript.

@carlsmith
Copy link

That's one problem CoffeeScript has always had: The community is always working on new languages, so there's tons of smaller languages, and less support for the standard compiler. Still, it's always good to see lots of people working on languages. Good luck with it @rattrayalex. Have you got anything up yet?

It'd be good if we had projects for a configurable lexer (lexers are all basically the same) and a Pratt parsing library. That would make it easier to write an efficient JavaScript parser without having to use a clunky parser generator and BNF. You define one or two methods for each token (with helpers for generic stuff, like prefixOp, binaryOp and so on), and you'd get a parser that can generate an estree, that can do JS codegen with source maps etc. Maybe the future will be per-project languages, and people should build more tools for doing that.

Has anyone here started work on anything towards CS6?

@realJoshByrnes
Copy link

realJoshByrnes commented Jul 24, 2016

Cream Script.
Why? Cream goes well with Coffee.
Also, CS6 / CS2015 could still be used to stay up to date with ES standards, and would appear coffeescriptish.

@carlsmith
Copy link

carlsmith commented Jul 24, 2016

We should ask @jashkenas about using the CoffeeScript brand for this project, but we need to build something substantial first. CS6 is fine as a working title.

@carlsmith
Copy link

Hey @ozjd - Thanks for helping out.

CreamScript has slightly dodgy connotations, and if we're naming something cream, as a compliment to coffee, it would ideally be a tool, like a debugger or optimiser or something.

@carlsmith
Copy link

_Cash Rules Everything Around Me_

@realJoshByrnes
Copy link

Was just trying to think of something that started with C (to keep CS) that related to coffee. Cafe Script? :-P

@kirly-af
Copy link
Contributor

kirly-af commented Aug 3, 2016

I actually like the CSnext name we're using for the Gitter conversation.

@objectkit
Copy link

objectkit commented Aug 4, 2016

@kirly-af Ditto! Haven't had the chance to join in the Gitter conversation yet, but CS Next or a variant thereof sounds like a good working title for the language to me at this stage of the project. It could be given an official release name later? I think it would be helpful at this early stage to agree on the working title of the language to provide a fixed point of reference in conversations etc at this point. Should we organise a vote for accepting a working title of the language, deferring to an official name after some more progress has been made?? How could that be done if so?

@MemoryChips
Copy link

MemoryChips commented Aug 4, 2016

Is csnext public or private?

@kirly-af
Copy link
Contributor

kirly-af commented Aug 4, 2016

@MemoryChips: I think it's public, see #19.

@carlsmith
Copy link

carlsmith commented Aug 4, 2016

I've sent invites to @MemoryChips and @kirly-af for the Gitter thing.

CSNext is a nice, simple name for the project. I've not checked if anyone is using it, but had a quick look on Google, and it may be ok.

@rattrayalex
Copy link
Contributor

CSNext is a nice name, but definitely implies something more official, at least to me. It also quickly falls out of date when "v1" is released; what's next after next?

Personally, though, I don't have a problem referring to this project by multiple working names (cs6, csnext, whatever) until a concrete vision is settled upon. At that time we can go through the work of actually picking something for real, if it makes sense.

At this point, I mostly expect this project will consist largely of a handful of PR's to jashkenas/coffeescript, in which case a name would not be necessary.

@JimPanic
Copy link
Contributor

JimPanic commented Aug 5, 2016

Regarding the versioning; what about SemVer in combination with the version of our target. ES6/2015 would be CSnext 1.x.x-es2015; ES2016 would be 1.x.x-es2016. This goes well with the desire to decouple lexing-parsing-compiling from the actual code generation.

This could also open the possibility for people to jump in and create different output "modules", share those with the rest of the community and not have to think about breaking all other people's code. Babel does this with its plugins/presets, afaict (Example: es-2015module-systemjs )

I like CSnext, although I wouldn't mind taking over CoffeeScript going forward for stable versions that target, as CS did before, the most used and supported versions and semantics of ES. But this is something the original contributors, first and foremost jashkenas, have to decide I suppose.

@kirly-af
Copy link
Contributor

kirly-af commented Aug 5, 2016

@rattrayalex: I guess you're right, the name of the project is not a real matter until we define what we want to achieve. I explain in #21 my vision of the project and I hope it explains why the name CSnext makes perfect sense to me.

GeoffreyBooth added a commit that referenced this issue Aug 23, 2016
* Merge GeoffreyBooth proposal into README

* Split out some of the overlong README into separate files

* Restore alternatives section

* Better filenames

* Force detect case change #1

* Force detect case change #2
@rattrayalex
Copy link
Contributor

@GeoffreyBooth would you like to post a conclusion to this thread and then close it?

@GeoffreyBooth
Copy link
Collaborator

Back when this discussion was had people were discussing potentially creating a new language, so a new name made sense. Now that our focus has shifted toward adding support for ESNext features to CoffeeScript and then modernizing CoffeeScript’s output, we’re not really creating a new language so much as just improving CoffeeScript itself. So it’s a continuation of the current CoffeeScript project, hence just keeping the CoffeeScript name. See https://github.com/coffeescript6/discuss#name

I like the name “coffeescript6” to refer to our modernization discussions, or the “project” of forging consensus on how to respond to ES6. I personally like the idea of “CSNext” as a code name for the new compiler that we hopefully build, as a way of distinguishing it from the legacy compiler. But to the public the project will just be CoffeeScript.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

9 participants