porgamrer

joined 1 year ago
[–] [email protected] 1 points 4 months ago

eh, i really did look for a joke. all i see is a "well actually" opinion that somebody here probably holds

[–] [email protected] 2 points 4 months ago (2 children)

Yes if you remove all frivolity I'm sure the joke will be funnier

[–] [email protected] 2 points 5 months ago (1 children)

I definitely agree on the last point. Personally I like languages where I can get the compiler to check a lot more of my reasoning, but I still want to be able to use all the memory management techniques that people use in C.

I remember Jonathan Blow did a fairly rambling stream of consciousness talk on his criticisms of Rust, and it was largely written off as "old man yells at clouds", but I tried to make sense of what he was saying and eventually realised he had a lot of good points.

I think it was this one: https://m.youtube.com/watch?v=4t1K66dMhWk

[–] [email protected] 2 points 5 months ago (3 children)

That's what std::move does, and you're right that it's quite an ugly hack to deal with C++ legacy mistakes that C doesn't have.

I say move semantics to refer to the broader concept, which exists to make manual memory management safer and easier to get right. It's also a core feature of Rust.

Also I'm talking about parametric polymorphism, not subtype polymorphism. So I mean things like lists, queues and maps which can be specialised for the element type. That's what I can't imagine living without.

[–] [email protected] 2 points 5 months ago

I would have said the same thing a few years ago, but after writing C++ professionally for a while I have to grudgingly admit that most of the new features are very useful for writing simpler code.

A few are still infuriating though, and I still consider the language an abomination. It has too many awful legacy problems that can never be fixed.

[–] [email protected] 0 points 5 months ago (1 children)

The only conceivable way to avoid pointers in C is by using indices into arrays, which have the exact same set of problems that pointers do because array indexing and pointer dereferencing are the same thing. If anything array indexing is slightly worse, because the index doesn't carry a type.

Also you're ignoring a whole host of other problems in C. Most notably unions.

People say that "you only need to learn pointers", but that's not a real thing you can do. It's like saying it's easy to write correct brainfuck because the language spec is so small. The exact opposite is true.

[–] [email protected] 2 points 5 months ago* (last edited 5 months ago) (5 children)

I'm not a fan of C++, but move semantics seem very clearly like a solution to a problem that C invented.

Though to be honest I could live with manual memory management. What I really don't understand is how anyone can bear to use C after rewriting the same monomorphic collection type for the 20th time.

[–] [email protected] 3 points 5 months ago

If every EU politician was elected on a promise that there would be no more half measures, they would then proudly announce the end of quarter measures.

[–] [email protected] 3 points 5 months ago (1 children)

Maybe if you paid more attention to the original definitions of words you would know what marxism is

[–] [email protected] 5 points 5 months ago

They are both doomed because neither is transformative enough to justify adoption. They are going to need to solve much harder problems to do that.

Take Rust as an example. It solved a problem that most people weren't even paying attention to, because the accepted wisdom said it was impossible.

[–] [email protected] 3 points 5 months ago

It's starting point is absurdly complex. Seems very obviously doomed to me.

Julia is a very clever design, but it still never felt that pleasant to use. I think it was held back by using llvm as a JIT, and by the single-minded focus on data science. Programming languages need to be more opportunistic than that to succeed, imo.

[–] [email protected] 2 points 6 months ago

I thought it sounded kind of similar to statistical CPU profiling, where you're sampling the program counter of a given thread to see which functions actually use the most time. Maybe this idea could help increase the sample rate.

view more: next ›