michaelficarra / CoffeeScriptRedux

:sweat: rewrite of the CoffeeScript compiler with proper compiler design principles and a focus on robustness and extensibility
https://michaelficarra.github.com/CoffeeScriptRedux/
BSD 3-Clause "New" or "Revised" License
1.84k stars 110 forks source link

status? #336

Closed dynamix closed 9 years ago

dynamix commented 9 years ago

Hey guys,

quick question - what is the status of CoffeeScriptRedux? Will this ever be 2.0 or is it more or less dead and its better to stick with https://github.com/jashkenas/coffeescript? I googled around for quite a while and searched through twitter but couldn't find a definite answer - I'm sure I must have missed something.

Asking because ember-script (which seems to be dead, too) was based on CoffeeScriptRedux.

Ciao, Martin

CodisRedding commented 9 years ago

from what I heard, it's dead. #RIP

erisdev commented 9 years ago

@fourq Really?? Where'd you hear that?

michaelficarra commented 9 years ago

Not from any official sources, that's where. Anyone is free to work on this project. I stopped working on it after a disagreement between myself and the other CoffeeScript maintainers (long after this project's sponsored time period was over). I don't see a future for the CoffeeScript language without adoption of ES6 features. Unfortunately, I was the only one that believed we should adopt the semantics of any equivalent features in ES6: classes, default parameters, destructuring, comprehensions (while they were still ES6 track), etc. So because I no longer use the language for my own projects, I am not motivated to work on it. But there's nothing stopping anyone from opening issues and sending PRs. The vast majority of users are just unwilling to contribute.

lydell commented 9 years ago

The vast majority of users are just unwilling to contribute.

That's the important point here. There are too few users and contributors. I've contributed a bit to the project and it's very nicely designed so it's not that hard! If you're interestes in the project, then by all means go ahead and work on it!

IMO, the project is mostly done. What needs to be done is:

I hope that both projects could live alongside each other, without one replacing the other.

michaelficarra commented 9 years ago

:heart: @lydell. Thanks for all you've been doing with these projects lately.

vendethiel commented 9 years ago

So because I no longer use the language for my own projects, I am not motivated to work on it.

That's the same for me (not that I've been a huge contributer to either compilers, though) : I havn't used coffee in well over 2 years (and LiveScript in the past year), so my interest in either projects have dwindled down (and really, I don't have much interest in web anymore).

But yeah, :+1: to @lydell for his awesome contributions :).

EDIT:

Unfortunately, I was the only one that believed we should adopt the semantics of any equivalent features in ES6: classes, default parameters, destructuring, comprehensions

I agree with all these. The only one I'd discuss would be "let", but the keyword is do in coffee, so it doesn't matter.

CodisRedding commented 9 years ago

@erisdiscord a few different irc channels. =/

alexgorbatchev commented 9 years ago

I'm currently considering forking coffeescript to do proper implementation of ES6 stuff... I'm baffled by lack of progress on that side.

erisdev commented 9 years ago

@alexgorbatchev forking CSR or the original? I've poked around with both codebases and this one seems to be a lot easier to navigate. Either way, do drop a comment here if you decide to go through with it.

alexgorbatchev commented 9 years ago

havent looked into which specific repo to use as base yet

dynamix commented 9 years ago

@lydell @michaelficarra - thanks for the clarification. (OT : did you just switch back to plain JS (>=ES6)?)

michaelficarra commented 9 years ago

@dynamix: I've been using ES6 for work JS (compiled to ES5 through 6to5) and PureScript for fun.

hoIIer commented 9 years ago

has anyone continued to work on this? the web is full of people proclaiming es6 > coffeescript but imo it's quite the opposite.. I hope development and support continues despite the hipster es6 fad

aurium commented 9 years ago

Well... If it was possible to plug parser extensions, and plug external AST to JS code generator, on CS compiler, initiatives like IcedCoffee, ember-script, and ES6 support could survive integrated to the CS ecosystem. And if the ES6 prove it is a good idea (i believe so), may be easier to push it to the CS core, on the future.

igl commented 9 years ago

After also doing the switch from coffee to babel in our company, i am not too excited about ES6 anymore. Precompilers still have a future. The features they have to tackle are going to be harder but with TC39 focused on imperative features, transforming javascript yet again more into java, there is plenty of stuff that needs fixing by the community.

Annoying: function (foo, ...rest, callback) === Error rest argument must be the last one. (callback = rest.pop()ugh! :cry:) Silly: const foo = 1; foo = 2; === No Error. Assignment expr. returns 2. Half assed: @annotation are only planned for class and their proto functions. No functions, no vars no imports, more java. Consistency: import { a as b } from 'foo',const { a : b } = foo More Wat: ((a, ...b) => a).length === 1 Sad: Instead of channels or proper tasks we get: Promises. Shoot me now! Arrow FunctionsObfuscators: ({a}) => ({a})

And boy did i NOT miss these tails:

        })
    ], callback)
}

Having said that: Always bet on JS creating the need for precompilers.

nmccready commented 8 years ago

Having said that: Always bet on JS creating the need for precompilers.

@igl amen

JimPanic commented 8 years ago

bump

Has anyone got plans/ideas/anything regarding this dilemma? I'm currently looking into starting with ES6, but I'd rather have a coffee6 for the reasons everyone else here stated as well. :)

hoIIer commented 8 years ago

coffeescript for life! not drinking the babel/es6/7 coolaid yet!

