Future in Java?For a developer, it does not make much difference, which programming language to use: they all have basically the same logic, and what can be written in one language can be re-written in any other. Therefore, selecting one particular language for a universal tool of application development is akin to selecting the English language as the primary language of the Web: it's mere tradition due to the underdevelopment of the technical means used. When there are free translation tools, a development made in any language can be reinterpreted in any other. The wave of hails for Java has been raised by the marketing department of Sun Microsystems in fight for the dominance on the Internet technologies market. The language has nothing in itself that could make it attractive. It lacks elegance and scarcity of expression; it demands much work-around programming to overcome its inherent rigidity; it is not extensible enough to import the means of expression from other languages; it does not allow any customization. When all the richness of the real world becomes reduced to a single form (a class), what else can be expected? The advocates of Java largely exploit the myth of its portability. Java is no more portable than Fortran, Basic or C++. There are numerous versions of Java, and each version works differently in Java virtual machines supplied by different companies. Of course, if all the people all over the world worked only on Sun computers and used only Sun software, there would be no compatibility problems. This idea is obvious behind the reproaches directed to Microsoft or any other "perversions" of "true" Java ("true" JavaScript, "true" HTML, etc.). No absolute portability can exist in real life, and the only trustable solution would be based on the commonality of higher-level schemas rather than their specific implementations. Once upon a time, there was an idea of Java processor, a hardware chip to interpret Java programs; this would significantly solidify the positions of Sun in the software market. Luckily, this attempts ended in nothing, since the competition between the major companies would not allow one of them to impose its own standards. The .NET approach by Microsoft is a good alternative idea, despite all its corporate limitations. Probably, some synthesis of Java and .NET could be more acceptable. Anyway, this is not the a developer's problem, except that one will have to translate one's programs from one platform to another. A good application can be designed in any environment, as well as no environment can guarantee the perfection of applied programs. Ideally, each developer should be able to use a slang of their own, with the exchange of ideas proceeding on the level of general architecture, communication protocols, shared data formats etc. There once was a bright spot in the form of the VAX VMS language definitions. Unfortunately, this was not a trend to easily commercialize, and it had no continuation. Some customization is available with C preprocessor, but it is severely limited by the necessity to use the standard header files that can be not compatible with the new language definitions. In Java, there is no preprocessor at all, and one cannot even introduce shortcuts for commonly used constructions. Personally, I would not like the future in Java. Unfortunately, with my zero market value, I can only observe the ongoing development, without any hope to ever intervene...
[Computers]
|