Video wird geladen...
Video konnte nicht geladen werden
This is gonna make Rust programmers angry. Reflection is one of the most powerful concepts in Computer Science. Unfortunately, not every programming language is blessed enough to have it. Timestamps: 00:00 Powerful Computers have No Security 03:07 Reverse Engineering is Program Surgery 04:55 The first .COM in History 06:56... show more
191,302 Aufrufe • vor 1 Monat •via X (Twitter)
35 Kommentare

> This is gonna make Rust programmers angry Good.

Everything makes Rust programmers angry.

I used to lay under the trees near those columns while an undergrad a few times per week. Lot of my early ideation happened there. Excellent location. :)

Less amusing, but relevant: How C++ Finally Beats Rust at JSON Serialization

Huge props for posting your whole video to X, thank you.

You can "poke" a Linux process memory while it is running and see the changes take effect instantly, for example (one liner): 'sudo echo -n "66 6f 6f" | xxd -r -p | sudo dd of=/proc/4622/mem seek=$((0x7f80a2f56000+0x30ce4)) count=3 bs=1 conv=notrunc'

@LilithDatura So, one way to frame the issue is it’s unchecked runtime reflection that’s at issue, because it breaks parametricity: < How to get reflection benefits anyway? <

Every programming language has reflection, you just need to be brave enough.

Objective-C and/or Smalltalk would be interesting additions. For Obj-C, I think class_poseAs is still in the runtime, but rarely used today. In a sense, Distributed Objects also let you mirror an object in another process or over the wire, which is still pretty cool.

oof you forgot erlang (and relatives) which are surely S tier

Smalltalk / Pharo developers feeling left out (again)

Such dumb clickbait. 'This feature is so cool, our 40 year old language is grafting it on now!' 🤡 In other news: zero C++ devs were saying it was cool when it came with Java 30 years ago!

Don't worry, Rust programmers will always find something to be mad about.

D and Jai have totally spoiled me in this regard. Like of course you can have your program know things about your program (and change your program). Why on earth not?

I've come down to "It wish I could list the properties of an object" with several problems. Very useful, like you said, you can kind of force this into any language with an eval. Aside, you've really become absurdly good at presenting ideas. I hope you continue.

😒This should make JS programmer angry because it didn’t even make into the video as if it’s not a real programming language or something (also C# but they’re used to it)

ts is why we love and bevy's runtime reflection

All the reflexion in C++ was copied (in much worse) from the D language. D is the champion of the statically compiled languages with reflexion.

Most of my projects are rust based. I'm happy for C++ to be awesome, ditto go/zig. Just as long as you're not shipping interpreted languages that impact performance.

Reflection is garbage

Should've done the entire video with cat ears. Reflection is great to have!

All of the major scripting languages - python, php, javascript, perl - have a function to compile/interpret code at runtime - in fact it's called `eval` in all 4! And they power like 90% of the internet So yeah about that security thing...

Facet is actually really great. It creates an associated const with shape data at compile time on anything that derives Facet.

When you think about all those old reflective systems - you might think - why they did not try these systems to read their reflections and improve them in a self improvement loop. This is because they even when they can read their code and can change it they don't know how to improve it (which in practice means they don't have a way to effectively search the space of potential changes and evaluate them against a given objective). With llms inside systems like this we can do that now:

wow. she built c#'s roslyn but for c++. you superhumans are SOOOO annoyingly amazing

sometimes I'm confused whether it's @ChShersh posting from this account

God, save Rust from reflections🙏

Really? Most powerful? Does it add bloat and slow down? Is it necessary? Yes and no.

fun trivia: Symbolics' Color Graphics System would be involved of the creation of Gollum in LoTR. Rebadged as Mirai, still obscure but very innovative and 2 devoted users, Bay Raitt and John Feather, would use it to the facial system behind the first truly emotive CG actor.

I bet the "Rub Out" key sounds dirty to the younger folks that don't know the history behind it.

jesus you are smart as fuck, i hope my daughter reaches your level

Everything makes Rust programmers angry, whether you mention them or not.

Reflection is powerful. So is knowing your types before production. Rust moves many of those problems to compile time with traits, generics and macros. Even Java’s own docs say to avoid reflection when ordinary code works. Not every runtime trick is a blessing.

Funny thing, I started my career writing Prolog, and now I use neuro-symbolic techniques every day on dozens of applications. Even expert systems are now practical.

Yeyyy, a new video from my favorite Computer Science professor! La la Lauriee 😎

