ãã®èšäºã¯ãèè
ãHabréã§ã®1åã®ãã£ã¹ã«ãã·ã§ã³ã§åãåã£ãå°è±¡ã®åœ±é¿ãåããŠæžããããã®ã§ãããWikipediaãäž»ãªç®çãšãããªããžã§ã¯ãæåããã°ã©ãã³ã°ã®æŽå²ã«é¢ããç¡æãœãŒã¹ããã®è³æã®å°ããªäžé£ã®ç¿»èš³ã«å ããŠãèªãã è³æããã®èè
ã®å®å
šã«åã£ãçµè«ã衚ããŠããŸãã
ã©ã®èšèªãå®éã«äžçã§æåã®OOPèšèªã§ããããJavaãšCïŒãçŽç²ãªOOPèšèªãšåŒã°ãããã©ããããããŠä»ã®è©³çŽ°ãæµžéããããšã«èå³ããããªããç§ã¯ããªããæåŸ
ããŸã...
ãŸããWikipediaããã®OOPã®æŽå²ã«é¢ãã翻蚳ïŒ
ãããã®èšèã®çŸä»£çãªæå³ã§ã®ããªããžã§ã¯ãæåãããã³ãæåããšããçšèªã¯ã1950幎代åŸåãã1960幎代åæã«MITã«ç»å ŽããŸããã 人工ç¥èœã®å°éå®¶ã®éã§ã¯ãããªããžã§ã¯ãããšããçšèªã¯ãããããã£ïŒå±æ§ïŒãæã€èå¥ãããèŠçŽ ïŒLispã¢ãã ïŒãæãå ŽåããããŸãã ã¢ã©ã³ã»ã±ã€ã¯åŸã«Lispã®å
éšæ§é ãçè§£ããããšã1966幎ã®åœŒã®æèã«å€§ããªåœ±é¿ãäžãããšæžãããMITã§ã®OOPã®åæã®ãã1ã€ã®äŸã¯ã1960â61幎ã«
Ivan Sutherlandã«ãã£ãŠäœæããã
ã¹ã±ãããããã§ãã 1963幎ã«äœæãããæè¡å ±åæžã®çšèªéã§ã圌ã®
Sketchpadã®è«æã«åºã¥ããŠããµã¶ãŒã©ã³ãã¯ããŠã£ã¶ãŒãããŸãã¯ãå®çŸ©ãã«åºã¥ãã¯ã©ã¹ã®æŠå¿µã§ããªããžã§ã¯ããããã³ãã€ã³ã¹ã¿ã³ã¹ãã®æŠå¿µãå®çŸ©ããŠããŸããããããã®çšèªã¯ãã¹ãŠãªããžã§ã¯ãã®ã°ã©ãã£ãã¯è¡šçŸã«é¢é£ããŠããŸã[èŠããã«ã
ã¹ã±ãããããã¯ã³ããŒãäœæãããã¡ã€ã³ã®ã€ã¡ãŒãžã§ããã ã¡ã€ã³ã倿Žãããšãã³ããŒã倿ŽãããŸãã ãæ³šæ ãã©ã³ã¹ã]ã
åæã®MITããŒãžã§ã³ã®ALGOL AED-0ã§ã¯ãããŒã¿æ§é ïŒAlgolæ¹èšã®ããã¬ãã¯ã¹ãïŒã¯ãåŸã«ã¡ãã»ãŒãžãã¡ãœããããŸãã¯ã¡ã³ããŒé¢æ°ãšåŒã°ããããã·ãŒãžã£ã«çŽæ¥é¢é£ä»ããããŠããŸããã
æ£åŒãªæŠå¿µãšããŠã®ãªããžã§ã¯ãã¯ã颿£ã€ãã³ãã¢ããªã³ã°ã«çŠç¹ãåœãŠãããã°ã©ãã³ã°èšèªã§ããSimula Iã®ææ°ããŒãžã§ã³ã§ãã
Simula 67ã®1960幎代ã®ããã°ã©ãã³ã°ã«ç»å ŽããŸããã Simulaã®èè
ã¯ããªã¹ãã®ãã«ãŠã§ãŒã³ã³ãã¥ãŒã¿ã»ã³ã¿ãŒã®Ole Johan DahlãšKristen Nygordã§ãã Simulaã¯ã
SIMSCRIPTãšCharles Hoarã«ãã£ãŠææ¡ãããã¬ã³ãŒãã¯ã©ã¹ã®æŠå¿µã®åœ±é¿äžã§éçºãããŸããã Simulaã«ã¯ãç¬èªã®ããã°ã©ãã³ã°ãã©ãã€ã ã®äžéšãšããŠããµãã¯ã©ã¹ãä»®æ³ã¡ãœãããã³ã«ãŒãã³ã颿£ã€ãã³ãã¢ããªã³ã°ã ãã§ãªããã¯ã©ã¹ãšã€ã³ã¹ã¿ã³ã¹ïŒãŸãã¯ãªããžã§ã¯ãïŒã®æŠå¿µãå«ãŸããŠããŸããã ãã®èšèªã¯èªåã¬ããŒãžã³ã¬ã¯ã¿ãŒã䜿çšããŸãããããã¯ã颿°åèšèªLispçšã«ä»¥åã«éçºãããŸããã ãã®åŸãSimulaã¯äž»ã«ç©çã¢ããªã³ã°ã«äœ¿çšãããŸããã Simulaã®ã¢ã€ãã¢ã¯ãSmalltalkãLispããªã¢ã³ãïŒ
CLOS ïŒã
Object Pascal ã
C ++ãªã©ã®åŸã®èšèªã«å€§ããªåœ±é¿ãäžããŸããã
Xerox PARCã Alan Kayãšä»ã®æ°äººã®ç§åŠè
ã«ãã£ãŠçºæãã
Smalltalkèšèªã¯ãå®éã«ã³ã³ãã¥ãŒãã£ã³ã°ã®åºç€ãšããŠããªããžã§ã¯ãããšãã¡ãã»ãŒãžãã®äœ¿çšã匷å¶ããŸããã Smalltalkã®äœæè
ã¯Simulaã®ã¢ã€ãã¢ã«è§ŠçºãããŸããããSmalltalkã¯ãSimulaã®ããã«éçã«ã§ã¯ãªããã¯ã©ã¹ãåçã«äœæããã³å€æŽã§ããå®å
šã«åçãªã·ã¹ãã ãšããŠèšèšãããŸããã SmalltalkãšOOPã¯ããã®å©ããåããŠã1981幎8æã«
Byte èªã§å¹
åºãèŽè¡ã«ç޹ä»ãããŸããã
1970幎代ãKayeã®Smalltalkã¯ãLispã³ãã¥ããã£ã䜿çšããŠã
Lispãã·ã³ã䜿çšããéçºè
ã«å°å
¥ãããèšèªã«ãªããžã§ã¯ãæåæè¡ãå°å
¥ãããã奚å±ããŸãã
ã
ããŸããŸãªLispæ¡åŒµæ©èœã®å®éšã«ãããæçµçã«
Common Lisp Object System ïŒCLOSãæåã®æšæºåããããªããžã§ã¯ãæåèšèªã
ANSI Common Lispã®äžéš ïŒãäœæãããæ©èœçããã°ã©ãã³ã°ãšãªããžã§ã¯ãæåããã°ã©ãã³ã°ã®äž¡æ¹ãææ©çã«çµã¿èŸŒãŸãã
ã¡ã¿ãªããžã§ã¯ããããã³ã«ã䜿çšããŸã ã 1980幎ã«ã¯ãã¡ã¢ãªå
ã®ãªããžã§ã¯ããæäœããããã®ããŒããŠã§ã¢ãµããŒããå«ãããã»ããµã¢ãŒããã¯ãã£ãèšèšãã詊ã¿ãããã€ããããŸãããããããã¯ãã¹ãŠå€±æããŸããã äŸã«ã¯ã
Intel iAPX 432ããã³
Linn Smart Rekursivãå«ãŸããŸãã
ãªããžã§ã¯ãæåããã°ã©ãã³ã°ã¯ãVisual FoxPro 3.0ã
C ++ ãDelphiãªã©ã®ãµããŒãããã°ã©ãã³ã°èšèªãåºãå©çšå¯èœã«ãªã£ã1990幎代åæããã³äžæã«æ¯é
çãªããã°ã©ãã³ã°æ¹æ³è«ã«çºå±ããŸããã ãã®ã·ã¹ãã ã®åªäœæ§ã¯ãOOPãã¯ããã¯ã«åºã¥ããã°ã©ãã£ã«ã«ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®äººæ°ã®é«ãŸãã«ãã£ãŠãµããŒããããŠããŸããã åçãªGUIã©ã€ãã©ãªãšãªããžã§ã¯ãæåããã°ã©ãã³ã°èšèªã®å¯æ¥ãªé¢ä¿ã®äŸã¯ãåçã¡ãã»ãŒãžã®ãµããŒããåããSmalltalkã«åºã¥ããããªããžã§ã¯ãæåã®Cæ¡åŒµã§ãã
Objective-Cã§èšè¿°ããã
Mac OS Xã® Cocoaãã¬ãŒã ã¯ãŒã¯ãèŠããšããããŸãã OOPããŒã«ãããã¯ã
ã€ãã³ãæåããã°ã©ãã³ã°ã®äººæ°ã«åœ±é¿ãäžããŠããŸãïŒãã ãããã®æŠå¿µã¯1ã€ã®OOPã«éå®ãããŸããïŒã GUIãšã®èŠããã®ãŸãã¯å®éã®æ¥ç¶ããOOPããã¯ãããžãŒã®æåç·ã«å°ãããšããèãã人ãããŸããã
ETHZÃŒrichã§ã¯ã
Nicklaus WirthãšååãããŒã¿æœè±¡åãã¢ãžã¥ãŒã«åŒããã°ã©ãã³ã°ãªã©ã®ããŒãã調æ»ããŸãããããããã®ã¢ãããŒãã¯60幎代以åã«åºã䜿çšãããŠããŸããã 1978幎ã«
ãªãªãŒã¹ããã
Modula-2ã«ã¯ãããã®ã¢ãããŒãã®äž¡æ¹ãå«ãŸããŠããããã®è¿œåŸè
ã§ãã
Oberonã¯ãSmalltalkã¢ãããŒããšã¯ç°ãªããC ++ã¢ãããŒããšã¯ãŸã£ããç°ãªãããªããžã§ã¯ãæåãã¯ã©ã¹ãªã©ã«å¯ŸããŠç¬èªã®ã¢ãããŒããåããŠããŸããã
OOPæ©èœã¯ã
Ada ã
BASIC ã
Fortran ã
Pascalãªã©ãåœæã®å€ãã®èšèªã«è¿œå ãããŸããã å
ã
OOPããµããŒãããããã«èšèšãããŠããªãã£ãèšèªã«ãããã远å ãããšãå€ãã®å Žåãäºææ§ãšã³ãŒããµããŒãã®åé¡ãçºçããŸããã
ãã®åŸããªããžã§ã¯ãæåã®ã¢ãããŒããš
Pythonã
Rubyãªã©ã®æç¶ãåã¢ãããŒãã®äž¡æ¹ããµããŒãããèšèªãç»å Žãå§ããŸããã ãããããæã忥çã«æåããŠãããªããžã§ã¯ãæåèšèªã¯ã
Visual Basic.NET ã
CïŒãããã³
Javaã§ãã
.NETãš
Javaã®äž¡æ¹ãOOPã®åªäœæ§ã瀺ããŠããŸãã
çŸåšãèšäºããªããžã§ã¯ãæåããã°ã©ãã³ã°ã®éå§æ¹æ³ãã®äžéšã®ç¿»èš³ã¯ãOle-Johan DahlãšKristen Nygordã«ãã£ãŠå·çãããŸããã
ãSIMULA IïŒ1962-65ïŒããã³Simula 67ïŒ1967ïŒã¯ãæåã®2ã€ã®ãªããžã§ã¯ãæåããã°ã©ãã³ã°èšèªã§ãã Simula 67ã«ã¯ããªããžã§ã¯ãæåããã°ã©ãã³ã°ã®æŠå¿µã®ã»ãšãã©ãå«ãŸããŠããŸããïŒã¯ã©ã¹ãšãªããžã§ã¯ãããµãã¯ã©ã¹ïŒç¶æ¿ïŒãä»®æ³é¢æ°ãå®å
šãªãªã³ã¯ãããã³å
±éã®ã¯ã©ã¹ããããŒïŒãã¬ãã£ãã¯ã¹ãããã¯ïŒã§èšè¿°ãããããã°ã©ã æ§é ã®ã³ã¬ã¯ã·ã§ã³ãããã°ã©ã ã«è¿œå ã§ããã¡ã«ããºã ã§ãã
Xerox PARCã®Alan Kayã¯ãSimulaãSmalltalkïŒ1970å¹Žä»£ã®æåã®ããŒãžã§ã³ïŒã®éçºãã©ãããã©ãŒã ãšããŠäœ¿çšãããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãšã€ã³ã¿ã©ã¯ãã£ããªå®è¡ãçµ±åããŠãªããžã§ã¯ãæåããã°ã©ãã³ã°ãæ¡åŒµããŸããã BjörnStrausstruppã¯ãC ++ã®éçºãéå§ããŸããïŒ1980幎代ïŒãCã§Simulaã®åºæ¬æŠå¿µãå°å
¥ããŸããã
ããŠãå°ãäžè¬åãšçµè«ã
ã芧ã®ãšãããæåã®OOPèšèªã¯Simulaã§ããã ããããæåã®ãã¯ãªãŒã³ããªOOPèšèªã¯Smalltalkã§ããã OOPã¯OOPèšèªãšåŒã°ããããšãããããã®ãã¹ãŠã®ã¿ã€ãã¯ã¯ã©ã¹ã«ãã£ãŠééçã«è¡šçŸãããããã¯ã©ã¹ã«ãã£ãŠééçã«è¡šçŸãããŸãã ãã®æå³ã§ãJavaã¯ããªãŒããã¯ã·ã³ã°ãå°å
¥ãããããŒãžã§ã³5ã§ã®ã¿
çŽç²ãª OOPèšèªã«ãªããŸããã CïŒã¯ãæ£ããçè§£ã§ããã°ãæåããçŽç²ãªOOPèšèªã§ããã ã³ã¡ã³ãã§ã¯ããããããCïŒã«ã¯ãªããžã§ã¯ãã§ã¯è¡šçŸã§ããªãã¢ã³ãããŒãžãã€ã³ã¿ãŒããããŸããããäžè¬çã«ãSmalltalkã®ã¿ãçŽç²ãªOOPèšèªãšèããããšãã§ããŸããæ¥µç«¯ãªå ŽåãRubyãšCleanã¯äœéãæå³ããŸãã intãªããžã§ã¯ãã衚ãããã«ãããªããèããããšãèŠãŠãã ããïŒã
ãã°ããåã«
ã å¥åŠãª habrayuzerãã³ã¡ã³ãã®1ã€ã§ãOOPã¯Alan Kayã«ãã£ãŠçºæããã
ãçŽç²ãªOOPã«ã¯ç¶æ¿ããªã ãJavaãšCïŒããOOPããšããçšèªã®äœè
ã«ãããšãOOPã¯èšèªã§ã¯ãªããGoslingãšLippertã... ...圌ããçºæããèšèªã¯éåžžã®ãªããžã§ã¯ãæåã§ãããšå®å
šã«èª€ã£ãŠä¿¡ããŠããããã
åé¡ ã
ãã®ãããªå·šå€§ãªãã³ã»ã³ã¹ãããç§ã®ãã¹ãŠã®çãããã«è
«ãäžãããç§ã¯å°ãå°æããè°è«ã®ããã«ã°ãŒã°ã«ã«ä¹ã蟌ãã§ãããããã®äºå®ãæã£ãŠããããçŸããããšãæå³ããŠããŸããã ãã®ãã
ãªå±éºãªèª€è§£ã¯ãŸã å°æ°ã®èªè
ã«ãã£ãŠå
±æãããŠããããšã倿ããŠããŸãã ãããã£ãŠãç§ã¯ãã®åé¡ã«é¢ããç§ã®èŠè§£ãè¿°ã¹ãããšæããŸãã
ãªããžã§ã¯ãæåããã°ã©ãã³ã°ã¯ãããã°ã©ãã³ã°ã«å¯Ÿããç§åŠçã¢ãããŒãã§ãããã©ãã€ã ã§ãããç空ã§ã¯ãªãã倧å¢ã®ç§åŠè
ã«ãã£ãŠéçºãããŸããã ã±ã€ã®OOPãžã®è²¢ç®ã¯éåžžã«è²Žéã§ãããOOPã圌ã®çºæã§ãããšèšãããšã¯ã圌ãšäžç·ã«ãããŠå¥ã
ã«åããä»ã®å€ãã®ç§åŠè
ã«ãšã£ãŠå®å
šã«äžå
¬å¹³ã§ãã ã±ã€ã¯ãã€ãŠ
ããèšããŸãã ããç§ã¯Simula IãŸãã¯Simula 67ãç¶æ¿ãè¡ãã®ã奜ãã§ã¯ãããŸããã§ããïŒNygaardãšDahlã¯ãšãŠã€ããªãææ³å®¶ã§ãããã¶ã€ããŒã ãšæã£ãŠããŸãããïŒã ã ãããç§ã¯ãããããããçè§£ãããŸã§ãçµã¿èŸŒã¿æ©èœãšããŠç¶æ¿ãé€å€ããããšã«æ±ºããŸãããããåãã®ããã«ã圌ãã¯OOPã®çºæã«å¯Ÿããç¬å æš©ã䞻匵ããŸããã§ããã
OOPã«ã¯ç¶æ¿ïŒããã³ãã®ä»ã®ææ°ã®ãã®ïŒããªããããã«æã¡èŸŒãã 人ãOOPã®æå³ãšæ¬è³ªãæªãããšèšãããšã¯ããããã§ãã¹ããŒã®å¹ŸäœåŠããŠãŒã¯ãªããã«ãã£ãŠèæ¡ããã幟äœåŠãæªããç·æ¥ã«ååã倿Žããå¿
èŠããããšèšã£ãŠãããããªæ°çå
ã®æ±ããæããããŠè人ã«è§Šããªãããã«ãããã¡ããªãŒããŸãã¯ããã€ããŒããã¡ããªãŒãã ãªãŒãã³ã®å¹ŸäœåŠã¯äžè¬ã«ãµã¿ã³ããã®ãã®ã§ãããã¬ããªãšã¬ã»ãŽã§ããã£ã¢ãŒããšåœŒã®ååã説æãããã®ã§ã¯ãªããããããœã³åŒŠçè«ã¯å€§åŠã§æããããšãã§ããŸããã
åæããªãå Žåã¯ãã³ã¡ã³ãã§è°è«ãç¶ããããšããå§ãããŸãã