Haoyi's Programming Blog
320 FOLLOWERS
Li Haoyi is currently with the Scala, Python and Javascript programming languages, and am interested in the static analysis, compilers, web development, and developer tools.
Haoyi's Programming Blog
2M ago
This blog post discusses the introduction of the ScalaSql query library. Why it is needed, what it brings to the table over the many existing database query libraries in the Scala ecosystem, and what makes it fit nicely into the com-lihaoyi philosophy of "Executable Scala Pseudocode that's Easy, Boring, and Fast ..read more
Haoyi's Programming Blog
6M ago
Mill is a Scala build tool that offers an alternative to the venerable SBT toolchain. Mill aims for simplicity by reusing concepts you are already familiar with, borrowing ideas from Functional Programming and modern tools like Bazel. Feedback from users of Mill is often surprisingly positive, with people saying it is "intuitive" or feels "just right".
In this post, we'll explore why Mill is such an intuitive build tool. We'll get familiar with Mill, do a deep dive into the core ideas of what Mill is all about, and finally discuss how these core design decisions build up to a surprisingly intu ..read more
Haoyi's Programming Blog
10M ago
Python has a reputation as "Executable Pseudocode": code that fits just as easily on a whiteboard during a discussion, as it does in a codebase deploying to production. Scala is a language that can be just as concise a pseudocode as Python, and arguably better at the "executable" part: faster, safer, and with better tooling. This blog post will explore how the Scala libraries from the com.lihaoyi ecosystem allows the use of Scala as Executable Pseudocode, due to their unique design philosophy that stands out amongst the rest of the Scala ecosystem ..read more
Haoyi's Programming Blog
2y ago
Last year I wrote and self-published my first technical book Hands-on Scala Programming. It has gone on to be relatively successful, selling thousands copies, both digital and physical. This blog post will explore how the process of writing and publishing Hands-on Scala went: from its inception, to writing, editing, and finally publishing in multiple formats and mediums ..read more
Haoyi's Programming Blog
2y ago
Today marks my 4th year anniversary at my current employer, Databricks. It's been a good run, and this is a great chance to reflect on the journey so far. This post is as much for me to organize my own thoughts as it is for anyone else to read.
This is a bit of change from the normal programming content on this blog, but given that my job is a programming job, writing lots of Scala, I suppose it still fits ..read more
Haoyi's Programming Blog
3y ago
This is a short blog post to introduce the new com-lihaoyi Github organization: a place for all of my most production-ready projects will live to be easily maintained and discovered. We will discuss the status quo, what is changing, and what I hope to achieve with this change ..read more
Haoyi's Programming Blog
3y ago
This is a short blog post to introduce the new lihaoyi-scala Github organization: a place for all of my most production-ready projects will live to be easily maintained and discovered. We will discuss the status quo, what is changing, and what I hope to achieve with this change ..read more
Haoyi's Programming Blog
3y ago
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 the language. From this, you will learn why you might consider including Scala as a valuable addition to your programming toolbox ..read more
Haoyi's Programming Blog
3y ago
This blog post is a chapter 16 excerpt from the book Hands-on Scala Programming
class SimpleUploadActor()(implicit cc: castor.Context) extends castor.SimpleActor[String]{ def run(msg: String) = { val res = requests.post("https://httpbin.org/post", data = msg) println("response " + res.statusCode) } }
Snippet 16.1: a simple actor implemented in Scala using the Castor library
Message-based parallelism is a technique that involves splitting your application logic into multiple "actors", each of which can run concurrently, and only interacts with other actors by exchanging asynchronous messages ..read more
Haoyi's Programming Blog
4y ago
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 community ..read more