öλÔÓéÀֵǼÈë¿ÚÏÂÔØ

C and Java

shang20017 Ãâ·ÑöλÔÓéÀÖ¹Ù·½appÏÂÔØÂÛ̳/2007-04-25

Ô­ÎÄÄÚÈÝÀ´×ÔÃâ·ÑöλÔÓéÀÖ¹Ù·½appÏÂÔØÂÛ̳£¬Çëµã»÷²é¿´È«ÎÄ
http://bbs.freekaoyan.com/viewthread.php?tid=129876
×î½ü·Â·ðÓÐÒ»ÖÖÂÛµ÷Ô½À´Ô½Á÷ÐУ¬¾ÍÊÇjavaÖÕ¾¿½«È¡´úC £¬Ò»Ö±ÓÃjavaËùνµÄÓŵãÀ´Ö¸ÔðC £¬¶øC ÊÇÎÒ×îϲ»¶µÄÃæÏò¶ÔÏóÓïÑÔ¡£×î½ü¿´µ½ÁËһƪÆÀÂÛ£¬ÊÇC Ö®¸¸Bjarne Stroustrup·¢±íµÄ£¬ÎÒÏëҲ˵³öÁËÎÒµÄÐÄÀï»°£¬¶ÁÀ´ÈÃÈËÐÄÇéÊæ³©¶·Ö¾°ºÑÄÇôתÌù¹ýÀ´£¬»¶Ó­´ó¼ÒÆÀÂÛ£º

Is Java the language you would have designed if you didn¡¯t have to be compatible with C?
No. Java isn¡¯t even close. If people insist on comparing C and Java - as they seem to do - I suggest they read The Design and Evolution of C (D&E) to see why C is the way it is, and consider both languages in the light of the design criteria I set for C . Those criteria will obviously differ from the criteria of Sun¡¯s Java team. Despite the syntactic similarities, C and Java are very different languages. In many ways, Java seems closer to Smalltalk than to C .

Much of the relative simplicity of Java is - like for most new languages - partly an illusion and partly a function of its incompleteness. As time passes, Java will grow significantly in size and complexity. It will double or triple in size and grow implementation-dependent extensions or libraries. That is the way every commercially successful language has developed. Just look at any language you consider successful on a large scale. I know of no exceptions, and there are good reasons for this phenomenon. [I wrote this before 2000; now see a preview of Java 1.5.]

Java isn¡¯t platform independent; it is a platform. Like Windows, it is a proprietary commercial platform. That is, you can write programs for Windows/Intel or Java/JVM, and in each case you are writing code for a platform owned by a single corporation and tweaked for the commercial benefit of that corporation. It has been pointed out that you can write programs in any language for the JVM and associated operating systems facilities. However, the JVM, etc., are heavily biased in favor of Java. It is nowhere near being a general reasonably language-neutral VM/OS.

Personally, I¡¯ll stick to reasonably portable C for most of the kind of work I think most about and use a variety of languages for the rest.

ÒÔÏÂÊÇÒëÎÄ£º

