CoffeeScript vs TypeScript

Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

CoffeeScript
CoffeeScript

2K
1K
+ 1
1K
TypeScript
TypeScript

13.7K
10.7K
+ 1
409
Add tool

CoffeeScript vs TypeScript: What are the differences?

CoffeeScript: Unfancy JavaScript. CoffeeScript is a little language that compiles into JavaScript. Underneath that awkward Java-esque patina, JavaScript has always had a gorgeous heart. CoffeeScript is an attempt to expose the good parts of JavaScript in a simple way; TypeScript: A superset of JavaScript that compiles to clean JavaScript output. TypeScript is a language for application-scale JavaScript development. It's a typed superset of JavaScript that compiles to plain JavaScript.

CoffeeScript belongs to "Languages" category of the tech stack, while TypeScript can be primarily classified under "Templating Languages & Extensions".

"Easy to read", "Faster to write" and "Syntactic sugar" are the key factors why developers consider CoffeeScript; whereas "More intuitive and type safe javascript", "Type safe" and "JavaScript superset" are the primary reasons why TypeScript is favored.

CoffeeScript and TypeScript are both open source tools. TypeScript with 51.2K GitHub stars and 7.07K forks on GitHub appears to be more popular than CoffeeScript with 15.2K GitHub stars and 1.99K GitHub forks.

Slack, Asana, and Rainist are some of the popular companies that use TypeScript, whereas CoffeeScript is used by Typeform, Bukalapak, and thoughtbot. TypeScript has a broader approval, being mentioned in 982 company stacks & 1455 developers stacks; compared to CoffeeScript, which is listed in 364 company stacks and 170 developer stacks.

What is CoffeeScript?

It adds syntactic sugar inspired by Ruby, Python and Haskell in an effort to enhance JavaScript's brevity and readability. Specific additional features include list comprehension and de-structuring assignment.

What is TypeScript?

TypeScript is a language for application-scale JavaScript development. It's a typed superset of JavaScript that compiles to plain JavaScript.
Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Why do developers choose CoffeeScript?
Why do developers choose TypeScript?

Sign up to add, upvote and see more prosMake informed product decisions

What companies use CoffeeScript?
What companies use TypeScript?

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with CoffeeScript?
What tools integrate with TypeScript?

Sign up to get full access to all the tool integrationsMake informed product decisions

What are some alternatives to CoffeeScript and TypeScript?
JavaScript
JavaScript is most known as the scripting language for Web pages, but used in many non-browser environments as well such as node.js or Apache CouchDB. It is a prototype-based, multi-paradigm scripting language that is dynamic,and supports object-oriented, imperative, and functional programming styles.
ES6
Goals for ECMAScript 2015 include providing better support for large applications, library creation, and for use of ECMAScript as a compilation target for other languages. Some of its major enhancements include modules, class declarations, lexical block scoping, iterators and generators, promises for asynchronous programming, destructuring patterns, and proper tail calls.
Babel
Babel will turn your ES6+ code into ES5 friendly code, so you can start using it right now without waiting for browser support.
jQuery
jQuery is a cross-platform JavaScript library designed to simplify the client-side scripting of HTML.
Python
Python is a general purpose programming language created by Guido Van Rossum. Python is most praised for its elegant syntax and readable code, if you are just beginning your programming career python suits you best.
See all alternatives
Decisions about CoffeeScript and TypeScript
Jake Stein
Jake Stein
CEO at Stitch · | 15 upvotes · 149.7K views
atStitchStitch
AngularJS
AngularJS
React
React
CoffeeScript
CoffeeScript
JavaScript
JavaScript
ES6
ES6

Stitch’s frontend is used to configure data sources and destinations and monitor the status of each. Although we have been using AngularJS since its early days, we recently introduced React components into our front end, which many of our developers find easier to work with. We started using CoffeeScript when it was one of the few options for a more expressive alternative to vanilla JavaScript, but today we opt to instead write new code in ES6, which we feel is a more mature alternative.

