Java has been very successful on server side. Java is flourishing on client side,but deployment and integration are blocking it from further thriving.
A few years ago, java was notorious for its ugly and sluggish graphical user interface. Since JDK1.5 release, complaints about user interfaces seem fading. But Java is still far from flourishing on client application. Two major reasons, I think, are blocking java from further thriving is application deployment and desktop integration.
Many of my friends are complaining that it is very hard to deliver their java desktop applications to end users. The first question is dreadful nightmare of downloading and installing JRE. Another question is the conflicts between different JRE versions. Applications developed in java emerged a lot in recent years. They are developed in different time and compatible to different JRE. These java applications require different version of JRE. This usually results in massy jre enviroment on a machine. Another question is these application cannot use a same JVM.
Jre installation is becoming more and more bloat. At java's very early stage, there is only one set of java called jdk. Later, with bloating of java library, java is divided into three major categories: j2me, j2se and j2ee. And now it is time to divide them into more refined grains. For example, why not split j2se into three types: small sized, medium sized and large sized. By division, we can provide more refined grain installation. Some application especially deployed using java web start can download small sized package, and lazy-loading those required class on demand.
Another question about java deployment is java versioning. Isn't a way that we can update our jre from 1.5 to 1.6 gradually, without downloading a completely new jre installation? Why do we need to several jre of different versions installed on one machine? ect.
Java desktop integration is another big problems that keeps java away from client application. If an application cannot interact well with native desktop application, it cannot solve the so-called data isolation problem. Nowadays, it is very clear that integration is the trend that every desktop application should follow. Applications that interact with other application, eg. input data from other application or output data to be processed by other application, can be more competitive the others with less integrations.
Unforuntately, at the very beginning java is designed as WORA language, highly abstract from native OS. If java wants to thrive on client side, it has to reconsider the WORA conception. IMO, WORA should be kept at different level. At the core of java, we should keep it. But outside that, why not fit java into different OS, providing OS specific library and API? Desktop application naturally should target a specific OS platform. And people who are making desktop application are most probably producing their software targeting specific platform. If Java does not want to loose the market of client side, it needs to fit the trends.
JDIC is not rigidly the conception of integration. It is just bigger AWT components. They still keeps the platform independent APIs. My sugguestion to java integration is to divide client java into different types of java according to major platform.
Mustang seems to be striding to this direction. But the pace is not so big. It is high time for us to have revolutionary reform on Java.
分享到:
相关推荐
从目前产业互联网发展的大趋势来看,云计算、大数据、区块链、物联网和人工智能领域会释放出大量的开发岗位,而Java语言在这些领域都有一定的应用,所以未来在产业互联网阶段,Java语言依然会是最为流行的编程语言之...
1走入并行世界 1.1何去何从的并行计算 1.2你必须知道的几个概念 1.3并发级别 1.4有关并行的两个重要定律 1.5回到java:jmm 1.2你必须知道的几个概念 1.3并发级别 1.4有关并行的两个重要定律 1.5回到Java:JMM 实战...
通常我们会有这样的需求,...至于那个线程何去何从,由具体的代码实现决定。 isInterrupted(),用来判断当前线程的中断状态(true or false)。 interrupted()是个Thread的static方法,用来恢复中断状态,名字起得额
java安卓源码分享网站 Android 高级面试 最新更文: 写给Android的一封信 ...各大培训市场也不再培训Android,作为开发Android的我们该何去何从? 其实如果你技术深度足够,大必不用为就业而忧愁。每个
各大培训市场也不再培训Android,作为开发Android的我们该何去何从? 其实如果你技术深度足够,大必不用为就业而忧愁。每个行业何尝不是这样,最开始的风口,到慢慢的成熟。Android初级在2019年的日子里风光不再...
Java基础学习,练手项目,适用于Java初学者。
《实战java高并发程序设计》源码整理联系作者十三的java的学习交流QQ群: 881582471 , 658365129(已满)相关文章书籍封面目录第1章走入并行世界1.1何去何从的并行计算1.1.1忘掉那该死的并行1.1.2可怕的现实:摩尔...
各大培训市场也不再培训Android,作为开发Android的我们该何去何从? 其实如果你技术深度足够,大必不用为就业而忧愁。每个行业何尝不是这样,最开始的风口,到慢慢的成熟。Android初级在2019年的日子里风光不再...
《实战Java高并发程序设计》笔记和源码笔记《实战Java高并发程序设计》中有很多代码范例,适合初学者通过实践入门并发编程,这本书有个问题就是前面的代码都用JDK7,第六章开始又用JDK8了笔者精心制作相关笔记并整理...