¡°Èç¹ûÈËÃÇ·ÇÒªÄÃC ºÍJavaÀ´×÷±È½Ï£¬ÎÒ½¨ÒéËûÃÇÈ¥ÔĶÁThe Design and Evolution of C £¬¿´¿´C ΪʲôÊǽñÌìÕâ¸öÑù×Ó£¬ÓÃÎÒÔÚÉè¼ÆC ʱ×ñ´ÓµÄÔ­ÔòÀ´¼ìÑéÕâÁ½ÖÖÓïÑÔ¡£ÕâЩԭÔòÓëSUNµÄJava¿ª·¢Ð¡×éËù³ÖµÄÀíÄîÏÔÈ»ÊDz»Í¬µÄ¡£³ýÁ˱íÃæÓï·¨µÄÏàËÆÐÔÖ®Í⣬C ÓëJavaÊǽØÈ»²»Í¬µÄÓïÑÔ¡£ÔÚºÜ¶à·½Ãæ£¬Java¸üÏñSmalltalk£¨ÒëÕß°´£ºÎÒѧϰJavaʱÓõÄÊÇSunµÄÅàѵ½Ì²Ä£¬ÀïÃæÇå³þµØÐ´µÀ£ºJavaÔÚÉè¼ÆÉϲÉÓÃÁËÓëC ÏàËÆµÄÓï·¨£¬ÓëSmalltalkÏàËÆµÄÓïÒå¡£ËùÒÔ¿ÉÒÔ˵JavaÓëC ÊÇòºÏÉñÀ룬ÓëSmalltalk²ÅÊÇÐÄÓÐÁéϬ£©¡£JavaÓïÑÔÏà¶Ô¼òµ¥£¬Õⲿ·ÖÊÇÒ»ÖÖ´í¾õ£¬²¿·ÖÊÇÒòΪÕâÖÖÓïÑÔ»¹²»ÍêÕû¡£Ëæ×Åʱ¼äµÄÍÆÒÆ£¬JavaÔÚÌå»ýºÍ¸´Ôӳ̶ÈÉ϶¼»á´ó´óÔö³¤¡£ÔÚÌå»ýÉÏËü»áÔö³¤Á½µ½Èý±¶£¬¶øÇÒ»á³öÏÖһЩʵÏÖÏà¹ØµÄÀ©Õ¹»òÕ߿⡣ÕâÊÇÒ»Ìõÿ¸ö³É¹¦µÄÉÌÒµÓïÑÔ¶¼±ØÐë×ß¹ýµÄ·¢Õ¹Ö®Â·¡£Ëæ±ã·ÖÎöÒ»ÖÖÄãÈÏΪÔںܴó·¶Î§ÄÚÈ¡µÃÁ˳ɹ¦µÄÓïÑÔ£¬ÎÒÖªµÀ¿Ï¶¨ÊÇÎÞÓÐÀýÍâÕߣ¬¶øÇÒʵ¼ÊÉÏÕâ·Ç³£ÓеÀÀí¡£
ÉϱßÕâ¶Î»°ÊÇÔÚJava 1.1ÍÆ³ö֮ǰдµÄ¡£ÎÒÈ·ÐÅJavaÐèÒªÀàËÆÄ£°åµÄ»úÖÆ£¬²¢ÇÒÐèÒªÔöÇ¿¶ÔÓÚ¹ÌÓÐÀàÐ͵ÄÖ§³Ö¡£¼òµ¥µØËµ£¬¾ÍÊÇΪÁË»ù±¾µÄÍêÕûÐÔÒ²Ó¦¸Ã×öÕâЩ¹¤×÷¡£ÁíÍ⻹ÐèÒª×öºÜ¶àСµÄ¸Ä¶¯£¬´ó²¿·ÖÊÇÀ©Õ¹¡£1998ÄêÇÎÒ´ÓJames Gosling£¨JavaÓïÑԵĴ´Ê¼ÈË¡ª¡ªÒëÕߣ©ÄÇÀïµÃµ½Ò»·Ý½¨ÒéÊ飬˵ÊÇÒªÔÚJavaÖÐÔö¼Ó¹ÌÓÐÀàÐÍ¡¢²Ù×÷·ûÖØÔØÒÔ¼°Êýѧ¼ÆËãÖ§³Ö¡£»¹ÓÐһƪÂÛÎÄ£¬ÊÇÊýѧ·ÖÎöÁìÓòµÄÊÀ½ç¼¶´óʦ£¬²®¿ËÀû´óѧµÄW. Kahan½ÌÊÚËùдµÄHow Java¡¯s Floating-Point Hurts Everyone Everywhere£¨¡°ÇÒ¿´JavaµÄ¸¡µãÔËËãÈçºÎΣº¦ÁËÆÕÌìϵÄܿܿÖÚÉú¡±¡ª¡ªÒëÕߣ©£¬½Ò¶ÁËJavaµÄÒ»Ð©ÃØÃÜ¡£
ÎÒ·¢ÏÖÔÚµçÊӺͳö°æÎïÖйØÓÚJavaµÄ¹Ä´µÊDz»×¼È·µÄ£¬¶øÇÒÆøÊÆÐÚÐÚ£¬ÈÃÈËÌÖÑá¡£´óËÁ½ÐÏù·²ÊÇ·ÇJavaµÄ´úÂë¶¼ÊÇÀ¬»ø£¬ÕâÊǶԳÌÐòÔ±µÄÎêÈ裻½¨Òé°ÑËùÓеı£Áô´úÂë¶¼ÓÃJavaÖØÐ´£¬ÕâÊÇÉ¥ÐIJ¡¿ñ£¬¼È²»ÏÖʵҲ²»¸ºÔðÈΡ£SunºÍËûµÄ×·ËæÕßËÆºõ¾õµÃΪÁ˶Ը¶Î¢Èí×ï¶ñµÄ¡°µÛ¹úʱ´ú¡±£¬¾Í±ØÐëÈç´Ë×Ô´µ×ÔÀÞ¡£µ«ÊÇÎêÈèºÍÆÛÕ©Ö»»á°ÑÄÇЩϲ»¶Ê¹Óò»Í¬±à³ÌÓïÑԵijÌÐòÔ±±Æµ½Î¢ÈíÕóÓªÀïÈ¥¡£
Java²¢·Çƽ̨Î޹أ¬Ëü±¾Éí¾ÍÊÇÆ½Ì¨¡£¸úWindowsÒ»Ñù£¬ËüÒ²ÊÇÒ»¸öרÓеÄÉÌҵƽ̨¡£Ò²¾ÍÊÇ˵£¬Äã¿ÉÒÔΪWindows/Intel±àд´úÂ룬Ҳ¿ÉÒÔΪJava/JVM±àд´úÂ룬ÔÚÈκÎÒ»ÖÖÇé¿öÏ£¬Äã¶¼ÊÇÔÚΪһ¸öÊôÓÚij¸ö¹«Ë¾µÄƽ̨д´úÂ룬ÕâЩ´úÂë¶¼ÊÇÓë¸Ã¹«Ë¾µÄÉÌÒµÀûÒæ³¶ÔÚÒ»ÆðµÄ¡£µ±È»Äã¿ÉÒÔʹÓÃÈκÎÒ»ÖÖÓïÑÔ£¬½áºÏ²Ù×÷ϵͳµÄ»úÖÆÀ´±àд¿É¹©JVMÖ´ÐеijÌÐò£¬µ«ÊÇJVMÖ®ÀàµÄ¶«Î÷ÊÇÇ¿Á񵯮«ÏòÓÚJavaÓïÑԵġ£ËüÒ»µãÒ²²»ÏñÊÇͨÓõÄ¡¢¹«Æ½µÄ¡¢ÓïÑÔÖÐÁ¢µÄVM/OS¡£
˽ÏÂÀÎÒ»á¼á³ÖʹÓÿÉÒÆÖ²µÄC ×÷´ó²¿·Ö¹¤×÷£¬Óò»Í¬µÄÓïÑÔ×÷ÓàÏµĹ¤×÷¡£
£¨"Java is not platform-independent, it is the platform"£¬B. SµÄÕâ¾äÆÀÓï¶ÔÓÚC Óû§ÓÐןܴóµÄÓ°Ï죬ÒëÕßÔÚ¹úÍâµÄ¼¸¸öÐÂÎÅ×éÀï¿´µ½£¬ÓÐЩC ¸ßÊÖÉõÖÁ°ÑÕâ¾ä»°×÷Ϊ×Ô¼ºµÄÇ©Ãûµµ£¬ÒÔ±íÃ÷¶ÔJavaµÄ̬¶ÈºÍÊÄËÀº´ÎÀC µÄ¾öÐÄ¡£Êµ¼ÊÉÏÓкܶà³ÌÐòÔ±²»¹âÊǰÑ×Ô¼ºÏ²°®µÄÓïÑÔµ±³ÉÒ»ÖÖ¹¤¾ß£¬¸üµ±³ÉÒ»ÖÖÐÅÑö¡£¡ª¡ªÒëÕߣ©¡±


