5 ms·
> Some Rust users are unhappy with this decision, so unhappy that they use language I would characterize as melodramatic: Seriously. I've said this before, the
by insanitybit 3y ago
> Some Rust users are unhappy with this decision, so unhappy that they use language I would characterize as melodramatic:
Seriously. I've said this before, the way people talk about these problems is so dramatic. I've written 10s of thousands of LOC in Rust and you'd think, from these blog posts, that I must be miserable. I am not. I am quite pleased with it.
It's so funny to me that Thread Per Core is seen as the holy land. Like it's just objectively better. It is not. TPC is quite tricky, indeed. Scylla had a great post recently talking about how they were suffering performance penalties due to accidentally sharing some memory - this is the sort of thing you have to be super careful about when leaning into TPC. "Hot partitions" is another one.
I'm going to refrain from commenting more (this article looks excellent and I want to read the citations) but I'm very very happy to see this post. I think far to little credit is given to the effort put into getting a novel language like Rust to support this so well.
- Waterluvian 3y agoThis kind of attitude exists everywhere, but good gravy does it exist strongly in Software Development. I feel like every software developer could benefit from a summer tarring rooftops to mature their idea of what "killing the joy" of doing work feels like.
- insanitybit 3y agoA big problem with software dev is the lack of rigor, imo. > It’s always off-putting to me that claims written this way can be taken seriously as a technical criticism, but our industry is rather unserious. From the article, this resonates so strongly with me. Instead of people reading papers, talking seriously, it's so hand wavy and weak.
- Waterluvian 3y agoMy general feeling is that I think people lean on how they feel about these problems because building an experiment and quantifying the problem to make a solid case for it actually being a problem worthy of resources and remediation is... tedious and unfun? Not to say these people don't exist. But I think they exist in lesser numbers. Even I'm guilty of this. I know it... so I do it... but it's very unfun and tedious and... well I'm paid to do it so I can't complain.
- insanitybit 3y agoI'm going to avoid derailing into a "tech has these problems", respectfully, as I think the core of the post is really worthwhile and I could talk about tangentially related things for too long and be too distracting. I think we are likely, overall, in agreement.
- aeonik 3y agoI think it's more then tedium and fun that blocks the rigor. Though, those two properties definitely hold a fair number of people back. I'll use myself as a research subject: I really like the scientific method, and don't mind a long grind. But the main barriers I run into with software fall into at least two major categories: 1. Compatible datasets or software: it takes a LOT of manual effort to collate good data sets, and because I am a software engineer, I want to automate these things, then I end up in tarpits and rabbit holes, building bridges rather than testing hypotheses. 2. Abstraction fatigue, There is so much vocabulary that we use, and we switch layers so quickly and in different contexts that I find it very time consuming and opaque to harmonize all the concepts. Real life pressures don't always afford the ability to really understand an entire stack, which I posit is necessary for a certain level of Rigor. For example, right now I'm trying to Grok Clojure Transducers, and some folks are saying they are the same things as Monads. Are transducers a better pattern? Are they the same? Different? How much do they overlap? I have feelings relating to dynamic types vs static types. I have feelings about wrapping implementations. I have feelings about the JVM vs the Haskell compiler vs the V8 JavaScript engine. Also, I get feelings related to polymorphism, metaprogramming, dependent types, homoiconicty. But nothing fully baked. To call my feelings even 10% baked would be charitable. I can't currently describe all the relationships, or why my brain is currently zeroing in here in full fidelity. Only parts of it, and I remain in a state perplexity for now. The formality of Category Theory and Abstract algebra sounds like it would be really nice here, but it's going to take me years to get to to speed in those domains, and I'm not even sure they have the theorums to compare these two patterns!
- mulberrybush 3y agoThis video [1] explaining Clojure transducers is excellent. No terminology, no analogies with category theory - just code getting built up in a repl. [1] https://www.youtube.com/watch?v=TaazvSJvBaw https://www.youtube.com/watch?v=TaazvSJvBaw
- deleted 3y ago[deleted]
- withoutboats3 3y ago> A big problem with software dev is the lack of rigor, imo. It's amazing to me how much more informed you can seem than everyone else if you just read the thing everyone is quoting.
- insanitybit 3y agoIndeed. I have brought this up when people reference "premature optimization is the root of all evil" and mistakenly attribute a false meaning to it. What an approachable paper, what is the excuse for not simply reading it? To boil it down to one quote and then to use that quote to dogmatically advocate for practically the opposite of the point is... sigh. I've also been banging the "you are using 'IO Bound wrong'" drum for years and still this persists. HN is a daily example of this. Reading the blog post immediately highlights all of the comments where users seemingly did not.
- pjmlp 3y agoA side effect from those calling themselves enginners without having a proper Software Engineer degree where this kind of stuff is actually taught.
- insanitybit 3y agoAnd here I am with no degree at all :) I suspect I've read quite a few more papers than your average graduate, however.
- taeric 3y agoI was going to say the same thing. My gut is it exists as strongly in other places, but that we don't have direct exposure to their social zones to see it. And it isn't like rust is particularly hit by it, either. You'd think people writing PHP or Java hate life, if you only went by what you are likely to see in our social sites.
- safety1st 3y agoThe PHP developers I speak to these days seem pretty happy to be using PHP. The ones who fly into a rage over it seem to be people who don't actually use it!
- cesarb 3y ago> The ones who fly into a rage over it seem to be people who don't actually use it! Well, that does make some sense: if something bothers you so much that you'd "fly into a rage over it", you would avoid using it as much as possible (and PHP is not like JavaScript which has no real alternative).
- taeric 3y agoThe annoying thing is more that a ton of the ones that fly into a rage are also ones that have never used it. There is a ton of dog-piling in what people complain about.
- cesarb 3y ago> The annoying thing is more that a ton of the ones that fly into a rage are also ones that have never used it. Even that does make some sense: if, on a first look, you see something you deeply dislike, you probably will also avoid using it in the first place. As a personal example, I never learned Go because, when I first looked at it (IIRC, it was when I had to use it to run a Heartbleed detector), I deeply disliked the way it required developers to organize their source code (a single per-language directory mixing all projects together, instead of the per-project directories I have always used); I understand this might have changed later, but in the meantime I invested my time in learning another programming language, and so far haven't found a need to look at Go again.
- mcronce 3y agoYour analogy really hits. I don't mind doing construction in general (I quite like doing it once in a while), but roofing absolutely sucks no matter how you cut it
- api 3y agoI'm pleased with it too. Seriously. When I learned it it took me a bit to get lifetimes and borrows and stuff but once I did I got it and I rarely have to "fight" it. Running in an IDE hooked to rust-analyzer helps a lot too since you get pretty instant feedback if you get something wrong most of the time. I have this suspicion that at least a few of the people who hate a lot of languages with more complex type systems or large stdlibs (e.g. Go, Java, C#) are trying to edit them in a plain vanilla text editor without these features. This would require you to memorize way too much shit. Why? Modern machines have gigabytes of RAM. Run a language server.
- VirusNewbie 3y agoI love this stuff, and while I consider myself informed, i'm not an expert. However, I've bantered a bit with Scylla's CTO and others about how I would regularly run into issues with Scylla because they didn't use TPC, and I'd see hot keys that would suffer performance because they only let one core manager a subset of keys... So, while I can't make an authoritative statement, I think TPC is better overall...
- efficax 3y agoi've written about 30k lines of async rust this year alone and haven't found the horror of Send + Sync + 'static to impact me much at all. You just have to think about things for a second sometimes.
- insanitybit 3y agoTBH most of the time you don't have to think at all. Compiler says "you need those annotations" and you copy/paste them and then you move on. It's really incredible to me that people are acting like this is some extremely onerous process, like writing a dozen characters causes some sort of incredible pain.
- deleted 3y ago[deleted]