HackerTrans
TopNewTrendsCommentsPastAskShowJobs

lihaoyi

no profile record

Submissions

Simpler JVM Project Setup with Mill

mill-build.org
3 points·by lihaoyi·2 miesiące temu·0 comments

Scripting on the JVM with Java, Scala, and Kotlin

mill-build.org
2 points·by lihaoyi·2 miesiące temu·0 comments

Engineering a Better Java Build Tool [video]

youtube.com
1 points·by lihaoyi·3 miesiące temu·0 comments

Engineering a Better Java Build Tool [video]

youtube.com
1 points·by lihaoyi·3 miesiące temu·0 comments

Engineering a Better Java Build Tool [video]

youtube.com
1 points·by lihaoyi·3 miesiące temu·0 comments

Simpler JVM Project Setup with Mill

mill-build.org
3 points·by lihaoyi·5 miesięcy temu·0 comments

Scripting on the JVM with Java, Scala, and Kotlin

mill-build.org
1 points·by lihaoyi·5 miesięcy temu·0 comments

How to Publish to Maven Central Easily with Mill

mill-build.org
3 points·by lihaoyi·5 miesięcy temu·1 comments

Simpler Java Project Setup with Mill

mill-build.org
1 points·by lihaoyi·5 miesięcy temu·0 comments

How to Publish to Maven Central Easily with Mill

mill-build.org
2 points·by lihaoyi·5 miesięcy temu·0 comments

Simpler Declarative Java Project Setup with Mill 1.1.0

mill-build.org
1 points·by lihaoyi·5 miesięcy temu·1 comments

Simpler JVM Project Setup with Mill 1.1.0

mill-build.org
1 points·by lihaoyi·5 miesięcy temu·0 comments

Simpler JVM Project Setup with Mill 1.1.0

mill-build.org
1 points·by lihaoyi·6 miesięcy temu·0 comments

Golden Literal Testing in UTest 0.9.0

lihaoyi.com
1 points·by lihaoyi·7 miesięcy temu·0 comments

Simpler Build Tools with Object-Oriented Programming [video]

youtube.com
1 points·by lihaoyi·7 miesięcy temu·0 comments

Using E2E Tests as Documentation

vaslabs.io
2 points·by lihaoyi·7 miesięcy temu·0 comments

Untapped Potential in the Java Build Tool Experience

javapro.io
1 points·by lihaoyi·7 miesięcy temu·0 comments

Zero-Setup Java Build Tooling via Mill Bootstrap Scripts

mill-build.org
3 points·by lihaoyi·7 miesięcy temu·0 comments

Engineering a Better Java Build Tool Experience [video]

youtube.com
1 points·by lihaoyi·7 miesięcy temu·0 comments

Simpler Java Build Tools with Object Oriented Programming [video]

youtube.com
1 points·by lihaoyi·7 miesięcy temu·0 comments

comments

lihaoyi
·5 miesięcy temu·discuss
I was inspired by the jane street post and implemented exactly this in my Scala unit testing library uTest (http://www.lihaoyi.com/post/GoldenLiteralTestinginuTest090.h...). Can confirm that auto updating golden test assertions does make working with a test suite much more joyful than struggling with each assertion by hand
lihaoyi
·7 miesięcy temu·discuss
I actually implemented something of this sorts back in college: MacroPy https://github.com/lihaoyi/macropy
lihaoyi
·8 miesięcy temu·discuss
With Mill build tool that I'm working on, you don't need to install Java at all! (https://mill-build.org/blog/16-zero-setup.html). Instead, it gets bootstrapped automatically when you launch the `./mill` script like any other third-party dependency. You can use any version you want just by editing the config file and it'll be downloaded and cached on demand. You can also configure different JVM versions to use in different Java modules without worrying about conflicts between them.

You don't need to globally install Apache-Commons, nor is there a "Apache Commons Version Manager" that you need to first install to then manage your different versions of Apache Commons. So why should the JVM need such a thing? Well with Mill, it doesn't
lihaoyi
·10 miesięcy temu·discuss
I've had a pretty good experience offering bounties on my own projects:

- https://github.com/orgs/com-lihaoyi/discussions/6

If you look at that thread, you'll see I've paid out quite a lot in bounties, somewhere around 50-60kUSD (the amount is not quite precise, because some bounties I completed myself without paying, and others I paid extra when the work turned out to be more than expected). In exchange, I did manage to get quite a lot of work done for that cost

You do get some trash, it does take significant work to review, and not everything is amenable to bounties. But for projects that already have interested users and potential collaborators, sometimes 500-1000USD in cash is enough motivation for someone to go from curious to engaged. And if I can pay someone 500-1000USD to save me a week of work (and associated context switching) it can definitely be worth the cost.

The bounties are certainly not a living wage for people, especially compared to my peers making 1mUSD/yr at some big tech FAANG. It's just a token of appreciation that somehow feels qualitatively different from the money that comes in your twice-monthly paycheck
lihaoyi
·10 miesięcy temu·discuss
That's basically what my MainArgs Scala library does: take either a method definition or class structure and use it's structure to parse your command line arguments. You get the final fields you want immediately without needing to imperatively walk to args array (and probably getting it wrong!)

https://github.com/com-lihaoyi/mainargs
lihaoyi
·w zeszłym roku·discuss
I learned F# in 2013 and had a lot of fun with it, some of that code remains on Github (e.g. a 2D platformer game for windows https://github.com/lihaoyi/FSharpMetro/tree/master/Applicati...).

My experience was that it was a surprisingly nice language with a surprisingly warty user experience: papercuts ranging from naming conventions and function call styles (`|> List.map` vs `.Select`), basic syntax (`foo.[0]` to lookup arrays), type system features (F# doesn't have covariance/contravariance even though C# does), IDE support (back then was only Visual Studio, whose support for F# was inferior to C#).

Ended up settling on Scala after that, as a language with its own Warts, but one that somehow managed to feel a more cohesive than F# did despite having largely the same featureset and positioning.

F# was my first functional language and one that changed how I look at programming, but at the same time I'm happy to not actually have to use it for serious programming!
lihaoyi
·2 lata temu·discuss
Starlark is definitely a mixed experience IMO, from my 7 years working with it in Bazel

On one hand, having a "hermetic" subset of Python is nice. You can be sure your Bazel starlark codebase isn't going to be making network calls or reading files or shelling out to subprocesses and all that. The fact that it is hermetic does help make things reproducible and deterministic, and enables paralleization and caching and other things. Everyone already knows Python syntax, and its certainly nicer than the templated-bash-in-templated-yaml files common elsewhere in the build tooling/infra space

On the other hand, a large Starlark codebase is a large Python codebase, and large Python codebases are imperative, untyped, and can get messy even without all the things mentioned above. Even though your Starlark is pure and deterministic, it still easily ends up a rats nest of sphagetti. Starlark goes the extra mile to be non-turing-complete, but that doesn't mean it's performant or easy to understand. And starlark's minimalism is also a curse as it lacks many features that help you manage large Python codebases such as PEP484 type annotations, which also means IDEs also cannot provide much help since they rely on types to understand the code

For https://mill-build.org we went the opposite route: not enforcing purity, but using a language with strong types and a strong functional bent to it. So far it's been working out OK, but it remains to be seen how well it scales to ever larger and more complex build setups