decoration decoration
Stories

GROKLAW
When you want to know more...
decoration
For layout only
Home
Archives
Site Map
Search
About Groklaw
Awards
Legal Research
Timelines
ApplevSamsung
ApplevSamsung p.2
ArchiveExplorer
Autozone
Bilski
Cases
Cast: Lawyers
Comes v. MS
Contracts/Documents
Courts
DRM
Gordon v MS
GPL
Grokdoc
HTML How To
IPI v RH
IV v. Google
Legal Docs
Lodsys
MS Litigations
MSvB&N
News Picks
Novell v. MS
Novell-MS Deal
ODF/OOXML
OOXML Appeals
OraclevGoogle
Patents
ProjectMonterey
Psystar
Quote Database
Red Hat v SCO
Salus Book
SCEA v Hotz
SCO Appeals
SCO Bankruptcy
SCO Financials
SCO Overview
SCO v IBM
SCO v Novell
SCO:Soup2Nuts
SCOsource
Sean Daly
Software Patents
Switch to Linux
Transcripts
Unix Books

Gear

Groklaw Gear

Click here to send an email to the editor of this weblog.


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

The information on Groklaw is not intended to constitute legal advice. While Mark is a lawyer and he has asked other lawyers and law students to contribute articles, all of these articles are offered to help educate, not to provide specific legal advice. They are not your lawyers.

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
Don't forget the rules of copyright law | 388 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Reflection wasn't new in Java
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 | # ]

Don't forget the rules of copyright law
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 | # ]

Groklaw © Copyright 2003-2013 Pamela Jones.
All trademarks and copyrights on this page are owned by their respective owners.
Comments are owned by the individual posters.

PJ's articles are licensed under a Creative Commons License. ( Details )