JimPanic commented 8 years ago

I didn't have time yet to dive in deep into the codebase, but I also have no idea where to start.

Is there any guideline as to where to start in the light of making the current CS syntax output (node-supported) ES6 code? What parts would I have to look at/change?

I'd really like to keep CS in my toolbox, vanilla JS is so tedious to write. :-1:

danielbayley commented 8 years ago

@JimPanic

There are already a couple of projects on that: https://github.com/rainforestapp/decaf https://github.com/decaffeinate/decaffeinate

JimPanic commented 8 years ago

@danielbayley I'd much rather continue to use coffee (redux?) instead of just converting my code. So I was basically asking how to contribute.

I'd also like to see new features in coffee at some point. But I really am a bit lost in getting to know the codebase.

danielbayley commented 8 years ago

I'd much rather continue to use coffee

Same! I hate vanilla JS. But those are 2 projects (there might be more) already converting CS to ES6 so why duplicate effort? I believe the decaf repo is being moved into a new @CoffeeScript organisation, and talk of putting it behind a command line flag or something, but nothing has happened yet. There's plenty of discussion on this [CS > ES6] over on the original CS repo.

I really wish everyone in the CS camp would just come together and kill this meme that CS is dead and we all have to be coerced into writing ES6.

vendethiel commented 8 years ago

Is there any guideline as to where to start in the light of making the current CS syntax output (node-supported) ES6 code? What parts would I have to look at/change?

You'd need to first make sure Escodegen supports ES6. Thankfully, it does. Then you need to teach CSR's js-nodes about it. Then you need to have the compiler's Class compilation logic generate a JS Class node instead of what it currently does.

Note that you'd drop executable class bodies, which are a really big feature of CoffeeScript imho. Or do as I said here, and only compile to ES6 classes if there's no executable code in the body...

JimPanic commented 8 years ago

I haven't even looked at classes in ES6 so far tbh, I'm usually not using them. But keeping semantics in CS is probably a good idea and it might be a step in the future to remove this in favour of something else maybe.

I'll try to decipher the codebase of coffeescriptredux and see where to go from there.

@danielbayley are those projects able to run code like coffee does now (cli interface, load coffee modules on the fly)? From the README it seems they're mostly used as transit projects to migrate coffeescript codebases to ES6. (Which is not my goal!)

danielbayley commented 8 years ago

@JimPanic I'm not sure to be honest, I would at least speak to @juliankrispel about decaf though.

JimPanic commented 8 years ago

@danielbayley as far as I can see decaf is a superset of coffee. It uses a different library to generate JS code apparently. And with this, it generates ES.next (ES2017 right now, I guess?) code. I'd like to target ES6 - or ultimately and ideally be able to drop in different generators.

Lets see. :)

remoteportal commented 8 years ago

Hey folks,

(My favorite language is CS—I’ve been using it for my “day job” for two years and have chosen CoffeeScript Redux for a project I’m moonlighting with at home.)

In addition to that I’m envisioning an entirely new domain-specific language based on CS Redux for my home project.

It’s NOT writing CoffeeScript Redux, per se, but compiler work; I’m looking for someone who is good at PEG.js to fork the Redux project and customize to my needs.

Does anyone reading this have a desire to work remotely on a project for (guessing?) perhaps 40 hours? I’m just one guy (not a company) but can obviously compensate per hour for your work.

ANY help would be appreciated; even a few hours of your paid coding could get me on the right path if you’re not interested in working the entire small project.

I figure you folks can crank this out MUCH quicker than I can.

Pete Alvin it@onlyup.com mailto:it@onlyup.com @remoteportal https://github.com/remoteportal https://github.com/remoteportal mobile 704.804.4786

rattrayalex commented 8 years ago

Like @remoteportal I am interested in building a new language, and this repo seems like the best starting point.

Unlike @remoteportal I don't think I could pay for the help 😄

Personally I'm interested in a statically-typed, whitespace-sensitive, light-syntax language – think "coffeescript for typescript/flow".

@michaelficarra do you have any interest in creating a coffeescript-like derivative? From the ES6-related issues on the main coffee repo, it seems much of the community was on your side. I'm sure I'm not the only one who likes ES6 features and CS syntax; anything you were to produce would probably attract a following.

EDIT: I ask not to lure you into working on mine, but because I'd be much more interested in using one you were to come up with than one I would 😄

forivall commented 8 years ago

@rattrayalex @nmccready I'm currently working on https://github.com/forivall/tacoscript - for typing, I'll basically support flow annotations, but right now it's just the core es6 syntax. I'm not using PEG since my goal is to do CST transformations to preserve whitespace (which is what I want to get "done" before I want to get people to try it out. I'm currently just doing AST transformations and discarding the CST data).

DomVinyard commented 8 years ago

I think it would be helpful if this conversation came back around to reinvigorating coffeescript rather than inventing new technologies.

rattrayalex commented 8 years ago

You know what, @DomVinyard ? That's a good point 😉

I've gone ahead and created https://github.com/coffeescript6/discuss to do just that.

CoffeeScript really is a fantastic language and while it could use some upgrades, I think you're right that we don't necessarily need to start from scratch here.

Let's start getting some ideas on paper!

JimPanic commented 8 years ago

Thank you for putting this up, @rattrayalex !

juliankrispel commented 8 years ago

I'm still working on an integration between coffeescript and decaf btw. Just have been super busy lately, ETA: 2 months