Java 버전 1.X를 Java X라고하는 이유는 무엇입니까?


58

Java 1.2는 Java 2라고도합니다. "Java 1.x"및 "Java x"(예 : "Java 1.6"및 "Java 6")가 동일한 Java 버전을 참조합니까?

그렇다면,이 이원성이 필요한 이유는 무엇입니까?


7
마케팅 이유?

14
Mozilla Firefox보다 여전히 낫습니다. 2 년 이내에 10 개 이상의 주요 버전.
Andrzej Bobak

2
예, 마케팅 이유. 이 SO 질문 은 같은 주제에 관한 것입니다.
Joachim Sauer

2
Sun (현재 Oracle)이 주요 릴리스 (Java 5, 6, 7 및 곧 8)를 포인트 릴리스 (1.5, 1.6, 1.7 및 곧 1.8)로 출시 한 이유는 무엇입니까?
Joachim Sauer

3
@AndrzejBobak 구글 크롬이 더 나 빠지고, 2 년 만에 20 개 버전에 다가 가고 있습니다
Izkata

답변:


64

그 당시 썬 마이크로 시스템즈는 자사 제품에 대한 수많은 이름 변경을 겪고 처음부터 혼란스러운 이름을 사용하는 나쁜 습관을 가지고있었습니다.

이름에 무엇이 있거나 "자바"가 무엇을 의미합니까?

원래 "Java"라는 용어는 무차별 적으로 설명하는 데 사용되었습니다.

  • 언어 ,
  • 플랫폼 ,
  • 그리고 다른 일부는 JVM과 Java Class Lib를 Java로도 언급했습니다.

내부 및 외부 번호

다른 사람들이 지적한 것처럼 버전 번호와 관련하여 부분적으로 마케팅 때문이며, 부분적으로 Java가 그러한 진전을 이룬 것처럼 느꼈기 때문에 주요 버전 업그레이드가 Java 1.2 / Java 2 및 Java 1.5 / Java에 더 적합하다고 생각했기 때문에 5).

따라서 Java 2라고하는 것은 실제로 Java 1.2에서 1.4입니다. Java 3 및 Java 4는 존재하지 않았으며 여기 에서 이름 지정 및 버전 지정 페이지에서 설명하려고 시도하면서 Java 5로 직접 건너 뛰었습니다 .

또한 추적 및 개발 시스템에 사용되는 내부 번호를 엉망으로 만들지 않았을 것입니다. 나는 그것을 1.x = 언어 버전과 X = 언어 및 제품 버전으로 생각하는 경향이 있습니다. 일반 사용자는 자동 업데이트를 권장하기 때문에 약간의 증분 및 업데이트에 대해 걱정할 필요가 없으므로 언어 ​​또는 바이트 코드에 변경 사항이 없어야합니다.

부 버전과 업데이트 번호를 볼 때 더 이상해집니다. 예를 들어 Java 1.3.1 이상 Java 1.4.1 및 1.4.2가있었습니다.

업데이트

그러나 그 이후로 1.xy는 없었으며 항상 1.x.0_UPDATE였습니다.

또한 이러한 명명 규칙 중 하나를 사용하여 업데이트가 참조되는 것을 볼 수 있습니다.

  • 1.5.0_22 또는 1.7.0_04와 같이 (업데이트 버전에서 패딩 0은 2 자리로 정렬 됨)
  • 그러나 1.5.0u22 또는 1.7.0u4도 있습니다 (패딩 0은 사라졌습니다).

그리고 추가 혼동과 Sun Microsystems의 전통을 따라 잡기 위해 Oracle은 이제 이와 같은 발표를하지 않습니다.

제품명