See more
Eli Hooten
Eli Hooten
CTO at Codecov · | 13 upvotes · 77K views
atCodecovCodecov
TypeScript
TypeScript
JavaScript
JavaScript
CoffeeScript
CoffeeScript
Vue.js
Vue.js
Visual Studio Code
Visual Studio Code

We chose TypeScript at Codecov when undergoing a recent rewrite of a legacy front end. Our previous front end was a mishmash of vanilla JavaScript and CoffeeScript , and was expanded upon haphazardly as the need arose. Without a unifying set of paradigms and patterns, the CoffeeScript and JavaScript setup was proving hard to maintain and expand upon by an engineering team. During a move to Vue.js , we decided to also make the move to TypeScript. Integrating TypeScript and Vue.js is fairly well understood at this point, so the setup wasn't all that difficult, and we felt that the benefits of incorporating TypeScript would outweigh the required time to set it up and get our engineering team up to speed.

Choosing to add TypeScript has given us one more layer to rely on to help enforce code quality, good standards, and best practices within our engineering organization. One of the biggest benefits for us as an engineering team has been how well our IDEs and editors (e.g., Visual Studio Code ) integrate with and understand TypeScript . This allows developers to catch many more errors at development time instead of relying on run time. The end result is safer (from a type perspective) code and a more efficient coding experience that helps to catch and remove errors with less developer effort.

See more
Flow (JS)
Flow (JS)
Java
Java
React Native
React Native
TypeScript
TypeScript

I use TypeScript for Web Applications and for both frontend and backend because it has a lot of tooling around it and they really got the types and type safety right. Flow (JS) on the other hand lacks tooling and most of the times I scramble to find the right way of building my contracts in which TypeScript is very intuitive and natural. Additionally TypeScript is very similar to Java so your backend engineers and full stack engineers can work with it without much of context switch.

The only time I think Flow shines is (based on probably my outdated knowledge) Flow is/was the only option if you want/wanted to build a React Native application mainly because React Native transpiler at the time I was working with it would only work with flow.

See more
TypeScript
TypeScript
Flow (JS)
Flow (JS)

I use TypeScript because it isn't just about validating the types I'm expecting to receive though that is a huge part of it too. Flow (JS) seems to be a type system only. TypeScript also allows you to use the latest features of JavaScript while also providing the type checking. To be fair to Flow (JS), I have not used it, but likely wouldn't have due to the additional features I get from TypeScript.

See more
David Koblas
David Koblas
VP Engineering at Payment Rails · | 9 upvotes · 18.2K views
atPayment RailsPayment Rails
JavaScript
JavaScript
Flow (JS)
Flow (JS)
TypeScript
TypeScript

We originally (in 2017) started rewriting our platform from JavaScript to Flow (JS) but found the library support for Flow was lacking. After switching gears to TypeScript we've never looked back. At this point we're finding that frontend and backend libraries are supporting TypeScript out of the box and where the support is missing that the commuity is typically got a solution in hand.

See more
Forrest Norvell
Forrest Norvell
engineering manager at self-employed · | 6 upvotes · 115.4K views
TSLint
TSLint
ESLint
ESLint
Flow (JS)
Flow (JS)
Visual Studio Code
Visual Studio Code
TypeScript
TypeScript

I use TypeScript because the tooling is more mature (the decision to discontinue TSLint in favor of moving all its checks to ESLint is a thoughtful and mature decision), there's a ton of examples and tutorials for it, and it just generally seems to be where the industry is headed. Flow (JS) is a fine tool, but it just hasn't seen the uptake that TS has, and as a result is lacking a lot of the nicer small things, like thorough Visual Studio Code integration, offered by TS.

See more
TypeScript
TypeScript
Flow (JS)
Flow (JS)
Visual Studio Code
Visual Studio Code

We currently use TypeScript at work. Previously we used Flow (JS) but it was sometimes really difficult to make the types work the way you want. Especially non-trivial types were problematic. And the IDE support wasn't good, Flow took too much resources and sometimes remain stuck and do not show errors (I use Visual Studio Code). With TypeScript we almost do not have these problems. IDE support is superb, working with types is much easier and typing system seems more mature and powerful. There are some downsides (like partion inheritance etc.), but TS team is still pushing it forward. So for me TypeScript is clear winner.

