ç§ãã¡ã話ããããšïŒ
- IDEAã¯ã©ã®ããã«éçºããã©ããžè¡ãã®ã
- IntelliJãšJetBrainsã®éãã¯äœã§ãã
- äŒç€Ÿã«2人ã®CEOãããçç±
- Kotlin'eã§äœãèµ·ããã
- KotlinããŒã ã¯èšèªã®éçºã§ã©ã®ãããªå°é£ã«çŽé¢ããŸãããïŒ
- èšèªãã¶ã€ã³ã¬ãã¥ãŒãšã¯
- çŸä»£ã®ã°ãŒã°ã«ãšã¯äœã§ãã
- ã°ãŒã°ã«ã³ãŒããããçç±
- HabrãIDEéçºè ã«ãšã£ãŠéèŠãªçç±
ã«ããã·ãŒã³ã®äžã«ã¯ããã®ã€ã³ã¿ãã¥ãŒã®ãã©ã³ã¹ã¯ãªããããããŸãã
- ããã«ã¡ã¯ïŒ ããã¯ãã¹ã©ã€ããªããã§ãã æ¬æ¥ãJetBrainsã®ããã©ã³ã§ããDmitry Zhemerovãšåæ¥ããŸããã ãã£ããããªãèªèº«ã«ã€ããŠå°ã話ããŠã¿ãŸãããïŒJetBrainsãå«ããŠãããªãã¯äœãããŸãããïŒ
2003幎ã«JetBrainsã«å ¥ç€ŸããŸããã ç§ã¯28çªç®ãŸãã¯29çªç®ã®åŸæ¥å¡ã§ãããããã®éã«å€ãã®ããšãããããšãã§ããŸããã æåã¯Omeaãããžã§ã¯ãéçºã®è²¬ä»»è ã§ããããã®ãããªæ å ±ã¢ã°ãªã²ãŒã¿ãŒãã€ãŸããã¡ãŒã«ããã¥ãŒã¹ãRSSãã£ãŒããªã©ã®ããŸããŸãªãœãŒã¹ããæ å ±ãåéããããã°ã©ã ããããŸããã 圌ã¯ãããããã¹ãŠãæ€çŽ¢ããæŽçãåé¡ãªã©ãè¡ãããšãèš±å¯ããŸããã ãã®åŸãOmeaãããžã§ã¯ãã¯çµäºããIntelliJ IDEAããŒã ã«åãæ¿ããŸããã ç§ã¯ãIntelliJãã©ãããã©ãŒã ãªã©ã®ãšã³ãã£ãã£ã®èµ·æºã«ãããšèšãããšãã§ããŸããã€ãŸããã¢ããªã·ãã¯éçºç°å¢IntelliJ IDEAããJavaã ãã§ãªãããŸããŸãªèšèªã®IDEãæ§ç¯ã§ããåºç€ã«å€æããããšã«åŸäºããŠããŸããã å€ãã®äººãããã«åå ããããšã¯æããã§ãããç§ãããã§å€ãã®ããšãããŸããã ãã®åŸããã®ãã©ãããã©ãŒã ã«åºã¥ããŠããŸããŸãªIDEã«åãçµã¿ãŸãããRubyMineãPyCharmãããã³WebStormã®äž¡æ¹ãããŸãåŠçã§ããŸããã
-IDEAã¯çŸåšã補åãšããŠããã©ãããã©ãŒã ãšããŠã©ãã«åãã£ãŠãããšæããŸããïŒ ããã€ãã®åæ»ãçºçãããšããæãããããŸããIntelliJIDEAãŠãŒã¶ãŒãšããŠã¯ãäœãèµ·ããŠããªãããã§ãã æ°ããããŒãžã§ã³ãç»å Žããããé«éã«åäœããæ°ãããã¬ãŒã ã¯ãŒã¯ããµããŒãããå¯èœæ§ããããŸãã ããã¯ããã§ã¯ãããŸãããïŒ
ããéãããããšãæãéèŠã§ãã é床ã¯èª°ãæåŠããªãæ©èœã§ãã ç§ãã¡ã¯ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®å質ãšäœ¿ããããã«é·ãéæè³ããŠããŸããã éçºè ãšããŠã®ããªãã®äœéšãå€ãã倧ããªæ©èœãããã€ãã®éã§çŸããŸãã ããšãã°ã14çªç®ã®ããŒãžã§ã³ã«ç»å Žããã€ã³ã©ã€ã³ãããã°ã ã³ãŒããã¹ãããã¹ã«ãŒãããšãããã«ã³ãŒãã衚瀺ãããŸãããšãã£ã¿ãŒã«ã¯ããããã®è¡ã§èšç®ãããå€æ°ã®å€ã衚瀺ãããŸãã ãŸãã¯ãäŸãã°ããã®å°ãåã«ãããã€ãã®ãã£ãªããžã®ãµããŒãããšãã£ã¿ãŒã«è¡šç€ºãããŸãã-ããã倧ããªæ©èœã§ãããå€ãã®åé¡ããããŸãã ç§ãã¡ã®éçºããã»ã¹ã¯ããã»ã©å ã«èšç»ãããŠããããéçºè ãçªç¶ãã®ã¢ã€ãã¢ãæãä»ããããããªããšããã ãã ããã§ãã ãããŠãã ãããã 圌ã¯è¡ã£ãŠå®è¡ãã圌女ã¯ãªãªãŒã¹ã«ç»å Žãããã¹ãŠãçŽ æŽããããã®ã«ãªããŸãã
- çŽ3幎åãOleg StepanovãšMaxim Shafirovã¯JetBrainsã®CEOã«ãªããŸããã ãŸãããªã2ã€ããã®ã§ããïŒ CEOãäžåºŠã«2人ã§ãããããªã±ãŒã¹ã¯èŠããŠããŸããã é·å¹Žã«ããã£ãŠäœãå€ãã£ãã®ã§ããïŒ ããããã圌ãã«ãšã£ãŠã©ã®ãããªã¿ã¹ã¯ãšç®æšãèšå®ãããŸãããïŒããããªãŒãã³ãªæ å ±ã§ããå Žåãããã¯ã©ãã»ã©æåããŠããŸããïŒ äŒç€Ÿã§äœãå€ãã£ãã®ã§ããïŒ
2人ã®CEO-ãªãã£ã¹ã2ã€ãããããéåžžã«äŸ¿å©ã§ããããšãããããŸããã ãªã¬ã°ã¯ãã¥ã³ãã³ã«äœãã§ãããããã¯ã¹ã¯ãµã³ã¯ãããã«ãã«ã¯ã«äœãã§ããããããããäž»ã«ãªãã£ã¹ã§èµ·ãã£ãŠããããšã«å¯ŸããŠè²¬ä»»ãè² ã£ãŠããŸãã ããããã®ä»äºããããã©ãããããã圌ãã¯åœŒãã®éã§ãã®ä»äºãå ±æããŠããŸãã Maxã¯çŸåšã販売ã€ã³ãã©ã¹ãã©ã¯ãã£å šäœãã€ãŸããå¿ èŠã«å¿ããŠåºèå ã®ç€Ÿå æ å ±ã·ã¹ãã ã«éåžžã«ç©æ¥µçã«é¢äžããŠããŸãã ãã®ããããŠãŒã¶ãŒã¯ãã®å Žæã§è¯ãçµéšãããããšãã§ããŸãã Olegã¯ãYouTrackãTeamCityãUpsourceã«ä»£è¡šãããåç©åããçµ±äžããããœãªã¥ãŒã·ã§ã³ãäœæããããã«ãéåžžã«å€ãã®ãµãŒããŒããŒã«ã«åãçµãã§ããŸãããããã¯ç°¡åã«é 眮ã§ããããŒã å ã®éçºããã»ã¹ã«é¢ãããã¹ãŠã®åé¡ã解決ããŸãã
- ã€ãŸãããªãã£ã¹ããšã®éšéã«å ããŠã補åããšã®éšéã¯ãŸã ãããŸããïŒ
ããã¯ã補åã®åéã§ã¯ãªãã掻ååéã®åéã§ãã ç§ãã¡ãšãJetBrainsã®ä»ã®çãšåæ§ã«ãããã¯äœããã®åœ¢ã§ææ©çã«èµ·ãããŸãã ãã®ã¹ããŒã ãå®è£ ãããšãã誰ãäœã«è²¬ä»»ãè² ããã«ã€ããŠããã«åæããããšã¯ã§ããŸããã§ããããã®ã¢ã¯ãã£ããã£ã®éäžã§ãããã«å¯ŸåŠããå¿ èŠããããããã«å¿ããŠããããåŒãåããããšãã§ãã人ã圌女èªèº«ã«ãããåãã
- ãã®3幎éã®è©äŸ¡ã¯ã©ãã§ããïŒ äžççã«äœãå€ãã£ãã®ã§ããïŒ
ååãšããŠäœæ¥ã®ç·šæãšããç¹ã§ã¯ãJetBrainsã¯åããŸãŸã§ããã ããšãã°ã以åã¯äŒç€Ÿã®ãããã ã£ãã»ã«ã²ã€ã»ããããªãšãããŸã£ããé¢äžããªãã£ããŽã¡ã·ãªãšãã¹ããŒå³¶ã®æ°ãããªãã£ã¹ã«ç§»è»¢ãããªã©ãããªã倧ããªãããžã§ã¯ããããã€ãçºçããŸããã ãŸãã¯ãããšãã°ã販売ã®çµç¹ã§ã 瀟å ã§ã¯ãã®éã«å€ãã®ããšãå€æŽãããŸãããããã€ãã®ããšã¯çŽ æŽãããããšã§ãã
-2人ã®CEO-ããã¯çŸåšé²è¡äžã®å®éšã§ããïŒ ãã®çµæã¯ãã§ã«è¡šç€ºãããŠããŸããããããšããŸã åŠçäžã§ããïŒ ãŸãã¯ãååãšããŠãã°ããŒãã«ãªå€æŽã¯äºæãããŠããŸããã§ãããïŒ
ããããå®éã®ãšããããããããã®æ±ºå®ã®åæ©ã¯éåžžã«åçŽã§ããã ããæç¹ã§ãã»ã«ã²ã€ã»ããããªãšãã¯æ¬¡ã®ããã«è¿°ã¹ãŸããã ãããã«JetBrainsãå®è¡ãç¶ããããäœæãããJetBrainsãããŒã ã®ä»ã®äººã«ä»»ããŠãä»ã®ã¢ã¯ãã£ããã£ãè¡ãããšãã§ããŸããã ãã®3幎éãJetBrainsã«æ°ãåãããããšãªãããŸãã¯JetBrainsã«æ°ãåãããããšãªãã»ãšãã©äœãããã«ä»ã®æŽ»åã«æåããŠãããšããäºå®ããå€æãããšãäžè¬ã«ãã¹ãŠãå€æããŸããã JetBrainsã¯ãã®æéäžã«æé·ããæ£åžžã«å£ããŸãã ãã®ã¿ã¹ã¯ã¯å®å šã«å®äºããŸããã
- å€ããµã€ãã«ã¯ãIntelliJ Labsã§ä»äºãåŸã2003幎ã®èšé²ããããŸãã ä»ãç§ãã¡ã¯JetBrainsãšããŠäŒç€Ÿãç¥ã£ãŠããŸãã JetBrainsãšIntelliJ Labsã®é¢ä¿ã«ã€ããŠå°ã話ããŠããã ããŸããïŒ
ãšãŠãç°¡åã§ãã IntelliJ Labsã¯ãäŒç€Ÿã®ååã®ç±æ¥ã§ãã 2000-2001幎ã«ã¯ãIntelliJ IDEAã®æåã®ããŒãžã§ã³ãIntelliJ SoftwareãŸãã¯IntelliJ Labsãã©ã³ãã§ãªãªãŒã¹ãããŸããã ãããããJavaã ãã§ãªã補åãäœãããããšãæããã«ãªã£ããšãããJããšããæåã®ä»ããååã¯ç§ãã¡ã«ãµãããããããŸããã æåã«ãJããšããæåãä»ããŠãJetBrainsãšããååãæãã€ããŸããã IntelliJ Labsã¯ãåœç€Ÿã®ãã·ã¢æ³äººã§ããINTELLIGEY LABS LLCã®ååã§ä¿åãããŠããŸãã ãããã£ãŠãJetBrainsã¯äŒç€Ÿã®æ¬ç€Ÿã®æ³äººã§ãã
- 2000幎代åã°ã«ãã£ãJetBrainsãš2015幎ã¢ãã«ã®JetBrains-ããªãã¯ãããã®éã«éããæããŸããïŒãããããªããããªãã¯äœã奜ãã§ãããäœã奜ãã§ã¯ãããŸãããïŒ
ãã®èŠæš¡ã®äŒç€Ÿã¯ãåã«ç°ãªãã¬ãã«ã®å人çãªã€ãªãããæã£ãŠããããšã¯æããã§ãã ãã¥ã³ãã³ãããµã³ã¯ãããã«ãã«ã¯ã«æ¥ããšããªãã£ã¹ãæ©ãåã£ãŠãããç¥ããªã人ãããããããŸããäŒç€Ÿã§åããŠããããã誰ãã«äŒãã«è¡ã£ããããã¶ãæã£ãŠããã ãã§ãã ãããã¯ç§ãç¥ããªã人ã ã§ãã 圌ããäœãããŠããã®ãåãããŸããã è¯å®çãªããšã¯ãJetBrainsãéåžžã«é·ãéæ ¢æ§çã«äººå¡äžè¶³ã§ãããšããããšã§ããã€ãŸããåžžã«ãå©çšå¯èœãªäººãããå€ãã®ä»äºããããšããç¶æ ããããŸããã æè¿ãéåžžã«å€ãã®ãããžã§ã¯ãã§ããã®ç¶æ ããæãåºããããã«æããŸã-ãã¹ãŠã§ã¯ãªããå€ãã®ãããžã§ã¯ãã§ãã 倧ãŸãã«èšãã°ã補åãæ¬åœã«åé²ãããããã«å¿ èŠãªã ãã®äººãããŸãã
-300人ã400人ããŸããïŒ
äœãã§400ã
- ããã¯äž»ã«ããŒã¿ãŒãšãã¥ã³ãã³ã§ãããïŒ
ã¯ãããã¥ã³ãã³ã«ã¯ãããã80人ãããã«å¿ããŠãµã³ã¯ãããã«ãã«ã¯ã«400人ããŸãã
- æ°çŸäººã é åžã¯ããªãã«ãšã£ãŠé£ããããšã§ããïŒ
ãããäœãåºãããšã¯ç§ã«ã¯æããªãã ååãšããŠããµã³ã¯ãããã«ãã«ã¯ã®ãªãã£ã¹ã§ãã°ããåããŠããŠãäžç·ã«ä»äºãããŠããããŒã ã«ãã§ã«ç²ŸéããŠãã人ã ã¯ãã¥ã³ãã³ã«åããŠåºçºããŸãã ãããã£ãŠãäœããã®é¢ä¿ãç¯ãå¿ èŠã®ããçªç¶ã®äººãå¥ã®ãªãã£ã¹ã«ãããããªããšã¯ãããŸããã ããã«ãç§ãã¡ã¯ãã°ãã°ãäºãã«è¡ããŸãã
ã èªåã§ããããã«æ¥ãŸããïŒã
2ã3ã¶æããšã«ç§ã¯ééããªããµã³ã¯ãããã«ãã«ã¯ã«ããŸãã ããã«ããããªäŒè°ã®ã¹ã¿ã³ãã¢ãããæ¯æ¥è¡ãããŠããŸããã€ãŸããæ¯æ¥ããããªéä¿¡ãéããŠããçšåºŠã®å人çãªã³ãã¥ãã±ãŒã·ã§ã³ãè¡ãããŠããŸãã ç§ãã¡ã«ã¯ãç§ãã¡ãåæ£ããŠãããšããäºå®ã®ããã«åé¡ããªãããã«æããŸãã
ããã«ãç§ãã¡ã¯ãã£ãšåæ£ããŠã»ããã§ãã ããšãã°ãã·ãªã³ã³ãã¬ãŒã§äººã ãéãããã§ãã ããã«ãããã®ãã¹ãŠã«æºè¶³ããŠããã圌ãã¯åããããªã人ã
- è±èªããã·ã¢èªã®äœ¿çšèšèªã¯ãããŸããïŒ
ãã·ã¢èª ã³ãŒãå ã®ã³ã¡ã³ãã¯åžžã«è±èªã§ããããã¹ãŠã®å éšã³ãã¥ãã±ãŒã·ã§ã³ã¯åžžã«è±èªã§ãããå£é ã§ã®ã³ãã¥ãã±ãŒã·ã§ã³ã¯ãããã®ãŸããªã±ãŒã¹ãé€ããŠåžžã«ãã·ã¢èªã§ãã ç§ãã¡ã«ã¯ãŸã ãã·ã¢èªã話ããªãåŸæ¥å¡ãäžå®æ°ããŸããããã¡ãã圌ããšã¯è±èªã§ã³ãã¥ãã±ãŒã·ã§ã³ãåããŸãã
- ãªãã»ã©ã ãã1ã€ã®èå³æ·±ã話ã§ãã æ°é±éåãAndrei Breslavã¯å€ãã®äººã泚æãæã£ãæçš¿ããªãªãŒã¹ããŸãããããã§ã¯ãäžè¬çã«ãå®éã«ãããã¯ããããŒãžã£ãŒãç©æ¥µçã«æ¢ããŠããŸããã ãã®è³ªåã¯ããããæ¥ãŠããŸãã補åãããŒãžã£ãŒã«äžæºãæããŠããŸããïŒ
ãããã¯ãããŒã±ãã£ã³ã°ãããŒãžã£ãŒïŒPMMïŒãšåŒã°ããããžã·ã§ã³ã®äººæãæ¢ããŠããŸãã å®éãéåžžã«åªããããŒã ããããŸãã ç§ã®ç¥ãéããç§ãã¡ã¯ãã®ç«å Žã§åããã¹ãŠã®äººã«æºè¶³ããŠããŸãã ã¢ã³ãã¬ã€ã¯ã³ããªã³ã§å ·äœçã«äººãæ¢ããŠããŸãããã³ããªã³ã§ã¯ãçŸåšPMMã¯ååšããŸããã ãããã¯ãããšãã°ãIntelliJ IDEAã«ã¯ã補åããŒã±ãã£ã³ã°ã«åŸäºããŠããAndrei Cheptsovã1人ã ãããŸãã ããã¯çŽ æŽããã補åã§ãããè€éã§ãå€ãã®ç°ãªãæ©èœãåããŠããŸãããããŠãäºäººç®ããããŠããããäžäººç®ã«ãä»äºãããããšã¯æããã§ãã
- çŽ1幎åãã€ãªã€ã»ãªãžã§ã³ã³ããã³ããªã³ã«æ¥ãŸããã 圌ã¯PMMã®äœçœ®ã«æ¥ãªãã£ãã®ã§ããïŒ
å®éãã€ãªã€ã¯äž»ã«ã³ããªã³åšèŸºã®å³æžé€šãšã€ã³ãã©ã¹ãã©ã¯ãã£ã«é¢å¿ãããããšãå€æããŸããã 圌ã¯Kotlinã®ãã¬ãŒã ã¯ãŒã¯ãäœæããããŒã ãçããŠãããã³ãŒããèªåã§æžããŠããŸãã Kotlinã®æ°ãããã¬ãŒã ã¯ãŒã¯ãåžžã«å®éšããŠããŸãã æ¢ã«ãããŸãããä»ã®ãªãã·ã§ã³ãè©ŠããŠãããè¯ãæ¹æ³ãæ¢ããŠããŸãã
-Andrei Breslavã¯ã©ãã§ããïŒ
Andreiã¯ã第äžã«èšèªã®ããŒããã¶ã€ããŒã§ããã第äºã«ãæè¿ãŸã§ãããŒã å šäœã®ãããžã§ã¯ããããŒãžã£ãŒã§ããã ç§ã¯æè¿ãIDEããŒã ã®ç®¡çã圌ããåŒãé¢ããŸãã-IntelliJ IDEAã®ãã©ã°ã€ã³ã«é¢äžããŠãã5人ã®äººããã§ã«ãããçŸåšç§ã¯åœŒãã®ãªãŒããŒã§ãã Andreyã¯ãããã°ã©ãã³ã°ã«ååãªæéããªããããæè¿ããã°ã©ãã³ã°ãåæ¢ããããšã«ããŸããã ã§ããã ãæ©ããªãªãŒã¹ããããåªããŠãããçŸæç¹ã§ã¯ãèšèªèšèšã«é¢ããæªè§£æ±ºã®è³ªåãããã€ããããŸãã ã§ããã ãæ©ãããããéããããšæããŸãããããŠãAndreiã¯çŸåšããã«äž»ã«çŠç¹ãåãããŠããŸãã
ã 5人-IDEã ãã§ïŒã ååKotlinããŒã ãšç·å¯ã«è©±ãããã®ã¯æ°å¹Žåã®ããšã§ãç§ã®æèŠã§ã¯9人ããããŸããã§ããã KotlinããŒã ã¯ãã以æ¥å€§ããæé·ããããã«èŠããŸããïŒ
çŸåš20人以äžã®äººãããŸãã
- ã€ãŸããäŒç€Ÿã¯æ¬åœã«Kotlinã«æè³ããŠããŸããïŒ
ã¯ã
- 2ã3幎åãJava 8ããªãªãŒã¹ããããšããæãããããŸãããããã ãã§ãKotlinã¯ãã以äžå¿ èŠãããŸããã ãããŠä»ãããªãã¯ããªãã®æè³ãå¢ããã ãã§ãã 圌ã«æ·±å»ãªè³ããããŠããŸããïŒ èªåã§æžããŠããŸããïŒ
ã¯ããçŸåšãKotlin'eã§éçºäžã®ãããžã§ã¯ããããã€ããããŸãããç§ãå人çã«æãã»ã©å€ãã¯ãããŸããã ããšãã°ãYouTrackã®æ¬¡ã®ããŒãžã§ã³ã¯Kotlinã§æžãããŠããŸãã æªçºè¡šã®è£œåã1ã€ãããKotlinã«ãèšèŒãããŠããŸãã ç§ãè¿°ã¹ãæ°ããCRMã·ã¹ãã ã¯ãã¹ãŠãKotlinã§æåããæåŸãŸã§æžãããŠããŸãã ããã¯ãããžãã¹äžã®éèŠãªæ±ºå®ã§ããããã¹ãŠã®è²©å£²ãééããŸãã ç§ãã¡ã¯è²©å£²ã®ããã«Kotlinã³ãŒããä¿¡é ŒããŠããŸãããããã¯ç§ã«ã¯æããŸãããšèšããŸãã
圌ãã¯åžžã«ãã¹ã¿ãŒããKotlinãååŸããŸããã€ãŸãããªãªãŒã¹ããŒãžã§ã³ã«ã¯åº§ããŸããããæ°æ¥ããšã«ãåéããã°ããã®Kotlinã®ææ°ããŒãžã§ã³ã«ã¢ããã°ã¬ãŒãããŸãã åæã«ãç§ãã¡ã¯æºè¶³ããŠããŸãããã¹ãŠãæ©èœããŠããŸãã
Kotlin vs.ã«ã€ã㊠Java 8-å®éãããã¯ãããã誀解ã§ãã ãŸã第äžã«ãJavaã¯ãã®ã¬ã¬ã·ãŒãšã»ãšãã©çµã³ã€ããŠããŸãã ã¹ã©ã€ããªãã®åå·ã§ããããè°è«ãããŸããã ã»ã«ã²ã€ã»ã¯ã¯ã»ã³ã³ã¯ããã¹ãŠãæšãŠãŠãŒãããæžãããšã¯çŽ æŽãããããšã ãšèšããŸããã 圌ã¯ããããã©ã€ãã©ãªãšä»®æ³ãã·ã³ã念é ã«çœ®ããŠããã§ãããããJavaèšèªã®èšèšã®èŠ³ç¹ããããã€ãŠæ¡çšããã決å®äºé ããããŸãã ããšãã°ãRawåãã¯ã€ã«ãã«ãŒããããªããã£ãåãšéããªããã£ãåãžã®åé¢ãªã©-ããã¯ã©ãã«ãè¡ãããJavaãã©ã®çšåºŠéçºãããŠãããã®ã¬ã¬ã·ãŒã¯æ°žé ã«æ®ããŸãã ããèªäœããã®åŸæ¹äºææ§ã«çžãããŠããªããšããäºå®ããã§ã«è§£ãããŠãããšããäºå®ã¯ããã§ã«ç§ãã¡ã«ããã€ãã®èå³æ·±ãããšãããæ©äŒãäžããŠããŸãã
ããŠã誰ãã«Kotlinã«ã€ããŠè©±ããæã ã¬ããŒãããããšããæåã®20åéã¯ã©ã ãã«ã€ããŠèšåããŸãã-Kotlinã®ããŸããŸãªæ©èœã衚瀺ããã ãã§ãã 7çªç®ãš8çªç®ã®Javã®éã§çºçããå€æŽã«åœ±é¿ãäžããªããã®ã¯ãã¹ãŠãããŸããJavaã®ãã®ãã¹ãŠã®åœ±é¿ãåããªãéšåãæ¹åããã ãã§ãã
ããããããã¡ãããã©ã ãã ã©ã ãããããèšèªã¬ãã«ã®ã€ã³ã©ã€ã³åãµããŒãããããããJava 8ãããåªããŠããŸãã ãã€ã³ãã¯ãã©ã ãã䜿çšããŠéåžžã«åçŽãªé¢æ°ã埪ç°ãããå Žåã§ããããšãã°ã8ãã倧ãããã¹ãŠã®èŠçŽ ãèŠã€ããŸãããããå€æããåçŽãªæ¹æ³ã¯ããã§ãã¯ãã1ã€ã®ã¡ãœããã§å éšã¯ã©ã¹ãçæããããšã§ããã®æ°ã¯8ãã倧ããããã®åŸãå®éã«ã¯ãã®ã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãåãåããã³ã¬ã¯ã·ã§ã³ã®åèŠçŽ ã«é©çšãããã£ã«ã¿ãŒé¢æ°ããããããããã¹ãŠåŒã³åºãããã³ãŒãããããŸãã
Javaã§ã¯ããã®ãããªãã®ãæ©èœããŸãã invokedynamicããã³ã¡ãœãããã³ãã«ã䜿çšããŸãã ãããã£ãŠããã®éšåã¯å®è¡æã«çæãããŸãã Geekoutã«ã³ãã¡ã¬ã³ã¹ã§åŠãã ããã«ãçŸåšJavaã¯ãã¹ãŠãã€ã³ã©ã€ã³åããæ¹æ³ãç¥ããŸããã ãããŠãèšèªã¬ãã«ã®ãµããŒãããããŸãã Filteré¢æ°ã¯ã€ã³ã©ã€ã³ã«é 眮ããããšã ãèšã£ãŠããŸãã ã€ãŸããã©ã ãèªäœã®å éšã«ãããã®ã³ãŒããšé¢æ°æ¬äœèªäœã¯ãåŒã³åºããå Žæã«çŽæ¥æžã蟌ãŸããŸãã ãããã£ãŠãããã©ãŒãã³ã¹ã®ãªãŒããŒãããããªãããšãããããŸãã åå¥ã®ãªããžã§ã¯ããäœæããå¿ èŠã¯ãããŸããã ç§ãã¡ã«ã¯ä»®æ³çãªææŠã¯ãããŸããã ç§ãã¡ã®ã³ãŒãã¯ãã©ã ãã䜿ããã«ãã¹ãŠãæã§æžããå Žåã«èµ·ããããšãšãŸã£ããåãããšãããŸãã
- ã€ã³ã©ã€ã³ã®äœããã®é害ãšãªãã®ã¯invokedynamicã§ããããšãç解ããŠããŸããïŒ
ããããinvokedynamicã®å Žåãšã¯èšããŸããããã€ã³ã©ã€ã³åã¯åäœãããããã©ã ããšãããéä¿¡ãããé¢æ°ãä»ããŠã©ã ããå®è¡ããæ¹æ³ãããããŸããã ãããããã€ããJVMã®ãã®æ¬ é¥ã¯ä¿®æ£ãããã§ãããã ç§ã®ç¥ãéããããã«é¢ããäœæ¥ã¯é²è¡äžã§ãããã³ããªã³ã§ã¯èšèªã¬ãã«ã§ããã決å®ãããŠããŸãã
- ãªãã»ã©ã ãããŠãã³ããªã³ã¯ãã€çŸããŸãããïŒ ãã®ãããªèãã¯ã©ã®ããã«æãã€ããã®ã§ããïŒ
ç§ãæãåºãããã«ãç§ãã¡ã¯2010幎ã®çµããé ã«å§ããŸããã ç§ããã¹ãŠãæãã€ããã®ã¯çŽæ¥ã ãšã¯èšããŸããã ããæç¹ã§ãSergey DmitrievïŒJetBrainsã®åµèšè ã®1人-èè ã®ã¡ã¢ïŒã«æ¥ãŠãJetBrainsã«ç¬èªã®èšèªãããã°ã¯ãŒã«ã ãšèšããŸããã ç§ã«ãšã£ãŠã¯èªç¶ãªçºå±ã®ããã«èŠããŸããã ç§ãã¡ã®ã¹ããŒã¬ã³ã¯ããã·ã¢èªã§ãåã³ãæã£ãŠéçºãããããåã³ãæã£ãŠéçºãããã§ãã ãªãã¡ã¯ã¿ãªã³ã°ãã³ã³ãã©ã€ã¢ã³ã¹ããšã©ãŒã®åŒ·èª¿ãªã©ã25çš®é¡ã®èšèªã§éåžžã«ããŸãããããšãã§ããããã«ã人ã ãæ¬åœã«åãã§éçºããããã®ããŒã«ã®åéã§å€ãã®ããšãè¡ã£ãŠããŸãã ãšã«ãããIDEãèšèªã®æ¬ é¥ã®ããã«ã®ã£ã°ãäœæããå¿ èŠãããããšãããããŸãã
ããšãã°ãIDEAã¯ãã©ã ãã®åœ¢åŒã§å¿åã¯ã©ã¹ã衚瀺ã§ããŸãã Java 6ãŸãã¯Java 7ã䜿çšããå Žåãå¿åã¯ã©ã¹ïŒæ°ããã€ã³ã¹ã¿ã³ã¹ãã¡ãœãã宣èšãæ¬äœïŒãäœæããŸãã IDEAã§ã¯ããã¹ãŠã©ã ãã«åŽ©å£ããŸãã ããã¯ãèšèªäžè¶³ã®ããã®çŽç²ãªãã©ã°ã§ãã ç§ãã¡ã¯ãã®ã£ã°ãå¿ èŠãªãèšèªãäœæããããšããã ãã§ãããšå€æããŸããã
IDEAã¯ãã¡ããæçšã§ããã圹ç«ã¡ãŸãããäœããã®æŸèæã§ã¯ãããŸããã IDEãã©ã°ã€ã³ãšèšèªãµããŒãã®éçºã«é¢é£ããçµéšãèç©ããããããããè¡ãããšãã§ãããšæããŸããã 人ã ãèå³ãæã€ã®ã«ååãªéã¿ãåžå Žã«ãããšæããŸããã ç§ãã¡ã¯ããããµããŒãããããã«ãã¹ãŠãæžããã®ã§ãç§ãã¡ã¯èªåèªèº«ã§ãããå¿ èŠãšããŠãããšããæèŠããããŸããã5çªç®ã10çªç®ããããŠç§ãã¡èªèº«ã¯Javaã§ããã°ã©ã ããŸãã
ãã¹ãŠã®IDEAã¯ãŸã Java 6ã§èšè¿°ãããŠããŸããKotlinã®äœ¿çšãéå§ããŸãããããã以å€ã¯ãã¹ãŠJava 6ã§èšè¿°ãããŠããŸãã ãããé·ã話ã§ããããšã¯æããã§ããããç§ã¯ãããããããã©ãã»ã©é·ãããéå°è©äŸ¡ããŠããã§ãããã
ããããããã¯ããçš®ã®ç©ç©ãæ²ããŸãããããã§ãããã¯ãŸãç°ãªãä»ã®æèãªã©ã§ç°ãªãä»ã®äººã ãšè°è«ãããŸããã ããããç§ãã¡ã¯ã¢ã³ãã¬ã€ã»ãã¬ã¹ã©ãã«äŒããŠãšãŠã幞éã§ããããããŠå®éãç§ãã¡ã¯èšèªãã®ãã®ãäœãå§ããŸããã æåã®æ®µéã§ãç§ãããã«æãæºããŸãããJVMã®ãã€ãã³ãŒããžã§ãã¬ãŒã¿ãŒã®æåã®ããŒãžã§ã³ãæžããŸããã ãã®åŸãä»ã®äººããããè¡ããç§ã¯ä»ã®ãããžã§ã¯ãã«åãæ¿ããŸããã ç§ã¯ããªãé·ãéKotlinããã£ãŠããŸããã§ããããä»ã¯Kotlinã«æ»ããŸããã
ãããŠãç§ãååãæãã€ããŸããã ããæç¹ã§ãããããªãšãããã£ãŠããŠãä»ããååãå¿ èŠã ãšèšããŸããã ã®ããã«ãååãæãä»ã-ãšéã®äžã«ç«ã£ãŠããŸãïŒ
- ååã¯å¥œãã§ããïŒ
ãã€ãã«äºåæããããããæåã¯å°ãæ¥ããããã£ãã§ãããã€ãèªã§ãã³ããããšããèšèã¯ããŸã調åããªããã®ãæå³ããŸãã ãããå®éã«ã¯ããã€ã人ãä»ã®èª°ãããããèããŠããŸããã§ããã ãã®ãããæåã¯äžæçãªååãã³ãŒãåããProject Kotlinãã®ãããªãã®ã§ããã åŸã«ãªã£ãŠãä»ã®ååã¯å¿ èŠãªãããšãããã£ãã ãã§ããŸã£ããæªãã¯ãããŸããã
- ããæè¿ãããªããšSveta IsakovaãKotlinã«é¢ããæ¬ãæžããšçºè¡šãããŸããã ãã®ãããžã§ã¯ãã®ã€ãã·ãšãŒã¿ãŒã¯èª°ã§ãã©ã®ãããªæ¬ã§ããïŒãŸããèšèªã«é¢ããæè¡æžãæžãããã»ã¹å šäœã¯ã©ã®ããã«èª¿æŽãããŠããŸããïŒ
Javaéçºè å°çšã®Kotlinããã¯ãäœæããããšæããŸãã Kotlin, , Java: JavaScript, , , , 1.0. JVM: c , -, Android. Android â .
, , Jav, Generics JVM. Kotlin. , Kotlin' , , Kotlin Java-.
Kotlin' , â Kotlin'. , . , -, , - . , Java , Java: , . ? , , Kotlin. , , IDEA .
, . , â . Scala , , Ruby on Rails . - , , . , . , Kotlin', , .
, . Table of Contents () . . - . Manning, , , Kotlin. , . , , , , . , . .
â ?
«Kotlin in Action». In Action â .

