From my reading of project coin and the whats new in Java 9 posts on the internet the main purpose of Project coin as I understand it is modularity. the ability to deprecate some older modules in replace of new ones, to be able to update java more incrementally, that is you can just update one specific module without updating the whole java stack.
In deployment it would allow for the distribution of a smaller footprint as only required core and libraries used would be shipped.
Is this it? Have I captured it in a nutshell or missed something key behind the goals moving forward?
And if I have is there benefit to big java projects like Eclipse to this modularity?
Yes the core improvement is in modularity, also Java 9 is expected to include a lightweight JSON API to facilitate the inclusion of JSON documents and data streams in Java programming.
It is also expected to improve the API for controlling and managing operating system processes, there are changes in cache admin in order to improve the performance and more things we will see hopefully at the beginning of January 2016
Project Coin was the analysis performed to determine what small changes should be made to Java for Java 7. The project investigating modularity in Java is called Project Jigsaw.
From memory of a conference talk I attended earlier this by Mark Reinhold these are the aims of Project Jigsaw:
1) Reduce the footprint of Java so it can more easily be run on platforms with limited resources. The current version of Java has I think 3 different possible configurations that can be deployed, each containing more than the previous, but if you want just one class from one of the bigger bundles then you need to bring in the whole bundle.
Modality will allow you to pick and choose which modules to deploy, meaning much less code will be required for any given application.
2) Performance. By reducing the number of classes it becomes easier to search the classpath for the one you want. More than that, Project Jigsaw will replace jar files* (which are basically zip files) with a propietry format that will be optimised for the sort of access the JVM needs. This will also improve performance.
Core Java will use this new format (e.g things like rt.jar will be replaced), but end users like us may not have access to that format. Jars aren't being deprecated.
3) Security. This was probably the most important change given the bad press Java has had in recent years. Java's current security model is seriously flawed because it operates on an opt-in basis. Basically if you are writing a piece of sensitive code for core Java you protect it by putting a call in to the security manager and asking it to restrict access to you. According to Mark, the majority of the security flaws in Java recently came about because a programmer forgot to register with the Security Manager, meaning nothing stopped malicious code accessing something sensitive.
Project Jigsaw will turn things on its head my making security an opt-out mechanism. By default no class will be able to access any other class. In order to access code in other classes the programmer of the other class will have to declare that access is permitted. I don't know exactly how this will work, or whether this will apply only to core Java or to all code.
It will have to be backwardsly compatible with previous versions of Java though, so I think Mark said a parameter to the JVM could switch it back to the previous security model if needed.
Anyway, that was all from memory. The project Jigsaw page on Oracles website will be more informative.