Top all-time · #430
Haoyi's Programming Blog
Personal blog · lihaoyi.comprogramming
Haoyi's Programming Blog is a personal blog at lihaoyi.com about programming. Since 2016, 130 different Hacker News readers have linked it 295 times, most often “What's Functional Programming All About?”. It is still writing: the last post was on 2026-08-29, and you can follow it by feed.
Sometimes recommended · 10 of 40 sampled comments recommend it?
Why HN links it
HN readers link this blog for Scala writing on functional programming, design principles and build tools, which commenters call phenomenal and enjoyable to read.
- Recommended for · 10 comments
- Called phenomenal and a fine series of Scala posts; recommended for design principles, functional programming and SBT critiques.
Summarised by Claude from a sample of 40 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- What's Functional Programming All About?10 people · 12 mentions · first linked 2017-01-25
- Strategic Scala Style: Principle of Least Power (2016)8 people · 10 mentions · first linked 2021-02-12
- /post/SowhatswrongwithSBT.html8 people · 9 mentions · first linked 2020-06-01
- Strategic Scala Style: Principle of Least Power7 people · 7 mentions · first linked 2016-03-11
- Principles of Automated Testing6 people · 8 mentions · first linked 2017-07-15
- What's functional programming all about? (2017)6 people · 6 mentions · first linked 2020-04-20
- Build Tools as Pure Functional Programs5 people · 6 mentions · first linked 2018-01-17
- From first principles: Why I bet on Scala.js5 people · 6 mentions · first linked 2016-08-10
- The Death of Hype: What's Next for Scala5 people · 6 mentions · first linked 2020-04-19
- Ammonite: Scala Scripting5 people · 5 mentions · first linked 2016-03-02
What Hacker News says?
There is also Ammonite Shell[0], XONSH[1] 0: http://www.lihaoyi.com/Ammonite/#Ammonite-Shell 1: http://xon.sh/
Comment linking /Ammonite/
on “PowerShell is open sourced and is available on Linux”Submitted What's Functional Programming All About? as a story · 341 points
HN discussionIf you are interested at all in Scala, lihaoyi's blog ( http://www.lihaoyi.com/ ) is phenominal.
Comment linking /
on “Ask HN: What are some good technology blogs to follow?”Submitted What's Next for Scala as a story · 299 points
HN discussionYeah I've been looking at this recently. I like autowire's ability to create typesafe APIs shared across the client and server. Very promising, but not simple to set up... http://www.lihaoyi.com/hands-on-scala-js/#Autowire
Comment linking /hands-on-scala-js/
on “Angular 2 Final Released”Submitted From First Principles: Why Scala? as a story · 286 points
HN discussion> when properly designed (especially, avoiding the feeping creaturitis of something like Scala) What I find interesting here is that Scala has the reputation of being a complex language, while its syntax and grammar are among the simplest and most straightforward there is: https://images.app.goo.gl/K1NTGUP4G9T6wfY48 I believe that this is what "scalable" means in the eyes of its creator: it offers very powerful abst…
Comment linking /post/StrategicScalaStylePrincipleofLeastPower.html
on “Go 1.18”Submitted How to conduct a good programming interview as a story · 251 points
HN discussionIt defines a DSL for your build that looks roughly like Scala code. But… it’s not! And there is a confusing “resolution” system for build tasks/settings. It’s also slow as shit. See https://www.lihaoyi.com/post/SowhatswrongwithSBT.html for a comprehensive takedown. If you’re interested in just playing around with scala I would use https://scala-cli.virtuslab.org Or for larger projects, the thing the author of the li…
Comment linking /post/SowhatswrongwithSBT.html
on “A year of uv: pros, cons, and should you migrate”Submitted Zero-Overhead Tree Processing with the Visitor Pattern as a story · 215 points
HN discussionI am excited about Scala 3. Scala is a powerful tool that can make teams hyperproductive. Here are the tooling shifts that can broaden the Scala 3 userbase: * Community switching from SBT to Mill * Community agreeing on automated code formatting and everyone using the same scalafmt settings. After using automated code formatting tools like black for Python and gofmt, programmers really don't want to talk about white…
Comment linking /post/StrategicScalaStylePrincipleofLeastPower.html
on “Scala 3.0”Submitted How an Optimizing Compiler Works as a story · 164 points
HN discussionI think this can be generalized even further to the "principle of least power": https://www.lihaoyi.com/post/StrategicScalaStylePrincipleofL... The graph data structure, I believe, is the most generic of data structures, and it can be used to represent any other data structure. This arguably makes it both the most powerful data structure and the, IMO, the one of last resort.
Comment linking /post/StrategicScalaStylePrincipleofLeastPower.html
on “DRY is an over-rated programming principle?”Submitted What's functional programming all about? (2017) as a story · 161 points
HN discussion> Rust really is a great programming language that solves a lot of other problems other languages don't. It does so by introducing a pretty clever paradigm. Were you around when Scala was the end all be all of programming shiny things? "Early on, Scala rode a wave of hype that frankly surprised even me: hype around pushing syntactic boundaries, hype around reactive architectures, hype around functional programming,…
Comment linking /post/TheDeathofHypeWhatsNextforScala.html
on “Rust Is Hard, Or: The Misery of Mainstream Programming”Submitted Reflecting on Four Years at Databricks as a story · 158 points
HN discussionI love the idea/design of Nix and hope that one day someone will reimplement it in a way that one can reasonably understand/debug. Language is part of the problem but I think it's more of a https://www.lihaoyi.com/post/SowhatswrongwithSBT.html style problem where the execution model involves too much at runtime.
Comment linking /post/SowhatswrongwithSBT.html
on “We're Leaving Kubernetes”Submitted Mill: Better Scala Builds as a story · 155 points
HN discussion> If scala team were to disavow sbt, that'd be the single best thing they could possibly do for the ecosystem. Seconded. Between http://www.lihaoyi.com/mill/ and https://bazel.build/ , there are plenty of alternatives.
Comment linking /mill/
on “Towards Scala 3”Submitted What's wrong with the default build tool for Scala as a story · 125 points
HN discussionHis other son Li Haoyi is a prominent member of the Scala community (wrote the Ammonite scripting language and the book Hands-on Scala Programming). https://www.lihaoyi.com/Resume/
Comment linking /Resume/
on “Singapore prime minister Lee Hsien Loong’s Sudoku solver (2018)”Submitted Strategic Scala Style: Principle of Least Power as a story · 118 points
HN discussionSBT is awful. I've never used Gradle, but if SBT is saner then I'm worried. This blogpost is a bit old, but still on-target: https://www.lihaoyi.com/post/SowhatswrongwithSBT.html
Comment linking /post/SowhatswrongwithSBT.html
on “Why Haskell?”Submitted Diving into Other People's Code as a story · 113 points
HN discussionUbuntu. IntelliJ +Scala plugin. I write Scala 90% of the time. 99% of the time, before I call any function, I jump "navigate to source" in intelliJ, and have a quick glance on it. Most of the time, type ascription is enough, sometimes I skim through doc, and occasionally, if it's sketchy library, I look at implementation. This is very quick process that takes maybe 10-15seconds. Sometimes when Im not under pressure,…
Comment linking /Ammonite/
on “What programming languages are used late at night?”Submitted What's in a Build Tool? as a story · 113 points
HN discussion> I don't even view Scala as a functional language, as functions (methods) are not first class. Lambdas are encoded as objects with a single method. It's much more expressive than Java and so better at expressing many functional programming ideas, but it's not a functional-first language, it's an evolution of Java. It' technically true that Scala's fundamental building block is object, not function. But that is in m…
Comment linking /post/FromFirstPrinciplesWhyScala.html
on “I would like a job writing Haskell”Submitted From first principles: Why I bet on Scala.js as a story · 106 points
HN discussion> awkward currying Personally, even though I haven't really thought it through deeply, I feel like Scala would be better if everything were curried. > Subtyping also has many complex consequences But also substantial benefits! > There is limited type inference I wish Scala would improve in this regard. Maybe paradoxically, inference works better with code tuned for subtyping and variance. > tail call optimisation Th…
Comment linking /post/FromFirstPrinciplesWhyScala.html
on “I would like a job writing Haskell”Submitted Ammonite: Scala Scripting as a story · 99 points
HN discussion