Get Advice Icon

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

Clojure
Clojure

726
551
+ 1
887
Hack
Hack

78
51
+ 1
27
Add tool

Clojure vs Hack: What are the differences?

Developers describe Clojure as "A dynamic programming language that targets the Java Virtual Machine". Clojure is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language - it compiles directly to JVM bytecode, yet remains completely dynamic. Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system. On the other hand, Hack is detailed as "A programming language for HHVM that interoperates seamlessly with PHP". 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.

Clojure and Hack can be categorized as "Languages" tools.

"It is a lisp" is the top reason why over 96 developers like Clojure, while over 5 developers mention "Interoperates seamlessly with php" as the leading cause for choosing Hack.

Clojure is an open source tool with 7.85K GitHub stars and 1.25K GitHub forks. Here's a link to Clojure's open source repository on GitHub.

CircleCI, Groupon, and Soundcloud are some of the popular companies that use Clojure, whereas Hack is used by Facebook, Slack, and Wizters. Clojure has a broader approval, being mentioned in 95 company stacks & 80 developers stacks; compared to Hack, which is listed in 8 company stacks and 3 developer stacks.

- No public GitHub repository available -

What is Clojure?

Clojure is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language - it compiles directly to JVM bytecode, yet remains completely dynamic. Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system.

What is Hack?

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.
Get Advice Icon

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

