×

Loading...

Topic

This topic has been archived. It cannot be replied.
  • 工作学习 / IT杂谈 / are JAVA applications slow?
    本文发表在 rolia.net 枫下论坛Hi, Jabber,

    Although I have many years of experiences in C++, I am a novince in JAVA. But the more I learn JAVA, the more I doubt why JAVA is so hot. So I would like to get advices from you and other JAVA spectialists.

    What I can see about JAVA 's advantages over other programming languages is only its portablity. that is, its plantform independence.

    But its plantform independence forces it to be compiled to bytecode and use the JAVA virtual machine to interprete it at runtime. this fatally makes all JAVA programs very slow. Statistically, it is said JAVA applications will be about ten times slower than its c++ counterparts. So I think JAVA is perhaps suitable for user interface when it is usered over internet. But for the complex bussiness logic, can JAVA be fast enough to be adapted to the requirements of real life applications?

    By the way, In my opinion, JAVA(EJB, RMI) don't have new concepts. they only incorporate a lot of available techniques which have been in CORBA, COM for a long time.

    JAVA is hot only because it can be used by non-microsoft ally headed by IBM to suppress Microsoft. So I would rather say JAVA is a commercial tool created by the giants. We have to follow because it really creates a huge amount of job opportunities, otherwise we could not survive in our professional lives.

    Above is my image about JAVA. I would like to hear opinions from you JAVA professionals. Thanks in advance.更多精彩文章及讨论,请光临枫下论坛 rolia.net
    • 90% of your points-of-view are right....
      本文发表在 rolia.net 枫下论坛Yes, Java is slow.

      It is hot for some reasons.

      1) In some projects, speed is not so important. For instance, in the internet,
      network bandwidth predetermines the performance. Absolute performace is meaningless in a big system.

      2) C/C++ is faster. However, this does not mean that projects implemented in C/C++ have good performance. Many C/C++ projects are messy because of architecture probelms.

      3) Java is easier to implement. I guess you are a good C/C++ programmer. However,
      can you assure all of your colleagues are
      good C/C++ programmers? It is desperately difficult for people to build a robust C/C++ application. Frankly speaking, I don't think most of present C/C++ programmers are qualified--- they can produce bugs only!

      4) It is natural for EJB to assemble CORBA and COM. In passing, I can point out that C# looks like Java. The fact is that people always create new stuff on the basis of other's work. DCOM is constrainted on Windows. Have you ever heard that some big companies use Windows as servers?
      Microsoft stuff is inexpesive and suitable for small companies, but I don't think it can become the first choice of companies such as Amazon.com.

      5) Personally, I am not Microsoft bashing. I show strong respect for those who work on
      DCOM, COM++... It is meaningless for me to judge who is good and who is poor. Although I am VJ++ bashing, I take other Microsoft technologies as serious things. I don't criticise them because I an no expert in these things.


      6) There is an English phrase called "speed freak". Speed freaks put "spead" up to ultimost position. This is not reasonable.
      No matter how fast the languge is, people are prone to create pathological projects.
      The speed of a languge is important, but it is not the only factor. Simply using a fast langauge cannot lead to a fact application.


      7) Java is not a language. The right statement is " Java is both a language and a platform". So we should talk about Java technology, not Java language. C/C++ is only a language. This is a big difference.
      Becayse Java is a systematical technology set, one can benifit a lot from it.

      8) As a Java programmer, I think it is a good idea to use Java wherever it is applicable. For those mission critical tasks, we can use C/C++. One example is bank system. Even in the back system, we can find some subsystems that can be implemented using Java.

      Hope you can like Java after you understand Java's spirit. If you find you dislike Java, I suggest you embrace DCOM. DCOM guys are true prorammers.更多精彩文章及讨论,请光临枫下论坛 rolia.net
      • to say a few words more about JAVA
        本文发表在 rolia.net 枫下论坛I agree with you.

        I have used and am still using c++ to develop. I hate the memory management of c++ . Although you pay a great attention to pointers, you could not avoid memory leak and null pointers completely. That is the most important reason which makes the applications on the MS windows platform unstable.

        Actually I hate windows, it breaks down too easily. I think most windows user have the experiences of turning on and off the power several times every day.

        Your point view of "JAVA is a language and a platform" is completely right especially when J2EE platform is included.

        J2EE specifications can be regarded as a OOAD result of a general system which tackles every kind of real applications. So you can think those people who construct J2EE specifications as the most knowleagable system architects. They assigned the different kinds of job to different roles in the whole system development. they let the application servers and containers do the most complicated job, and let the component developpers do the less complicated one, and leave the application developpers do the most trival thing to assemble the building blocks. I can only say that they are such good minded people who make our IT life so easy. You don't think that making a program in a J2EE framework looks like to fill a crossword puzzle?

        But I think to design and build a non-trival applicable EJB component is a tough job.
        you should have profound domain specific knowleage. you should make your component scalable and flexiable to suit all kinds of different needs. I don't know how many commercial EJB components are on sale now and how many comananies which specialize in component production there are. Jabber, could you describe the situation in details?更多精彩文章及讨论,请光临枫下论坛 rolia.net
        • Though Java is easier to use, the market falls short of competent Java developers
          本文发表在 rolia.net 枫下论坛It is nice to see your response.

          Indeed, Java syntax is easy and clean, Java library is relatively easy to use. However, 90% (this is my estimate) of Java projects in the marcket are junk. I think you understand the essence of programming: domain knowledge, system architecture, ...

          In the marcket, there are some EJB componet packages. One of most famous is
          "theorycenter" beans. It was created by Theory Center, Inc in Boston. Now this company has been accquired by BEA Sys.
          Another example is Javlin components.
          Still more. Take Theory Center bean as an example, it has shoppingcart, lineitem, invoice, troubleticket....In principle, people can reuse them. My experience is that no one can reuse them unless they really understand EJB architecture. (By the way, EJB architcture specification has almost 600 pages and I don't think an entry level Java programmer can understand this literature.)

          The fact is that EJB container takes care of all system-level things: Resourse Management, Transaction, Security, Persistence, Concurrency, .... If you really understand these things, you have more opportunity to create a robust project.

          The market is still a chaos. Many companies use EJB technology but none of its managers and developers have a complete picture of the system. They use EJB simply because EJB is hot.


          For all the hype about EJB, pls visit www.javasoft.com.更多精彩文章及讨论,请光临枫下论坛 rolia.net
        • Discussing
          本文发表在 rolia.net 枫下论坛Below are some my words about this topic:

          1. Both Java and C++ are programming tools, Just two kinds of programming tools.
          It is hardly to say one is better than the other. In technical perspective usually people can tell which one is more suitable for a specific project, but not always. Sometimes even for a specific project it is hardly to say which one is better. Not only due to the technical reason but also due to the skills of the members of the developing team, deadline, budget, .... In some situations people have to use Java, in some other situations people have to use C++.

          2. Why Java is more hot than C++?, which is the interesting topic of #18136.
          In my view, the root reasons are that Java is easy to use (to some extent, the language part of Java can be considered as a subset of C++), and it is strong enough to meet most need of Internet related IT market, and its strong portability, and so called platform independence (xxxxxxxxxx). Java's "easy to use" is very closely related to the fact that Java does not include the memory pointer and somethings in C++.
          Java's strong portability is very closely related to the fact that Java has the unified class library(ies) and the developing framework, C++ doesn't. There exist a few of non-portable class libraries and frameworks for C++.

          3. I think it is a very strong point for Java to not include the memory pointer. But I don't think that the memory pointer in C++ is the weakness. If C/C++ did not include the momery pointer, I believe there must exists another programming language which include the memory pointer because sometimes people need to manage the absolute memory address while they don't want to use any Assembly or machine code. I don't understand why Zigzag think that the pointer in C/C++ makes the applications on the MS windows platform unstable. How about the applications developed with C++ on other platforms? If someone has to use C++ to write code and feel the memory pointer is an obstacle, do not hate the pointer or C++. It is him/her who has to use some tools but is not able to use them well.

          4. Java and C++ in IT just like chopsticks and spoon which help us to eat. When we eat soup it's better to use spoon. When we eat noodles it's better to use chopsticks. Sometimes both of them are OK, sometimes we have to use another tool, a straw, to suck up juice from a special container. The most people in the world today need, like, or have to eat noodles so the chopsticks are hot.更多精彩文章及讨论,请光临枫下论坛 rolia.net
          • Thanks for your expert posting.
            • I realy don't deserve this (this sentence was picked up from my Chinese to English Dictionary). What I posted merely were some empty talks. The main purpose is to practise my written English.
          • pointers in c++
            本文发表在 rolia.net 枫下论坛What you said about pointers in c++ is absolutely right. Theorectically memory leak can be avoided by careful programming and debugging. But in a complex application, even most exprienced programmer dare not declare his program is robust enough and without any bugs of memory allocation and pointers.

            I would like to say microsoft applications such as Internet explorers, visual studio can easilly break down mostly because of the memory allocation problems. Nobody can suspect the skills and knowleage of microsoft programmers, but bugs still exist
            in their commercial products.

            This brings in another question I would like to ask.

            What is the essential cause which make microsoft platform not robust and not suitable for critical applications? does windows platform has archetechture drawbacks compared to unix platform? or , microsoft always realeases unqualified products for its commerical motivations?
            If it is the latter case, shall we windows users sue microsoft for the ill quality of its products?更多精彩文章及讨论,请光临枫下论坛 rolia.net
            • More discussions
              本文发表在 rolia.net 枫下论坛Hello Zigzag,

              Thank you very much for your responce.

              1. I agree with you on that Microsoft Windows is not nough in some situations.

              2. I agree with you on that it is difficult to write perfect code for complex projects using C/C++, and that it is easier for bugs to live in codes written with C/C++.

              3. I disagree with you on that the unstability of Microsoft Windows and/or the applications which were coded with C++ on Microsoft Windows is due to C/C++ or the memory managemnet in C/C++ or the memory pointer in C/C++.

              In fact, It is possible for a programmer to wrap a pointer in C++ by a class, so that the programmer needs not to use the delete operator to clear away the garbage in the heap.

              What is the programming language(s) which was or has being used to develope Unix-like, OS/2 (Warp) and Macintosh(?) platforms? Are these platforms stable enough? If the answer is "Yes", it implies that the unstability of Microsoft Windows is not due to C/C++, or Unix-like, OS/2 (Warp) and Macintosh(?) platforms are not complex enough.

              4. But if the unstability of Microsoft Windows is not due to C/C++, a question naturely arises as you posted above: Does windows platform has archetechture drawbacks compared to unix platform? or microsoft always realeases unqualified products for its commerical motivations? If it is the latter case, shall we windows users use microsoft for the ill quality of its products?

              That's a big and an interesting question. I know there is no tax on talk big at present, so I would like to boost my courage to say: the answer is one of the two.更多精彩文章及讨论,请光临枫下论坛 rolia.net
            • Geico, a famous insurance company, usually hires many C++ consultants and then get rid of half of them.
              If you are proficient in C++, the managers at Geico will satisfy many of your requirements.

              If I am a manager, I never hire C++ people have only 1-2 year's experiences.
    • Agree! Java is another "internet stock" in Computer Language market. It is overvalued and it would disappear like most DOT COM.
      • I don't think Java will disappear like most .COM. As far as I know, every matter thing will finally change into heat energy.
      • I don't think so
        We are not dot .com, we are telecomm optical company, we are building our
        network\element management system on Java platform.
      • My 007 friend, I can bet Java won't die within 4-5 years.
        Java has its own limitations. However, it is not a brouhaha in the IT industry. Java is still evolving. I do believe Java will be replaced by some other technologies, but such technologies have not yet been invented.

        I hope you are already a Java programmer, so I can take your words more seriously.