See more
JavaScript
JavaScript
TypeScript
TypeScript
Flow (JS)
Flow (JS)

If you will start a project from scratch I recommend to use TypeScript. But, If you work with legacy projects written in JavaScript I recommend Flow (JS). Both tools have the same objective: reduce the bad code (which create illegible code, generate bugs e problems to maintenance). Flex helps you to avoid fall in bad codes, but TypeScript prevent you to c you to create bad codes. I believe cause this some JavaScript fans don't like TS, because TS block you to write some types o code. This is the fundamental difference between TS and Flow: Flow avoid problems, but no force. TS force you to prevent problems.

See more
AngularJS
AngularJS
React
React
.NET Core
.NET Core
TypeScript
TypeScript

I use TypeScript because it's adoption by many developers, it's supported by many companies, and it's growth. AngularJS, React, @ASP.NET Core. I started using it in .NET Core, then for a job. Later I added more Angular experience and wrote more React software. It makes your code easier to understand and read... which means it makes other people's code easier to understand and read.

See more
TypeScript
TypeScript

I use TypeScript because:

  • incredible developer tooling and community support
  • actively developed and supported by Microsoft (yes, I like Microsoft) ;)
  • easier to make sense of a TS codebase because the annotations provide so much more context than plain JS
  • refactors become easier (VSCode has superb support for TS)

I've switched back and forth between TS and Flow and decided a year ago to abandon Flow completely in favor of TS. I don't want to bash Flow, however, my main grievances are very poor tooling (editor integration leaves much to be desired), a slower release cycle, and subpar docs and community support.

See more
Gustavo Muñoz
Gustavo Muñoz
Web UI Developer at Globant · | 2 upvotes · 6.9K views
Angular 2
Angular 2
TypeScript
TypeScript
React
React
Flow (JS)
Flow (JS)
JavaScript
JavaScript
CoffeeScript
CoffeeScript
#Angular
#ECMA

Long ago when Angular 2 evolved I had to decide between the new #Angular and TypeScript or React. I really love typing my code, but forced to use TypeScript was a bit too much. I prefer the new #ECMA standard and the evolution of the old and reliable JavaScript. So finding Flow (JS) was an incredible milestone in my career as a developer. Finally, I could use types in my code, and JavaScript with the new standard. I already had the experience of CoffeeScript, so TypeScript was not an option.

See more
Robert Zuber
Robert Zuber
CTO at CircleCI · | 4 upvotes · 13.2K views
atCircleCICircleCI
CoffeeScript
CoffeeScript
Hubot
Hubot
Go
Go
Slack
Slack

We have added very little to the CoffeeScript Hubot application – just enough to allow it to talk to our Hubot workers. The Hubot workers implement our operational management functionality and expose it to Hubot so we can get chat integration for free. We’ve also tailored the authentication and authorization code of Hubot to meet the needs of roles within our team.

For larger tasks, we’ve got an internal #CLI written in Go that talks to the same #API as Hubot, giving access to the same functionality we have in Slack, with the addition of scripting, piping, and all of our favorite #Unix tools. When the Hubot worker recognizes the CLI is in use, it logs the commands to Slack to maintain visibility of operational changes.

See more
TypeScript
TypeScript
CoffeeScript
CoffeeScript
JavaScript
JavaScript
Flow (JS)
Flow (JS)

From a StackShare community member: "We are looking to rewrite our outdated front-end with TypeScript. Right now we have a mix of CoffeeScript and vanilla JavaScript. I have read that adopting TypeScript can help enforce better code quality, and best practices. I also heard good things about Flow (JS). Which one would you recommend and why?"

See more
Jason Barry
Jason Barry
Cofounder at FeaturePeek · | 4 upvotes · 17.7K views
atFeaturePeekFeaturePeek
Flow (JS)
Flow (JS)
TypeScript
TypeScript
React
React
JavaScript
JavaScript
Sublime Text
Sublime Text
Babel
Babel
Yarn
Yarn
npm
npm
#Frontend

