Huh, fascinating.
The Patagonia structure is actually strikingly similar to the Bosch model - non-profit owning the shares, but no voting rights, trust having voting rights but no shares - just taking it to the logical 100% conclusion without the residual influence of the Bosch family (having retained a few percent in both).
The model has worked well for many decades for a 100 billion$ revenue company like Bosch, good to see others taking a cue from them.
(Also goes to show that even constructs like these are not safe from corporate fuckups - see the emissions scandal...)
I really like C#, but I wouldn't go that far - unions are at least on the horizon, but I've sometimes come to miss the power and flexibility of TS's structural typing...(And so has Hejlsberg, apparently, seeing his reasoning for choosing go over C# for tsc :) )
>And so has Hejlsberg, apparently, seeing his reasoning for choosing go over C# for tsc
It was more related to the fact that the existing TS code was more easily ported to Go, and also .NET AOT wasn't mature enough at that time. Structural typing has its own problems. I'm personally not a big fan of it.
Might be my own taste, but except a few of the common and easy to understand structural typing code, I find it sometimes actually make things needlessly complex.
I also write lots of Typescript, and the furthest I go is to use 'Omit' and other utility types, but already feel like it's too much.
I've come to really appreciate Typescripts structural typing, because it reduces some of the overhead & prevents the unnecessarily tight coupling that has often annoyed me in other languages.
The overhead argument seems fairly objective to me - clean code with low coupling in C# et al. requires separate definitions of interfaces and implementations, explicit conversion methods between compatible interfaces etc. This adds up over time and makes refactoring pretty annoying.
The tight coupling happens when people don't bother to define interfaces. Suddenly I have to couple class hierarchy to classes from unrelated modules, all so the compiler is happy when I pass structurally equivalent data. To keep my own modules clean I have to add yet more interfaces, conversion methods etc!
>- Less bugs (Visual Studio has been progressively getting worse).
Eeeeeeh...it's not quite roses and rainbows on the Rider side either, and that's coming from a Jetbrains fanboy. (Although admittedly, I'm not really up-to-date on the current state of VS in day-to-day work)
But yeah, the coding/refactoring support (Resharper et al) and general quality and integration of tooling (database tools, package managers, version control, debugging (esp. multi-process) etc.) is the big one for me.
> Eeeeeeh...it's not quite roses and rainbows on the Rider side either, and that's coming from a Jetbrains fanboy
Obviously. IME it is better than Visual Studio.
> But yeah, the coding/refactoring support (Resharper et al) and general quality and integration of tooling (database tools, package managers, version control, debugging (esp. multi-process) etc.) is the big one for me.
I rarely use any of these tools tbh. I just want Resharper and something that works reliably on Linux. I would transition to using vim entirely but half the vim stuff I like using I can't use with Windows (work is never not going to use Windows).
In the context of this thread that's a non-issue. Good TVs have been in the ~5ms@120Hz/<10ms@60Hz world for some time now. If you're in the market for a 4K-or-higher display, you won't find much better, even among specialized monitors (as those usually won't be able to drive higher Hz with lower lag with full 4k+ resolution anyway).
I think Java was the main one. C/C++ are (relatively) close to the metal, system-level languages with explicit memory management - and were tacitly accepted to be the "complicated" ones, with dynamic typing not really applicable at that level.
But Java was the high-level, GCed, application development language - and more importantly, it was the one dominating many university CS studies as an education language before python took that role.
(Yeah, I'm grossly oversimplifying - sincere apologies to the functional crowd! :) )
The height of the "static typing sucks!" craze was more like a "The Java type system sucks!" craze...
>AirPods Pro streaming 5.1, you get a better surround sound and audio experience than 99.9% of speaker setups.
The audio experience itself, sure - "Want high-end audio without breaking the bank and remodeling your room? Get a pair of decent headphones." has been sound (heh) advice for decades.
The surround sound part, though? Eh, not quite yet. I mean, on paper, they have the ingredients - (personalized) HRTF and head tracking. But in practice I found even the personalized HRTF somewhat underwhelming, and knowing what's possible from the VR world the gap is still significant (IMO the Valve Index off-ear solution is still the pinnacle in immersive positional audio without surround speakers, even without personalization of the HRTF, I haven't really tested the AVP implementation yet, though) - which leads me to second, IMO even larger issue:
Extremely limited usage scenarios. For the living room, it's basically just supported Apps/content on AppleTV. Compared to the reality of a standard AVR (or even just Soundbar) plus surround speakers setup - take any multichannel input (LPCM, DD, DTS MA, Atmos you name it) and output surround sound - that's...just not a substitute.
And that's not even getting into latency issues with gaming/interactivity (a general BT issue, though, at least it's slowly improving...).
> The surround sound part, though? Eh, not quite yet.
I dunno -- I find it much better than actual speakers.
With Atmos on the AirPods Pro, I can pinpoint the location of an instrument within about 5°. It's astonishing.
Whereas with the traditional 5.1 speaker setup... you definitely get the sense of center vs. side, and kind of a couple of "zones" in between, but I can never place the location of an instrument or sound as accurately as I can with the AirPods Pro. It's a much more diffuse directionality, rather than "it's coming from exactly there".
Plus, of course, I get to take my surround-sound music and audio everywhere. Not just my living room. So I don't know what "extremely limited usage scenarios" you're talking about? I mean, yes it needs to come through an Apple device, but that's all my media anyways.
Yeah, I guess it will always be partly subjective (or I guess even actually different from person to person depending on how well the personalization works for specific ears), but...I never got that kind of precision when I tested the Pro 2. It's been years since I tested them (20..22? The pro 2 were brand new.), mind you, so my experience is from memory.
Music actually worked quite good regarding positioning (and yeah, to get that kind of precision from speakers they'll have to be well positioned, room calibrated and any strong flaws in room acoustics corrected, otherwise phase info is all over the place and it gets as muddled as you describe) - but there still was noticable coloring of the sound that didn't go away after recalibration. And TBH that's more important for me with music.
Where I sadly wasn't blown away was movies with full Atmos - especially height channel stuff I would have hoped to be significantly better than old-school HRTF...but it wasn't really (well, apart from the tracking, of course, which is cool).
The usage scenarios though...well, basically everything not an AppleTV 4k I can connect to an AVR, i.e. BluRay, TV/SetTop boxes, HTPC, and my personal biggie: any kind of gaming device (including the aforementioned PC).
From what I've read, at least the app compatibility with spatial audio on ATV4k has gotten better ('bout time, Amazon!), but several european streaming providers still don't seem to work (e.g. Sky, Dazn)
Spatial audio on the go is admittedly not a priority for me, though
I'd say that's as far from "some random person in Nebraska" as you can get...
(And if you'd do a representative survey among developers having had to deal with time zone shenanigans, I'm fairly certain "thanklessly" won't hold either :) )
>which is why companies don't generally make CPUs that break.
Well, that's the issue, isn't it? Both Intel and AMD (resp. their board partners) had issues in recent times stemming from the increasingly aggressive push to the limit for those last few %.
The model has worked well for many decades for a 100 billion$ revenue company like Bosch, good to see others taking a cue from them.
(Also goes to show that even constructs like these are not safe from corporate fuckups - see the emissions scandal...)