Java»PRuby»y¨¥¾E²¾®Éªº¦w¥þ©Ê
±z¬O²Ä
215ÓÂsÄýªÌ
¦b³o½g¤å³¹¤¤¡A§Ú̱Nn±´°QJava»PRuby»y¨¥¾E²¾®É·ÀI¹w´ú¤è±ªº°ÝÃD¡C ³q±`¨Ó»¡¡A¡§¨Ï¥ÎRuby¨ã¦³·ÀI¡¨¬O¤@ºØ´¶¹Mªº¬Ýªk¡A³o¦s¦b¤@©wªºì¦]¡C¦]¬°¨Ï¥Î·sªº»y¨¥¤Ñ¥Í¬O¦³·ÀIªº¡CÀHµÛRuby on Rails³v¨B¶i¤J¨ì¥D¬yªº¶}µo»â°ì¤¤¡A³o¼Ëªº·ÀI±N·|ÀH®É¶¡³vº¥°§C¡A¦]¬°¦³³v¨B¼Wªøªº¶}µoªÌ¸s¡B¤¸¥ó(©ÎºÙ§@gems©Mplug-ins)¬ÛÃöªº®ÑÄy¡B¥H¤Î·~°È¦X§@¹Ù¦ñ»P§A·¾³q¥æ¬y¡C¦ý¦P®É§A¤]¥i¥HÅ¥¨ì¥D¬yªºÆ[ÂI«ü¥X¡§¨Ï¥ÎJava¬O¦w¥þªº¡¨¡C¹ï©ó³oºØªºÆ[ÂI¡A§Ú«ù¦³±j¯Pªº¤Ï¹ï·N¨£¡CÀHµÛ»y¨¥ªº¿±µÈ¡A³o¼Ëªº·ÀI³q±`¤]·|¼Wªø¡C¬°¤F«K©ó²z¸Ñ¦b¥Ø«e¦b³o¨ÇÆ[ÂI¤W¥¿µo¥Í¤°»òÅܤơA§ë¤JÂIºë¤O¥h¬ã¨sJava³ÌªìªºÀ³¥Î±¡ªp¬Oȱoªº¡C
·s§Þ³N±Ä¥Î·§ªp
³\¦h¤ÀªR®a¾Ö¦³§Þ³NÀ³¥Î©Ò»Ýªº´yz¼Ò«¬¡C¨ä¤¤³Ì¬°¬y¦æªº¼Ò«¬¬O©w¸q¦bRubyªºWeb¶}µo®Ø¬[Iowa¤¤¡A¥Î¨Ó´yz¹A²£«~ªºÀ³¥Î¡Aµy«á¦b¤@¥»¥ÑGeoffrey A. Moore¼g§@ªº¦W¬°¡m¸ó¶VÂE·¾¡n(Crossing the Chasm)ªº®Ñ¤¤¡A³Q¥Î¨Ó´yz§Þ³N¤º®e¡C¦b®Ñ¤¤¡AMoore¤ÀªR¤F§Þ³NÀ³¥Î¶g´Á¤¤¦s¦bµÛªº¤ÓºIµM¤£¦Pªº¸sÅé¡G
§Þ³N±M®a¡C³oÓ¸sÅé¶É¦V©ó±Ä¥Î·sªº§Þ³N¡C¥ô¦ó¤@ºØ¦³«e³~ªº§Þ³N³£·|¤Þ°_³oÓ¸sÅ骺ª`·N¡C
¥ý¦æ±Ä¯ÇªÌ¡C¤£ºÞ³o¶µ§Þ³N¬O§_¦b¥D¬y§Þ³N¤¤¨ú±o¦¨¥\¡A³oÓ¸sÅé³£±N·|±Ä¥Î·sªº§Þ³N¨Ó´£¤ÉÄvª§Àu¶Õ¡C
¹ê¥Î¥D¸qªÌ¡C¤@¥¹·sªº§Þ³N¶i¤J¥D¬yÀ³¥Î¡A©Î¬O¦³¨¬°÷°~®kªº¼Wªø¦±½u¨Ó«OÃÒ§Þ³N±N±o¨ì¼sªx±Ä¥Î¡A¨º»ò¹ê¥Î¥D¸qªÌ´N·|¿n·¥±Ä¥Î·sªº§Þ³N¡C
«O¦u¬£¡C¥u¦³·s§Þ³N¦¨¬°¥²¶·ªº®ÉÔ¡A¥L̤~·|¦Ò¼{±Ä¥Î·sªº§Þ³N¡C
ÃhºÃ½×ªÌ¡C³oÓ¸sÅé¥i¯à«Ü±ß¤~·|±Ä¥Î·sªº§Þ³N¡A©ÎªÌ¤]¥i¯à¥Ã»·¥u¨Ï¥Î¬Y¤@¯S©w§Þ³N¡C
Moore«ü¥X¡A§Þ³NÀ³¥ÎªºÃöÁ䤧³B¦b©ó¹Î¶¤¤¤¬O§_¦s¦b¹ê¥Î¥D¸qªÌ¡C¦]¬°¹ê¥Î¥D¸qªÌ»Ýn·s§Þ³N¤j³W¼ÒªºÀ³¥Î¡A³oÓ¤¤¶¡¸sÅé§Æ±æ¬Ý¨ì¨ä¥L°È¹ê¬£¦b¹Î¶¤°µ¥X©Ó¿Õ¤§«e´N¨Ï¥Î·sªº§Þ³N¡C³o¬O¤@ÓÃþ¦ü©ó¡m²Ä¤G¤Q¤G±øx³W¡n®Ñ¤¤©Ò´yzªº²{¶H¡A¦]¬°°È¹ê¬£Ì³£·|¬Û¤¬¨Ì¿àªº¦s¦b¡C¥X©ó³o¼Ëªºì¦]¡A¦b¥ý¦æ±Ä¯ÇªÌ±Æ¦C¦b§Þ³N±M®a¤§«á©M°È¹ê¬£¤§«e¡A§A·|¸g±`¦b¥«³õ±µ¨ü«×¦±½u¤¤¬Ý¨ì¤@ºØ¤U°ªºÁͶաCMoore±N³oºØ¤U°ºÙ¤§¬°ÂE·¾¶É¦V¡A¨Ã¥B³oºØ·QªkÀ³¥X©ó³ò¶¥ô¦ó·s§Þ³Nªº·ÀI°Q½×ªº¤¤¤ß¡C
Moore¸Ñ¨M¤èªk¬O¡A§â«ÂI©ñ¦b¸ó¶VÂE·¾ªº¹Lµ{¤¤¡C³q±`¨Ó»¡¡A§A«ÜÃø³q¹L¤@Ó¥¨¤jªº¸ÅD¸ó¹LÂE·¾¡C§A»Ýn¦³¤@ӥؼЩú½Tªº²Ó¤À¥«³õ¡CJava§Þ³Nº¥ý³q¹LAppletµ{¦¡¶i¤Jºô¸ô¥Î¤áºÝºÝ¡A¤§«áÂà¦VªA°ÈºÝªºpºâ¡B²¾°Ê²×ºÝ¡B¥H¤Î¨ä¥LÃþ¦ü©ó²¾°Êpºâ¥H¤Î¥ø·~¬[ºcªºÀ³¥Î¡A³Ì²×¬°ºô¸ô±a¨Ó±j¤j½ÄÀ»¡C
¦b¡m¶W¶VJava¡n¤@®Ñ¤¤¡A§Ú»{¬°¦s¦b©óµ{¦¡³]p»y¨¥¤§¶¡ªºÂE·¾¯S§OÄY«¡C§Ṳ́j¦h¼Æ¤H³£»{ÃѨì¦bLisp»y¨¥¤W§ë¤Jºë¤O±N¤j´T´£°ª¥Í²£²v¡A¦ý¬O¦P®É¤]·|¾ÉP§óÃø§ä¨ì¦X¾Aªºµ{¦¡¶}µo¤Hû¡B±Ð¾Ç¸ê·½¡BÃþ®w¥H¤Î¤¸¥óµ¥¡C¦P®É§ÚÌÁÙ±N¤£±o¤£¥I¥X§ó¦hªºªá¶O¨Ó¶i¦æ¤@¨Ç¥²nªº¾ã¦X¤u§@¡C¥X©ó³oÓì¦]¡A¤j²³¥«³õ¥u·|¥H¤j¬ù¨C¤Q¦~ªº®É¶¡¶g´Á§ó´«¥D¬yªº½sµ{»y¨¥¡C¦bªA°ÈºÝ½sµ{»y¨¥¤è±¡A¥i¥H²M´·¬Ý¨ì³oºØÁͶժº¦s¦b¡CCOBOL©MFortran»y¨¥¥X²{©ó1954¦~¨ì1961¦~¤§¶¡¡CC»y¨¥«h½Ï¥Í¦b¤W¥@¬ö70¦~¥Nªì´Á¡AC++¬O¥X²{¦b¤W¥@¬ö80¦~¥N¤¤´Á¡AJava»y¨¥«h¥X²{¦b1996¦~¡C§ÚÀ³·í§âC#»y¨¥ºâ°µ¾ã¦X°ª®ÄªºJava»y¨¥§J¶©ª©¥»¡AÁöµM³o¼Ëªº»¡ªk¥i¯à·|¤Þµo¤@¨Çª§ÅG¡C³\¦h¨ä¥Lªº»y¨¥¦b¦¹¶¥¬q¤¤½Ï¥Í¡A¦ý¬O¤Wz»y¨¥¤´Â¨S¦³¤@Ó¯à°÷¦û¾Ú²Îªv¦a¦ì¡C¦ñÀHªº·ÀI¬Oªýê·s½sµ{»y¨¥³Q¼sªx±Ä¥Îªº³Ì«nì¦]¡C Javaªº·ÀI·§ªp ¨Ï¥ÎJava»y¨¥´¿¸g»Ýn§JªA«Ü¤jªº·ÀI¡C·í®É¡A¤j¦h¼ÆªA°ÈºÝªº½sµ{³£¦b¨Ï¥ÎC++»y¨¥¡CC++¬O¤@ªù°ª®Äªº§@·~¨t²Î»y¨¥¡A«D±`¾A¥Î¤_À³¥Îµ{¦¡¶}µo¡CC»y¨¥®a±Ú¦b³o¤è±ªºªí²{¬Û·í¥X¦â¡A¦]¬°«È¤á¾÷/¦øªA¾¹ºÝ½sµ{¥H¤Î¥Î¤á¤¶±¶}µo»Ýnµ{¦¡©Ê¯à»P¾AÀ³©Ê¨}¦n¦aµ²¦X¦b¤@°_¡A¦b·í®É¨ä¥Lªº½sµ{»y¨¥³£µLªk²Å¦X³o¼Ëªºn¨D¡C¬°¤F§JªA¦ñÀH±Ä¥Î·s½sµ{»y¨¥¦Ó¨Óªº·ÀI¡AJava»Ýn¥H¤Uªº¤TÓ±ø¥ó§¡¦¨¥ß¡G
C++¶}µoªÌ¤£±o¤£¸g¾ú¤@µf¨¯Wªº¾Ç²ß¹Lµ{¡C«ü°wªº¦s¦b(¥Ñ©ó¯Ê¤Ö½sĶ®Éªº¦w¥þ©Ê)¾ÉP¦UºØ¦U¼ËÃø¥H®ø°£ªº¯Ê³´¡C°O¾ÐÅéºÞ²z¨Ï±o°O¾ÐÅ鬪º|¦¨¬°®a±`«K¶º¡CC++¹ï©ó¤j¦h¼Æµ{¦¡¶}µoªÌ¨Ó»¡¡AÅã±o¹L©ó½ÆÂø¡C³o¨Ç°ÝÃD¼W¥[¤F°w¹ï©óC++»y¨¥ªº·ÀIµû¦ô¡C
Java»Ýn¸Ñ¨M¤@¨ÇC++»y¨¥µLªk³B²zªº¤u§@¡CJava»y¨¥©Ò¨ã¦³Â²¼ä¡BÆF¬¡ªº¯S©Ê¥H¤Î²³¦hC++©Ò¤£¥]¬AªºÃþ®w¤ä«ù¡C³o¨Çn¯À´î¤Ö¤F°w¹ï©óJava»y¨¥ªº·ÀIµû¦ô¡A¨Ã¥i¥H«O«ù¶}µo¹Î¶¤¤p«¬¤Æ³Ì²×±q®Ú¥»¤W´£°ª¥Í²£¤O¡C
Java»Ýn¤@Ӷʤƾ¯¡CÀHµÛºô¸ôÃz¬µ¡AAppletÀ³¥Î´¶¹M³Q´O¤J¦bNetScape¬yÄý¾¹¤¤¡A¨Ï±oC»y¨¥¶}µoªÌ¤£±o¤£Âà¦V¥h¶}©l¨Ï¥ÎJava»y¨¥¡CC++¦]¬°©MJava»yªkªºÃþ¦ü¡A¥i¥H²³æ¦a¶i¦æ¹L´ç¡CJava±o¥H¨³³tÀò±o¼Æ¶qÃe¤jªº¥Î¤á¸s¡A¨Ã¥B¦b¦P·L³nªºÄvª§¤¤³v¨B´£¤É³o¼Ëªº¹L´ç¡C
Javaªº¿±µÈn¤ñ§ÚÌ¥H«e©Ò¨£ªº¥ô¦ó¤@¦¸§Þ³N®ö¼é³£n¨³³t¡A¦P®É¤]¥i¯à¤ñ§Ú¤@¥Í©Ò¨£ªº¥ô¦ó§Þ³N³£nÃe¤j¡AµM¦ÓJavaªºµo®iÂŹϫo¤@ª½«O«ù²M´·¡C¬°¤F«Ø¥ß·sªº»y¨¥¡A즳ªº»y¨¥¤w¤£¾AÀ³¶}µoªÌªº»Ý¨D¡A·sªº»y¨¥¥²¶·n§JªA즳»y¨¥ªº¯Ê³´¡A¨Ã³Ì²×¥H¬Y¨Ç¶Ê¤Æ®ÄÀ³¨³³t»E¶°°_¼Æ¶qÃe¤jªº¥Î¤á¸s¡C
Java§@¬°InternetÀ³¥Î»y¨¥¦b¥Î¤áºÝ¨³³t±o¨ì¥ß¨¬¡CɧU¤_ÆF¥©ªºAppletÀ³¥Îµ{¦¡¡A¥Ñ©óJava´£¨Ñ¤F¹ï©óÀ³¥Î¶}µoªÌ·¥¦³À°§Uªº¯S©Ê¡A¨Ï±oJava§Ö³tÂಾ¨ì¦øªA¾¹ºÝ¶}µo¡A³o¨Ç¯S©Ê¥]§t¦³¡G
°O¾ÐÅéºÞ²z
°®²bªºÄ~©Ó¼Ò«¬
§ó¦nªº±¦Vª«¥ó¥\¯à
«KÄâ©Ê
InternetÃþ®w
¦w¥þ
¡K¡K¥H¤Î¨ä¥L³\¦h¯S©Ê¡C¦b§Ú¬Ý¨Ó¡AJava¤@ª½¥H¨Ó³£¬O³Ì¬°¦¨¥\ªº½sµ{»y¨¥¡CÀHµÛJava¤£Â_ªº§ï¶i¡A¨Ï¥ÎJava»y¨¥Åܱo¶V¨Ó¶V¦w¥þ¡A¨Ã³Ì²×¦bInternetÀ³¥Î¤¤²Î»âµÛªA°ÈºÝ¶}µoªº¥«³õ¡C°Ó·~§ë¸ê¡A¶}µoªÌªÀ°Ï¡A¦UºØ±Ð¨|°ö°V¡A¶}©ñ·½¥N½Xªº®Ø¬[¡A¥H¤Î¦UºØ¦U¼Ëªº¸ê°Tµo§G³£¨Ï±o¨Ï¥ÎJava¶}µoªº·ÀI°§C¡C¤Wz´XÂI²M´·¦a¸ÑÄÀ¤FJava¨ú±o¦¨¥\ªºì¦]¡C
¤@¥¹·sªºµ{¦¡¶}µo»y¨¥¸ó¶VÂE·¾¡A¶}µo»y¨¥¬ÛÃöªº·ÀI«h·|ÀHµÛ¥«³õ¦û¦³²vªº´£¤ÉÅãµÛ´î¤Ö¡C
Java«h¾Ö¦³¤@Ó¥O¤HÆg¼Ûªº¦¨¥\¹Lµ{¡C¦ý¬Oµ{¦¡³]p»y¨¥¨S¦³¤´Â°±¯d¦b¤£½T©wªº§Þ³Nµo®i¤ô·Ç¤§¤W¡C©Ò¦³¦¨¥\»y¨¥³£·|²£¥Í§Þ³N¿±µÈ¡A¦]¬°¥¦Ì¥²¶·¥h¾AÀ³¨Ï¥ÎªÌ¤£Â_Åܤƪº»Ý¨D¡C¦¨¥\ªº½sµ{»y¨¥µLªk¹³¨ä¥Lªº»y¨¥¤@¼Ë§Ö³tªº¾AÀ³ÅܤơA¥LÌ¥²¶·«O«ù¤@©wµ{«×¤Wªº¦V«á¬Û®e¡A¨Óº¡¨¬³v¨B¼Wªøªº¥Î¤á°ò¥»»Ý¨D¡CÀHµÛ§Þ³Nº¢«á»P»y¨¥¿±µÈªº²£¥Í¡A¥t¤@ºØ§Î¦¡ªº·ÀI¹w´ú³v¨B§Î¦¨¡C¬°¤F·sªº·ÀI¹w´ú¡A¥Ñ©ó·ÀI»Pµ{¦¡¶}µoªÌ°ª®Ä§¹¦¨¤u§@ªº¯à¤O¬ÛÃö¡A¨Ï±o·ÀI»P¥«³õ¦û¦³²vªº°§C¦³¥²µMªºÁpô¡C ¥Ø«e¬°¤î¡A§Ú¤w¸g¶}©lÃöª`¤_·s¥Í§Þ³Nªº¥«³õ·ÀI¡C¦bJava½Ï¥Í¤Q©P¦~¤§»Ú¡A¥t¤@ºØ§Î¦¡ªº·ÀIµû¦ô¦¨¬°¥²¶·¡C´N¹³¡m¤H¤ë¯«¸Ü¡n¡B¡m¦º¤`¤§®È¡n©M¡m¤H¥ó¡nµ¥³\¦h¦³¼vÅT¤Oªº®ÑÄy¤¤¹ª§jªº¨º¨Ç·ÀI¤@¼Ë¡G §C¤Uªº¥Í²£¤O±N¾ÉP§óÃe¤jªº¹Î¶¤³W¼Ò©M§óªøªº®É¶¡¶g´Á
·ÀIÀHµÛ±M®×ªº³W¼Ò¦Ó¼W¥[
·ÀIÀHµÛ¹Î¶¤³W¼ÒªºÂX±i¦Ó¼W¥[
«~½è·ÀI¡A¥HBugªº¼Æ¶q¨Ó¿Å¶q¡AÀHµÛ¥N½X¦æ¼Æªº¼W¥[¦Ó¼Wªø
¦¨¥»ªº¼Wªø¾ÉP·ÀIªº¼W¥[
ºî¦X¦¨¥»ÀHµÛ½ÆÂø©Êªº´£°ª¦Ó¼W¥[
ÀHµÛµ{¦¡³]p»y¨¥©ÎªÌ½sµ{½d¨Òªº¨Ï¥Î¦³¤F¿n²Ö¡A¬Û¹ï¤_§Þ³Nµo®i¤ô·Ç¡A»y¨¥±N·|»P¥Í²£¤O¬ÛÃöÁp¡C±M®×¹Î¶¤»Ýn¼W¥[³W¼Ò¡A¶}µoªÌ»Ýn½s¼g§ó¦hªº¥N½X¨Ó¸Ñ¨M¬Û¦Pªº°ÝÃD¡C©Ò¦³³o¨Ç¦]¯À¥»¨´N·|¼W¥[·ÀI¡C©Ò¦³ªº¦]¯À±N·|¾ÉP¥²µMªºµ²½×¡C
¥Ñ©ó¥«³õ¥D®_¦a¦ìªº²×¤î¡A¬Û¹ï¤_§Þ³Nµo®i¤ô·Ç¨Ó»¡¡A¥Í²£¤O·ÀI»P¶}µo»y¨¥¬ÛÃö©Ê±N·|¼W¥[¡C
¦bJava»y¨¥ªº½dÃ¥¤¤¡A³o¨Ç±¡ªp¬O§_¥H¤Î¦p¦óµo¥Í¬O¤@Ó±N·|¤Þ°_¿E¯Pª§½×ªº¸ÜÃD¡C·íµM¡AJava¤´µM¬O¸Ñ¨M¾ãÓ¤@¨t¦C¥ø·~°ÝÃDªº³Ì¨Î»y¨¥¡A¤ñ¤è»¡«D±`¤j«¬ªº±M®×¡A©Î¬O¤ñ¦pÂù¬Û´£¥æ©Î®Ö¤ßª«¥óÃö«Y¬M®gµ¥¨ã³Æ¯S©w»Ý¨Dªº°ÝÃD¡C°w¹ï¤_Javaªº°Ó·~§ë¸ê±q¨Ó¨S¦³³o»ò±j¹L¡A¨Ã¥BJavaªÀ°Ï¤@ª½¬O«O«ù«ùÄò°ªº¦¡C¦ý¬O®Ú°ò¤¤ªº¯Ê³´³vº¥¶}©lÅã²{¥X¨Ó¡C
Javaªº¥ø·~¯ÅJavaBean®Ø¬[¡AWS-*·®æªººô¸ôªA°È¡A¥H¤ÎJavaEEªº½ÆÂø©Ê©M¼eÃP«×¤w¨ü¨ì¶V¨Ó¶V¦hªº§åµû¡CJames Duncan Davidson¡Aservletªº³Ð©l¤H¤§¤@¡A´¿ªí¥ÜJava¤£¦A¹³±q«e¨º¼Ë¤è«K©ö¥Î¡C¥Ø«e«ÜÃøµ¹¤@Ó´¶³qªºJava¶}µoªÌ¡AÁ¿©ú¥Õ¦p¦ó¸Ñ¨M³Ì¤@¯ëªº½sµ{°ÝÃD¡G¤ñ¦p¦³«á»O¸ê®Æ®w¤ä¼µªººô¸ôÀ³¥Î¡C¥X²{ªº¬ÛÃöÃÒ¾Ú¬O¡A¤w¸g¥X²{¤F«Ü¦h¨Ï¥Î¨ä¥L»y¨¥ªº¶}µo®Ø¬[¡A³Ì¬°¥X¦Wªº´N¬ORuby on Rails¡A¦b³B²z¤p³W¼Ò°ÝÃD®É¨ã³Æ·¥°ªªº¥Í²£¤O¡C¸ê²`Java¶}µoªÌJames Duncan Davidson¡AMike Clark¡AJustin Gehtland¡AStuart Halloway¥H¤Î¨ä¥L³\¦h¶}µoªÌ³£ÃÒ©ú¡A¦bÃöÁ䪺¤p«¬±M®×¤¤¨Ï¥Î¤FRails¤§«á¡AÀò±o¤F«D±`°ªªº¥Í²£®Ä²v¡G¨ã³Æ«á»O¸ê®Æ®w¤ä¼µªººñ¦âºô¸ôÀ³¥Î¡C·íµM¡A§ÚªºÓ¤H¸gÅç¤]¬O¥i¥H»´ÃP¦a¨Ï¥ÎRuby on Railsºc³y¡B³¡¸p¨ÃºûÅ@³o¼ËªºÀ³¥Î¡C
³o¨Ç³ø§i±N·|¤Þ°_¼sªxªºª§½×¡A´N¹³¬O¦´ÁÃö©óJava¥Í²£¤Oªº¨º¨Ç³ø§i¤@¼Ë¡CÁÙ°O±o¡A¦bJava¶}µo¼sªx´¶¤Î¤§«e¡AJavaº¦¸¥X²{¦b¦U¦¡ªº¤p«¬À³¥Î¤¤¡C¶}µo¤Hûªº¥Í²£¤O¬OÅX°ÊJava¦¥ý¼Wªø´Áªº«n¼Ð·Ç¡C½ÐÂÔ°OMooreÃö©ó·s§Þ³N¥X²{ªº²z½×¡C¸ó¶VÂE·¾³Ì¦nªº¤è¦¡¤£¬O³q¹L¤@¦¸¤jªº¸õÅD¡A¦Ó¬O¨C¦¸¥u«e¶i¤@Ó¤pªº¶¥¬q¡C
§Ú°í«H½ÆÂø©Ê©MÃP´²ªº¶}µo®Ä²v¬O¨Ï±oJava¥Ø«e¥¿¦b¸g¾ú·ÀIªºì¦]¡C
Ruby»P¥ÍѨӪº·ÀI
¤ñ°_¨ä¥L·s¥Íªº¶}µo»y¨¥¨Ó¡ARuby¨Ã¨S¦³¤°»ò¯S§O¤§³B¡C¯Ê¤Ö°Ó·~§ë¸ê¡A¦³ªº¶}µo¸ê·½¡AÁٯʤֶ}µo¸gÅç¡A³o³£¬°·s¥Íªºµ{¦¡³]p»y¨¥±a¨Ó¤F·ÀI¡C¤U±¬O¤@¨Ç§Ú¾D¹J¨ìªº¸û¤jªº·ÀI¡C
¤H¤~ªº¯Ê¥F¡C«ÜÃø§ä¨ì¼ô½mªºRuby¶}µo¤Hû¡C®Ú¾ÚJavaªºµo®i±¡ªp¨Ó¬Ý¡A³o¼Ëªº²{ª¬±N·|«Ü§Ö¦³©Ò§ïÆ[¡A¦ý¬O´N¥Ø«e¨Ó»¡¡A¦pªG§Apµe¦b«Üµuªº®É¶¡¤º²Õ´¤@Ó¤H¼Æ¸û¦hªºRuby¶}µo¹Î¶¤¡A¨ä§xÃøµ{«×»·¤ñ²Õ«Ø¬Û¦PªºJava¹Î¶¤n¤j±o¦h¡C ¯Ê¤Ö¸gÅç¡C³\¦hLAMP¬ÛÃöªº»y¨¥¤w¸g«Ø¥ß¤F°O¿ý¸òÂܾ÷¨î¡CGoogle¨Ï¥ÎPython;³\¦h¥D¬yªº.COM¤½¥q¨Ï¥ÎPerl©ÎC»y¨¥¡C¥Ø«e¤´¨S¦³¨Ï¥ÎRuby¥´³yªººXÄ¥¯ÅÀ³¥Î¡A¨Ó®i¥ÜRuby»y¨¥±j°·ªº¥i©Ý®i©Ê¡A©Î¬O½ÆÂøªº¥ø·~¯Å¶°¦¨¡C§ÚÌ¥u¬O¤£ª¾¹DRuby¬O§_¥i¥H¸Ñ¨M¬Y¨Ç¯S©wÃþ«¬ªº°ÝÃD¡C ³¡¸p©M°t¸mµ¦²¤¡CRuby on Rails¤w¸g¥X²{±Nªñ¤@¦~ªº®É¶¡¡A©Ò¥H¦b³¡¸p©M°t¸m¤è±ªº¸gÅçÁÙ¤£¦pÄvª§»y¨¥¨º¼ËÂ×´I¡C
¯Ê¤ÖÃþ®w¤ä«ù¡CRuby»·¤£¦pJava»y¨¥¾Ö¦³³o»ò¦hÂ×´IªºÃþ®w¤ä´©¡C
¯Ê¤Ö°Ó·~§ë¸ê¡C§A»Ýnªá¶O«Ü¤jªº¤O®ð¤~¯à§ä¨ìRubyªº¿Ô¸ß¡B°ö°V©Î©Ó¥]ªº¾÷·|¡A¨Ã¥B³o¨Ç¤j¦h¼ÆÁ٨䣦s¦b¡C
ÁÙ¦³¨ä¥L³\¦hÃþ¦üªº·ÀI¡CµM¦Ó¡A§A¥i¥H¦³®Ä¦a°§C¨Ï¥ÎRuby»y¨¥ªº·ÀI¡A¤ñ¦p±Ä¨úÁZ®Ä±¾¹_ªº·ÀI¹w´ú¡CÁöµM¶}µo©M³¡¸p¤j«¬RubyÀ³¥Îªº¬ÛÃöª¾ÃÑ¿n²Ö¤´µM¤Q¤À¦³¡A¦ý¬O§A¥i¥H¦b¾A·íªºµÛ²´ÂI¤£Â_¾Ç²ß·sªºª¾ÃÑ¡C¹ï©óPHP¡BPerl©MPythonµ¥LAMP¬ÛÃö»y¨¥¡A·~¬É¦³µÛ«D±`Â×´Iªºª¾ÃÑ¿n²Ö¡C¦bÀ³¥Î³¡¸p¾÷¨î¡BWeb¦øªA¾¹¥H¤Î«D¦@¥Î¥i©Ý®iµ¦²¤µ¥¤è±³£¬O¤@Pªº¡C
¦b¦Ò¼{°Ñ»P¶}µoªº¤H¤â®É¡A¤£n§C¦ô§A³q¹L¹ïû¤u¶i¦æ¤º³¡°ö°V¨Ó«Ø¥ß°ª®Ä¹Î¶¤ªº¯à¤O¡C¹ï©ó¨Ï¥ÎSpring¡BEclipse¡BHibernate©MWebWork¶i¦æJava¶}µoªº·s¤â¡A§Úªº°V½mpµe±`±`¬O¬°Ruby on Rails¶}µoªÌ«ü©w°ö°Vpµeªº¤¿¡C¦pªG§A¶}©l¨Ï¥Î¨ã¦³Ãþ¦ü©óRuby¯S©Êªº¶}µo»y¨¥¡A¤ñ¤è»¡Perl¡APython©ÎSmalltalk¡A¥¦Ì¥i¥HÀ°§U§A«Ü¦n¦a°_¨B¡C¦pªG§A¥´ºâ±q¹s¶}©l°ö¾i¤@Óµ{¦¡®vªº¸Ü¡A°ö¾i¤@ӨϥÎRubyªº¶}µoªÌ¡A»·¤ñ°ö°VJava¶}µoªÌ¨Ï¥Î³Ì·sªº¤@¤j°ï¦UºØ®Ø¬[n¦Xºâªº¦h¡C
·Q¤@·Q¨º¨Ç²³¦hªº¨ç¼ÆÃþ®w¡A¦³¦h¤Ö¬O§A¯u¥¿»Ýnªº?¦pªG§A»Ýn¤À´²¦¡³B²z¡AÂù¬Û´£¥æ¡A¨º»ò´N¨Ï¥ÎJava½sµ{¡C¦pªG±z»Ýn»PMicrosoft Officeªº§»§¹¬ü¦a¾ã¦X¡A¨º»ò´N¨Ï¥Î.NET¡C¦ý¦pªG§A·Q½s¼g§@·~¨t²Î¾ã¦X¸}¥»¡A©Î½s¼g°ò©ó¸ê®Æ®wªººñ¦âWebÀ³¥Î¡A¨º»òRuby«h¥¿¬O§A©Ò»Ýnªº¡C¨Ã¥B§A¥i¥H¸g±`½s¼gn¥Î¨ì¦ý¤âÃä¨S¦³ªº¥ô¦óµ{¦¡¡C§Ú´¿¨ó§U¤@®a¤½¥q¤u§@¡A¥L̦b¨âÓ¬P´Á¤º½s¼g¤F¦Û¤vªº¸ê®Æ®wÅX°Êµ{¦¡¡A¦ý¤´µM¤ñ§¹¦¨±M®×¨ä¥L¤u§@©Ò¥Îªº®É¶¡n¦h¡C§ÚÁÙ»{ÃѤ@ӨϥÎRuby¦b¥|¤p®É¤º×¸É²{¦³¥N½X¡A¬°µ{¦¡©Ý®iOracle¤ä´©ªº¶}µoªÌ¡CThoughtworks¦b«Üµuªº¶}µo¶g´Á¤º´Nµo§G¤FRBatis¡A§YRubyª©¥»ªº¹êÅéÃö«Y¬M®g¤u¨ãiBATIS¡C
©Ò¥H·í§A¯¸¦b¥þ§½¦Ò¼{®É¡A·|·Pı¨ì¨Ï¥ÎRubyªº·ÀI©¹©¹³Q¸Ø¤j¤F¡A¤×¨ä¬O¦bJava¨Ã¨S¦³±aµ¹§A¤@¤Á©Ò»Ý¸ê·½ªº®ÉÔ¡C¦Û¤v¯u¥¿¥h¹Á¸Õ¨Ï¥ÎRuby»y¨¥¡A¬O§â³o¨Ç·ÀI¯Ç¤J±±¨î½d³ò¤§¤ºªº³Ì¦n¤èªk¡C¨Ï¥ÎRails¶}µo¤@¨Ç¹ê»ÚªºÀ³¥Î¡A¨Ã¯¸¦b¹ê½îªº¨¤«×¤Wµo¨¥¡C¦Ó¤£nª¼¥Ø°g«H§O¤Hªº»¡ªk¡C
¯«¸Ü vs ¨Æ¹ê
Rails¬O»È¼u¡C
¤HÌ´¿¸g¦bRails±M®×¤W¥¢±Ñ¹L¡A¨Ã¥BÁÙ±N·|¦³§ó¦h¥¢±Ñªº±Ð°V¡C¦pªG§A¦b¨S¦³¨ã³Æ¥²¶·§Þ¯àªº±¡ªp¤U¨Ï¥Î¥¦¡A§A¤]±N¥i¯à±Á{¥¢±Ñªº©R¹B¡C
»P¤§Ãþ¦üªº»¡©ú¬O¡A¦pªGJava»y¨¥¤£¬O¾ÉP¥¢±Ñªº°ÝÃD®Ú·½¡A¨º»òRuby±N¦P¼Ë¤£·|¬O§Aªºµª®×¡C¤j¦h¼Æ³nÅéµo®i°ÝÃDªº¥X²{¬O»P¯S©w§Þ³NµLÃöªº¡C¦pªG§A¥¿¦b¾D¨ü¥´À»¡ARuby on Railsªº±Ä¥Î¥u¯à¥[§Ö§A¾D¨ü¥´À»ªº³t«×¡C ¿ï¾ÜRuby»á¨ã·ÀI¡A¦]¬°§AµLªk¹w´ú¨ì¿ù»~¡C ±Ä¥Î¥ô¦ó·sªº»y¨¥¡A³Ì¥Dnªº·ÀI¬O§A±N¹w´ú¨ì¿ù»~¡A¨Ã¥B¿ù»~°±º¢¦b¨Ï¥ÎªºÃþ®w¤§¤¤¡C³oªº½T¬O¤@¶µ¬Û·í«¤jªº·ÀI¡A¦ý¬O³oÓ°ÝÃD¨M¤£¶È§½©óRuby»y¨¥¤§¤¤¡C¦bJava»y¨¥ùØ¡A§A»Ýn´N¥DnÃþ®wªº¨Ï¥Î°µ¥X¨M©w¡A¨ä¤¤¥ô¦ó¤@Ó³£¥i¯à±aµ¹§A½ÆÂøÁs¸~ªº¥N½X¡C§A¬O§_·|¬°Án©ú¨Æª«¿ï¾ÜSpring©ÎEJB 3µ¥§Þ³N?Javaªº«ù¤[¼h¬[ºc¬O¤£¬O¤@Ó¥¿½Tªº¿ï¾Ü¡A©ÎªÌHibernate´N¬O³Ì²×ªº¸Ñ¨M¤è®×?Ãö©óWeb MVC¤À¼hªº¥¿½T¿ï¾Ü¬O¤°»ò¡A¬O³v¨B°I¸¨ªºStruts®Ø¬[¡AÁÙ¬O¨ä¥L§ó©ö¥Îªº®Ø¬[?
¦bRuby»y¨¥¤§¤¤¡A¿ï¾ÜWeb¶}µo®Ø¬[«h¬Û¹ï²³æ³\¦h¡C§A±N«Ü¥i¯à»PRails¤@°_¤u§@¡C»y¨¥°ÊºAªº¯S©Ê¦P¼Ë¦U¼h¤§¶¡ªºµ²ºc§ó¬°Â²¤Æ¡A³q¹L¯S©wªº¬ù©w¨Ó¨Ï±o¶}µo°t¸m¤ñJava¹ê²{§ó¬°©ú´·¡C
¬°Java¶µ¥Ø©Û¶Ò¤H¤âÁ`¬O§ó¬°®e©ö¡C
Java¾Ö¦³¼Æ¶qÃe¤jªº¶}µoªÌ¸sÅé¡A¦ý¬O¶}µoªÀ°Ï¤§¶¡¦³µÛ¥¨¤jªº¤Àª[¡C¦pªG§A·Q¨Ï¥Î¤@Óºî¦XªºJava¤u¨ã¶°¡A§Aªº¿ï¾Ü¬O¤Q¤À¦³ªº¡C§Y¨Ï§A¿ï¾Ü¤F¹³Spring³o¼Ëªº¬y¦æ®Ø¬[¡A§Aªº¹Î¶¤¥²¶·ÁÙn¾Ç·|¨Ï¥Î°w¹ïµ¹©w±M®×©Ò»Ýªº¦UºØÃþ®w¡C¦b³oºØ±¡ªp¤U¡AJavaªº®Ö¤ß¤O¶q¡A¹L¦hªº¨ç¼ÆÃþ®w¡A±N·|µ¹¶µ¥Ø±a¨Ó°Æ§@¥Î¡C¬Û¤Ï¡A¤j³¡¤ÀªºRuby¶}µoªÌ³£ª¾¹DRails®Ø¬[¡C¦¹¥~¡A§A³q±`»Ýn§ó¦hªºJava¶}µoªÌ¥h³B²zÃþ¦üªº¥ô°È¡C¦³®É¡A©Û¶ÒJavaªº¶}µo¤Hûn®e©ö±o¦h¡C¦ý¦³®É¡A±¡ªp¤]¨Ã¤£¬O³o¼Ë¡C
RailsµLªk©Ý®i¡C
Ruby on Rails¨ä¹ê¦³«Ü¦nªº©µ®i©Ê¡C¥¦ªº½w¦s¼Ò«¬«D±`±j¤j¡A¨Ã¥B«D¦@¥Îªº¬[ºc¦bLAMPªÀ°Ï¤¤¦h¦¸³QÃÒ©ú¬O«D±`¦³®Äªº¡C¹ê»Ú¤W¡A§Ú̪¾¹DRuby on Rails§¹¥þ¥i¥H¾AÀ³¸û¤j«¬À³¥Îªºn¨D¡C§Ṳ́£ª¾¹DRuby on Rails¬O§_¥i¥H©Ó¨ü¤j³W¼ÒªºÀ³¥Î³¡¸p¡C¨S¦³©T¦³ªº¬[ºc¨Ï§Ú¬Û«H³o¬O¤@±ø¦ºJ¦P¡C¹ï©ó¨å«¬ªºÀ³¥Î¡AÁ`¤§¿ù»~ªº¼ç¥ñ´Á¬O¦s¦b©ó¸ê®Æ®wºÝ¡C
Railsªº¾ã¦X¿ï¶µ¤Q¤À¦³¡C
Rails¹ï©ó°ò©óReSTªºWebªA°È¦³µÛ¨}¦nªº¤ä´©¡CRuby¦P¼Ë³q¹LJRuby¶µ¥Ø´£¨Ñ¹ï©óJVMªº¤ä´©¡A¥H¤Î´£¨Ñ¹ï©ó·L³nªºCLR¹B¦æ®Éªº¤ä´©¡C¦P®ÉRuby¤]´£¨Ñ¤F¨}¦nªº®ø®§¶Ç¿é¤ä´©¡C³Ì«á¡A¬°¶µ¥Ø¿ï¾Ü³Ì¦nªº¤u¨ã±N·|À°§U§A©l²×³B©ó¨}¦nªºª¬ºA¡CÀu¨qªº¶}µo¹Î¶¤¥i¥H¦bJava©MRuby±M®×¤W¦P®ÉÀò±o¦¨¥\¡C
Á`µ²¡G§A¥i¥H©Ó¾á¤°»ò¼Ëªº¨¤¦â?
¦pªG§A¥¿¦b¦Ò¼{¨Ï¥ÎRuby¡A¨º»ò¦b§A¨Ãä±N·|¦³«Ü¦h¦³¥Îªº¸ê°T¡C»P¨ä¥L¦P®É¦b¦³®Ä¨Ï¥ÎJava©MRubyªº¶}µoªÌ¥æ¬y¡C¾\ŪÃö©ó¶}µo®Ø¬[ªº¸ê®Æ¡C¬d§ä±qJava¨ìRubyªº¾E²¾¸ê®Æ¡C¦pªG§A¨Ã¤£·Q©ñ±óJava¡A¥u¬O·Q´M§ä¦Ð¶q¯Åªº¶}µoÅéÅç¡A¨º»ò¥hÁA¸Ñ¤@¤U¨º¨Ç¥i¥H¬°§A±a¨Ó§ó¦h¬ÛÃöÅéÅ窺¶µ¥Ø¡A¤ñ¦p»¡RIFE¡BJMatter©ÎWicket¶µ¥Ø¡C¦pªG§A»{¬°Ruby¥i¯à¬O¤@Ó¦nªº¿ï¾Ü¡A¨º»òn¯d¤ß¥H¤Uªº«ØÄ³¡G
¬°¶µ¥Ø¿ï¾Ü¦X¾Aªº¤u¨ã¡CRuby on Rails¨Ã¤£¬O»È¼u¡AROR¬O¤@Ó°w¹ï¥H¸ê®Æ®w¬°«á»Oªº°ª«×ºë²ªºWebÀ³¥Î¶}µoÀô¹Ò¡C»P·sªº¸ê®Æ®w¼Ò¦¡°t¦X¸û¦n¡A©ÎªÌ§A¥i¥H³q¹LÅܧó¨Ó¾AÀ³Railsªº¦UºØ©T¦³ÀuÂI¡C
²Ó¤ßpµe¶}µo¹Î¶¤ªº¼ö¨¶¥¬q¡C§A¤£»Ýn¦bMonster.com¯¸ÂI§ë©ñ¼s§i¨Ã¦b¤T¤é¤§¤º¬°±M®×©Û¶Ò»ô¥þ¶}µo¤Hû¡C¦ý§A¥i¯à»Ýn¦Ò¼{°ö°V§A³¡¤À©Î¥þ³¡ªº¶}µoªÌ¡A¨Ã¥B©Û¶Ò´XÓ³»¦yªºRails¶}µoªÌ¡A©Î¬O½Ð¨D¬Y¨Ç±M®×¿Ô¸ß¨ÓÀ°§U§A§â±M®×±Ò°Ê¡C
ÁA¸Ñ§A¨Ï¥Î¶Ç²Î¤è¦¡ªºµ²¦XÂI¡C³q±`¡A±M®×¤¤³ÌÀY¯kªº³¡¤À¬O©w¸q»P¥~³¡¨t²Îªº¥æ¤¬¡C§A³ÌªìÃÒ©ú·§©Àªº¤u§@»Ýn»P¬Y¨Ç±µÄ²ÂI¥æ¤¬¡A¦Ü¤Ö¬On©ú½T§A¦b¦ó³B¹ï¶µ¥Ø·Pı¨ìº¡·N¡C
¦pªG§AÁÙ¬O¤£½T©w¡A¨º»ò°µ¤@Ó¥ý¦æªÌ¡A©Î¬O¿í±q«O¦u¬£ªºÆ[ÂI¡C½w¸Ñ·ÀI³Ì¨Îªº¤èªkÁ`¬OÀu¨qªº§PÂ_¯à¤O¡C
Ãö©ó§@ªÌ
Bruce Tate©~¦í¦b¼w§JÂÄ´µ¦{ªº¶ø´µ¤B¡A¬O¤@¦ì¤s¦a¦Û¦æ¨®©M¾ó¥Ö¸¥·R¦nªÌ¡A¦P®É¤]¬O¨âӫĤlªº¤÷¿Ë¡CBruce¤w¸g¼¶¼g¤F9¥»½sµ{¤è±ªº®ÑÄy¡A¨ä¤¤¥]§t¨â¥»Rubyªº®ÑÄy¥H¤Î¤¥»Java¬ÛÃöªº®ÑÄy¡CBruceÁÙ¬ORapidRed¤½¥qªº³Ð©l¤H¡A¤½¥q±Mª`©ó¥]§tRuby©MRails¦b¤ºªº¦Ð¶q¯Å¶}µo§Þ³N¡A¨Ã´£¨Ñ¶}µo¡B¸ê°T©M°ö°Vµ¥·~°È¡CBruce¬O¤@¦ì¥@¬É½d³ò¤º¼s¨üºÙÆgªºÀu¨qºt»¡®a¡Bµ{¦¡®v¡B°ö°V®v¥H¤Î§Þ³NÅU°Ý¡C
¹ê¥Î¬ÛÃö·j´M: av °Q½× ·|¦Ò ¨® ªá ati ¤ô §ë¸ê