Get Advice Icon

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

CoffeeScript
CoffeeScript

2K
1K
+ 1
1K
HAML
HAML

413
282
+ 1
262
Add tool

CoffeeScript vs HAML: 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; HAML: HTML Abstraction Markup Language - A Markup Haiku. Haml is a markup language that’s used to cleanly and simply describe the HTML of any web document, without the use of inline code. Haml functions as a replacement for inline page templating systems such as PHP, ERB, and ASP. However, Haml avoids the need for explicitly coding HTML into the template, because it is actually an abstract description of the HTML, with some code to generate dynamic content.

CoffeeScript and HAML belong to "Languages" category of the tech stack.

"Easy to read" is the primary reason why developers consider CoffeeScript over the competitors, whereas "Clean and simple" was stated as the key factor in picking HAML.

CoffeeScript and HAML are both open source tools. It seems that CoffeeScript with 15.2K GitHub stars and 1.99K forks on GitHub has more adoption than HAML with 3.44K GitHub stars and 544 GitHub forks.

Code School, Zaarly, and thoughtbot are some of the popular companies that use CoffeeScript, whereas HAML is used by Kickstarter, Code School, and StackShare. CoffeeScript has a broader approval, being mentioned in 364 company stacks & 170 developers stacks; compared to HAML, which is listed in 113 company stacks and 40 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 HAML?

Haml is a markup language that’s used to cleanly and simply describe the HTML of any web document, without the use of inline code. Haml functions as a replacement for inline page templating systems such as PHP, ERB, and ASP. However, Haml avoids the need for explicitly coding HTML into the template, because it is actually an abstract description of the HTML, with some code to generate dynamic content.
Get Advice Icon

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

Why do developers choose CoffeeScript?
Why do developers choose HAML?

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

What companies use CoffeeScript?
What companies use HAML?

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

What tools integrate with CoffeeScript?
What tools integrate with HAML?

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

What are some alternatives to CoffeeScript and HAML?
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.
TypeScript
TypeScript is a language for application-scale JavaScript development. It's a typed superset of JavaScript that compiles to plain JavaScript.
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.
See all alternatives
Decisions about CoffeeScript and HAML
Jake Stein
Jake Stein
CEO at Stitch · | 15 upvotes · 152.9K 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
Russel Werner
Russel Werner
Lead Engineer at StackShare · | 11 upvotes · 171.3K views
atStackShareStackShare
Sass
Sass
HAML
HAML
React
React
Glamorous
Glamorous
JavaScript
JavaScript
Emotion
Emotion
#Inlinecss

When we rebooted our front-end stack earlier this year, we wanted to have a consolidated and friendly developer experience. Up to that point we were using Sass and BEM. There was a mix of HAML views, React components and Angular. Since our ongoing development was going to be exclusively in React, we wanted to shift to an inline styling library so the "wall of classnames" could be eliminated. The ever-shifting landscape of inline CSS libraries for React is sometimes difficult to navigate.

We decided to go with Glamorous for a few reasons:

1) Previous team experience with this library 2) We can write our styles in plain JavaScript (which brings many benefits) 3) It supports server-side rendering 4) It has great composition patterns

As you may or may not know, Glamorous has ceased active development and been mostly superseded by Emotion. We are planning to migrate to either Emotion or @styled-components in the near future, and I'll write another Stack Decision when we get there!

#inlinecss

See more
Eli Hooten
Eli Hooten
CTO at Codecov · | 13 upvotes · 77.5K 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
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.5K 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
Interest over time
Reviews of CoffeeScript and HAML
No reviews found
How developers use CoffeeScript and HAML
Avatar of StackShare
StackShare uses HAMLHAML

Personally, I really like HAML. Not having to use open and close tags is a huge time saver. As a result, writing markup with HAML is much more pleasant. HAML essentially forces you to be very strict about spacing, organization, and structure. It also makes the markup easier to read. Protip: I use this pretty frequently: htmltohaml.com

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 HAML cost?
Pricing unavailable
Pricing unavailable
News about CoffeeScript
More news
News about HAML
More news