Syntax is what keeps me away from Rust. I have tried many times to get into it over the years but I just don't want to look at the syntax. Even after learning all about it, I just can't get over it. I'm glad other people do fine with it but it's just not for me.
For this reason (coming from C++) I wished Swift were more popular because that syntax is much more familiar/friendly to me, while also having better memory safety and quality of life improvements that I like.
Wow, this is one of the most surprising comments I've ever read on HN!
Personally, I bucket C++ and Rust and Swift under "basically the same syntax." When I think about major syntax differences, I'm thinking about things like Python's significant indentation, Ruby's `do` and `end` instead of curly braces, Haskell's whitespace-based function calls, Lisp's paren placement, APL's symbols, etc.
Before today I would have assumed that anyone who was fine with C++ or Rust or Swift syntax would be fine with the other two, but TIL this point exists in the preference space!
There are a lot of important points of difference. Whether functions are introduced with an explicit keyword; how return types are marked; whether semicolons can be omitted at end of line; how types are named (and the overall system for describing algebraic types). Not to mention semantics around type inference (and whether it must be explicitly invoked with a `var` or `auto` etc.) and, again, algebraic types (what means of combination are possible?). And specifically with Rust you have the syntax required to make the borrow checker work. Oh, and then there are the implicit returns. Rust certainly didn't invent that (I seem to recall BASIC variants where you could assign to the current function name and then that value would be returned implicitly if control flow reached the end), but it reflects a major difference in philosophy.
... Which is really all to say: different people are focused on different details, at different levels.
> Whether functions are introduced with an explicit keyword; how return types are marked; whether semicolons can be omitted at end of line; how types are named (and the overall system for describing algebraic types).
Yes, these are all examples of things I always thought were generally considered small enough differences that nobody who was okay with how C++ or Rust or Swift did them would find the way one of the others did it a deal-breaker.
> ...Which is really all to say: different people are focused on different details, at different levels.
> examples of things I always thought were generally considered small enough differences...
The thing is that they add up. Writing C or C++ is unpleasant enough for me that I've seriously thought about learning Rust just to have an alternative in that niche that actually has traction this time. (I wasn't under the impression that Swift — or Go, similarly — is intended to be quite as low-level. But maybe they are?)
Swift's syntax may look nice, but as soon as you run into "The compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions" you'll forget all of that. Hint: they are related.
No need to defend yourself, I share this sentiment as well. If I'm going to spend time writing and reading a lot of code in a new learning language, I want my previous knowledge to be somewhat reusable.
For this reason I was able to get into Odin as opposed to Zig because of some similarities with Swift Syntax as well how easy it is to parse.
The less I need to rewire my brain to use xyz language, the greater the chance of me getting into it.
If my life depended on it, I could get over such a shallow reason to dismiss a language but fortunately it doesn't and that's why I write Swift rather than Rust.
When I was a kid learning BASIC, a lot of beginner examples in books used the (purely decorative) keyword LET for every assignment. Consequently I associate it with "coding like a baby who understands nothing" and still hate to write let to this day.
Do you have some examples of what you couldn't get along with? I know this is a lot to ask, but to me while I do write Rust and I don't write C++ or Swift in volume (only small examples) the syntax just doesn't feel that different really.
If you do like Swift you might want to just bite the bullet and embrace the Apple ecosystem. That would be my recommendation I think.
There's a theory that the first-stage cancer is way more common than we think, it's just doesn't develop further most of the time, cause no symptoms and remains undiagnosed throughout the lifetime.
There's some support for this view because agressive screening for thyroid and prostate cancers increases the number of surgeries a lot but doesn't seem affect the mortality rates.
Risks from a surgery are non-negligible, if you perform it to treat a low-risk condition it may be a net loss in the end.
So you're technically right about the "early-detecting" part, but the "much easier to treat" step is problematic because it's unclear what a net-positive treatment looks like for low-risk cases. Probably it comes down to yearly monitoring of whatever was detected, not the actual treatment.
Yes, you could early-detect something, but the likelihood of this thing being life-threatening are extremely low. If you choose to manage this thing aggressively anyway, you have to undergo more invasive testing (e.g., biopsies, surgery, anesthesia, etc.) that all have small risks of catastrophic events. In most cases, the risks of more invasive testing outweigh the risks of just not pursuing any further workup.
Nothing in medicine comes for free—everything is a tradeoff.
> Isn't it possible you could be early-detecting something serious that is much easier to treat now vs when symptoms appear?
It could be. It could also be the cade that you undergo invasive surgery for something that would have never caused you problems within your life. The problem is that cancer isn‘t cancer. Even if it originates from the same tissue, some tumors behave very different from others.
There doesn't always have to be a monetary loss to win a copyright suit, perhaps unlike with a breach of contract ruling.
Copyright licenses are designed to support the right to exclude; money damages alone do not support or enforce that right.
A similar notion has been common even among cases involving open source licenses, where developers were able to claim non-monetary damages from violations.
From Jacobsen v. Katzer:
> Traditionally, copyright owners sold their copyrighted material in exchange for money. The lack of money changing hands in open source licensing should not be presumed to mean that there is no economic consideration, however. There are substantial benefits, including economic benefits, to the creation and distribution of copyrighted works under public licenses that range far beyond traditional license royalties. For example, program creators may generate market share for their programs by providing certain components free of charge.
Every OS has a similar facility for emulating keystrokes, and then there's the hardware solutions, e.g. raspberry pi that masquerades as a keyboard. It's practically impossible to prevent someone from cheating if they are motivated enough.
Maybe a nit, but this isn't piracy. Windows has been officially free to download and install since Windows XP. That was when Microsoft switched to their Product Activation DRM, and the license key became the bit you paid for.
My understanding is that "free to download" means only from MS, but I could be wrong. And I suppose the only way to know for sure would be to take the issue to court, which is also going to be a subjective opinion from a judge.
I don't see a gloss for "cop out" that matches the one you give, and the only one I'm personally familiar with is most similar to sense 1, "perform in an insufficient, negligent, or superficial manner".†
And even there, I would think of the derived noun as being the basic vocabulary item, even if the etymology is the other way around.
That said, the sense I get from "Cop cops it after Copilot cops out" is 'this is using vocabulary I don't know, because it's British', not 'how is it possible to put the words together this way?'. It looks like a fairly normal sentence using exotic vocabulary.
† As a separate issue, I don't think the gloss you give can be correct here, because the thing that's supposed to have copped out is Copilot, and what it did was to produce false statements, not surrender before a fight.
If we want to rephrase this headline to avoid any use of the token "cop(s)", it looks something like "Policeman gets in trouble after Copilot screws up" to me.
For this reason (coming from C++) I wished Swift were more popular because that syntax is much more familiar/friendly to me, while also having better memory safety and quality of life improvements that I like.
reply