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或Kotlin等语言进行开发,并且可以免费获得各种开发资源。另外,由于Android的市场份额较大,对于希望通过应用赚钱的开发者,覆盖更多的用户群体意味着潜在的更大收益。 然而,对于普通用户,iOS...
Java程序员在职业生涯中可能会经历迷茫期,特别是在技术更新迅速、行业发展趋势不断变化的今天。面对这种情况,首先要明确自己的目标和现状。如果你感到迷茫,可能是因为你的工作过于关注业务实现,而忽视了技术提升...
【Java坦克大战源代码】是一个非常适合Java初学者的实践项目,它可以帮助学习者在掌握Java基础知识的同时,提升编程技能和游戏开发经验。这个项目的核心是用Java编程语言实现了一个简单的坦克战斗游戏,提供了丰富的...
java安卓源码分享网站 Android 高级面试 最新更文: 写给Android的一封信 ...各大培训市场也不再培训Android,作为开发Android的我们该何去何从? 其实如果你技术深度足够,大必不用为就业而忧愁。每个
各大培训市场也不再培训Android,作为开发Android的我们该何去何从? 其实如果你技术深度足够,大必不用为就业而忧愁。每个行业何尝不是这样,最开始的风口,到慢慢的成熟。Android初级在2019年的日子里风光不再...
《实战java高并发程序设计》源码整理联系作者十三的java的学习交流QQ群: 881582471 , 658365129(已满)相关文章书籍封面目录第1章走入并行世界1.1何去何从的并行计算1.1.1忘掉那该死的并行1.1.2可怕的现实:摩尔...
各大培训市场也不再培训Android,作为开发Android的我们该何去何从? 其实如果你技术深度足够,大必不用为就业而忧愁。每个行业何尝不是这样,最开始的风口,到慢慢的成熟。Android初级在2019年的日子里风光不再...
### Flex Builder何去何从:发展历程与未来展望 随着互联网技术的不断进步和发展,富互联网应用(Rich Internet Applications, RIA)逐渐成为了提升用户体验的重要手段之一。在这场变革中,Flex 作为一种新兴的RIA ...
"技术人员何去何从"这一主题,旨在为迷茫中的年轻人提供一些启示和指导。 首先,我们需要理解技术的广度。IT技术涵盖了编程、网络、数据库、人工智能、云计算等多个领域。每个领域都有其独特的专业知识和技能要求。...
《实战Java高并发程序设计》笔记和源码笔记《实战Java高并发程序设计》中有很多代码范例,适合初学者通过实践入门并发编程,这本书有个问题就是前面的代码都用JDK7,第六章开始又用JDK8了笔者精心制作相关笔记并整理...
其次,对于如何学习编程语言,市面上的主流编程语言包括Python、C、JAVA等。学习者需要掌握编程语言的基本语法和结构,例如变量、顺序结构、循环结构、分支结构、数组、函数、数据库存取等。现有的编程教学模式从...