StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Follow on

© 2025 StackShare. All rights reserved.

Product

  • Stacks
  • Tools
  • Feed

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  1. Stackups
  2. Application & Data
  3. Languages
  4. Languages
  5. Erlang vs Hack

Erlang vs Hack

OverviewComparisonAlternatives

Overview

Erlang
Erlang
Stacks1.4K
Followers749
Votes345
GitHub Stars11.9K
Forks3.0K
Hack
Hack
Stacks818
Followers169
Votes29
GitHub Stars18.5K
Forks3.1K

Erlang vs Hack: What are the differences?

Introduction:

Erlang and Hack are two programming languages that differ in various aspects. In this markdown, we will explore 6 key differences between Erlang and Hack.

  1. Concurrency Model: Erlang is known for its built-in support for concurrency and scalability. It has lightweight processes, called "actors," which communicate through message passing. This concurrency model allows Erlang to handle a large number of concurrent tasks efficiently. In contrast, Hack does not have native support for concurrency and instead relies on traditional thread-based models for parallel execution.

  2. Static Typing vs. Dynamic Typing: Erlang is a dynamically typed language, meaning that variable types are determined at runtime. This flexibility allows for easy code modification and dynamic behavior. Hack, on the other hand, is a statically typed language that requires variable types to be declared at compile-time. This ensures code correctness and performance optimization but might make the development process more rigid.

  3. Platforms & Target Audience: Erlang was designed specifically for creating fault-tolerant and high-availability systems. It is widely used in telecommunication applications and distributed systems. Hack, on the other hand, is a programming language developed by Facebook for their own use. It focuses on web development and is optimized for PHP-based projects, targeting a different set of audiences and use cases.

  4. Concurrency Control: Erlang provides built-in tools and techniques for handling concurrency and protecting shared resources, such as a process-based memory model and message passing. These features make it easier to deal with concurrency-related issues like race conditions and deadlocks. In Hack, concurrency control is left to the developer's discretion, requiring the use of external libraries or manual synchronization mechanisms.

  5. Error Handling: Erlang has a special error handling mechanism called "let it crash." It encourages developers to isolate and handle errors at a local level instead of trying to catch all exceptions centrally. This approach allows for fault-tolerant systems that can recover from failures without affecting the whole application. In Hack, error handling is more traditional, relying on try-catch blocks for exception handling.

  6. Tooling and Ecosystem: Erlang has a mature ecosystem with a wide range of tools and libraries that facilitate development, testing, and deployment. It has been widely adopted and has a large and active community. Hack, being a relatively newer language, has a smaller ecosystem with fewer tools and libraries available. However, being developed by Facebook, it has extensive support for their own frameworks and technologies.

In summary, Erlang and Hack differ in their concurrency models, typing systems, target audience, concurrency control mechanisms, error handling approaches, and ecosystem maturity.

Share your Stack

Help developers discover the tools you use. Get visibility for your team's tech choices and contribute to the community's knowledge.

View Docs
CLI (Node.js)
or
Manual

Detailed Comparison

Erlang
Erlang
Hack
Hack

Some of Erlang's uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang's runtime system has built-in support for concurrency, distribution and fault tolerance. OTP is set of Erlang libraries and design principles providing middle-ware to develop these systems.

Hack provides instantaneous type checking via a local server that watches the filesystem. It typically runs in less than 200 milliseconds, making it easy to integrate into your development workflow without introducing a noticeable delay.

-
Fast Development; Type Checking; Built for HHVM; Type Annotations; Generics; Lambdas
Statistics
GitHub Stars
11.9K
GitHub Stars
18.5K
GitHub Forks
3.0K
GitHub Forks
3.1K
Stacks
1.4K
Stacks
818
Followers
749
Followers
169
Votes
345
Votes
29
Pros & Cons
Pros
  • 62
    Real time, distributed applications
  • 62
    Concurrency Support
  • 58
    Fault tolerance
  • 36
    Soft real-time
  • 32
    Open source
Cons
  • 1
    Languange is not popular demand
Pros
  • 6
    Open source
  • 6
    Interoperates seamlessly with php
  • 5
    Backed by facebook
  • 4
    HHVM
  • 2
    PHP like
Integrations
No integrations available
HHVM (HipHop Virtual Machine)
HHVM (HipHop Virtual Machine)

What are some alternatives to Erlang, Hack?

JavaScript

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.

Python

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.

PHP

PHP

Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.

Ruby

Ruby

Ruby is a language of careful balance. Its creator, Yukihiro “Matz” Matsumoto, blended parts of his favorite languages (Perl, Smalltalk, Eiffel, Ada, and Lisp) to form a new language that balanced functional programming with imperative programming.

Java

Java

Java is a programming language and computing platform first released by Sun Microsystems in 1995. There are lots of applications and websites that will not work unless you have Java installed, and more are created every day. Java is fast, secure, and reliable. From laptops to datacenters, game consoles to scientific supercomputers, cell phones to the Internet, Java is everywhere!

Golang

Golang

Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.

HTML5

HTML5

HTML5 is a core technology markup language of the Internet used for structuring and presenting content for the World Wide Web. As of October 2014 this is the final and complete fifth revision of the HTML standard of the World Wide Web Consortium (W3C). The previous version, HTML 4, was standardised in 1997.

C#

C#

C# (pronounced "See Sharp") is a simple, modern, object-oriented, and type-safe programming language. C# has its roots in the C family of languages and will be immediately familiar to C, C++, Java, and JavaScript programmers.

Scala

Scala

Scala is an acronym for “Scalable Language”. This means that Scala grows with you. You can play with it by typing one-line expressions and observing the results. But you can also rely on it for large mission critical systems, as many companies, including Twitter, LinkedIn, or Intel do. To some, Scala feels like a scripting language. Its syntax is concise and low ceremony; its types get out of the way because the compiler can infer them.

Elixir

Elixir

Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain.

Related Comparisons

Bootstrap
Materialize

Bootstrap vs Materialize

Laravel
Django

Django vs Laravel vs Node.js

Bootstrap
Foundation

Bootstrap vs Foundation vs Material UI

Node.js
Spring Boot

Node.js vs Spring-Boot

Liquibase
Flyway

Flyway vs Liquibase