â Manning Kotlin'? - ?
, , acquisition editors, , , , , . , . .
â . , , . , , . ? ?
, . , â royalty.
â JetBrains ?
ã¯ã , - , , . â , . , , - .
â , â .
- , .
â . -
, , CEO .
â , Kotlin , , , , . , . ? Language Design Review. , , , . ?
- , . , 5 - . , . , , . , , , , .
JetBrains, , . , IntelliJ IDEA, API . Kotlin' . , , , Kotlin' , IDEA. commitment, Kotlin' 0.1, Kotlin' 1., , 2., - - , .
, , . . , - , - , . , , , , .
â - ? ?
, , , . .
â ?
Python - , .
new ArrayList
, -,
new ArrayList
. , , , , - .
â , , ?
, . , â , 1.0 - . , . , , , , .
â , ?
. , . , , , .
â , â API . NetBeans , : , SigTest, , API-, , API . , , , . - . ?
, . IDEA Plugin API , , , . IDEA. , , - . , .
15 . Java IDE, API. 1.0 , API â , . , . 3.0 - Plugin API, . Java, . 5.0 JavaScript . IDE, Java .
PyCharm Java . . Kotlin Upsource. , , Java Java, , UI -UI. Kotlin' . . , PSI, , . . .
, â , , . API .
â . , Major- API . Major Major API .
. major-. migration guides, , , . , . build- TeamCity, build'a IDEA -, , . â ?
ã¯ã , NoSuchMethodError - .
â - API?
- API.
â , , ?
, , - .
JetBrains
â - JetBrains . ?
JetBrains Google. 10 JetBrains. - .
â , ?
CTO, . PyCharm WebStorm. , . , , , , - , , . .
- . , JetBrains, , Google. , : , . , .
â , Google? ?
Google Cloud Platform. , â loud Debugger: production-, App engine, compute engine - . , . source code call stack, . , . production'. breakpoint'. , , , - . : call stack, , source code
â ? - , ?
, . Google . Google â , . «do cool things that matter», , « , ». Google. , , , , , , .
â Google â 50 . ?
25-30.
â Google , , , , , , , . ?
, . ? Google . .
â , . .
3-4 , Mountain View , , , Google - . , , , Kotlin, , , , JetBrains . .
, , JetBrains, â , . JetBrains, Google - . , , Google, , . , .
â Kotlin. - 2011 . , ( ), . . , , , JetBrains , . , , . ? ?
, . , - , , performance , . , - . , . Kotlin, -, feedback . , . , , , , . , , .
â Kotlin - ? , - ? ?
ããã ã£ãã , , , , . , nullability, , null, .
â The billion dollar mistake.
-, . Java, Java . , Java, . , , Java- , - .
: , - , - , xml , , : â not nullable, â nullable, nullable. JDK , - . , , Java. .
KAnnotator â , . , - , , , not nullable. . , KAnnotator â , . , data flow . , . â , . , .
â . , , nullability . Java. Java-, nullability. , nullability , , . , . , . , workflow . , Java- Nullable NotNullable â - .
KAnnotator' . , , , .
â . , , .
.
â , , null-?
â Java Kotlin . assertion, . .
â , ?
Java Kotlin.
â . , , - Google. , , , -. , ?
, , . , , , «», . ãã
â JetBrains, , ?
JetBrains , , .
â , JetBrains ?
22, . , . , , - â 17.
â ?
, . , â . 13 . - . OpenSource-, .
Google. Google . , , , 100 . , 100 , . .
Google, , , , - , , . å€æããŸããããããã , . , (, , Google) â , , .
-, storage-. , . â , . , NoSQL-.
â , - Google? , ?
èšãã®ã¯é£ããã§ãã Google . BigTable, . , , . Spanner, Google, â . , .
, , , «-» . , , , . . , data storage, . Google, . , , TeamCity, Youtrack, , , Youtrack .
â Xodus .
Xodus, . , ⊠, - . , . , Youtrack , Google .
â ( Youtrack â . ) , - Atlassian, SaaS- JIRA. , 30 . Youtrack SaaS- .
understaffed, . , - , .
C Google â . . , , , , , Youtrack, attachment-. , , , . , , . , â . , . 95 lanency, median latency â . , . , , , Google Search.
â , - , . - ? , ?
ããŸããŸãªæ¹æ³ã§ã , . , . , , , , , . , , . , alerting, - â . alert , , , . , , , alert . , SRE (Site Reliability Engineers), Google, , . , . , alerting, , .
SRE , . , SRE . . , â . , , storage quota, response time , , DoS- .
â , â Google ode. - ?
Google Code. : Google Code , , Google. , , 20 000 . â . , , middleware -. middleware . middleware , , , . - middleware, .
Google Code â , , , . , , , abuse . , , , , - android-, - . , . - download . abuseâŠ
, , , , . GitHub , , , Google GitHub. Google Code .
â , - ?
, , . . , . , , , , 15 , , ⊠« , ». , , Google . - â 75% . , , - .
â -?
Google - , . .
â , . - ru_java, . . , ? , c, - , ? , - , . - IDEA. â . , .
â . 2011 , , , , , 2013 .
, newsletter .
â , , 2 , .
, .
â ? ?
. PhpStorm, , , . , , . , , . PyCharm .
, - Kotlin. , . , -, Reddit . subreddit Kotlin , -. , , . -, . , - , , .
JUG
â , . JUG.ru , -, , . . JUG?

JUG TeamCity, - , 2006, -, . - , . .
â , , , . , - JUG . - . .
, .
PS: :