For many languages there are mature parsers out there that can be reused (e.g. Google's Closure compiler or babel for JavaScript, or the Soot framework for Java that also simplifies more advanced code analysis). In the worst case, it's sometimes possible to interface with the standard compiler for the language directly (for example, the TypeScript compiler provides TypeScript APIs for its parser/type checker/etc.). I believe for C++ for example, a Clang plugin (https://clang.llvm.org/docs/ClangPlugins.html) would have been a plausible way to implement something like this.
One example that comes to mind is type state [0]. I'm not aware of any other language (including those with support for dependent types, like Agda) where these properties can be checked without external static analysis tools and the problems they bring.
> If only Jolla devs had kept their promises of open-sourcing more of their code.
I think that's a big part of the answer to why it hasn't caught among techies. When I tried using it (shortly after release), there were numerous issues in their default apps that nobody could fix because they are proprietary and Jolla didn't seem to have the resources to handle all the bugs.
I'd wager that if it had been open source, the early adopters would have put some time in to fix a lot of the bugs.
In retrospect I'm pretty pissed at them for not being honest and upholding their promises. In my book they're basically con artists that just tried to get the Linux community's money by saying "open source" without actually meaning it.
You can provide this implementation yourself easily enough though. I agree it's maybe not ideal that this needs to be done for every Trait you want this behavior for.
At least now we are checking that two pieces of saying what we want a program to do match up. It's less likely to get both the implementation and specification (in the form of types) wrong. Whenever the program fails to type-check, it will make you think about both bugs in the type and bugs in the code, even if the latter is more likely.
> At the same time we finally got a phone that is built with some security in mind (Librem).
If it ever materializes. It's already more than half a year behind schedule and after preordering it close to when it was announced, I'm very skeptical I'll ever receive it.
I guess I shouldn't use terms that could also have a precise chemical meaning. My understanding is that they cause similar effects to LSD, but analogue is probably not the right word for it.
I agree that prohibition does cause a lot of issues.
This makes even less sense since one difference is that there is no equivalent to "alcohol poisoning" with LSD. A dose at which LSD is physically toxic is so high (200 times a recreational dose) that it's incredibly unlikely to take by accident. As far as I know, there are no known overdose deaths due to LSD.
(However, there are analogues to LSD that are toxic: 25I-NBOMe and 25C-NBOMe).
I have found Rust to be a nice middle-ground for this. Sure, the borrow checker takes some getting used to, but it features an ML-style type system (though I still miss some extensions to Haskell's type system available in GHC), rock-solid tooling, and a comprehensive well-documented standard library. The high quality of third-party crates also surprised me. Whether the C-like syntax is sane is debatable though.
I'm also not sure why in OOP-land, generics are this crazy experimental weird feature, when in functional languages, people figured out how to implement parametric polymorphism (the original term for generics) in quite reasonable ways. I get that subtyping adds some complexity, but overall I don't understand why such a basic way to build abstractions is so controversial in (some) OOP languages. If anyone has some context on why this is more difficult to have in Java-like languages, I'd be curious to hear it.
I was asking if you think it's equally bad for gay people in Iran and the west, or worse in Iran. Your first statement sounded like you think it's no better in the west, and the second one like you think Iran is worse.
That's really not my experience. A significant portion of people I meet, including technical people, articulate some form of "I have nothing to hide, so I don't care" when the topic comes up.
While disk space may not often be an issue (though small SSDs are commonplace), RAM usage certainly is an issue if every little tool is an electron app.
That definitely doesn't seem to be the case, especially if you look beyond his bio-hacking endeavors. His treatment of employees and ex-partners seems pretty horrible: https://www.nytimes.com/2025/03/21/technology/bryan-johnson-...