Hi there,
We all know Java. Many love it, some dislike it, other actually hate it... and if they knew its weaknesses and flaws as I know some of them, well, they'd pity all the Java developers for choosing such a fragile platform and language...
So basically , before you thought I hate Java, the thruth is just the opposite - check this blog's name :) - but I admit that Java has some veeeery bad treats and design flaws.
But why am I talking about Java flaws in a posting called "Java 7 new features" -- well , because they(the guys behind Java) try to address some of these problems , I'm also going to point some of them to you..
This list is not ordered by me - everywhere I look these features are presented in this order. I'll keep it that way for consistency.
Feature: 64/32 bit pointers support
-- why store 32bit pointers in 64bit space, when you don't need it. The JVM will be more agile and not create empty spaces in the pointers, so less space will be required, which will help the traffic more than a local system with gigabytes of RAM. Performance boost.
Feature: Garbage-first Garbage Collection
- kills the young fast-dying generation first. and preserves objects that have survived the wipe a few times.
Result: more GC options and strategies -- performance boost.
Feature: dynamic languages in JVM
-- All can agree that Dynamic languages have big future ahead of them and that's a good reason that Java should try to adopt them and try to run them natively on a JVM. Thus making the JVM something like a universal VM for different kinds of languages. Imagine the freedom to combine different languages and techniques easily with native support and not some simulators.... no performance problems ... no interoperability problems... I really hope this is going to be implemented very professionally.
Added support for lambda functions, which could revolutionize some known patterns in the Java world - creation of an anonymous class for an interface like MouseListener and so on - now you can create a lambda implementation, pass it as an argument and inside it can be executed. This will make our Java a more interesting place. The anonymous-class design that was being forced because of the lack of such a feature and it's not intuitive at all. Let's see where this will get us.
Feature: Java modularity - Project Jigsaw
This project, in my opinion, will be an improvement, which will improve our Java experience. But what exactly is the problem? What do you mean with "Java modularity" ? Java is already modular, some will say... Well, it isn't.
Just check your local JRE installation and see in the \lib\ directory the rt.jar (rt = runtime). Notice the size - using latest JDK 1.6 Update 21, the rt.jar is around 47 MB.
Yeah, 47 MB and that's a module... yeah right. Nice design, guys! Many classes must be written with lots of lines to fill those 47 MB and believe me - these 47MB in rt.jar are all classes. Who wants to say how many millions of code...
But why when I only use java.net and java.lang should my JVM also load SWING and java.beans and javax.xml ... The sad reason is that all of them are all TIGHTLY coupled...
Somehow, somebody let it all loose control and everybody started pushing shit in this .jar file... well it works, so who cares? It's not modular... again, who cares? You can't easily extract a piece of it and place it elsewhere. You can't manage your JVM RAM requirements because of required modules being all stick together and you can't separate them.
Image that you can modify your JVM depending on your business case !
Well, project JIGSAW is trying to solve exactly this problem - separating all swing, applet etc modules into separate sub-projects and decomponentizing the rt.jar into several (hundred?) jar files.
I imagine something like a ( JVM + OSGi ) ... yeah :)
I wish the developers good luck, because of the issues that could arise, and I think it's not a trivial job.
Remember they also have to maintain the backwards operability somehow...
...
I see that this post has become very long, so I'm going to continue it later.
Feel free to comment, because my view on a topic could be very wrong, but I'd love if you start a discussion. Especially when the topic is Java :)
Leni Kirilov
Showing posts with label osgi. Show all posts
Showing posts with label osgi. Show all posts
Wednesday, September 01, 2010
Saturday, July 10, 2010
Eclipse DemoCamp 2010
Here I'm going to tell every reader what amazed me and what I think is remarkable around Eclipse DemoCamp 2010 Sofia.
---
First of all I would like to give my special thanks to the organizers who managed to stay in schedule through the whole event - all presentations were exact, question sessions, no power surge problems, comfortable hall and of course top-class food and beverages prepared for the breaks.
I was impressed that the president of the Eclipse Foundation presented its goals and its history and path for the future - very interesting indeed to hear it from the man who has seen it all from the very beginning and gave birth to something that is accepted as a standard in the modern world - open-source foundation which holds and nurtures different projects under the hood of Eclipse.
There were a few presenters whose names I cannot write, because I don't remember them (sorry) but they covered the following areas:
- RAP
- OSGi bundled application server - Virgo
- Swordfish - framework for bundled enterprise services
- Rational - IBM's CASE non-free very functional software product
- context-depended language generator plug-in for Eclipse
1. Virgo
I was most impressed by the Virgo application server which is constructed using the ideology of bundled products (like Eclipse IDE) and the ease and plugability at runtime of small software components called bundles. In that way you can turn on/off features at runtime with no downtime and manage dependencies between different components.
Also you can create very light and feature-set specific application servers who can for example support only Servlets (web container) and you don't care about EJBs or Web Services and all you need are simple security and logging for example.
The man presenter was very young Spring (now VMWare) developer who demonstrated the Virgo server
and it started very quickly and redeployed applications with just a click and no waiting or whatever...
Just amazing! - Believe me, you will find it amazing if you have to do an enterprise application and deploying it on a heavy proprietary application server like NetWeaver, whose architecture is just not modern anymore. The bundle concept is unknown to it. Nevertheless still an excellent application server.
Don't forget scalability - using bundles would be much easier to manage dependencies and physical separation and transport.
2. Context-dependant language generator plug-in for Eclipse
There was an amazing demo of a framework which lets you easily define your own language and reserved words for it. After that you can easily create an Eclipse project specific for your new language and even have the editor validate your syntax and semantics!
The presenter Kiril did a great job and capture the audience - he was the winner of the Demo sessions.
3. Rational
The presenter was a guy from Croatia (sorry if I am wrong) and used not 1 but 4 presentation sessions to explain what Rational can and cannot do (actually, I think it can do everything, even prepare you a sandwich...)
So basically Rational is a CASE tool which covers all aspects of software development process:
- requirements engineering
- storing requirements and managing them
- preparing architecture
- design analysis
- bug tracker and connection to various requirements
- track exceptions with real code lines and bugs
- suggest improvements based on an exception
- complex statistics and diagrams which even the presenter was confused to explain
and many more
Believe me, if you know all the features of Rational and can use it productively you are a GOD.
Unfortunately not everybody in the audience appreciated the presenters attempt to cover high percentage of the products capabilities... His voice wasn't as clear as hoped either...
----
All in all I am very confident that I will attend the Eclipse Demo Camp next year and who knows - may be I'll present something of my own...
L.K.
---
First of all I would like to give my special thanks to the organizers who managed to stay in schedule through the whole event - all presentations were exact, question sessions, no power surge problems, comfortable hall and of course top-class food and beverages prepared for the breaks.
I was impressed that the president of the Eclipse Foundation presented its goals and its history and path for the future - very interesting indeed to hear it from the man who has seen it all from the very beginning and gave birth to something that is accepted as a standard in the modern world - open-source foundation which holds and nurtures different projects under the hood of Eclipse.
There were a few presenters whose names I cannot write, because I don't remember them (sorry) but they covered the following areas:
- RAP
- OSGi bundled application server - Virgo
- Swordfish - framework for bundled enterprise services
- Rational - IBM's CASE non-free very functional software product
- context-depended language generator plug-in for Eclipse
1. Virgo
I was most impressed by the Virgo application server which is constructed using the ideology of bundled products (like Eclipse IDE) and the ease and plugability at runtime of small software components called bundles. In that way you can turn on/off features at runtime with no downtime and manage dependencies between different components.
Also you can create very light and feature-set specific application servers who can for example support only Servlets (web container) and you don't care about EJBs or Web Services and all you need are simple security and logging for example.
The man presenter was very young Spring (now VMWare) developer who demonstrated the Virgo server
and it started very quickly and redeployed applications with just a click and no waiting or whatever...
Just amazing! - Believe me, you will find it amazing if you have to do an enterprise application and deploying it on a heavy proprietary application server like NetWeaver, whose architecture is just not modern anymore. The bundle concept is unknown to it. Nevertheless still an excellent application server.
Don't forget scalability - using bundles would be much easier to manage dependencies and physical separation and transport.
2. Context-dependant language generator plug-in for Eclipse
There was an amazing demo of a framework which lets you easily define your own language and reserved words for it. After that you can easily create an Eclipse project specific for your new language and even have the editor validate your syntax and semantics!
The presenter Kiril did a great job and capture the audience - he was the winner of the Demo sessions.
3. Rational
The presenter was a guy from Croatia (sorry if I am wrong) and used not 1 but 4 presentation sessions to explain what Rational can and cannot do (actually, I think it can do everything, even prepare you a sandwich...)
So basically Rational is a CASE tool which covers all aspects of software development process:
- requirements engineering
- storing requirements and managing them
- preparing architecture
- design analysis
- bug tracker and connection to various requirements
- track exceptions with real code lines and bugs
- suggest improvements based on an exception
- complex statistics and diagrams which even the presenter was confused to explain
and many more
Believe me, if you know all the features of Rational and can use it productively you are a GOD.
Unfortunately not everybody in the audience appreciated the presenters attempt to cover high percentage of the products capabilities... His voice wasn't as clear as hoped either...
----
All in all I am very confident that I will attend the Eclipse Demo Camp next year and who knows - may be I'll present something of my own...
L.K.
Subscribe to:
Posts (Atom)