Can Java become a perfect technical platform?

xiaoxiao2021-03-06  43

Foreword is like a platform for growing platforms / languages, Java makes many programmers love again. Of course, of course, this does not include those fanatical Java enthusiasts, which are good for them than .NET, LAMP or any other language or platform, but we have to face complex swings, huge EJB specifications, etc. The additional requirements of the hardware and the implementation of the change in the change of the J2ME, and so on. Throw more of these Java's weaknesses, we can say that Java is a perfect technical platform, then have Java's potential to become a perfect technical platform? This article will discuss this topic from two aspects. I will tell you in detail what is the perfect technical platform and why Java platform can become a perfect technical platform. After that, I will "avoid the weakness of the Java platform through the design optimization. Basic first, why do you care about whether Java is a perfect depth platform? Is it not very good now? No, not. I believe that when the article is over, I will show you some unfairted shortcomings in Java. Solving these shortcomings will speed up the development of the Java platform, improve the performance of the entire development platform. In short, it will make Java a real technical standard in industrial or commercial sectors - becoming a super language for programmers. . What is the perfect technical platform? Before I make further explanation, I should first define what the perfect technical standard I think is. Simply put, I think the perfect technical platform should be such a software system, which allows novice or senior developers to use, and can write simple programs to write advanced applications, it should be able to run in all hardware platforms Or on the operating system platform, and should be localized or proximate to localization. Defining the scope of this article Similar to the subject of this article, it is important to define a range in advance. First, we don't discuss any non-Java technology platform. You may think this is too narrow. I don't think so, this article is to discuss all aspects of the Java platform separately, not to compare with other language platforms. My interest is to have constructive perspective in order to improve the Java platform. If possible, I hope that the supporters of other technical platforms will be able to publish a similar article to propose them to think the perfect technical platform. In addition, I also assume that the Java language is already the best program language in various technical platforms. And I will not discuss the latest Java2 platform J2SE1.5, although I can feel some of the changes in J2SE1.5, such as "& nbspkeeping & nbspup & nbspwith & nbspthe & nbspjoneses" pointing the spear head to the C # language. A stability of a language requires at least 8 years of continuous verification to prove whether its original design is robust. Practical rows of parametric sets are obvious in JDK1.5, some of which are all extensive attention to developers, such as Autoboxing, & Nbspenumeration, and & NBSPSTATIC & NBSPIMPORTS. Java inherited a strong row from C and C , which was designed as an object-oriented language, I think this is a key to the core language and excellent platform.

Of course, this is not what advanced thinking because of the object-oriented language from the earliest Eiffel to SmallTalk, then what is the fundamental difference between Java and them? Java and those such as functional programming language like Lisp, Haskell, or SQL can be different from the language executed by semantics? Because we need to learn these languages, you can only need a manual, but don't be too happy. If a major manufacturer in a market, such as Sun, HP or Microsoft wants to take one of these languages, and develop around it Their next-generation technology platform, you will find that this language will not be updated again; I like to treat Java as a platform; actually Java as a language is only less part of the Java platform. Therefore, I will introduce important features of a perfect technical platform in the following. What is the perfect platform compared, for this topic, I can talk about it very shortly, I chose the latter. Readers who are interested in this may notice that there will be a "ily" ending behind this topic, and it is also an ilyry matrix (MATRIX). In my opinion, as a perfect technical platform should have these conditions: easy to develop, and provide multiple access (see the discussion below), which reflects it to facilitate the deployment of the customer platform; it should be a localization mode Deployment operation. Reliable performance and testability must be available. Open standard based on open standards. Does Java meet these standards? Now I have defined a series of standards and features that meet the perfect technical platform, let us see if the Java's growth process meets the above characteristics. I have to admit it to the development of the Java program is not easy. Relatively simple items are ok, but if the project grows more and more complicated, it will continue to have more and more problems. Such as J2EE applications are like this. Therefore, in the development of the project, the programmer needs to spend more time to track the underlying problem, such as the classloading problem rather than solving the actual business logic problem; there is also a headache of many proceedings (see me in the past Article To & NBSPEJB, & NBSPOR & NBSPNOT & NBSPTO & NBSPEJB?) Normally, they are all clearing a series of warning information, and EJB may want to simply spend the responsible problem, but it is not more close to persistence of persistence or business logic. Program, this is also related to the shortcomings of Java development tools, frankly, Microsoft's Visual & nbspstudio is better than Java, Java needs to learn. I have proposed a multi-level visit idea that allows developers or users to work at different levels in Java. For example, the core developers may use Emacs / VI to develop and deploy as Java-based systems in a manner, while business analysts or end users should access and modify this system by using tools such as Wysiwyg. . & nbspjava is not very easy to develop in these two aspects. Of course, Applet and JavaWeb & NbspStart technology provide a certain help in this regard. When these two technologies have their own shortcomings --- running them must configure JRE on the client installation. The & nbspjava platform wants to be stable, I don't remember when the last time I should brought me your own BUG. So if I want to make an enterprise application, I would rather choose J2EE instead of .NET. & nbspjava's application in server-side applications is stable and robust. The application performance of the Swing client is not bad but is different from the local application than the local application. Due to the resource restrictions such as mobile phones (or intelligent terminals), it is a bit extravagant from a practical perspective here using Java instead of localized development tools. Additional additional MIDP has caused performance loss at runtime than directly calling the local application. Obviously, Java has a wide range of support from the industry's main software vendors (except Microsoft).