Why do developers choose Clojure?
Why do developers choose Hack?

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

    Be the first to leave a con
    What companies use Clojure?
    What companies use Hack?

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

    What tools integrate with Clojure?
    What tools integrate with Hack?

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

    What are some alternatives to Clojure and Hack?
    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.
    Haskell
    Common Lisp
    Lisp was originally created as a practical mathematical notation for computer programs, influenced by the notation of Alonzo Church's lambda calculus. It quickly became the favored programming language for artificial intelligence (AI) research. As one of the earliest programming languages, Lisp pioneered many ideas in computer science, including tree data structures, automatic storage management, dynamic typing, conditionals, higher-order functions, recursion, and the self-hosting compiler. [source: wikipedia]
    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.
    Julia
    Julia is a high-level, high-performance dynamic programming language for technical computing, with syntax that is familiar to users of other technical computing environments. It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library.
    See all alternatives
    Decisions about Clojure and Hack
    StackShare Editors
    StackShare Editors
    PHP
    PHP
    Hack
    Hack
    HHVM (HipHop Virtual Machine)
    HHVM (HipHop Virtual Machine)

    Throughout 2016, Slack began migrating from PHP5 to Hack. They cite several well-known challenges inherent to PHP, including surprise type conversions, inconsistency around reference semantics, inconsistencies in the standard library, and the fact that “PHP tries very, very hard to keep the request running, even if it has done something deeply strange.”

    To overcome these challenges while maintaining the unique values of PHP, Slack turned to Hack, a gradual typing system for PHP. Hack runs on the HipHop Virtual Machine, or HHVM, an open source just-in-time (JIT) environment for PHP.

    See more
    Jake Stein
    Jake Stein
    CEO at Stitch · | 13 upvotes · 102.1K views
    atStitchStitch
    Go
    Go
    Amazon RDS
    Amazon RDS
    Amazon S3
    Amazon S3
    Amazon Redshift
    Amazon Redshift
    Amazon EC2
    Amazon EC2
    AWS OpsWorks
    AWS OpsWorks
    Kubernetes
    Kubernetes
    Python
    Python
    JavaScript
    JavaScript
    Clojure
    Clojure

    Stitch is run entirely on AWS. All of our transactional databases are run with Amazon RDS, and we rely on Amazon S3 for data persistence in various stages of our pipeline. Our product integrates with Amazon Redshift as a data destination, and we also use Redshift as an internal data warehouse (powered by Stitch, of course).

    The majority of our services run on stateless Amazon EC2 instances that are managed by AWS OpsWorks. We recently introduced Kubernetes into our infrastructure to run the scheduled jobs that execute Singer code to extract data from various sources. Although we tend to be wary of shiny new toys, Kubernetes has proven to be a good fit for this problem, and its stability, strong community and helpful tooling have made it easy for us to incorporate into our operations.

    While we continue to be happy with Clojure for our internal services, we felt that its relatively narrow adoption could impede Singer's growth. We chose Python both because it is well suited to the task, and it seems to have reached critical mass among data engineers. All that being said, the Singer spec is language agnostic, and integrations and libraries have been developed in JavaScript, Go, and Clojure.

    See more
    StackShare Editors
    StackShare Editors
    Prometheus
    Prometheus
    Chef
    Chef
    Consul
    Consul
    Memcached
    Memcached
    Hack
    Hack
    Swift
    Swift
    Hadoop
    Hadoop
    Terraform
    Terraform
    Airflow
    Airflow
    Apache Spark
    Apache Spark
    Kubernetes
    Kubernetes
    gRPC
    gRPC
    HHVM (HipHop Virtual Machine)
    HHVM (HipHop Virtual Machine)
    Presto
    Presto
    Kotlin
    Kotlin
    Apache Thrift
    Apache Thrift

    Since the beginning, Cal Henderson has been the CTO of Slack. Earlier this year, he commented on a Quora question summarizing their current stack.

    Apps
    • Web: a mix of JavaScript/ES6 and React.
    • Desktop: And Electron to ship it as a desktop application.
    • Android: a mix of Java and Kotlin.
    • iOS: written in a mix of Objective C and Swift.
    Backend
    • The core application and the API written in PHP/Hack that runs on HHVM.
    • The data is stored in MySQL using Vitess.
    • Caching is done using Memcached and MCRouter.
    • The search service takes help from SolrCloud, with various Java services.
    • The messaging system uses WebSockets with many services in Java and Go.
    • Load balancing is done using HAproxy with Consul for configuration.
    • Most services talk to each other over gRPC,
    • Some Thrift and JSON-over-HTTP
    • Voice and video calling service was built in Elixir.
    Data warehouse
    • Built using open source tools including Presto, Spark, Airflow, Hadoop and Kafka.
    Etc
    See more
    Clojure
    Clojure
    ClojureScript
    ClojureScript
    JavaScript
    JavaScript
    Java
    Java
    C#
    C#

    I adopted Clojure and ClojureScript because:

    • it's 1 language, multiple platforms.
    • Simple syntax.
    • Designed to avoid unwanted side effects and bugs.
    • Immutable data-structures.
    • Compact code, very expressive.
    • Source code is data.
    • It has super-flexible macro.
    • Has metadata.
    • Interoperability with JavaScript, Java and C#.
    See more
    Interest over time
    Reviews of Clojure and Hack
    No reviews found
    How developers use Clojure and Hack
    Avatar of Brandon Adams
    Brandon Adams uses ClojureClojure

    Cloure is a high level language that provides access to both the JVM (for server-side development) and javascript (for client-side development) with largely the same language. This is important to limit context switching and enable code-reuse during fast product cycles. Clojure is ideal for rapid prototyping and has a strong focus on stability, correctness, and concurrency. Tools like Schema and Spec enable well-structured development and high code confidence.

    Avatar of Brian Fults
    Brian Fults uses ClojureClojure

    To complement Java. The REPL lets me interactively exercise Java code. I can write performant and safe libraries in Java, and then use them in Clojure. I also find the data-centric aspect of Clojure (excellent build-in structures, literal syntax for easily creating those structures, functions that act well on abstractions of those structures) good for data processing.

    This fits a sweet spot between Ruby and Java.

    Avatar of BandSquare
    BandSquare uses ClojureClojure

    We use Clojure mostly for its "Minority Report"-like interactive development in situations that require 'semi-automatic programming' (data inspection, admin tasks, API exploration, scrapers, etc.). We have also used Clojure successfully to build some components of our stack very quickly and reliably, in the backend and the frontend.

    Avatar of papaver
    papaver uses ClojureClojure

    just started learning clojure, maybe around two weeks or so. i'm addicted. this is what i want to be working with and learning for the foreseeable future. the elegance of the language is refreshing. the community is really amazing. i've finally found a language that fits my passion for programming.

    Avatar of CloudRepo
    CloudRepo uses ClojureClojure

    Clojure simplifies and reduces the coding efforts involved in creating CloudRepo. The fact that it runs in the JVM gives us access to all the libraries that we could ever need. Our code base is much smaller and easier to reason about than it would have been had we gone with pure Java.

    How much does Clojure cost?
    How much does Hack cost?
    Pricing unavailable
    Pricing unavailable
    News about Hack
    More news