Not much experience, but quickly learned .bind() in JS after it switched me to window instead of object.
In Python you can use this as a variable name
In Python you can use 🍆 as a variable name.
Edit: oops, guess I was mistaken, you can use most Unicode but emojis are not valid.
Just going by the reputation, you probably can do this in JavaScript
I was working on a C code base with classes, inheritance, and polymorphism, all done by hands and macros.
Something like
typedef struct s_some_class { void (*method)(this *s_some_class); } t_some_class;
Overall, learning C was the best enabler in my whole career. For instance I was learning Python by tinkering with CPython VM, so when I see these ‘WAT’ quircks I know exactly what’s up.
Interesting, how did they do inheritance? Something like
void *super
? Also why not switch to CPP if you wanna do OOP?In general, ‘classes’ declarations were done with macro. I don’t remember the exact code — something akin to
BEGIN_CLASS(A, Parent); CLASS_MEMBER(a...) END_CLASS();
The project had started before C++ existed, and the switch would be too costly. It’s not just OOP part, also reflection mechanism with bindings to the homemade scripting language, and multi-platform UI library. It was a gem of its time.
That sounds like quite a challenge to maintain, to speak in euphemisms ;)
Revolutionary technologies of the '80 make me appreciate modern programming languages and especially tooling much more.