|
Authored by: Anonymous on Monday, May 07 2012 @ 12:17 AM EDT |
Its at least as old as Smalltalk, probably much older. Like Smalltalk, the
reflection system in Java reifies the API of compiled methods, fields and
classes (although there are more ugly details for Java to cope with,
because of its static type system).
As with many things, the Java version is not nearly as powerful as what
Smalltalk had 15 years before. Smalltalk had a full metaclass system (a
class "Foo" was an instance of "Foo class", which was a
subtype of
"Class" and an instance of "Metaclass", which was an
instance of
"Metaclass class"... Actually "Metaclass" and
"Metaclass class" were
instances of each other! Anyway, it was not hard to enumerate all of the
methods or fields available on any object, even if that object happened to
be an internal VM data structure such as a stack frame. The debugger is
itself written in Smalltalk, and could access its own stack frames as
Smalltalk objects, directly invoke methods, etc.
Smalltalk could also dynamically proxy any object with just a few lines of
code, by implementing #doesNotUnderstand: to handle the message.
Everything in Smalltalk is a first-class object, including integers, booleans,
message selectors and compiled methods.
You could edit code on-the-fly while debugging, and even replace all
instance objects of a class when compiling a new version of it. The
debugger ran inside your program, and since it was also written in
Smalltalk, you could even add new features to the debugger while your
program was stopped at a breakpoint! Modern IDE's for dynamic
languages haven't matched the power of Smalltalk's refactoring browser,
which is probably more than 20 years old by now.
Aieee, if only Smalltalk had received the popularity that went to Java![ Reply to This | Parent | # ]
|
|
Authored by: Ian Al on Monday, May 07 2012 @ 04:06 AM EDT |
If any choices Sun made are not fixed as creative expression in a medium then
they are ideas floating free that anyone can use without fear of copyright
infringement.
The only reason we are talking about SSO is in relation to copyright
infringement. If you are talking about ideas and concepts then you should make
that clear.
---
Regards
Ian Al
Software Patents: It's the disclosed functions in the patent, stupid![ Reply to This | Parent | # ]
|
|
|
|
|