For example, IBM, HP, Oracle has put their own technology to the Java platform, which is a good news for people who care about Java. There are more organizations and groups of plenty of energy, and they want to see Java's continuous growth and progress in all areas such as mobile devices, PCs, and servers. Advantages Where is the advantage of Java? Platform support: J2SDK can be run on any operating system and hardware platform, from financial institutions to entertainment facilities, Java can be used from scientific research to household computers. & nbspjava language specification and the Java runtime specification clearly distinguish allow researchers to generate mapping of programming by running a compiler, without having to use Java to compile binary code - that is, it can run in any virtual Machine (VM). This is very important to change the change in the Java strategy that I will mention later. & nbspjava is a platform for quite mature and stable platforms in today's enterprise-level computing and applications. Microsoft is still constantly improving their .NET, and may eventually be as good as Java or better than Java (but this is only limited to the Windows platform), but now there is still no change; in addition, there is another competition The field, that is, mobile device. Although we mentioned earlier, Java is relatively poor in saving equipment resources, but it is undeniable that it also occupies a leadership in this area. & nbspjava has also gained strong support in academia. If you study at university you will find that Java has become a preferred language of most scientific research and calculation. More and more people in the university are using Java language, more and more cutting-edge academic research fully use Java language; companies in various industries have a lot of Java programmers to develop their projects. Disadvantages Now let's take a look at the shortcomings of Java: A development organization creates a new framework and component library almost always in the existence advantage. An excellent component technology is always growing in different developers and organizations. But in this process, it makes the user (specifically the developer) is very confused. Although Sun has been busy paying, it is better to use JDO or EJB. Indeed, we must determine which one will continue to develop. Now we can make this idea to submit this idea to the JCP organization. For example, if you are a J2EE designer, can you determine which one is the perfect solution? I can't, but my point is "" The actual program is the perfect program ". There is now a view that Java is too complicated. Does any know all the knowledge of Java from all aspects of the server to PDA? As a profound language, Java is everywhere in different fields of people's lives, which inevitably brought its complexity, but this is also more worthy of developers using Java on its platform to develop different applications. One of Sun's words is "Hey, we have given you a great core technology. Now you can use it to create any development tools or robust products." Among them, it is an example. Sun own uses this technology as an academic research tool, it has little technical defect. In fact, the programming model based on JavaSpaces may be one of the simplest and most powerful technologies. The Windows family integrates a lot of cumbersome distributed client platforms. Windows technology will never avoid these shortcomings unless the Java bundled otherwise. Of course, as the Rise of .NET, Java will lose a lot of advantages in the client programming (Thick-client). I don't think SUN has put enough financial resources for Java. This brings potential hidden dangers to Java, then why should Sun should continue to invest in the Java platform? I am more happy to see SUN play a "kinderian dictator" through a lot of financial resources, which will guide Java's future through companies such as BEA, IBM, HP, rather than developers or end users. I am worried about the shake of Sun to Java.

Sun's robust and stable development indicates the continuous improvement of Java; if Sun has a problem, Java development and improvement will also be affected. The figure below shows several aspects that affect the Java technology platform. Figure 1 shows the idealized Java technology platform of the high layer. Among them, the technique controlled by Sun and its partner is shown as orange, and others do not belong to green. What shortcomings in Java have undoubtedly, I admit that the Java platform is defective, which must be pointed out. These issues and strategic and tactical recommendations will be described in detail below. About J2SE For most developers, who uses Ant as their compilation tool; who uses the JIKES compiler instead of the Javac compiler for performing efficiency. If J2SE contains Ant is not a better? How about xdoclet? The focus of the debate is that these tools should be part of the IDE rather than the core SDK, I am very happy. But I thought SUN should set these tools together to enable them to be installed on the existing SDK. Optimal products This is a painful choice. When I mentioned the current Javac, I always felt very bad when I changed the current Javac, but here I treat it as a general rule of the Java platform. The Java platform needs to be a technological authority, for example, it should be a practical technical standard. When there are two robust norms or tools, they should merge with each other. For example, a more prominent example, NetBeans-Eclipse competes between each other, we should only leave one of the best. I use Eclipse, but why we have to use two Java & Nbspide in a project, but have to make them harmonize, and can not have a merged tool for the advantages of each tool? Eclipse's SWT is superior to Swing / AWT in execution efficiency, and NetBeans has good support to JSP, which makes the developer's work easily. SUN: A consistent technical message! Think of the persistence architecture: EJB (BMP and CMP), JDO, and Hibernate. There is also a Struts and Webwork in the web architecture. These are good choices for a company. But it is hurting between them. As a system designer, I have reason to make a choice. For example, what is the ideal J2EE architecture? A simple response person "It depends on the needs", but this is evade the problem. A three-tier set of enterprise applications include display layers, business logic, and persistent layers. For those mentioned above, we should might choose one of them or may be two kinds. As a business, you will also encounter problems with the application server. I am very happy to see that there are many manufacturers' application servers support J2EE1.3 specification, but I think the preferred application server should have the following conditions: it should be able to reduce the difficulty and workload of development and meet complex tests To provide simpler group control support. Suppose I encounter a bug or simply in the process of use, the manufacturer of the application server is closed, so I should allow me to be easily ported to the new server platform according to the J2EE specification. The new specification and application implementation makers are obliged to create an application design blueprint, which is to indicate what this application is further developing. About Java's new point of view: Let everything get a simple 2002 James & nbspgosling, James & nbspgosling, talking about swing & nbspapi, whether it is for a novice or an experienced programmer Swing & nbspap like the driver of Boeing 747 passenger plane Bank - Structural complex. Talking about this, I think that solving this type of problem is the principal of Sun, JSR, and those open source projects, they should reduce the complexity of software. Whether it is specifically API, software installation mode or equipped document, etc. should be in accordance with this principle.

转载请注明原文地址:https://www.9cbs.com/read-74750.html

New Post(0)