编程与软件工程en.wikipedia.org
Hy:嵌入 Python 的 Lisp 方言
Hy
2016 — 2019,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
Hy 是一个运行在 Python 之上的 Lisp 方言,代码会被编译成 Python 字节码,可以直接使用整个 Python 生态的库。这个维基百科页面介绍了它的基本情况。它让 Python 开发者能用 S 表达式写代码,同时保留 Python 的可移植性和生态。
为什么经久不衰:它把 Lisp 的表达力嫁接到 Python 庞大的生态上,多年来持续活跃开发,是'想写 Lisp 又离不开 Python'的开发者的经典选择。
HN 评论精选
回顾了 Hy 诞生时 2013 年 PyCon 的精彩历史场景
我最早是在 2013 年 PyCon 的一场闪电演讲上认识 Hy 的,演讲者是语言作者 @paultag。那场演讲很有趣,视频还能在线看。我记得很清楚,因为同一场闪电演讲里,Solomon Hykes 还向 Python 社区介绍了 Docker(当时他还在 dotCloud 工作),这可能是关于 Docker 最早的公开技术演讲之一。那也是 Eben Upton 做主题演讲、宣布给 2500 名与会者每人送一块树莓派的同一届 PyCon。2013 年真是与 Python 相关的开源技术的好年份。
pixelmonkey查看英文原文
hy was first introduced to me at PyCon 2013 in a lightning talk by @paultag, the language's creator. It was a very fun lightning talk. You can still watch it online here: https://youtu.be/1vui-LupKJI?t=968 I remember that day pretty clearly because in the same lightning talk session, Solomon Hykes introduced the Python community to docker, while still working on dotCloud. This is what I think might have been the earliest public and recorded tech talk on the subject. https://youtu.be/1vui-LupKJI?t=1579 This was also the same PyCon that Eben Upton opened with a keynote to discuss the mission of Raspberry Pi, while also announcing that each of the 2,500 attendees would receive a free physical Raspberry Pi at the conference. It was a pretty darn good year of PyCon; 2013 was apparently a good vintage for open source tech with Python connections.
Hy 若能解决痛点并达到 1.0,有望在 Lisp 生态版图中占据一席之地
如果 Hy 能解决 let 被移到 contrib 的问题,并吸引足够人力达到 1.0,我认为它能获得可观的影响力。Hy 填补了一块空白:让开发者可以全押现代 Lisp,同时依托成熟的生态——前端用 ClojureScript/NPM,脚本用 Hy/PyPI,后端用 Clojure/JVM。
cutler查看英文原文
If Hy could resolve its problems with let being moved to contrib and attracted enough manpower to reach 1.0 I think it could attract significant mindshare. Hy fills in the missing piece for devs who want to go all-in with modern Lisp supported by an established ecosystem, ie. front-end/Clojurescript/NPM, scripting/Hy/PyPi and back-end/Clojure/JVM.
Hy 是通向 Common Lisp 的入口,CL 在部署、性能和稳定性上优势明显
Hy 让我重新审视了 Lisp,我很庆幸如此,现在我大量使用 Common Lisp 了。CL 有很多优势:可以构建自包含的二进制文件,部署极其轻松;REPL 比 ipython 好用得多;CL 是编译型的,逐函数编译并在编译期给出大量警告;CL 稳定、语法简单、还能通过扩展添加想要的语法;CL 很快(pgloader 从 Python 重写为 CL 后大幅提速);库可能比你想象的多;对象系统和多重分派也很出色。
vindarel查看英文原文
Hy made me reconsider Lisps and I'm glad it did. I'm now using CL quite a lot. It's possible to use Python libraries from CL: - there is py4cl and async-process: https://github.com/CodyReichert/awesome-cl#python - NumCL is a clone of Numpy: https://github.com/numcl/numcl Common Lisp has many advantages though: - you can build a self-contained binary of your app, including web app. It's such a breeze to deploy, and it's possible to ship a binary to users. - the REPL is much better and more fun than ipython - CL is compiled. We compile our code function by function, and we get many compiler warnings at compile time. - CL is stable, the syntax is simple, you can add the syntax you want with extensions (decorators, string interpolation,…) and yet, the implementations keep improving, and new ones are created (Claps, CL on LLVM). - CL is fast (how pgloader got rewritten from Python to CL: https://tapoueh.org/blog/2014/05/why-is-pgloader-so-much-faster/) - there may be more libraries than you think: https://github.com/CodyReichert/awesome-cl - the object system is very nice, the multiple dispatch makes me have a cleaner and shorter ABI of my app. - there are more editors with good support than Emacs: Atom support is getting very good, and there's more: https://lispcookbook.github.io/cl-cookbook/editor-support.html - the (default) package management system works with "distributions", à la apt/Debian, so it doesn't break suddenly because of a third party of a third party dependency. Of course, the web stack is less mature (but more promising: see Weblocks http://40ants.com/weblocks/) and CL might be more difficult. It's not for every one. But it's been a joy so far.
Hy 兼得 Lisp 与 Python 生态,但速度受限,更适合小工具而非大项目
优点:能在任何 Python 能跑的地方运行;使用 Python 的生态;具备 Lisp 的一致性和功能。缺点:和 Python 一样慢。结论:我爱 Hy。当我想要一个可移植的 Lisp,或被 Python 的任意限制(比如 lambda)搞得抓狂时,我就用 Hy。遗憾的是它从没适合过大型项目,所以我像用 scsh 那样用它。
shakna查看英文原文
Pros * Runs anywhere Python does * Uses Python's ecosystem * LISP consistency and functionality Cons * As slow as Python Conclusion: I love Hy. When I want a portable LISP, or get incredibly frustrated with Python's arbitary limitations (lambda), I use Hy. Unfortunately, never had it fit a large project, so I use it like scsh.
历次讨论
同类还值得读
开源应用架构
The Architecture of Open Source Applications
《开源软件架构》(AOSA)是一本在线免费书,邀请知名开源项目的作者亲自剖析其内部设计,涵盖 SQLAlchemy、LLVM、Audacity、Apache、Bash 等系统。
编程与软件工程上首页 9 次 · 2011–2024aosabook.org编辑精选编程语言简史:简短、不完整且多半错误
A Brief, Incomplete, and Mostly Wrong History of Programming Languages
一篇以戏谑、故意不准确的方式回顾编程语言史的博客文章,用夸张轶事和讽刺定义串起 Lisp、C、C++、Java、JavaScript、PHP 等语言。
编程与软件工程上首页 8 次 · 2009–2021james-iry.blogspot.comSQLite 是如何测试的
How SQLite is tested
SQLite 官方文档页,系统介绍 SQLite 的测试体系:多种测试方法(TCL 测试、模糊测试、回归测试、静态分析等)和海量测试用例,展示了这个小型开源项目如何靠极致测试获得…
编程与软件工程上首页 8 次 · 2009–2025sqlite.org编辑精选高级编程语言(2009)
Advanced programming languages (2009)
Matt Might 的经典文章,按用途推荐“高级编程语言”:如果追求就业就选主流语言,如果追求表达力、学术研究或创业,则推荐 Haskell、OCaml、Scala 等函数式语…
编程与软件工程上首页 8 次 · 2009–2022matt.might.net我的 Forth 与栈机器经历
Yosefk - My history with Forth & stack machines
作者以亲身经历回顾了使用 Forth 语言和栈式机器的历程:既赞叹其简洁优雅、代码量小、可自举的优点,也坦率指出栈操作在实际编程中的痛苦,以及 Forth 社区文化中的问题。
编程与软件工程上首页 8 次 · 2010–2024yosefk.com编辑精选