Dedian  
          -- 關(guān)注搜索引擎的開發(fā)
          日歷
          <2006年4月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456
          統(tǒng)計(jì)
          • 隨筆 - 82
          • 文章 - 2
          • 評(píng)論 - 228
          • 引用 - 0

          導(dǎo)航

          常用鏈接

          留言簿(8)

          隨筆分類(45)

          隨筆檔案(82)

          文章檔案(2)

          Java Spaces

          搜索

          •  

          積分與排名

          • 積分 - 66094
          • 排名 - 813

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

           

          Follow is some guy's complaint for Java programming...
          somehow, it is true, but only true. I'd like to say that no language is perfect...

          Quote:

          Java is a poor programming language.

          There, I said it. I've been using Java since it first became generally available and my opinion of it has, if anything, lessened over the years. Just off the top of my head, the major problems include:

          Enforcing a Single Paradigm
          Object oriented techniques provide some powerful mechanisms for managing dependencies between components of a software system, but they are not the only useful techniques. Languages that support multiple paradigms, including functional approaches, are much more powerful.
          Limited Object Model
          Actually, the term "single paradigm" above is overstating the case. Java is a partial paradigm language, supporting only a subset of OO. Single inheritance of implementation (prohibiting mix-ins) and no support for multiple dispatch are significant restrictions.
          Not only is Java's object model limited, it is inconsistent. Consider int vs. Integer for just one example.
          Bondage & Discipline
          Some programmers will argue in favor of restrictions like single inheritance as enforcing the "right" way to develop software. Those programmers are welcome to tie themselves up and hand Duke a riding crop, but I want a language that empowers developers, not one that constrains them.
          Generics
          The implementation of generics in 1.5 is what one would expect from a partial-paradigm language: a large increase in complexity in exchange for minimal benefit.
          No Destructors
          Resource Acquisition Is Initialization (RAII) is a very useful pattern that can only be implemented clumsily in Java.
          Verbosity
          Java is verbose. Java is painfully verbose. Java is incredibly, unnecessarily, excrutiatingly painfully verbose. Part of this verbosity is due to its type system. A significant additional influence is the requirement to declare exceptions and the proliferation of try/catch blocks.
          Lack of Expressiveness
          Java's verbosity and limited object model make it an inexpressive language. These problems could be ameliorated if it were possible to manipulate the language somehow, but Java doesn't provide support for Lisp-like macros. Or C-like macros. Heck, it doesn't even have typedef.
          Given the ever increasing complexity in each release, Java is well on its way to becoming the COBOL of the noughties.
          Nothing New
          The most damning criticism of Java is that it doesn't progress the state of the art. When Alexander Stepanov was asked about his use of Java, his response was "For the first time in my life, programming in a new language did not bring me new insights." Juxtapose that with Alan Perlis' famous quote: "A language that doesn't affect the way you think about programming, is not worth knowing."

          Despite these issues and many others, Java does have one saving grace: support for mobile code. Jini is a truly innovative technology for developing large, distributed, mission-critical systems. Retrieving proxies or entire services at runtime is only possible because Java classes can be serialized and dynamically loaded.

          The ability to build scalable, resilient, performant, and extensible service oriented architectures without the need for SOAP, UDDI, and WSDL makes up for a multitude of sins.

          posted on 2006-04-19 02:13 Dedian 閱讀(187) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
           
          Copyright © Dedian Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 德惠市| 德清县| 庆安县| 曲阳县| 静安区| 吴桥县| 全南县| 屯昌县| 黄山市| 祁东县| 平谷区| 富裕县| 襄城县| 深圳市| 息烽县| 连平县| 安阳市| 阿城市| 襄汾县| 南宫市| 额尔古纳市| 泰兴市| 安徽省| 定日县| 锦屏县| 渝中区| 鸡泽县| 惠水县| 类乌齐县| 久治县| 准格尔旗| 崇礼县| 克拉玛依市| 台东县| 当雄县| 乃东县| 杭锦旗| 松溪县| 漳州市| 祁阳县| 长沙县|