Upgrade to Pro — share decks privately, control downloads, hide ads and more …

26 Java Years

26 Java Years

#31 ~オープンソースプロジェクトを支える言語たち~
2021-08/25

Ad3fbc316f916a341c24035e34913121?s=128

Shin Tanimoto

August 25, 2021
Tweet

More Decks by Shin Tanimoto

Other Decks in Technology

Transcript

  1. Shin Tanimoto 26 Java Years - ͜Ε͕ࠓͷJavaͩʂ <OSS X Users

    Meeting> #31 ʙΦʔϓϯιʔεϓϩδΣΫτΛࢧ͑Δݴޠͨͪʙ
  2. ୩ຊ ৺ (Shin Tanimoto) ೔ຊJavaϢʔβʔάϧʔϓ Ϧʔμʔʢ୅දʣ Java Champion / Oracle

    Groundbreaker Ambassador Everforth / Acroquest Technologyͷ2ࣾͰಇ͘ΤϯδχΞ ෭ۀʹͯ֎෦ސ໰΍ʮϨϯλϧ͢΂ΔਓʯͳͲ ੜ͖͕͍͸BABYMETALͷϥΠϒࢀઓ ࣗݾ঺հ 2 Twitter : @cero_t ஶॻ : Javaຊ֨ೖ໳
  3. ೔ຊJavaϢʔβʔάϧʔϓ (JJUG) 2007೥4݄ʹൃ଍ͨ͠JavaͷϢʔβʔձ ౦ژΛத৺ͱͨ͠ษڧձ΍ΧϯϑΝϨϯεͷ։࠵ʢݱࡏ͸ΦϯϥΠϯத৺ʣ ߨࢣ೿ݣ΍ग़ுΠϕϯτͳͲɺ೔ຊ֤஍ͷJavaίϛϡχςΟͱڠྗ͍ͯ͠Δ ن໛ ձһ਺ 10,000໊Ҏ্ ݄ྫͷษڧձʹ͸਺ඦ໊ɺ೥2ճͷΧϯϑΝϨϯεʹ͸1,000໊Ҏ্͕ࢀՃ JavaϢʔβʔάϧʔϓ

    3
  4. Javaʁ

  5. ݻ͍ ݹ͍ μα͍ ͑ɺJavaʁ 5

  6. ੩తܕ෇͚ݴޠ ΦϒδΣΫτࢦ޲ Java͸ݻ͍ʁ 6

  7. ੩తܕ෇͚ݴޠ ίϯύΠϧ࣌νΣοΫ΍IDEͷࣗಈิ׬ͷԸܙΛड͚΍͍͢ ΤϯλʔϓϥΠζͳͲͷେن໛ϓϩδΣΫτʹ޲͘ ΦϒδΣΫτࢦ޲ ۩৅ΑΓ΋ந৅Λ޷Ή ۀ຿΍ػೳΛ࣮ݱ͢ΔͨΊͷ࣮૷ΑΓɺͦͷຊ࣭Λߟ͑Δ͜ͱΛ޷Ήਓ͕ଟ͍ Java͸ݻ͍ʁ 7

  8. ࠷ॳͷ͓໨ݟ͔͑Β26೥ɺJDK 1.0ͷϦϦʔε͔Β25೥ Java͸ݹ͍ʁ 8

  9. ࠷ॳͷ͓໨ݟ͔͑Β26೥ɺJDK 1.0ͷϦϦʔε͔Β25೥ Pythonઌഐͷ4ίԼ C++ઌੜͷ10ίԼ ޙํޓ׵ੑΛอͪଓ͚͍ͯΔ ϥΠϒϥϦͷαϙʔτͳͲআ͚͹ɺݹ͍ίʔυͰ΋͍͍ͩͨίϯύΠϧ͕௨Δ͠ಈ͘ ৽͍͠API͕௥Ճ͞Εͯ΋ɺݹ͍API͸͍͍ͩͨͦͷ··࢒Δ Java͸ݹ͍ʁ 9

  10. จࣈྻஔ׵ϝιου Java͸ݹ͍ʁ 10 String str = “12345-12345-12345";
 
 str.replace('1', 'x');

    → "x2345-x2345-x2345"ɹ1จࣈ͚ͩࢦఆͯ͠શஔ׵
 
 str.replaceFirst("\\d+", "xyz"); → "xyz-12345-12345"ɹਖ਼نදݱͰࢦఆͯ͠1ճஔ׵
 
 str.replaceAll("\\d+", "xyz"); → "xyz-xyz-xyz"ɹਖ਼نදݱͰࢦఆͯ͠શஔ׵
 
 str.replace("123", "xyz"); → “xyz45-xyz45-xyz45"ɹจࣈྻͰࢦఆͯ͠શஔ׵
  11. จࣈྻஔ׵ϝιου str.replace(‘1’, ‘x’); → ࠷ॳ͔Β͋Δʢ1996೥ʣ str.replaceFirst(“\\d+”, “xyz”); → Java 1.4Ͱ௥Ճʢ2002೥ʣ

    str.replaceAll(“\\d+”, “xyz”); →Java 1.4Ͱ௥Ճʢ2002೥ʣ str.replace(“123”, “xyz”); → Java 1.5Ͱ௥Ճʢ2004೥ʣ ޙํޓ׵ੑΛอͭͨΊɺݹ͍APIΛ࡟আ͠ͳ͍ Java͸ݹ͍ʁ 11
  12. Java͸μα͍ʁ 12

  13. μαͳ͍Θʂʂɹμα͍ݴ͏΍͕ͭμα͍Μ͡Όʂʂ😭 Java͸μα͍ʁ 13

  14. ؔ਺ܕͬΆ͘දهͰ͖ΔϥϜμࣜͷಋೖ͸2014೥ͱ஗Ί ෳ਺ͷاۀ΍ஂମͷ߹ҙʹΑͬͯ࢓༷Λࡦఆ͢ΔΦʔϓϯͳϓϩηε Java Community ProcessʢJCPʣ ࢓༷ܾఆޙɺ֤͕࣮ࣾ૷ΛఏڙʢOracleɺIBMɺAzulɺBellSoftɺSAPͳͲʣ ߹ҙܗ੒͕ඞཁͰ͋Γɺ·ͨޙํޓ׵ੑͷҡ࣋Λॏࢹ͢ΔͨΊɺ 
 ৽͍͠จ๏΍ػೳͷఏڙ͸ɺଞͷݴޠʹൺ΂ͯগ͠஗ΕΔ ͦͷ෼ɺݎ࿚Ͱ͋ΓಛఆϕϯμͷϩοΫΠϯΛආ͚ΒΕΔ

    Java͸μα͍ʁ 14
  15. Java͍͍͡ΌΜ 15 😊

  16. ؆୯ͳྺ࢙ͱ༻ޠ

  17. 1995೥ : Sun MicrosystemsࣾʹΑΓॳ͓൸࿐໨ 1996೥ : JDK 1.0ϦϦʔεʢJDK = Java

    Development Kitʣ 2006೥ : OSSԽ 2010೥ : Oracle͕ࣾSun MicrosystemsࣾΛങऩ 2014೥ : Java 8ͷϦϦʔεɻؔ਺ܕ෩ͷهड़͕Ͱ͖ΔΑ͏ʹͳΓɺվΊͯ஫໨͕ू·ΔΑ͏ʹͳͬͨ 2017೥ : Java 9ͷϦϦʔεɻҎ߱൒೥͝ͱʹ࣍όʔδϣϯΛϦϦʔε͢ΔΑ͏มߋ Javaͷ؆୯ͳྺ࢙ 17
  18. JavaVM : Java Virtual MachineɻJavaΛಈ࡞ͤ͞ΔԾ૝ϚγϯɻJVMͱ΋දه͢Δ Java͸࣮ߦՄೳͳόΠφϦΛ࡞ΔͷͰ͸ͳ͘ɺίϯύΠϧͨ͠ϑΝΠϧΛJavaVM্Ͱಈ࡞ͤ͞Δํࣜ Java SE : ͍ΘΏΔJavaຊମ

    JDK : Java Development KitɻίϯύΠϥͳͲͷ։ൃπʔϧ JRE : Java Runtime EnvironmentɻJavaVM΍ඪ४ϥΠϒϥϦͳͲͷ࣮ߦ؀ڥ ݱࡏ͸JRE୯ମͰͷఏڙ͸͞Εͳ͘ͳͬͨ جૅ༻ޠ 18
  19. Java EEʢݱJakarta EEʣ : αʔόΞϓϦέʔγϣϯ޲͚ͷAPαʔό΍ϥΠϒϥϦ܈Λఏڙ Java ME : ૊ΈࠐΈ୺຤޲͚ͷJava JVMݴޠ

    : JavaVMͷ্Ͱಈ࡞͢ΔJavaͰ࣮૷͞Εͨݴޠ ScalaɺKotlinɺGroovyɺJRubyɺJythonͳͲ TCK : Technology Compatibility KitɻJavaͷޓ׵ੑΛ਍அ͢ΔπʔϧΩοτ ֤ࣾͷJava࣮૷͸TCKΛ௨ͬͯ͸͡ΊͯJavaͱೝఆ͞ΕΔ Oracleʢݩʑ͸Sun Microsystemsʣ͕ఏڙ͍ͯ͠Δ جૅ༻ޠ 19
  20. JavaΛऔΓר͘OSS

  21. ΤϯλʔϓϥΠζܥͰ࢖ΘΕΔ͜ͱ͕ଟ͍ݴޠͰ͋Γͳ͕Βɺ2000೥ࠒ͔Β 
 ։ൃ؀ڥ΍ϥΠϒϥϦɺϑϨʔϜϫʔΫͳͲʹOSSϓϩμΫτ͕੝Μʹ࢖ΘΕΔΑ͏ʹͳͬͨ ʢ΋ͪΖΜϓϩϓϥΠΤλϦͳϓϩμΫτ΋ͨ͘͞Μ͋ͬͨʣ Eclipse IDEɺStrutsɺSpringɺSeasar2ͳͲ ݱࡏ͸Javaࣗମ͕OSSԽ͞Εɺෳ਺ͷاۀ΍ஂମ͔ΒOSS൛ͷJDK͕ఏڙ͞Ε͍ͯΔ OSSΛऔΓר͘ΤίγεςϜ͕੒ख़͍ͯ͠Δݴޠͷͻͱͭͱݴ͑Δ Java͸OSSͱڞʹาΜͰ͖ͨݴޠ 21

  22. OSSϓϩμΫτΛఏڙ͢Δ/͍ͯͨ͠ओͳஂମ Apache Jakarta Projectʢ1999೥-2011೥ʣ Eclipse Foundationʢ2002೥-ʣ Spring Projectʢ2004೥ࠒ-ʣ SeasarϑΝ΢ϯσʔγϣϯʢ2005೥-2019೥ʣ Java͸OSSͱڞʹาΜͰ͖ͨݴޠ

    22
  23. Apache Jakarta Projectʢ1999೥-2011೥ʣ ଟ͘ͷJavaͷOSSϓϩμΫτΛఏڙ͍ͯͨ͠ஂମɻOSSϓϩμΫτͷड͚ࡼͱ΋ݴ͑Δ ιʔείʔυ΍όΠφϦΛμ΢ϯϩʔυͰ͖Δ৔ॴ Apache TomatɺAntɺMavenɺLog4jɺStrutsɺCommonsɺLuceneͳͲ 2000೥୅લ൒ͷJavaΤϯδχΞ͸ɺ͍͍ͩͨStrutsͰWebΞϓϦέʔγϣϯΛ࡞Γɺ 
 Log4jͰϩάΛग़͠ɺCommonsϥΠϒϥϦΛ࢖͍ɺAntͰϏϧυ͠ɺ

    
 Tomcat্ͰՔಇ͍ͤͯͨ͞ Apache Jakarta Project 23
  24. Apache Jakarta Projectʢ1999೥-2011೥ʣ JavaͷOSSͷΤίγεςϜͷجૅΛ࡞ͬͨஂମͱݴ͑Δ 2011೥ʹ໾ׂΛऴ͑ͯΫϩʔζ͞ΕɺͦΕͧΕͷϓϩμΫτ͕ಠཱͨ͠ Apache Jakarta Project 24

  25. IBM͕ࣾEclipse IDEΛOSSͱͯ͠ެ։ʢ2002೥ʣ 2000೥୅ͷJava։ൃʹ͓͚ΔओྲྀͷIDEʢ౷߹։ൃ؀ڥʣ ͦΕ·Ͱ͸ΤσΟλΛ࢖͏ਓ͕ଟ͔ͬͨ EclipseҎޙɺྑ͘΋ѱ͘΋JavaͷIDE͸OSS͔ͭແঈͰఏڙ͞ΕΔΠϝʔδ͕ఆண ͳ͓ɺݱࡏ͸JetbrainsࣾͷIntelliJ IDEA͕ओྲྀ OSSͷίϛϡχςΟ൛ͱɺ༗ঈͷUltimate൛͕͋Δ Eclipse IDE

    25
  26. Eclipse Foundationʢ2004೥-ʣ ౰ॳ͸Eclipse IDEͷ؅ཧ͕໨త ͦͷޙɺJakarta EEɺOpenJ9ɺEclipse LinkɺEclipse CollectionsͳͲ 
 ଞͷOSSϓϩμΫτ΋ఏڙ͢ΔΑ͏ʹͳͬͨ

    Apache Jakarta Projectͷ୅ΘΓʹOSSϓϩμΫτͷड͚ࡼͱͳ͍ͬͯΔ໘΋͋Δ Eclipse Foundation 26
  27. Spring Projectʢ2004೥ࠒ-ʣ Spring FrameworkΛத৺ͱͨؔ͠࿈ϓϩμΫτͷఏڙ Spring Frameworkࣗମ͕ଞͷϓϩμΫτͱܨ͕Δ͜ͱΛલఏͱͨ͠࢓૊ΈΛ 
 ఏڙ͢Δ΋ͷͰ͋ΔͨΊɺ༷ʑͳ࿈ܞϓϩμΫτ͕ੜ·Εͨ ݱࡏ΋Spring͕Java։ൃͷओྲྀͱͳ͍ͬͯΔʢSpring Bootʣ

    Spring Project 27
  28. Spring Projectʢ2004೥ࠒ-ʣ ։ൃͷओମͰ͋ͬͨSpringSourceࣾ͸ɺVMWareࣾʹങऩ͞ΕɺPivotalࣾʹҠ؅͞Εɺ ࠶౓VMWareࣾʹങऩ͞ΕΔͳͲมભͨ͠ Spring FrameworkΛ࠷ॳʹ࡞ͬͨRod Johnsonࢯ͸Spring ProjectΛ཭Εͯٱ͍͠ ͦͷΑ͏ͳঢ়گͰ΋ਐԽ͠ଓ͚͍ͯΔ͜ͱ͕ɺOSSϓϩμΫτͷڧΈͷҰͭͩͱݴ͑Δ Spring

    Project 28
  29. SeasarϑΝ΢ϯσʔγϣϯʢ2005೥-2019೥ʣ ೔ຊൃͷOSSϑϨʔϜϫʔΫSeasar2Λத৺ͱͨ͠਺ଟ͘ͷOSSϓϩμΫτΛఏڙ S2DaoɺS2StrtusɺS2JSFɺSAStrutsɺS2JDBCͳͲ 2000೥୅தظͷ೔ຊͷJavaΞϓϦέʔγϣϯ։ൃͰओྲྀͱͳͬͨ SeasarΧϯϑΝϨϯε͸1000໊લޙͷࢀՃऀΛूΊΔҰେΠϕϯτͱͳ͍ͬͯͨ ༏लͳJavaΤϯδχΞ͕ͨͪू͏৔ͱͳΓɺ౰࣌ͷίϛολͨͪ͸ݱࡏͰ΋֤෼໺Ͱ׆༂͍ͯ͠Δ SeasarϑΝ΢ϯσʔγϣϯ 29

  30. ओྲྀͱͳͬͨOSSϓϩμΫτͷػೳ͕ɺJavaͷඪ४ػೳͱͯ͠औΓࠐ·ΕΔྲྀΕ͕ੜ·Εͨ Spring Framework → CDIʢDIίϯςφʣ Hibernate → JPAʢDBΞΫηεʣ Scala΍KotlinͳͲͷJavaVM্Ͱಈ͘ݴޠͷػೳ →

    Stream APIʢؔ਺ܕ෩ͷهड़ʣ OSS͔Βඪ४΁ 30
  31. ༷ʑͳاۀ΍ஂମɺ·ͨJavaΤϯδχΞͨͪͷߩݙʹΑΓɺ 
 JavaͷOSSΤίγεςϜ͸੒ख़͍ͯͬͨ͠ ͍·Ͱ͸Javaͦͷ΋ͷ΋OSSԽ͞Εɺෳ਺ͷاۀ΍ஂମ͔Βఏڙ͞Ε͍ͯΔ ͔͢͠͠΂͕ͯॱ෩ຬൕͩͬͨΘ͚Ͱ͸ͳ͘ɺաڈʹ͸Կ౓͔େ͖ͳࣄ݅΋ى͖ͨ OSSͱJava 31

  32. Javaք۾ͷOSSͰى͖ͨ໰୊

  33. Java͕OSSԽ͢Δࡍ΍ɺଞ͕ࣾఏڙ͢Δ৔߹ʹিಥ͢Δ͜ͱ΋͋ͬͨ աڈʹى͖ͨ໰୊ Apache Harmonyࣄ݅ Androidࣄ݅ Googleૌুࣄ݅ Javaք۾ͷOSSͰى͖ͨ໰୊ 33

  34. લఏͱͳΔഎܠͱͯ͠ɺJavaΛఏڙ͢ΔSun Microsystems͸ 
 ʮJavaʹΑ͘ࣅ͍ͯΔ͕ݫີʹ͸Javaͱݺ΂ͳ͍΋ͷʯ͕ʮJavaʯΛ໊৐Δ͜ͱΛڋΜͩ Javaͷ෼அΛ๷͙ͨΊ ʮWrite Once, Run AnywhereʯͷϙϦγʔΛकΔͨΊ Javaք۾ͷOSSͰى͖ͨ໰୊

    34
  35. 2006೥ɺJavaͷOSS࣮૷ͱͯ͠ʮApache Harmonyʯ͕ఏڙ͞Εͨ Apache License 2.0Ͱఏڙʢվมͨ͠ࡍͷιʔείʔυͷެ։ٛ຿͕ͳ͍ʣ˞Ҏ߱AL-2.0ͱදه͢Δ ͔͠͠౰࣌ɺSun Microsystems͸Apache Harmony΁ͷTCKͷఏڙΛڋ൱ TCKΛ௨͍ͯ͠ͳ͍࣮૷͸JavaͱೝΊΒΕͳ͍ Apache

    Harmony͸૊ΈࠐΈ୺຤Ͱ΋ಈ࡞͕ͨ͠ɺ౰࣌ͷTCK͸૊ΈࠐΈ୺຤ʹద༻Ͱ͖ΔJavaΛର৅֎ͱ͍ͯͨ͠ ಉ͘͡2006೥ɺSun Microsystems͕Java SEΛOSSԽʢݱࡏͷOpenJDKʣ GPLv2Ϋϥεύεྫ֎͖ͭʢվมͨ͠ࡍʹιʔείʔυͷެ։ٛ຿͕͋Δʣ˞Ҏ߱GPLv2ͱදه͢Δ Apache harmonyࣄ݅ 35
  36. 2007೥ɺSun Microsystems͸TCKΛOSSͱͯ͠ެ։ͨ͠΋ͷͷ 
 OSS൛ͷJava͸ϥΠηϯε͕GPLv2ͷ΋ͷͷΈΛର৅ͱͨ͠ Apache Harmony͸AL-2.0ͩͬͨͨΊର৅֎ ࣮࣭తʹ͸Sun Microsystems͕OSSԽͨ͠JDKͷΈ͕ର৅ͱͳ͍ͬͯͨܗ ౰વApache͸߅ٞ͠ɺ֤ॴͰٞ࿦͕ى͖ͨ ݁ہApache

    Harmony͸Javaͱͯ͠ೝΊΒΕͳ͍··ɺ2010೥ʹ։ൃΛऴྃͨ͠ Apache harmonyࣄ݅ 36
  37. 2007೥ʹGoogle͕AndroidΛൃද Android͸Apache HarmonyΛϕʔεͱͨ͠Dalvik VMΛ౥ࡌ Javaʢతͳ΋ͷʣͰAndroidΞϓϦέʔγϣϯΛ։ൃͰ͖Δ ΋ͪΖΜTCK͸௨͍ͬͯͳ͍ ιʔείʔυͷ֦ுࢠ͸.java͕ͩɺTCKΛ௨͍ͬͯͳ͍ͷͰJavaͰ͸ͳ͍ Sun Microsystems͸Javaͷ෼அΛট͘ͱͯ͠ɺAndroidͷJavaʢతͳ΋ͷʣΛඇ೉ Androidࣄ݅

    37
  38. ౰࣌ͷܞଳి࿩͸Java ME͕౥ࡌ͞Ε͍ͯͨ ೔ຊͰ͸υίϞͱιϑτόϯΫ͕ɻau͸BREWʢC++ʣ Apple͕iPhoneΛϦϦʔεͯ͠࿩୊ͱͳΓɺGoogle΋ٸ͍ͰޙΛ௥͏ඞཁ͕͋ͬͨ Android޲͚ʹJavaVMΛಠࣗվม͢Δඞཁ͕͋Γɺιʔείʔυͷެ։ٛ຿ͷ͋ΔGPLv2ͷ OpenJDKΛ࢖͍ͮΒ͔ͬͨͨΊɺެ։ٛ຿ͷͳ͍AL-2.0ͷApache HarmonyΛϕʔεʹͨ͠ʢਪଌʣ Google಺Ͱ΋͖ͪΜͱTCKΛ௨͢΂͖ͩͱ͍͏ҙݟ͸ग़͍͕ͯͨ 
 Apache

    HarmonyϕʔεͳͷͰ௨ΓΑ͏͕ͳ͔ͬͨ Androidࣄ݅ 38
  39. 2010೥4݄ʹOracle͕Sun MicrosystemsΛങऩ 2010೥8݄ʹOracle͕GoogleΛૌু AndroidͷJavaʢతͳ΋ͷʣ͕Javaͷஶ࡞ݖΛ৵֐͍ͯ͠Δͱ͍͏಺༰Ͱૌু ཌ೥Ҏ߱ɺGoogle͸Javaͷ೥࣍ΧϯϑΝϨϯεJavaOneʹࢀՃ͠ͳ͘ͳΓɺ 
 JavaͷOSSϓϩμΫτͷఏڙʹ΋ফۃతʹͳͬͨ Android͕αϙʔτ͢ΔJavaͷόʔδϣϯ΋6΍7Ͱఀࢭͨ͠ʢؔ਺ܕ෩ͷهड़͕Ͱ͖ͳ͍ʣ Googleૌুࣄ݅ 39

  40. ૌুͷ݁຤ ಛڐݖ৵֐ → ͍ͯ͠ͳ͍Ͱ֬ఆ JavaϥΠϒϥϦͷ࣮૷ίʔυΛແஅෳ੡ → ͍ͯ͠Δ͕͔ᷮ͘͝ͳͷͰഛঈۚ0ԁ Java APIͷஶ࡞ݖ৵֐ →

    ͍ͯ͠Δ͕ϑΣΞϢʔεͩͱ֬ఆ ܞଳి࿩͕εϚʔτϑΥϯʹஔ͖׵ΘΓɺJava ME͕࢖ΘΕͳ͘ͳͬͨ͜ͱͰ 
 Sun Microsystems΍Oracle͸ϞόΠϧ෼໺ʹ͓͚ΔJavaͷϏδωεΛࣦ͏͜ͱͱͳͬͨ Googleૌুࣄ݅ 40
  41. ݱࡏ͸ɺOpenJDK͕།ҰͷOSS൛Javaͱͳ͍ͬͯΔ Apache Harmony΍IcedTeaͳͲͷOSS JavaϓϩδΣΫτ͸͢΂ͯOpenJDKʹ߹ྲྀͨ͠ 2016೥ʹ͸Android΋OpenJDKϕʔεͱͳΓɺJava8ʹରԠͨ͠ ͨͩͦͷࠒʹ͸AndroidΞϓϦ։ൃͷओྲྀ͸Java͔ΒKotlinʹҠ͍ͬͯͬͨ Java6΍7Ͱ΋࣮ߦͰ͖ɺϞμϯͳهड़΋Ͱ͖ΔͨΊ OpenJDK 41

  42. ༗ঈԽʁ໰୊

  43. Java͸͜Ε·Ͱ2ʙ3೥͝ͱʹ৽͍͠όʔδϣϯ͕ग़͍͕ͯͨ 
 2017೥ͷJava 9Ҏ߱͸൒೥͝ͱʹϦϦʔε͞ΕΔ͜ͱͱͳͬͨ ৽ػೳ͕ἧ͔ͬͯΒϦϦʔε͢ΔͷͰ͸ͳ͘ 
 ൒೥͝ͱʹؒʹ߹ͬͨػೳͷΈΛ࠾༻ͯ͠ϦϦʔε͢Δ ଞͷػೳ͕·ͩͰ͖͍ͯͳ͍͔Βɺͱ͍͏ཧ༝Ͱ৽ػೳͷϦϦʔε͕ 
 ஗ΕΔ͜ͱΛ๷͙ͨΊ

    JavaͷϦϦʔεαΠΫϧͷมߋ 43
  44. JavaΤϯδχΞ͕Javaͷ։ൃ؀ڥΛߏங͢Δࡍɺ 
 ओྲྀ͸Oracleʢݩʑ͸Sun Microsystemsʣ͕ఏڙ͢ΔJDK/JREΛ༻͍͍ͯͨ Oracle͸͜ͷOracle JDKͷແঈఏڙΛதࢭ͠ɺJava 9Ҏ߱͸OpenJDKͷΈΛ 
 ແঈఏڙ͢ΔΑ͏ํ਑Λมߋͨ͠ ͜Ε͕ʮJava͕༗ঈԽ͞ΕΔʯͱ͍͏ޡղͷେݩ

    Oracle JDKͷແঈ഑෍ऴྃ 44
  45. Sun/Oracle JDKͷແঈαϙʔτظؒ͸࣍ͷόʔδϣϯ͕ग़ͨ͋ͱ1ʙ2೥ఔ౓ͩͬͨ ྫ͑͹Java 7͸2011೥7݄ϦϦʔεɻແঈαϙʔτ͸2015೥4݄·Ͱ Java 8͸2014೥3݄ϦϦʔε ͜͜Ͱ͍͏ʮແঈαϙʔτظؒʯͱ͸ʮແঈΞοϓσʔτ͕ఏڙ͞ΕΔظؒʯΛࢦ͢ ಛʹηΩϡϦςΟύονͳͲ΋͋ΔͨΊɺແঈΞοϓσʔτ͕ఏڙ͞ΕΔ͜ͱ͸ॏཁ ༗ঈͰ͋Ε͹΋ͬͱ௕ظؒͷαϙʔτΛड͚ΒΕΔ Java

    7͔ΒJava 8΁ͷҠߦ͸1ʙ2೥͘Β͍ͷ༛༧͕͋Δͱݴ͑Δ JDKͷαϙʔτظؒ 45
  46. Oracle OpenJDKͷແঈαϙʔτظؒ͸ʮ࣍ͷόʔδϣϯ͕ग़Δ·Ͱʯ ͭ·Γ൒೥͔ؒ͠Ξοϓσʔτ͕ఏڙ͞Εͳ͍ ൒೥ޙʹ͸࣍ͷόʔδϣϯʹҠߦ͢Δඞཁ͕͋Δ ͜Ε͕ʮJava͕༗ঈԽ͞ΕΔʯͱ͍͏ޡղʹഥंΛֻ͚ͨ OpenJDKͷαϙʔτظؒ 46

  47. ֤͔ࣾΒOpenJDKͷϏϧυʢ͍ΘΏΔσΟετϦϏϡʔγϣϯʣ͕ఏڙ͞ΕΔΑ͏ʹͳͬͨ Red Hat OpenJDKɺEclipse AdoptiumʢچAdoptOpenJDKʣɺAmazon CorrettoͳͲ ֤ࣾͷOpenJDK͸3೥͝ͱʹग़ΔόʔδϣϯʹLTSʢLong Term SupportʣΛఏڙ OpenJDK

    8ɺ11ɺ17ɺ23ɺɺɺ ແঈαϙʔτظؒ͸༷ʑ͕ͩɺͨͱ͑͹AdoptiumͷOpenJDK 8͸2026೥·Ͱ े෼ʹ௕͍ແঈαϙʔτظ͕ؒ͋Δͱݴ͑Δ ༷ʑͳOpenJDK 47
  48. ͍·ͷओྲྀ͸ϓϥοτϑΥʔϜͰαϙʔτ͞Ε͍ͯΔOpenJDKΛར༻͢Δ͜ͱ Red Hat Enterprise LinuxΛ࢖͏ͳΒRed Hat OpenJDK AWSͰ࢖͏ͳΒAmazon Corretto AzureͰ࢖͏ͳΒMicrosoft

    Build of OpenJDK ֶश΍ௐࠪ༻ͳΒαϙʔτظؒͷ୹͍Oracle OpenJDKͰ΋ߏΘͳ͍ ֤͕ࣾఏڙ͢ΔOpenJDKʹ͓͍ͯগͣͭ͠ఏڙ͢Δπʔϧ͕ҧͬͨΓɺద༻͞ΕΔύον͕ҟͳΔ͜ͱ͸ 
 ͋ΓಘΔ͕ɺݩͱͳΔOpenJDK͸ಉҰͰ͋ΔͨΊͲΕΛ࢖ͬͯ΋99%ಉ͡ɻίΞػೳ͸100%ಉ͡ ༷ʑͳOpenJDK 48
  49. ·ͱΊ: ͜Ε͔ΒͷJava

  50. ͜ͷΑ͏ͳឯ༨ۂંΛܦͯɺOSS൛ͷJava͸OpenJDKͱͯ͠ҰຊԽ͞Εͨ ෳ਺ͷاۀ΍ஂମɺݸਓʹΑΓ࣮૷ɺϝϯςφϯε͞Ε͍ͯΔ ͪͳΈʹ೔ຊʹ΋OpenJDKͷίϛολ͕͍ΔΑ ݱ୅ʹ͓͍ͯݴޠ΍ϓϥοτϑΥʔϜ͕OSSͰ͋Δ͜ͱ͸౰ͨΓલͷΑ͏ʹײ͡Δ͕ 
 JavaͷΑ͏ʹ௕͍ྺ࢙͕͋ͬͯڊେͳΤίγεςϜΛ൐͏΋ͷΛ 
 OSSจԽͷਁಁ΍੒ख़ͱڞʹOSSԽ͢Δͱ͜Ζʹ͸૬౰ͳ౒ྗ͕͋ͬͨͱݴ͑Δ OSSʹͳͬͨJava 50

  51. GraalVMʹΑΔωΠςΟϒΠϝʔδͷ࡞੒ ίϯύΠϧͨ͠΋ͷΛJavaVM্Ͱ࣮ߦ͢ΔͷͰ͸ͳ͘ 
 ίϯύΠϧͯͦ͠ΕͧΕͷOS͝ͱʹ࣮ߦՄೳͳόΠφϦΛ࡞Δ ىಈ࣌ؒͷ୹ॖɺϝϞϦ࢖༻ྔͷ࡟ݮ ϊϯϒϩοΩϯάॲཧ΍ܰྔεϨουʹΑΔฒྻॲཧͷվળ Reactor΍RxJavaͳͲΛ༻͍ͨϦΞΫςΟϒϓϩάϥϛϯάʢOSSϓϩμΫτʣ Project LoomʹΑΔܰྔεϨου΍ݶఆܧଓͷఏڙʢJavaͷඪ४ػೳʹೖΔ༧ఆʣ ࠷ۙͱࠓޙͷJavaͷτϨϯυ

    51
  52. ൒೥͝ͱͷϦϦʔεʹͳΓɺҎલΑΓ΋ػೳ௥Ճͷεϐʔυ͕૿ͨ͠ Flight RecorderʢJavaVMͷϝτϦΫε৘ใΛه࿥͢Δɻ঎༻ػೳͩͬͨ΋ͷ͕OSSԽʣ switchࣜʢswitch͕จ͚ͩͰͳࣜ͘ͱͯ͠࢖͑ΔΑ͏ʹͳΓɺ஋ΛฦͤΔʣ ςΩετϒϩοΫʢ͍ΘΏΔώΞυΩϡϝϯτɻෳ਺ߦͷจࣈྻΛએݴͰ͖Δʣ Ϩίʔυܕʢσʔλܕʹ͍ۙɻΠϛϡʔλϒϧͳσʔλΫϥεΛ༰қʹ࡞ΕΔʣ ύλʔϯϚονʢΦϒδΣΫτͷܕʹΑͬͯ෼ذ͢Δʣ ػೳ௥Ճͷߴ଎Խ 52

  53. ܧଓతͳֶश͕ඞཁ ݹ͍஌ࣝͷ··Ͱ΋ϓϩάϥϛϯάͰ͖Δ͕ɺͦΕ͕ਖ਼͍͠Θ͚Ͱ͸ͳ͍ ৽͍͠ػೳ͕࢖ΘΕͨιʔείʔυΛಡΊͳ͍ͱࠔΔͰ͠ΐ͏ ܧଓతͳֶशΛଅ͢ίϛϡχςΟͷॏཁੑ͕૿͢ ఆظతͳษڧձ΍৘ใൃ৴ͳͲ ػೳ௥Ճͷߴ଎Խ΁ͷରԠ 53

  54. ܧଓతͳόʔδϣϯΞοϓ͕ඞཁ ͤΊͯ3೥͓͖ʹϦϦʔε͞ΕΔLTS൛ʹ௥ै͍ͤͨ͞ ୯७ʹJavaͷόʔδϣϯ͚ͩͰͳ͘ɺपลϥΠϒϥϦ΍ϑϨʔϜϫʔΫɺ 
 ϛυϧ΢ΣΞͷόʔδϣϯΞοϓ͕ඞཁͱͳΔέʔε΋ଟ͍ όʔδϣϯΞοϓʹ௥ै͢ΔͨΊͷCI/CD΍ࣗಈςετͷ࢓૊Έ͕ෆՄܽ DevOpsվળɺͻ͍ͯ͸ΤϯδχΞ΍૊৫ͷ࣭ΛߴΊΔ ʢόʔδϣϯΛԘ௮͚ʹ͢Δͱ͍͏બ୒ࢶ΋ΞϦͰ͚͢Ͳ΋ʣ ϦϦʔεαΠΫϧͷߴ଎Խ΁ͷରԠ 54

  55. Java͸OSSจԽͱڞʹาΈɺJavaࣗ਎΋OSSԽ͞Εͨ ༷ʑͳOSSϓϩμΫτ͕ੜ·ΕɺJavaඪ४ʹऔΓࠐ·ΕΔྲྀΕ΋ੜ·Εͨ ଟ͘ͷ૊৫΍ݸਓͷߩݙʹࢧ͑ΒΕ͍ͯΔ ։ൃݩͷاۀ͕ങऩ͞Εͯ΋ɺOSSϓϩμΫτ͸าΈ͕ࢭ·Βͳ͍ ϦϦʔε͕ߴ଎Խ͞Εɺػೳ௥Ճ͕ૣ͘ͳͬͨ ։ൃίϛϡχςΟ΍ϢʔβʔάϧʔϓͳͲͷॏཁੑ͸ࠓޙ΋૿͍ͯ͘͠ ·ͱΊ 55

  56. ຖ݄ͷJJUGφΠτηϛφʔ ࣍ճ͸9/29(ਫ)༧ఆ - Java 17ϦϦʔεه೦ηϛφʔ ೥ʹ2ճͷJJUG CCC ࣍ճ͸11/21(೔) URL: https://www.java-users.jp/

    Twitter: @JJUG JJUGʹࢀՃ͠Α͏ʂ 56