HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
hylang
hy
Python2013–2024
hylang / hy

hy

A dialect of Lisp that's embedded in Python

62Distinct people
79Mentions
2Explicit recommenders
5.4KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A dialect of Lisp that's embedded in Python

GitHub

Where it is used

The source check is incomplete. Verified examples will appear here.

What people are saying

First of all, thanks for clearing things up about Lisp! I have a question which I think is the concern of many people in Data Science sector as well: I love the idea of Lisp…

bhnmmhmd used a recommendation phrase. 2 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year79 dated mentions

Observed mentions: 2013-06-23 01:26:32 UTC to 2024-09-23 18:44:38 UTC.

0510152013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20132014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 16 mentions; 2 submissions, 14 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 7 mentions; 3 submissions, 4 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 6 mentions; 3 submissions, 3 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 9 mentions; 2 submissions, 7 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 10 mentions; 1 submissions, 9 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 6 mentions; 1 submissions, 5 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 6 mentions; 1 submissions, 5 comments2024

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC101
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC16214
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC404
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC606
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC734
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC633
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC927
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC1019
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC615
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC707
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC101
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC615

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Hy Lisp and Python should love each other. Let's make it happen. Hy is a Lisp dialect that's embedded in Python. Since Hy transforms its Lisp code into Python abstract syntax tree (AST) objects, you have the whole beautiful world of Python at your fingertips, in Lisp form. To install the latest release of Hy, just use the command pip3 install --user hy. Then you can start an interactive read-eval-print loop (REPL) with the command hy, or run a Hy program with hy myprogram.hy. The Hy homepage Try Hy with a web console Project Code: https://github.com/hylang/hy Documentation: http://hylang.org/hy/doc Bug reports: We have no bugs! Your bugs are your own! (https://github.com/hylang/hy/issues) License: MIT (Expat) Community: Join us on Github Discussions Stack Overflow: The [hy] tag Hy's current maintainer is Kodi Arfer. He takes responsibility for answering user questions, which should primarily be asked on Stack Overflow or GitHub Discussions, but feel free to poke him if he's missed a question or you've found a serious security issue. (fan art from the one and only doctormo)
Read the full README on GitHub

What Hacker News says