또한 번호를 변경하는 습관뿐만 아니라 제품 이름도 변경했습니다. 따라서 Java 2에는 J2SE (Java 2 Standard Edition), J2EE (Java 2 Enterprise Edition) 및 J2ME (Java 2 Mobile Edition)가 있습니다. Java 5가 도입 된 이후로 Java SE, Java EE 및 Java ME에 찬성하여 이러한 규칙과 두문자어가 삭제되었습니다 (일부는 믿을 수 없을 정도로 긴 복원력을 가지고 있지만 대부분은 말을 잘 못하는 바보 모집 기관 덕분입니다) 간혹 JSE, JEE (정상적으로) 및 JME로 축약되지만 공식적으로는 사용되지 않아야합니다.

Sun Microsystems 및 현재 Java 1.3.1 이후 Oracle에서 사용 하는 현재 버전 관리 시스템 에 대한 자세한 정보는이 페이지를 읽으십시오 .

(보너스 포인트의 경우, NetBeans의 히스토리를 찾아서 이름이 몇 번 바뀌 었는지 확인하십시오).

그들은 스스로를 모른다

또한 기존 참조를 다시 업데이트해야하는지 여부를 결정하는 데 어려움을 겪고 있습니다. 예를 들어, 이전 릴리스에 대한이 페이지는 이전 릴리스 에 이전 번호 시스템을 사용하지만 최신 제품 이름 (이 이름 지정 규칙으로 Java SE 1.1, 1.2, 1.3 및 1.4는 릴리스되지 않았습니다).

어쩌면 그들은 우리와 함께 재미를 위해 조이고있을 것입니다. 누가 알아?

JVMS와 JLS는 어떻습니까?

물론 이름 지정과 번호 매기기가 재미있었습니다.

Java 언어 사양은 제품 번호 다음 ,, 책 "판"버전 등산용으로 출시하는 데 사용됩니다. 그래서:

  • Java 1에는 "Java Language Specification"이 있으며
  • Java 2에는 "Java Language Specification, 2nd edition"이있었습니다.

여태까지는 그런대로 잘됐다.

"Java 언어 사양"은 나중에 Java 5에서 언어 변경이 도입 될 때만 다시 편집되었습니다 (이는 의미가 있지만 재미를 위해 새 책을 출판하지 않습니다). 이번이 편집 한 것은 3 번째 였기 때문에 "tada!"를 "Java Langauge Specification, 3rd edition"이라고했습니다.

그러나 사람들은 왜 1.3과 1.4에 언어 사양이 없는지, 왜 Java 5가 언어 사양의 3 판과 일치하는지 궁금해하기 시작했습니다.

따라서 Java 7은 이제 이것을 "Java Language Specification, Java SE 7 Edition"이라고 부르지 만, 우리는 종종 이것을 줄여서 RSI를 피하기 위해 JLS7이라고 부릅니다.


그들은 유일한 사람이 아니다 ...

추가 재미를 위해 Microsoft Windows RT의 이름 지정 실패 또는 iPhone, iPad 또는 iPod의 Apple 이름 지정 및 번호 매기기 광기를보십시오.


"후행 0에 유의하십시오"후행 0은 무엇입니까?
사무엘 에드윈 워드

@SamuelEdwinWard : 죄송합니다. 언어가 섞여 있습니다. 버전 번호와 업데이트 번호 사이의 _ 뒤의 접두사 0을 의미합니다.
haylem

나는 그것이 그것이 Porte-Manteau 또는 Portmanteau가 의미하는 것이라고 생각하지 않습니다.
Grady Player

