Hy 1.0.0, the Lisp dialect for Python, has been released #2608
Replies: 3 comments 6 replies
-
Congrats. This is the moment I've been waiting for over a decade, literally. It gives me peace of mind because I am working on an ORM and an async web framework, both in Hy, they are not the typical "yet another ..." ones, I am not reinventing the wheel, both libraries are leveraging existing awesome libraries, containing mostly macros, focusing on cleaner interface and less boilerplate code. For example, instead of these models in SQLAlchemy's ORM Quick Start Guide class Base(DeclarativeBase):
pass
class User(Base):
__tablename__ = "user_account"
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[str] = mapped_column(String(30))
fullname: Mapped[Optional[str]]
addresses: Mapped[List["Address"]] = relationship(
back_populates="user", cascade="all, delete-orphan"
)
class Address(Base):
__tablename__ = "address"
id: Mapped[int] = mapped_column(primary_key=True)
email_address: Mapped[str]
user_id: Mapped[int] = mapped_column(ForeignKey("user_account.id"))
user: Mapped["User"] = relationship(back_populates="addresses") One can use the (defmodel User
(id int :primary-key)
(name str :max-length 30)
(fullname str :nullable)
(1->* Address :as "addresses"))
(defmodel Address
(id int :primary-key)
(email str)
(*->1 User :reference "addresses")) There will be no extra cost in runtime as |
Beta Was this translation helpful? Give feedback.
-
Is this feasible to operate on top of Micropython instead of CPython? |
Beta Was this translation helpful? Give feedback.
-
I can see a big spike in unique daily visitors to my web server (which hosts Hylang.org) on release day, which is cool. |
Beta Was this translation helpful? Give feedback.
-
I'm pleased to announce the release of Hy 1.0.0, after nearly 12 years of on-and-off development and lots of real-world use. Hy is a Lisp dialect embedded in Python. See Hylang.org for an introduction and documentation, the NEWS file for a version history, and the HYPE POST for something a little less serious.
Henceforth, breaking changes to documented parts of the language (other than dropping support for versions of Python that are themselves no longer supported by the CPython developers) will increase the major version number, and my intention is for that not to happen often, if at all. My focus will be on fixing new bugs as they arise, adding compatibility with new versions of Python, and adding support for whatever new features are added to Python in a fashion that won't break code that works on previous versions of Hy 1.x.y.
Beta Was this translation helpful? Give feedback.
All reactions