I hope maybe if we can be aware that this is a broad set of technologies being driven by a broad set of goals then we can be a bit more gracious when a project isn't perfectly aligning with our personal values and find the common ground and values.
388 karma · joined March 17, 2024
I hope maybe if we can be aware that this is a broad set of technologies being driven by a broad set of goals then we can be a bit more gracious when a project isn't perfectly aligning with our personal values and find the common ground and values.
The cognitive load is unavoidable and in some ways worse in industries with highly technical names.
At one point in my career I was an engine calibrator at a large automotive OEM. Our lexicon included physics industry terms (BMEP, BTDC, VVT, etc), a large software package where every variable, table, and function was an acronym (we had about 75k tunable parameters, each with an acronym), and all the internal company jargon and acronyms you'd expect in a large corporation. But every name was as technical and functional as the author would desire.
During my first month I was exhausted. I would doze off in afternoon meetings or pass out in my car as soon as I pulled in the driveway. I finally mentioned this to a more senior coworker and his insight was that my brain was working overtime because it was busy learning another language. He was entirely right! The constant mental load was a very real and tangible load. He relayed an anecdote when he went to S. America on his honeymoon and despite him and his wife having taken ~4 years of HS/college Spanish the mental work they had to do to function basically nixed half the daily activities they had planned due to exhaustion. That was what I was experiencing.
The idea that more technical and specific names reduces mental load does not track with my experience. The complexity is intrinsic not incidental and I don't think it has much to do with the specific names chosen.
There is a ton of new stuff getting written in Rust. But we don't have threads like this on HN when someone announces a new piece of infra written in Rust, only when there's a full or partial rewrite.
Re automotive and other legacy industries, there's heavy process around both safety and security. Performing HARAs and TARAs, assigning threat or safety levels to specific components and functions, deep system analysis, adding redundancy for safety, coding standards like MISRA, etc. You don't get a lot of assurances for "free" based on time-proven code. But in defense there's already a massive push towards memory safe languages to reduce the attack surface.
* It's becoming increasingly difficult to find new contributors who want to work with very old code bases in languages like C or C++. Some open source projects have said they rewrote to Rust just to attract new devs.
* Reliability can be proven through years in use but security is less of a direct correlation. Reliability is a statistical distribution centered around the 'happy path' of expected use and the more times your software is used the more robust it will become or just be proven to be. But security issues are almost by definition the edgiest edge cases and aren't pruned by normal use but by direct attacks and pen testing. It's much harder to say that old software has been attacked in every possible way than that it's been used in every possible way. The consequences of CVEs may also be much higher than edge case reliability bugs, making the justification for proactive security hardening much stronger.
I actually can't but I'd welcome hearing more about the strategy. I suspect what you're alluding to is maybe an open-core model? Generate free value for the entire ecosystem and then capture a portion of it with value-adding paid features? I'd be interested in that but I don't see where the FOSS layer is here.
> I hope we don’t let cynicism prevent mission-driven companies trying to do good and customer-positive things from succeeding
I also want to do mission-driven and moral work in the tech industry but I think there may be a disconnect between how the general population sees the tech industry and how it sees itself. This is my motivation to make these comments; not to be antagonistic and unpleasant for no reason but to attempt to hold up a mirror and show the tech industry the crisis of confidence that it faces. It would be like Philip Morris - after decades of subverting science and pushing cigarettes - launching a vape and expecting to receive the benefit of the doubt that the product has no downsides. Gone are the days of Silicon Valley being the warm and cuddly companies saving the world from their beanbags and open concept offices.
Yes, exactly. Knowing that my interests, my consumer spending choices, are the direct feedback path to their profitability is one of the only ways to provide some concrete assurances that they'll be building for the customer's needs and not for data collection, AI shovelware, or some other play.
So unfortunately due to the rug pulls of many bad actors y'all will have to explain exactly how this doesn't end poorly because damn near every other time a company has followed this trajectory it is not in the consumer's best interest.
If there's interest I can maybe take some PII out of my repo and make it public. Not like there's anything wildly private in there, would just prefer to not get any more spam calls than I already do.
/s
So here's my ask: let me pay for it without paying for AI! None of my use cases will stress your servers; I have `"disable_ai": true` in my settings.json. Give me a $5/mo "support the devs tier" or a $10/mo tier with some random app quality-of-life features and I'm there. I specifically want to pay for good software without paying for AI to signify the value proposition that still exists there cause I don't think a VC would believe me otherwise.
So to answer your actual question, while technically actual off road use is still legal a lot of bad actors in the industry used every bit of leeway that the regulators gave them and now this crackdown is the result.
I think one of the problems is that a heirarchy is inherently opinionated. You have to choose the criteria around how to group the objects/nodes in your graph and that criteria is context-dependent. The example I've used with animal taxonomy is grouping your objects via things you can eat vs things you can pat. Thsoe are two very different graph structures of the same group of objects and if you started with one then realized you need to change, how you use your objects you're gonna have a bad time. Multiple inheritance is the bandaid solution that usually comes with more hassle than it's worth.
Building a UI is a good example of a heirarchical structure where you know exactly how you want to use your objects and how they'll relate to each other, Not having access to that programming structure would be frustrating and just feel like a loss. But I've also done multiple large refactors of Python projects because I relied on OO inheritance models that turned out to not be quite the right implementation. In those situations, Rust traits are a breath of fresh air for offering the right kind of polymorphism.