Blogs / Personal blogs

Li Haoyi

lihaoyi.com

In June this year I joined AMI Labs , a company trying to develop the next generation of AI models that go beyond the limits of the LLMs and image/video-gen models that are ubiquitous today. This post discusses why among all the AI companies out there, I thought AMI's mission and vision were interesting to me, and why…

Popular posts
13
Total points
2,444
HN comments
1,491
Rank
#645 personal

Visit lihaoyi.com → On Hacker News Mar 2016 – Oct 2021

Software Engineering 13Programming Languages 7Tools & Productivity 3Career & Management 3

1

What's Functional Programming All About?

There are many descriptions floating around the internet, trying to explain functional programming in simple terms. Unfortunately, most discuss details only loosely related to functional programming, while others focus on topics that are completely irrelevant. So of course, I had to write my own!

2

What's Next for Scala

A recent tweet by a friend of mine noted how the public interest in the Scala programming language seems to have plateaued or waned, which matches my feeling of the latest trends and zeitgeist. This blog post will go into why I think that has happened, where Scala stands now, and what the future holds for the Scala…

3

From First Principles: Why Scala?

Scala, first appearing in 2004, is neither an old stalwart nor a new player in the programming language market. This post will discuss the unique combination of features that Scala provides and how it compares to other languages on the market, diving beneath the superficial experience to explore the fundamentals of…

6

How an Optimizing Compiler Works

Optimizing compilers are a mainstay of modern software: allowing a programmer to write code in a language that makes sense to them, while transforming it into a form that makes sense for the underlying hardware to run efficiently. The optimizing compiler's job is to figure out what your input program does, and create…

8

Mill: Better Scala Builds

Mill is a new build tool for Scala: it compiles your Scala code, packages it, runs it, and caches things to avoid doing unnecessary work. Mill aims to be better than Scala's venerable old SBT build tool , learning from it's mistakes and building upon ideas from functional programming to come up with a build tool that…

9

What's wrong with the default build tool for Scala

SBT is the default build tool for the Scala programming community: you can build Scala using other tools, but the vast majority of the community uses SBT. Despite that, nobody seems to like SBT: people say it's confusing, complicated, and opaque. This post will deeply analyze what exactly it is about SBT that people…

10

Strategic Scala Style: Principle of Least Power

The Scala language is large and complex, and it provides a variety of tools that a developer can use to do the same thing in a variety of ways. Given the range of possible solutions to every problem, how can a developer choose which one should be used? This is the first in a series of blog posts aiming to provide…

11

What's in a Build Tool?

A "Build tool" is a catch-all term that refers to anything that is needed to get a piece of software set up, but isn't needed after that. Different programming communities have a wealth of different tools: some use stalwarts like make , some use loose collections of .sh scripts, some use XML-based tools like Maven or…

12

Diving into Other People's Code

This post will walk you through an exercise in diving into someone else's code. The goal will be to make an arbitrary change to the code of the Spyder Python IDE , a project I have never touched before in my life, and learn just enough about it to accomplish what I want without getting bogged down. You will learn how…