79 sources
Compared to other languages, 'lisp syntax' is very minimal. It is just a prefix notation with parenthesis for enclosing expressions, the first item usually being a function. There are only a handful of special forms to learn, which deviate from this. The real power of lisp IMHO lies in: - Repl driven, dynamic development. This is hard to explain. Its like chocolate. You have to try it. You either love it or hate it. - Macros. This is again enabled by the 'lisp syntax. Actually lack of it...'. Here is an example I recently ran into when checking out Hy https://github.com/hylang/hy/discussions/2608#discussioncomm... This shows how much you can abstract, hide the noise without any runtime penalties..
In Hy 1.0 – Lisp dialect for Python
I was having some difficulty figuring out how Hy actually is translated to Python (and wasn't even sure if it was compiled or interpreted). Eventually I found on Wikipedia the following: > Hy is a dialect of the Lisp programming language designed to interact with Python by translating s-expressions into Python's abstract syntax tree (AST). Also, looking at the code on Github suggests this compiler is written in Python (see https://github.com/hylang/hy/blob/master/hy/compiler.py). I kind of wish this was made more clear on the main website. Perhaps, instead of introducing Hy as "a Lisp dialect that's embedded in Python", introduce it as "a Lisp dialect that compiles to Python's AST". The words "embedded in Python" don't make it very clear just how it's embedded into Python. The various ways you can embed a Lisp look very different and have
Read the rest
very different tradeoffs. For example, off the top of my head, I could "embed" a Lisp by writing an interpreter (in C if I care about performance) and letting it be called from Python, perhaps passing in a Python list instead of a string to make it more "native". Or I could "embed" a Lisp by compiling to Python bytecode. Or I could "embed" a Lisp by translating it directly to Python source code. Etc. Regardless, interesting project!
In Hy 1.0 – Lisp dialect for Python
It's been implemented, found to be subtly broken, and re-implemented a number of times. Ultimately trying to impose a different model of scoping on top of Python's scoping is living in a state of sin; thus the difficulties. The status quo is an apparently working `let` due to a truly heroic effort by Sunjay Cauligi ( https://github.com/hylang/hy/pull/2125 ). You're encouraged to try to find bugs in it. In truth, I've never understood the fuss about `let`. It's taken a huge amount of Hy development effort, but it adds very little. Python's native scoping works well in the large majority of cases, and in tricky cases, I'd rather use `nonlocal` or `global` explicitly so I'm sure what's happening at the level of Python semantics. I suspect that people who heard that previous versions of Hy were missing `let` assumed that some other feature (s
Read the rest
uch as nested lexical scopes) was also missing that has actually always been there.
In Why Hy?
>I think that even when using a third-party server, like, say, Google Groups or https://lists.sr.ht/ for this, the amount of control you get over your data and conversations is much higher than something like Discord. All of the conversations on the list during your membership of it are trivially archivable and searchable using software that is probably built into your operating system. Again, your statements above emphasize the advantages of client side tools but not the tradeoffs of various server side options for the FOSS admins. You've listed the positives of your use case in multiple messages but surely you'd know that the tech audience of HN and the FOSS admins are already aware of them. To make progress, we need to dissect the server landscape from the admins' perspective. Consider your proposals of, "Google Groups or https://lis
Read the rest
ts.sr.ht/" - lists.sr.ht : Costs money. It's not a lot but it's more than $0. (https://sourcehut.org/pricing/) This is also a small hosting business and some project may be uncomfortable basing their discussions there rather than a bigger company like Microsoft/Google/Discord/etc. The sr.ht owner likes to emphasize the infrastructure's "alpha" status which seems like a "caveat emptor" : https://drewdevault.com/2019/01/13/Backups-and-redundancy-at... - Google Groups : $0 cost but a lot of projects are dissatisfied with GG and want to switch to more modernized[1] discussion software. (And some for ideology reasons would rather avoid using Google services.) Examples: --- e.g. Hy Lisp project didn't like GG and eventually settled on migrating to Github Discussions: https://github.com/hylang/hy/issues/1778 (Yes, Github/Microsoft is a walled-garden but that didn't seem to be the biggest concern. Their immediate desire was to switch from GoogleGroups. And Github Discussions being free $0 probably helps.) --- e.g. TiddlyWiki long thread about moving off of GG to something else: https://groups.google.com/g/tiddlywiki/c/j-nm0ylA2Ac (You don't have to read that whole thing but here's an example comment[2]. The tldr is they eventually decided on Discourse self-hosted. Now they have a new complication of how to pay for ongoing server costs at Digital Ocean for the Discourse server: https://talk.tiddlywiki.org/t/paying-for-discourse/289) So what project leaders are trying to do is find the optimal tradeoffs on the server side : - ideally $0 cost - ideally zero setup and maintenance. E.g. click "+" button to create instant server in Discord rather than install phpBB or vBulletin or mailing-list software - ideally have modern features[1] - ideally open source if possible. Discourse is open-source but then you have to decide on SaaS hosting at $1200/yr (https://www.discourse.org/pricing) -- or pay for self-hosted costs. - ideally avoid massive scope creep by not developing a "Discord-like FOSS email list solution" even though some users envision an ideal world where such software exists. In that spirit, I thought it was amusing that in TiddlyWiki discussion to migrate to different forum software, they toyed with the idea of extending TiddlyWiki itself (aka dogfooding TiddlyWiki) to handle the forum discussion. They abandoned that idea and just went with Discourse. Ultimately, whenever an end user is frustrated that "FOSS project leaders don't do what I want them to do!" and wonder why they end up choosing Github Discussions or Discord ... it's the result of tradeoffs above. The hypothetical forum discussion software that makes all clients and admins happy doesn't exist. [1] example of what some are looking for in more modern discussion tools that GoogleGroups/mailinglists don't have: https://forum.getodk.org/t/important-moving-from-google-grou... [2] a comment excerpt : >[...] One new deal breaker for me with google groups is that now I can't reply from the browser on my phone. This is some new change that happened in recent months I guess. Yes, I can subscribe to emails and reply that way, but my gmail is already clogged enough as it is and this list is very high traffic. For forums like this I prefer to read and interact with it on the web, or else use discord/slack. [...] https://groups.google.com/g/tiddlywiki/c/j-nm0ylA2Ac/m/EvKqs...
In Don't contribute anything relevant in web forums (2020)
> Is this surprising? I don't see an ecosystem of languages targeting the Go runtime, in contrast to the JVM, Javascript, Erlang, MS CLR... I think I'm surprised in general that no language targets the Go runtime. A ML built on Go could probably be popular, lots of people would like features from it. Not exactly bytecode but Hy https://github.com/hylang/hy is a dialect of Lisp that compiles to Python.
In Differences with other Lisps

Showing the 15 most recent of 79 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.