½üÄêÀ´Òƶ¯Ó¦Óÿª·¢ÕýÔÚѸËÙÔö³¤¡£ÓÐÎÞÊýµÄÒÆ¶¯WebÓ¦ÓóÌÐòÔÚ»¥ÁªÍøÉϹ«²¼£¬ËùÒÔÁË½â¹ØÓÚÒÆ¶¯¿ª·¢ÓïÑÔµÄÐÅÏ¢±äµÃÓÈÎªÖØÒª¡£ÏÂÃæ¾ÍÈÃÎÒÃÇÀ´Á˽âÒ»ÏÂһЩ¹ÅÀϵıà³ÌÓïÑÔÒ»Ö±´æÔÚµÄÔÒò¡£
µ±½ñÐí¶àÖªÃûµÄ±à³ÌÓïÑÔÒѾ¶¼·Ç³£¹ÅÀÏÁË¡£PHP ÓïÑÔ20Äê¡¢Python ÓïÑÔ23Äê¡¢HTML ÓïÑÔ21Äê¡¢Ruby ÓïÑÔºÍ JavaScript ÓïÑÔÒѾ19Ä꣬C ÓïÑÔ¸üÊǸߴï42ÄêÖ®¾Ã¡£
ÕâÊÇûÈËÄÜÔ¤Áϵõ½µÄ£¬¼´Ê¹ÊǼÆËã»ú¿ÆÑ§¼Ò Brian Kernighan Ò²Ò»Ñù¡£ËûÊÇÐ´ÖøµÚÒ»±¾¹ØÓÚ C ÓïÑÔµÄ×÷ÕßÖ®Ò»£¬Ö±µ½½ñÌìÕâ±¾Ê黹ÔÚÓ¡Ë¢×Å¡£(C ÓïÑÔ±¾ÉíµÄ·¢Ã÷Õß Dennis Ritchie ÊÇ Kernighan µÄºÏÖøÕߣ¬ËûÓÚ 2011 ÄêÒÑ´ÇÊÀ¡£)
“ÎÒÒÀÏ¡¼ÇµÃÔçÆÚ¸ú±à¼ÃǵÄ̸»°£¬¸æËßËûÃÇÎÒÃÇÒѾÂô³öÁË5000²á×óÓÒµÄÁ¿£¬”×î½ü²É·Ã Kernighan ʱËû¸æËßÎÒ˵¡£“ÎÒÃÇÉè·¨×öµÄ¸üºÃ¡£ÎÒûÓÐÏëµ½µÄÊÇÔÚ2014ÄêµÄ½Ì¿ÆÊéÀïѧÉúÈÔÈ»ÔÚʹÓõÚÒ»¸ö°æ±¾µÄÊé¡£”
¹ØÓÚ C ÓïÑԵij־ÃÐÔÌØ±ðÏÔÖøµÄ¾ÍÊÇ Google ¿ª·¢³öÁËеÄÓïÑÔ Go£¬½â¾öͬһÎÊÌâ±ÈÓà C ÓïÑÔ¸üÓÐЧÂÊ¡£²»¹ý£¬ÎÒÈÔÈ»ºÜÄÑÏëÏó Go Äܳ¹µ×ɱËÀ C£¬ÎÞÂÛËüÓжàôºÃ¡£
“´ó¶àÊýÓïÑÔ²¢²»»áÏûʧ»òÕßÖÁÉٺܴóÒ»²¿·ÖÓû§³ÐÈÏËüÃDz»»áÏûʧ£¬”Ëû˵¡£“C ÓïÑÔÈÔÈ»ÔÚÒ»¶¨µÄÁìÓò¶ÀÁì·çɧ£¬ËùÒÔËüºÜ½ÓµØÆø¡£”
±àдËùÊìϤµÄ
ΪʲôijЩ¼ÆËã»ú±à³ÌÓïÑÔÒª±ÈÆäËüµÄ¸üÁ÷ÐÐ?ÒòΪ¿ª·¢Õß¶¼Ñ¡ÔñʹÓÃËüÃÇ¡£Âß¼ÉÏÀ´Ëµ£¬Õâ½âÊÍÒѾ×ã¹»£¬µ«»¹ÏëÉîÈëÁ˽âΪʲô¿ª·¢ÈËÔ±»áÑ¡ÔñʹÓÃËüÃÇÄØ£¬Õâ¾ÍÓе㼬ÊÖÁË¡£
·Ö±ðÀ´×ÔÆÕÁÖ˹¶Ù´óѧºÍ¼ÓÖÝ´óѧ²®¿ËÀû·ÖУµÄÑо¿Õß Ari Rabkin ºÍ Leo Meyerovich »¨·ÑÁËÁ½Äêʱ¼äÀ´Ñо¿½â¾öÉÏÃæµÄÎÊÌâ¡£ËûÃǵÄÑо¿±¨¸æ£¬¡¶±à³ÌÓïÑÔʹÓÃÇé¿öʵÀý·ÖÎö¡·£¬¼Ç¼Á˶Գ¬¹ý 200,000 ¸ö Sourceforge ÏîÄ¿ºÍ³¬¹ý 13,000 ¸ö³ÌÐòԱͶƱ½á¹ûµÄ·ÖÎö¡£
ËûÃÇÖ÷ÒªµÄ·¢ÏÖÊÇÊ²Ã´ÄØ?´ó¶àÊýʱºò³ÌÐòԱѡÔñµÄ±à³ÌÓïÑÔ¶¼ÊÇËûÃÇËùÊìϤµÄ¡£
“ÕâЩÎÒÃÇʹÓõÄÓïÑÔ»¹¼ÌÐø´æÔÚÊÇÒòΪÎÒÃǾ³£Ê¹ÓÃËûÃÇ£¬” Rabkin ¸æËßÎÒ¡£“ÀýÈ磺ÌìÎÄѧ¼Ò¾Í¾³£Ê¹Óà IDL [½»»¥Ê½Êý¾ÝÓïÑÔ]À´¿ª·¢ËûÃǵļÆËã»ú³ÌÐò£¬²¢²»ÊÇÒòΪËü¾ßÓÐÊ²Ã´ÌØÊâµÄÁÁµã¹¦ÄÜ»òÆäËüÌØµã£¬¶øÊÇÒòΪÓÃËüÐγÉϰ¹ßÁË¡£ËûÃÇÒѾÓÃЩÓïÑÔ¹¹½¨³öºÜÓÅÐãµÄ³ÌÐòÁË£¬²¢ÇÒÏë±£³ÖÔ×´¡£”
»»¾ä»°Ëµ£¬Ëü²¿·ÖÒª¹é¹¦ÓÚÕâЩÓïÑÔËù´´Á¢µÄÖªÃû¶ÈÈÔ±£³Ö½Ï¸ß¡£µ±È»£¬Õâ²¢²»Òâζ×ÅÁ÷ÐеÄÓïÑÔ²»»á±ä»¯¡£Rabkin Ö¸³öÎÒÃǽñÌìÔÚʹÓÃµÄ C ÓïÑԾ͸ú Kernighan µÚÒ»´Î´´½¨Ê±µÄÒ»µã¶¼²»Í¬£¬ÄÇʱµÄ C ±àÒëÆ÷¸úÏÖ´úµÄÒ²²»ÊÇÍêÈ«¼æÈÝ¡£
“ÓÐÒ»¸ö¹ÅÀϵ쬹ØÓÚ¹¤³ÌʦµÄЦ»°¡£¹¤³Ìʦ±»Îʵ½ÄÄÒ»ÖÖ±à³ÌÓïÑÔÈËÃÇ»áʹÓÃ30Ä꣬Ëû˵£¬‘ÎÒ²»ÖªµÀ£¬µ«Ëü×ܻᱻ½Ð×ö Fortran’£¬” Rabkin ˵µ½¡£“³¤ÆÚ´æ»îµÄÓïÑÔ¸úËûÃÇÔÚ70Äê´úºÍ80Äê´ú¸ÕÉè¼Æ³öÀ´µÄʱºò²»Ì«Ò»ÑùÁË¡£ÈËÃÇͨ³£¶¼ÊÇÔÚÉÏÃæÔö¼Ó¹¦ÄÜ£¬¶ø²»»áɾ³ý¹¦ÄÜ£¬ÒòΪҪ±£³ÖÏòºó¼æÈÝ£¬µ«ÓÐЩ¹¦ÄܻᱻÐÞÕý¡£”
Ïòºó¼æÈÝÒâ˼¾ÍÊǵ±ÓïÑÔÉý¼¶ºó£¬³ÌÐòÔ±²»½ö¿ÉÒÔʹÓÃÉý¼¶ÓïÑÔµÄÐÂÌØÐÔ£¬Ò²²»ÓûØÈ¥ÖØÐ´ÒѾʵÏÖµÄÀÏ´úÂë¿é¡£ÀϵēÒÅÁô´úÂ딵ÄÓï·¨¹æÔòÒѾ²»ÓÃÁË£¬µ«ÉáÆúÊÇÒª»¨³É±¾µÄ¡£Ö»ÒªËüÃÇ´æÔÚ£¬ÎÒÃǾÍÓÐÀíÓÉÏàÐÅÏà¹ØµÄÓïÑÔÒ²»á´æÔÚ¡£
PHP: ´æ»î³¤¾ÃÓïÑÔµÄÒ»¸ö°¸Àýѧϰ
ÒÅÁô´úÂëÖ¸µÄÊÇÓùýʱµÄÔ´´úÂë±àдµÄ³ÌÐò»ò²¿·Ö³ÌÐò¡£ÏëÏë¿´£¬Ò»¸öÆóÒµ»ò¹¤³ÌÏîÄ¿µÄ¹Ø¼ü³ÌÐò¹¦Äܲ¿·ÖÊÇÓÃûÈËά»¤µÄ±à³ÌÓïÑÔд³öÀ´µÄ¡£ÒòΪËüÃÇÈÔÆð×Å×÷Óã¬ÓÃÏÖ´úµÄÔ´´úÂëÖØÐ´·Ç³£À§ÄÑ»ò×Å´ú¼ÛÌ«¸ß£¬ËùÒÔËüÃDz»µÃ²»±£ÁôÏÂÀ´£¬¼´Ê¹ÆäËü²¿·ÖµÄ´úÂë¶¼±ä¶¯ÁË£¬³ÌÐòÔ±Ò²±ØÐë²»¶ÏÕÛÌÚÒÔ±£Ö¤ËüÃÇÄÜÕý³£¹¤×÷¡£
Èκαà³ÌÓïÑÔ£¬´æÔÚÁ˳¬¹ý¼¸Ê®Äêʱ¼ä¶¼¾ßÓÐijÖÖÐÎʽµÄÒÅÁô´úÂëÎÊÌ⣬ PHP Ò²²»ÀýÍâ¡£PHP ÊÇÒ»¸öºÜÓÐȤµÄÀý×Ó£¬ÒòΪËüµÄÒÅÁô´úÂë¸úÏÖÔڵĴúÂëÃ÷ÏÔ²»Í¬£¬Ö§³ÖÕß»òÆÀÂÛ¼Ò¶¼³ÐÈÏÕâÊÇÒ»¸ö¾Þ´óµÄ½ø²½¡£
Andi Gutmans ÊÇÒѾ³ÉΪ PHP4 µÄ±ê×¼±àÒëÆ÷µÄ Zend Engine µÄ·¢Ã÷ÕßÖ®Ò»¡£Gutmans ˵ËûºÍ´îµµ±¾À´ÊÇÏë¸Ä½øÍêÉÆ PHP3 µÄ£¬ËûÃǵŤ×÷Èç´Ë³É¹¦£¬ÒÔÖÁÓÚ PHP µÄÔ·¢Ã÷Õß Rasmus Lerdorf Ò²¼ÓÈëËûÃǵÄÏîÄ¿¡£½á¹û¾Í³ÉΪÁË PHP4 ºÍËûµÄºóÐøÕß PHP5 µÄ±àÒëÆ÷¡£
Òò´Ë£¬µ±½ñµÄ PHP ÓëËüµÄ׿ÏÈ——¼´×ʼµÄ PHP ÊÇÍêÈ«²»Í¬µÄ¡£È»¶ø£¬ÔÚ Gutmans ¿´À´£¬ÔÚÓùÅÀ쵀 PHP ÓïÑ԰汾дµÄÒÅÁô´úÂëµÄµØ·½Ò»Ö±´æÔÚ×ÅÆ«¼ûÒÔÖÁÓÚÉÏÉýµ½Õû¸öÓïÑԵĸ߶ȡ£±ÈÈç PHP ³äÂú×Ű²È«Â©¶´»òûÓГ¼¯Èº”¹¦ÄÜÀ´Ö§³Ö´ó¹æÄ£µÄ¼ÆËãÈÎÎñµÈ¸ÅÄî¡£
“ÅúÆÀ PHP µÄÈËÃÇͨ³£ÅúÆÀµÄÊÇÔÚ 1998 ÄêʱºòµÄ PHP °æ±¾£¬”Ëû˵¡£“ÕâЩÈ˶¼Ã»ÓÐÓëʱ¾ã½ø¡£µ±½ñµÄ PHP ÒѾÓÐÁ˺ܳÉÊìµÄÉú̬ϵͳÁË¡£”
Èç½ñ£¬Gutmans ˵£¬Ëû×÷Ϊһ¸ö¹ÜÀíÕß×îÖØÒªµÄÊÂÇé¾ÍÊǹÄÀøÈËÃÇÉý¼¶µ½×îа汾¡£“PHPÓиöºÜ´óµÄÉçÇø£¬×ãÒÔÖ§³ÖÄúµÄÒÅÁô´úÂëµÄÎÊÌ⣬”Ëû˵¡£“µ«×ܵÄÀ´Ëµ£¬ÎÒÃǵÄÉçÇø´ó²¿·Ö¶¼ÔÚ PHP5.3 ¼°ÒÔÉϵġ£”
ÎÊÌâÊÇ£¬ÈκÎÓïÑÔÓû§¶¼²»»áÈ«²¿Éý¼¶µ½×îа汾¡£Õâ¾ÍÊÇΪʲô Python Óû§ÈÔÔÚʹÓà 2000 Äê·¢²¼µÄ Python 2£¬¶ø²»ÊÇʹÓà 2008 Äê·¢²¼µÄ Python 3 µÄÔÒò¡£ÉõÖÁÔÚÁùÄêºó£¬´ó¶àÊýÏñ Google ÕâÑùµÄÓû§ÈÔûÓÐÉý¼¶¡£ÕâÖÖÇé¿öÊǶàÖÖÔÒòÔì³ÉµÄ£¬µ«ËüʹµÃºÜ¶à¿ª·¢ÕßÔڳе£·çÏÕ¡£
“Èκζ«Î÷¶¼²»»áÏûÍöµÄ£¬”Rabkin ˵¡£“ÈκÎÓïÑÔµÄÒÅÁô´úÂë¶¼»áÒ»Ö±´æÔÚ¡£ÖØÐ´µÄ´ú¼ÛÊǷdz£¸ß°ºµÄ£¬Èç¹ûËüÃDz»³öÎÊÌâ¾Í²»ÒªÈ¥¸Ä¶¯¡£”
¿ª·¢ÕßÊÇϡȱµÄ×ÊÔ´
µ±È»£¬¿ª·¢ÕßÊDz»»áÑ¡ÔñÄÇЩ½ö½öÖ»ÊÇΪÁËά»¤ÀϾɴúÂëµÄµÄ³ÌÐòÓïÑԵġ£µ±Ì¸ÂÛµ½¶ÔÓïÑÔÑ¡ÔñµÄÆ«ºÃʱ£¬Rabkin ºÍ Meyerovich ·¢ÏÖÄêÁä½ö½öÖ»´ú±í¸öÊý×Ö¡£Rabkin ¸æËßÎÒ˵£º
ÓÐÒ»¼þÊÂʹÎÒÃDZ»ÉîÉîÕ𺳵½ÁË¡£ÕâÊÂ×îÖØÒªµÄ¾ÍÊÇÎÒÃǸøÈËÃǰ´ÄêÁä·Ö×飬ȻºóѯÎÊËûÃÇÖªµÀ¶àÉÙ±à³ÌÓïÑÔ¡£ÎÒÃÇÖ÷¹ÛµÄÈÏÎªËæ×ÅÄêÁäµÄÔö³¤ÖªµÀµÄ»áÔ½À´Ô½¶à£¬µ«Êµ¼ÊÉÏÈ´²»ÊÇ£¬25ËêÄêÁä×éºÍ45ËêÄêÁä×éÖªµÀµÄÓïÑÔÊýÄ¿ÊÇÒ»ÑùµÄ¡£¼¸¸ö·´¸´Ñ¯ÎʵÄÎÊÌâÕâÀï³ÖÐø²»±äµÄ¡£ÄúÖªµÀÒ»ÖÖÓïÑԵļ¸Âʲ¢²»ÓëÄúµÄÄêÁä¹Ò¹³¡£
»»¾ä»°Ëµ£¬²»½ö½öÄ곤µÄ¿ª·¢Õß¼á³Ö´«Í³£¬ÄêÇáµÄ³ÌÐòÔ±Ò²»áÈϿɲ¢²ÉÓùÅÀϵıà³ÌÓïÑÔ×÷ΪËûÃǵĵÚÒ»ÃÇÓïÑÔ¡£Õâ¿ÉÄÜÊÇÒòΪÕâЩÓïÑÔ¾ßÓкÜÓÐȤµÄ¿ª·¢¿â¼°¹¦ÄÜÌØµã£¬Ò²¿ÉÄÜÊÇÒòΪÔÚÉçÇøÀ↑·¢Õß¶¼ÊÇϲ°®ÕâÖÖ¿ª·¢ÓïÑÔµÄÒ»»ïÈË¡£
“ÔÚÈ«Çò³ÌÐòÔ±¹Ø×¢µÄÓïÑÔµÄÊýÁ¿ÊÇÓж¨ÊýµÄ£¬” Rabkin ˵¡£“Èç¹ûÒ»ÃÇÓïÑÔ±íÏÖ³ö×ã¹»¶ÀÌØµÄ¼ÛÖµ£¬ÈËÃǽ«»áѧϰºÍʹÓÃËü¡£Èç¹ûÊǺÍÄú½»Á÷´úÂëºÍ֪ʶµÄµÄij¸öÈË·ÖÏíÒ»Ãűà³ÌÓïÑÔ£¬Äú½«»áѧϰËü¡£Òò´Ë£¬ÀýÈ磬ֻҪÄÇЩ Python ¿â´æÔÚ¡¢ ÉçÇøÒ²¶Ô Python ÓïÑÔºÜÓоÑéµÄ»°£¬ÄÇô Python ÈÔ½«»á´óÐÐÆäµÀ¡£”
Ñо¿ÈËÔ±·¢ÏÖ¹ØÓÚÓïÑÔʵÏֵŦÄÜ£¬ÉçÇøÊÇÒ»¸ö¾Þ´óµÄÒòËØ¡£ËäÈ»Ïñ Python ºÍ Ruby ÕâÑùµÄ¸ß¼¶ÓïÑÔ²¢Ã»ÓÐÌ«´óµÄ²î±ð£¬µ«£¬³ÌÐòÔ±×ÜÊÇÈÝÒ×¾õµÃÒ»ÖÖ±ÈÁíÒ»ÖÖÓÅÔ½¡£
“Rails ²»Ò»¶¨ÒªÓà Ruby ÓïÑÔ±àд£¬µ«ËüÓÃÁË£¬Õâ¾ÍÊÇÉçÇøÒòËØÔÚÆð×÷Ó㬔 Rabkin ˵¡£“ÀýÈ磬¸´»î Objective-C ÓïÑÔÕâ¼þʾÍÊÇÆ»¹ûµÄ¹¤³ÌʦÍŶÓ˵‘ÈÃÎÒÃÇʹÓÃËü°É£¬’ ËûÃǾÍûµÃÑ¡ÔñÁË¡£”
ͨ¹ÛÉç»áµÄÓ°Ïì¼°ÀϾɴúÂëÕâЩÎÊÌ⣬ÎÒÃÇ·¢ÏÖ×î¹ÅÀϵĺÍ×îеļÆËã»úÓïÑÔ¶¼Óо޴óµÄ¶èÐÔ¡£Go ÓïÑÔÔõôÑù²ÅÄܳ¬Ô½ C ÓïÑÔÄØ?Èç¹ûÓкÏÊʵÄÈË»ò¹«Ë¾ËµËü³¬Ô½Ëü¾Í³¬Ô½¡£
“Ëü¹é½áΪ˴«²¥µÄ¸üºÃ˾ͺ㬔 Rabkin ˵¡£
ÒÔÉϾÍÊǾ«Æ·ÎªÄú×¼±¸µÄ¹ØÓÚһЩ¹ÅÀϵıà³ÌÓïÑÔÒ»Ö±´æÔÚÔÒòµÄÐÅÏ¢£¬Ï£Íû¶ÔÄúµÄÉú»î¹¤×÷ÓаïÖú£¬×£ÄúÉú»îÓä¿ì¡£