@GradyPlayer : 실제로 완벽하게 맞습니다. 지적 해 주셔서 감사합니다. (편집 : 헤더가 업데이트되었습니다.
haylem

5

짧은 대답 : 마케팅.

더 긴 대답 : 짧은 형식 (예 : Java 6)은 소위 "제품 버전"이며 Java가 사용자 및 보도 자료 등에 판매되는 방식입니다.

더 긴 형식 (예 : Java 1.6.0)은 "개발자 버전"입니다. 내부적으로 사용되며 Java 개발자도 접할 수 있습니다 (예 : java.version시스템 속성은 긴 형식을 사용함).

자세한 내용은 다음 페이지를 참조하십시오.


2

제목이 "Learn Shiny New Java 3"인 책은 제목이 "Java 1.3의 새로운 기능"인 책보다 먼저 매진되기 때문입니다.

예, 주로 마케팅 이유입니다. 반면에, 나는 여기서 심각한 범죄를 보지 않습니다. 결국 Mozilla 또는 Chrome과 같은 일부 제품에서는 주요 빌드 번호가 지속적으로 증가하고 다른 제품은 약간의 빌드 번호가 증가하지만 때로는 새로운 릴리스마다 큰 변화가 발생할 수 있습니다.

Apple과 같은 일부 사용자는 "Mac OS 10.6"과 같이 둔한 이름으로 사용자를 떠나고 싶지 않습니다.

Sun은 "Java Green Diplodocus"릴리스를 도입하는 대신 N 별칭을 사용하여 정상이었습니다.


4
참고 사항 : Java 3은 없었으며 Java 2 SE 1.3 (또는 J2SE 1.3)이었습니다. Java 1.5 / 5.0 / 5에서만 마케팅에서 "1.x"숫자를 제거했습니다. 그렇습니다. 'Java 1.2 (및 1.3 및 1.4!)도 "Java 2"라고 불렀습니다. 마케팅, 예!
Joachim Sauer

1

ServerSide는 다음과 같이 "Java 1.x"에서 "Java x"로의 변경을 설명 합니다 .

태양은 "1"을 차단했습니다. J2SE 1.5.0을 J2SE 5.0으로 변경 변화의 이유는 무엇입니까? Sun은 "이것은 거의 10 년 전에 최초 릴리스 이후 Java 플랫폼 및 프로그래밍 언어로의 가장 중요한 업그레이드"이며이 버전은 가치가 있다고 주장합니다.

분명히 "J5SE"로 이름을 바꾸려는 대화가 있었지만 J2EE 브랜드는 너무 많은 것을 의미한다고 생각했습니다.

버전 번호가 재미 있지 않습니까?

보도 자료 읽기 : Sun, 5 년 만에 가장 중요한 고급 Java 플랫폼 출시

위 인용문의 링크는 Oracle에 의해 종료됩니다 . 내가 알 수 있는 한 prnewswire에서 사용할 수 있습니다 .

썬 마이크로 시스템즈 (나스닥 : SUNW)는 제작자
및 Java (TM) 기술의 주요 옹호자는 오늘 소개 자바 2 플랫폼
스탠다드 에디션 (J2SE (TM)) 5.0, 자바의 가장 중요한 업그레이드
플랫폼과 프로그래밍 언어부터 거의 10 년
전에 출시 되었습니다. Project Tiger로 알려진이 업데이트 된 Java 플랫폼은 극적인
개발 용이성 , 새로운 응용 프로그램 모니터링 및 관리 기능,
PC 데스크탑에 대한 풍부한 클라이언트 지원 및 기록적인
성능에 중점을 둔 기능을 제공 합니다 ...


완전성을 기하기 위해 1.X 버전 스타일 이 완전히 삭제되지 않았습니다 .

개발자가 사용하는 "버전 1.5.0"

또한 J2SE는 개발자 만 볼 수 있거나 프로그램에서 버전 번호를 구문 분석하는 일부 위치에 버전 번호 1.5.0 (또는 1.5)을 유지합니다. 언급 한 바와 같이 1.5.0은 5.0과 동일한 플랫폼 및 제품을 의미합니다.

또한 주석에서 지적했듯이 위에 사용 된 "J2SE"용어는 나중에 "Java SE"로 변경되었습니다.


4
다행히 그들은 "Java SE"와 "Java EE"를 위해 "J2SE"(및 "J2EE") 이름을 삭제했습니다. "J2SE 5.0"은 어리석은 짓이었습니다.
Joachim Sauer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.