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

          導航

          常用鏈接

          留言簿(8)

          隨筆分類(45)

          隨筆檔案(82)

          文章檔案(2)

          Java Spaces

          搜索

          •  

          積分與排名

          • 積分 - 65579
          • 排名 - 817

          最新評論

          閱讀排行榜

          評論排行榜

           

          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 閱讀(182) 評論(0)  編輯  收藏

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


          網(wǎng)站導航:
           
           
          Copyright © Dedian Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 西城区| 灯塔市| 台中县| 涟水县| 晴隆县| 葵青区| 黔南| 本溪| 渝中区| 大竹县| 寻乌县| 博罗县| 霍林郭勒市| 新泰市| 资溪县| 原平市| 牟定县| 松滋市| 贡山| 华安县| 固安县| 乐山市| 景宁| 金门县| 万载县| 苍梧县| 武威市| 杭州市| 会理县| 洛川县| 疏附县| 康乐县| 布拖县| 谢通门县| 科尔| 新龙县| 云霄县| 沂南县| 台南县| 大方县| 舞阳县|