• 0 Posts
  • 67 Comments
Joined 1 year ago
cake
Cake day: June 9th, 2023

help-circle

  • The challenge is, in a real org of some size, you’ll suddenly get marketing or customer success asking you for commitments that are very far out, because ad slots have to be booked or a very large customer renewal is coming up.

    And some of the normal coping mechanism (beta-branch that spins off stable feature to the general release branch) don’t work for all those requests.

    Try as you might, you are going to get far off deadlines that you have to work towards. Not for everything but for more than you’d like.




  • I do think Zig is better for this kind of thing.

    const ret = try do_thing();
    
    if( ret ) | result | {
       do_something_with_result(result);
    }
    

    The try keyword returns any error up; the if-unwrap works with what came out of a successful call. Normally you wouldn’t have both, of course.

    do_thing would be defined as a union of an error (a distinct kind of type, so it can be reasoned about with try, catch and unwrapping) and the wrapped return value.







  • Yes but Perforce is a (broadly) centralised system, so you don’t end up with the whole history on your local computer. Yes, that then has some challenges (local branches etc, which Perforce mitigates with Streams) and local development (which is mitigated in other ways).

    For how most teams work, I’d choose Perforce any day. Git is specialised towards very large, often part time, hyper-distributed development (AKA Linux development), but the reality is that most teams do work with a main branch in a central location.