---------------------------------
ºÃÌû£¬ÎÒ¶¥ÁË

---------------------------------
Ò»Ö±ÒÔÀ´ºÜϲ»¶c

---------------------------------
good !I take it.
but I love C language.
---------------------------------
ËÑË÷¸ü¶àÏà¹ØÖ÷ÌâµÄÌû×Ó: ÂÀ·ïôã Ç廪 ϰÌâ ÓïÑÔ ½Ì³Ì »ù´¡ ±àÖø
»¶Ó­À´µ½Ãâ·ÑöλÔÓéÀÖ¹Ù·½appÏÂÔØÍøwww.freekaoyan.com
---------------------------------
·Ç³£¸ÐлÄãÃÇÂ¥Ö÷

Ïà¹Ø»°Ìâ/

  • ÁìÏÞʱ´ó¶îÓÅ»Ýȯ,Ïí±¾Õ¾Õý°æöλÔÓéÀֵǼÈë¿ÚÏÂÔØöλÔÓéÀÖ¹Ù·½appÏÂÔØ!
    ´ó¶îÓÅ»Ýȯ
    ÓÅ»ÝȯÁìÈ¡ºó72СʱÄÚÓÐЧ£¬10ÍòÖÖ×îÐÂöλÔÓéÀֵǼÈë¿ÚÏÂÔØ¿¼Ö¤Ààµç×Ó´òÓ¡öλÔÓéÀÖ¹Ù·½appÏÂÔØÈÎÄãÑ¡¡£º­¸ÇÈ«¹ú500ÓàËùԺУöλÔÓéÀÖ¹Ù·½appÏÂÔØöλÔÓéÀֵǼÈë¿ÚÏÂÔØ¿Î¡¢200¶àÖÖÖ°Òµ×ʸñöλÔÓéÀֵǼÈë¿ÚÏÂÔØ¡¢1100¶àÖÖ¾­µä½Ì²Ä£¬²úÆ·ÀàÐͰüº¬µç×ÓÊé¡¢Ìâ¿â¡¢È«Ì×öλÔÓéÀÖ¹Ù·½appÏÂÔØÒÔ¼°ÊÓÆµ£¬ÎÞÂÛÄúÊÇöλÔÓéÀÖ¹Ù·½appÏÂÔØ¸´Ï°¡¢¿¼Ö¤Ë¢Ì⣬»¹ÊÇ¿¼Ç°³å´ÌµÈ£¬²»Í¬ÀàÐ͵IJúÆ·¿ÉÂú×ãÄúѧϰÉϵIJ»Í¬ÐèÇó¡£ ...
    öλÔÓéÀֵǼÈë¿ÚÏÂÔØÓÅ»Ýȯ ±¾Õ¾Ð¡±à FreeÒ¼°Û·ÖÑ§Ï°Íø 2022-09-19
öλÔÓéÀÖ(xinhui)¹Ù·½ÍøÕ¾_öλÔÓéÀÖappÏÂÔØÈë¿Ú