I grew up in the town next door to Norwell and I play the drums. I drove by many times and would have loved to have gone in and seen if they might have given a high school student a quick tour of the less-secret parts of the factory, but I never did.
There was definitely a strong drumming community in the area; there were some fantastic players and teachers around (i.e. Steve Smith from Journey was born in Whitman). Not sure if that's because of Zildjian, but it was a fun place to grow up and play music. It might just be that there are so many strong music universities in the area.
I've been using just at work and in personal projects for almost a year, and I like it a lot. In particular, its self documentation with `just --list` makes onboarding new folks easy. It's also just a nicer syntax than make.
Agreed. Is it that different than Make with `.PHONY` targets? Yes — it is Designed To Do Exactly What It Does, And It Does It Well. That counts for something in my book.
All my Justfiles start with this prelude to enable positional arguments, and a "default" target to print all the possible commands when you run `just` with no target name:
# this setting will allow passing arguments through to tasks, see the docs here
# https://just.systems/man/en/chapter_24.html#positional-arguments
set positional-arguments
# print all available commands by default
default:
@just --list
in mise you wouldn't need that preamble. `set positional-arguments` is just how it behaves normally and `mise run` doesn't just show available commands—it's also a selector UI
I don't have my work laptop to hand to compare, but I usually run "just" to get a list of commands and what they do, rather than "just --list". Hope that saves you 7 key presses going forwards.
The same applies to make without arguments though, make what? Grammar / word meaning aside, unknown / missing commands printing the help file or suggestions is a good pattern.
I think it's less grammatically ambiguous with make. It implicitly means "make <the project>". For most projects that's pretty well defined (and also grammatically correct since 'make' is a verb and 'just' is not).
But even so it would have been a better design for `make` to list top level targets or something.
Agreed. As much as I want it to be simpler to build C++ programs from source, it's pretty much always _possible_ in my experience, it can just a PITA frequently.
I think that tests are a sure-fire way to improve the quality of your code, but I'd throw another piece in to the ring: sanitizers [0]. Projects that have good tests and run them regularly with TSan/ASan/UBSan in my experience are much better to work on because it means that it's much less likely there's deep seeded issues that are lurking. It gives you increased confidence that you're not introducing hard-to-detect issues as you go.
These tools aren't just exclusive to C++. I've said the same thing about C, Go, Zig, Odin, etc. Projects that use them (and have good automated tests) tend to be in good shape, and projects that don't tend to take a long time to make any progress on.
reply