smweber
Joined 15 years ago
Joined 15 years ago
I found when using jj it worked best for me when I stopped thinking in commits (which jj treats as very cheap “snapshots” of your code) and instead focus on the “changes”. Felt weird for me at first, but I realized when I was rebasing with git that’s how I viewed the logical changes I made anyway, jj just makes it explicit.
jj auto-rebasing doesn’t matter until you push changes, and once you do it marks them immutable, preventing you from accidentally rebasing changes that have been shared.
But most of all I think the overall simplicity of the language is really what’s standing out to me. So far I think the lack of ad-hoc poly and macros are a plus - it really reduces the impulse to write “magical” code, or code with lots of indirections. In the past I’ve definitely been guilty of over-abstracting things, and I’m really trying to keep things as simple as possible now. Though I’ve yet to try Gleam with a large project - maybe I’ll miss the abstractions as project complexity increases.
I suspect Gleam will be a great language for small to medium sized projects written with LLM assistance (NOT vibecoded) - the small language, strong typing and immutability gives good guardrails for LLM-generated code, and encourages a simple, direct style of programming where a human programmer can keep the whole structure in their head. Letting an LLM run free and not understanding what it’s written is I think where projects run into big problems.
Apps that are built for iOS 7 get the new shiny keyboard and some different behaviour when run on iOS 7, but can still run fine on older versions of iOS if the app developer is willing to support older versions of iOS. This is done by setting an option called "deployment target" to an older iOS version when building in Xcode (and testing a ton on older versions of iOS, and not calling newer APIs on versions of iOS that don't support them).
So this announcement means Apple is dropping support for older versions of Xcode (with older iOS SDKs), but older versions of iOS are still technically supported as long as you're building with the iOS 7 SDK.
If I end up with multiple features or abstractions in one change (equivalent to the “dirty repo”), jj split works very well as an alternative to the git add/git commit/repeat workflow tidying up one’s working copy.