Skip to main content
Tweeted twitter.com/#!/StackProgrammer/status/198324817525612544
edited title
Link
Jeff Atwood
  • 6.8k
  • 10
  • 47
  • 49

What wherewere the "core" API packages of Java 1.0?

title -> question
Link
yannis
  • 39.7k
  • 40
  • 185
  • 218

"Core" What where the "core" packages of Java 1.0?

added 32 characters in body
Source Link
Kevin Montrose
  • 775
  • 3
  • 9
  • 16

Reading about the Google v Oracle case, I came across these questions (apparently from the presiding Judge)

...
Is it agreed that the following is true, at least as of 1996?

The following were the core Java Application Programming Interface: java.lang, java.util and java.io.

Does the Java programming language refer to or require any method, class or package outside the above three?
...

source: Groklaw

There are obviously lots of legal ramifications, Google and Oracle probably disagree on some points, and I don't care. Leave law to the lawyers.

However, I suspect there's an interesting bit of history in here.

My question is (as someone who first did any Java coding around 2001 in version 1.3), in version 1.0 of Java was anything required outside of java.lang, java.util, and java.io to compile a valid Java program?

As an example (using C# 5.0), the await keyword is dependent upon Task<T>Task<T> GetAwaiter() (amongst other things). The compiler couldn't function to spec without that class.

Equivalently, were there any core runtime features (like ClassLoader*) that were dependent on other packages?

I'll admit I ask out of curiosity, exactly what is necessary for minimum-viable Java (the language, ignoring all the legal bits around it) is interesting.

*I am assuming that ClassLoader was even a feature in Java 1.0, it's part of the spec in 7.0 and presumably many earlier versions.

Reading about the Google v Oracle case, I came across these questions (apparently from the presiding Judge)

...
Is it agreed that the following is true, at least as of 1996?

The following were the core Java Application Programming Interface: java.lang, java.util and java.io.

Does the Java programming language refer to or require any method, class or package outside the above three?
...

source: Groklaw

There are obviously lots of legal ramifications, Google and Oracle probably disagree on some points, and I don't care. Leave law to the lawyers.

However, I suspect there's an interesting bit of history in here.

My question is (as someone who first did any Java coding around 2001 in version 1.3), in version 1.0 of Java was anything required outside of java.lang, java.util, and java.io to compile a valid Java program?

As an example (using C# 5.0), the await keyword is dependent upon Task<T> (amongst other things). The compiler couldn't function to spec without that class.

Equivalently, were there any core runtime features (like ClassLoader*) that were dependent on other packages?

I'll admit I ask out of curiosity, exactly what is necessary for minimum-viable Java (the language, ignoring all the legal bits around it) is interesting.

*I am assuming that ClassLoader was even a feature in Java 1.0, it's part of the spec in 7.0 and presumably many earlier versions.

Reading about the Google v Oracle case, I came across these questions (apparently from the presiding Judge)

...
Is it agreed that the following is true, at least as of 1996?

The following were the core Java Application Programming Interface: java.lang, java.util and java.io.

Does the Java programming language refer to or require any method, class or package outside the above three?
...

source: Groklaw

There are obviously lots of legal ramifications, Google and Oracle probably disagree on some points, and I don't care. Leave law to the lawyers.

However, I suspect there's an interesting bit of history in here.

My question is (as someone who first did any Java coding around 2001 in version 1.3), in version 1.0 of Java was anything required outside of java.lang, java.util, and java.io to compile a valid Java program?

As an example (using C# 5.0), the await keyword is dependent upon Task<T> GetAwaiter() (amongst other things). The compiler couldn't function to spec without that class.

Equivalently, were there any core runtime features (like ClassLoader*) that were dependent on other packages?

I'll admit I ask out of curiosity, exactly what is necessary for minimum-viable Java (the language, ignoring all the legal bits around it) is interesting.

*I am assuming that ClassLoader was even a feature in Java 1.0, it's part of the spec in 7.0 and presumably many earlier versions.

edited tags
Link
Jeff Atwood
  • 6.8k
  • 10
  • 47
  • 49
Loading
Post Migrated Here from stackoverflow.com (revisions)
Source Link
Kevin Montrose
  • 775
  • 3
  • 9
  • 16
Loading