<!--lint disable double-link-->

# Awesome Eta [![Awesome](https://awesome.re/badge.svg)](https://awesome.re)

> Useful resources for the [Eta](https://eta-lang.org/) programming language

You might also like [awesome-haskell](https://github.com/krispo/awesome-haskell).

*Please read the [contribution guidelines](contributing.md) before contributing.*

## Contents

<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->

- [Introduction](#introduction)
  - [Overview](#overview)
  - [First Steps](#first-steps)
  - [Comparisons](#comparisons)
  - [Compatibility](#compatibility)
  - [Official Resources](#official-resources)
- [Community](#community)
- [Twitter](#twitter)
- [Information](#information)
  - [Articles](#articles)
  - [Blogs](#blogs)
  - [Conferences](#conferences)
  - [Courses](#courses)
  - [Talks](#talks)
- [Tools](#tools)
- [Sample Applications](#sample-applications)
  - [Android](#android)
  - [Web](#web)
  - [Miscellaneous](#miscellaneous)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

## Introduction

### Overview

- [Eta](https://eta-lang.org/) - Official website.
- [GitHub](https://github.com/typelead/eta) - Eta on GitHub.
- [Philosophy](http://blog.ezyang.com/2018/09/hiw18-lets-go-mainstream-with-eta/) - Interview about the philosophy behind Eta's development.

### First Steps

- [Getting Started](https://eta-lang.org/docs/user-guides/eta-user-guide/introduction/what-is-eta) - First steps with Eta.
- [Prelude](https://github.com/eta-lang/eta-prelude) - Default modules for an easier start.

### Comparisons

- [Eta vs. Haskell](https://eta-lang.org/docs/faq#eta-not-haskell) - Differences between Eta and Haskell.
- [Eta vs. Frege](https://eta-lang.org/docs/faq#eta-vs-frege) - Differences between Eta and Frege.

### Compatibility

- [Etlas Packages](https://github.com/typelead/eta-hackage#supported-packages) - Hackage packages that work with Eta.
- [Template Haskell](https://eta-lang.org/docs/faq#eta-repl-support) - Status of Template Haskell.
- [GHC 8](https://eta-lang.org/docs/faq#is-eta-compatible-ghc8) - Compatibility with GHC 8.

### Official Resources

- [Tutorials](https://eta-lang.org/docs/tutorials) - Eta tutorials.
- [FAQ](https://eta-lang.org/docs/faq) - Frequently asked questions.
- [Eta Cheatsheets](https://eta-lang.org/docs/cheatsheets) - Eta reference.
- [Eta Blog: Java I](https://blog.eta-lang.org/https-medium-com-jyothsnasrinivas-the-best-of-both-the-worlds-eta-and-java-part-1-336d181de89d) - Using Eta with Java, part I.
- [Eta Blog: Java II](https://blog.eta-lang.org/the-best-of-both-the-worlds-eta-and-java-part-2-d7cf27acdef7) - Using Eta with Java, part II.
- [Eta Blog: Haskell](https://blog.eta-lang.org/eta-in-practice-working-with-haskell-packages-5dfa3dc0c98a) - Using Haskell packages in Eta code.
- [Eta Blog: Scala](https://blog.eta-lang.org/integrating-eta-into-your-scala-projects-a8d494a2c5b0) - Using Eta code in Scala projects.
- [Docker Hub](https://hub.docker.com/r/typelead/eta/) - Docker repo for Eta.

## Community

- [Google Group](https://groups.google.com/forum/#!forum/eta-discuss) - Eta Google Group.
- [Gitter](https://gitter.im/typelead/eta) - Gitter channel.
- [IRC](https://kiwiirc.com/client/irc.freenode.net/#eta-lang) - IRC channel.

## Twitter

- [Eta](https://twitter.com/eta_lang) - Official Twitter account.
- [TypeLead](https://twitter.com/typelead) - Company behind Eta.
- [Rahul Muttineni](https://twitter.com/rahulmutt) - Creator of Eta and CTO of TypeLead.

## Information

### Articles

- [InfoWorld](https://www.infoworld.com/article/3157373/java/new-jvm-language-stands-apart-from-scala-clojure.html) - Short article about Eta.
- [Jaxenter](https://jaxenter.com/eta-pirates-of-the-jvm-133518.html) - Functional programming made easy: Here comes Eta.

### Blogs

- [Eta programming language](https://blog.eta-lang.org/) - Official blog.
- [Eta on Android](https://brianmckenna.org/blog/eta_android) - Post about using Eta on Android.

### Conferences

- [ICFP](http://www.icfpconference.org/) - International Conference on Functional Programming.

### Courses

- [FP101x](https://www.edx.org/course/introduction-functional-programming-delftx-fp101x-0) - Introduction to Functional Programming on edX.

### Talks

- [Introduction to Eta](https://www.youtube.com/watch?v=hmDLNO7Gkxs) - Introduction by the creator of Eta.
- [Introduction to Eta](https://brianmckenna.org/files/presentations/lambdajam-2017-eta.pdf) - Introduction to the language and its origin.
- [Haskell for JVM](https://www.youtube.com/watch?v=P1dmHKJ2vak) - Talk at LambdaConf about porting a language to the JVM.
- [Using Eta](https://speakerdeck.com/filippovitale/using-eta-for-what-you-dont-like-writing-in-scala) - Comparison of Eta and Scala.
- [Eta Fibers](https://rahulmutt.github.io/slides/fuconf17-eta-fibers/slides.html#1) - Concurrency on the JVM.
- [ICFP Videos](https://www.youtube.com/channel/UCwRL68qZFfub1Ep1EScfmBw) - Videos about functional programming.
- [Functional Conf - 2016](https://www.youtube.com/watch?v=CscBSNF6qnE) - Bringing the Power of Haskell to the JVM.
- [Functional Conf - 2017](https://www.youtube.com/watch?v=ZuJg2cfmSmw) - Eta Fibers: Towards Better Concurrency on the JVM.

## Tools

- [IntelliJ Eta](https://github.com/typelead/intellij-eta) - Plugin for IntelliJ.
- [sbt](https://github.com/typelead/sbt-eta) - Plugin for integrating Eta into Scala.
- [gradle](https://github.com/typelead/gradle-eta) - Gradle plugin for Eta projects.

## Sample Applications

### Android

- [eta-android](https://github.com/puffnfresh/eta-android) - Example of Eta on Android.
- [eta-android-2048](https://github.com/Jyothsnasrinivas/eta-android-2048) - The 2048 game for Android.

### Web

- [eta-todo](https://github.com/Jyothsnasrinivas/eta-todo) - Example of a Spock web application written in Eta.
- [eta-yesod-minimal](https://github.com/Jyothsnasrinivas/eta-yesod-minimal) - Example of a Yesod web application in Eta.

### Miscellaneous

- [eta-examples](https://github.com/typelead/eta-examples) - Examples of Eta code.
- [eta-2048](https://github.com/rahulmutt/eta-2048) - The 2048 game written in Eta.
