Decaffeinate

Languages and libraries

source code converter

SHOW HN2017

Legend

Decaffeinate

Decaffeinate converts CoffeeScript projects to modern JS

github.com

#coffeescript#es6#javascript#transpiler#migration

361points
219comments
#46of 2,242 in 2017
Top 3%of 2017 by points

How HN took it

DebatedReal support and real criticism

5 positive, 5 neutral or asking, 0 mixed, 5 critical, out of 15 comments about the project. Thread score +0.03.

Idea: 3 for, 1 againstDesign: 0 for, 3 againstPerformance: 0 for, 1 against

The thread, comment by comment

Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.

positive neutral or mixed critical about another commenter or something else the maker

What HN said

What people liked

  • Produces readable JavaScript and does better than the CoffeeScript compiler output

    From 1 comment
    • Yeah, "modern JS" is meant to be the catch-all term for ES6/ES7/ES2015/ES2016/ES2017. In this case, you need ES2016 to run code produced by decaffeinate, but anything in the…
      alangpierce on HN
  • Useful for large CoffeeScript codebases, e.g. Atom's migration

    From 1 comment
    • They're already using JavaScript for all new code, and gradually converting their existing code over using decaffeinate (e.g.…
      alangpierce on HN

Objections

  • Soak operations and CJSX conversion produce messy output

    From 2 comments
    • > You mean only ES2016 from that list? No, I was intentional about my description. People tend to be informal when talking about JS versions, and all five of those terms might be…
      alangpierce on HN
    • Take a look at depercolator, it's a wrapper around cjsx-transform, decaffeinate, and some other things: https://github.com/bugsnag/depercolator There's an open decaffeinate bug…
      alangpierce on HN
  • Question whether moving away from CoffeeScript is needed

    From 2 comments
    • I don't understand the trend to move from Coffeescript to ES6. I like both, but I write Coffeescript for its concision. I have no issue compiling Coffeescript to ES6 as a…
      blitmap on HN
    • I love CS and I see myself using it for another 5 years. The aversion developers have had to CS never were legit reasons. If you put all your time in ES6 and CS, I think you'll…
      andrew_wc_brown on HN

Requests

  • CJSX to JSX support

    From 1 comment
    • Last time I tried it did not support cjsx -> jsx, as far as I can tell, so it's useless for migrating React code bases.
      scotty79 on HN

Questions

  • Can it convert to TypeScript?

    From 1 comment
    • I love this. We've truly come full circle. Does it support a compile to Typescript step?
      aphextron on HN

Alternatives named

  • lebab

    From 1 comment
    • how is this different than running the compiled CS output through lebab [1]? [1] https://github.com/lebab/lebab
      leeoniya on HN
  • CoffeeScript 2

    From 2 comments
    • The folks behind this have been at it a long time. I first used decaffeinate over 18mo ago and while it was already quite helpful then, it's come a tremendous distance since.…
      rattray on HN
    • People might not know but CoffeeScript 2 is out already and supports the ES6 syntaxes. I've been using it for a large Vue.js SPA (with webpack) and some small projects, it really…
      YamiOdymel on HN
  • invig.io

    From 1 comment
    • Shameful plug: http://invig.io is a a wrapper around decaffinate, lebab, prettier, eslint, to to squeeze more modernness out of legacy js/coffeescript codebases and make them…
      kvz on HN

Category, keywords, summaries and labels on this page were made by AI (Thread Reader v2) and not checked by hand. Each point links to the comments it came from.

Add a badge to your READMEShown on HackerShow
[![Shown on HackerShow](https://hackershow.org/badge.svg)](https://hackershow.org/show/14583882)