I think our #Frontend stack is pretty standard – but we have taken some deviations from a typical modern stack:

  • Flow (JS) instead of TypeScript. Flow was an easy choice 2+ years ago, as both flow and React were (and still are) maintained by Facebook. Today, it seems that the JavaScript community has settled on TypeScript as the winner. For new projects, I'd choose TS, but I don't see the point in migrating an existing project from flowtype to TS, when the end result will be roughly the same. Sure, memory usage is a bit high, and every now and then I have to kill some zombie processes, but our text editors (Sublime Text), CI scripts, and Babel are already set up to take advantage of the type safety that flow offers. When/if the React team writes React itself in TS, then I'll take a closer look – until then, flow works for us.

  • Yarn instead of npm. When yarn debuted, we never looked back. Now npm has pretty much caught up with speed and lockfiles, but yarn gives me confidence that my dependency installs are deterministic. Really interested in the plug-n-play (PnP) feature that removes the need for a node_modules folder, but haven't implemented this yet.

See more
Interest over time
Reviews of CoffeeScript and TypeScript
Avatar of lpellegr
Noticeable
Review ofTypeScriptTypeScript

Typed JavaScript is just fantastic for medium to large size projects. The type system is well thought and compatible with standard JavaScript. Almost any new Javascript-based development should use TypeScript to save time and prevent technical debt over time.

How developers use CoffeeScript and TypeScript
Avatar of NewCraft
NewCraft uses TypeScriptTypeScript

Typescript has been a win because, in general, it makes codebase maintenance less brittle. It's significantly easier to refactor in TS than JS, which encourages incremental improvements, file re-organizing, etc. Our developers are happier with the overall development experience.

The downside is that TS sometimes exacerbates problems caused by Node's fragmented ecosystem. Sometimes @types/ don't work, other times types are outdated. This can lead to problems with newly-installed libraries.

If your project is big enough, I'd say TS is nearly always worth it, but it can make selecting libraries a pain.

Avatar of Matt Welke
Matt Welke uses TypeScriptTypeScript

Used for Node.js personal projects that I think will have a longer lifetime than others, or that are combined with a web front end component like Angular (to share types).

Generally a poor developer experience. Usage decreasing recently compared to other preferred programming languages/platforms.

Avatar of Marc3842h
Marc3842h uses TypeScriptTypeScript

TypeScript is used in Kuro (https://github.com/Marc3842h/kuro).

Kuro is the browser facing portion of shiro. Typescript is the language in which the web server and the frontend scripts are written in. They later get compiled down to vanilla JavaScript.

Avatar of John Harris
John Harris uses TypeScriptTypeScript

Excellent design-time type checking and the ability for the Typescript compiler to attach typing information to metadata at compile time allows for relatively simple type checking at run-time as well.

Avatar of Blood Bot
Blood Bot uses TypeScriptTypeScript

We, our team can sleep comfortable at night know "x is undefined" will not occur in production. It's also really helpful as IDE help in code completion when they know types.

Avatar of Oomba
Oomba uses CoffeeScriptCoffeeScript

All of our Javascript code is first written in CoffeeScript for ease of reading / writing. It is compiled to Javascript before being minified and served to the client.

Avatar of opening.io
opening.io uses CoffeeScriptCoffeeScript

All front-end / back-end is driven by Coffeescript. For the main ReactJS functionality JSX is embedded with coffee in .cjsx files / handled by Browserify.

Avatar of Jeff Flynn
Jeff Flynn uses CoffeeScriptCoffeeScript

We like CoffeeScript because it's more readable, we use it because we have a lot of libraries and functions already (plays nicely with Rails, too)

Avatar of Chris Hartwig
Chris Hartwig uses CoffeeScriptCoffeeScript

All our code is CoffeeScript, blending seemlessly in our JS stack

Avatar of Publitory
Publitory uses CoffeeScriptCoffeeScript

Javascript is a hell. We use coffeescript for its readability.

How much does CoffeeScript cost?
How much does TypeScript cost?
Pricing unavailable
Pricing unavailable
News about CoffeeScript
More news