[Java lista] netbeans 5.5 rc1
Peter Fabian
Peter.Fabian at Sun.COM
2006. Okt. 4., Sze, 14:38:15 CEST
Auth Gábor wrote:
> Halihó!
>
> Peter Fabian -Sun ONE ezt írta:
>
>> 5.5 RC1
>>
>
> Egy kérdés: a 6.0 miben tud többet, mint az 5.5? Egyátalán minek kell
> 5.5, ha 6.0 is van lassan? :)
>
-az 5.5 fókusza: javaEE1.5, ejb3, webservices, uml stb stb.
-6.0 jövő év közepére tervezett ha jól emlékszem, néhány dolog ami
olvasható a 6-ról (egy lapra összeömlesztett feature lista még nincs):
-Matisse roadmap:
http://form.netbeans.org/roadmap.html
-a másik nagy dolog az új editor infrastruktúra lesz
http://blogs.sun.com/jlahoda/entry/new_features_in_netbeans_ide
erről is beszélt Tim Boudreau a
http://www.artima.com/lejava/articles/future_of_netbeans.html
cikkben, ebből idézek:
"In 6.0, we're migrating to a new API for parsing a Java syntax tree.
That is based on the new Java Compiler API spec [JSR 199], which is a
canonical API for interacting with the Java compiler and with the data
the compiler produces. It gives you access to the guts of the [Java]
compiler, and especially to what the compiler's parser does. That allows
us to integrate /javac/ directly into the IDE. It sits underneath the
editor, and makes possible many new editor features. One thing you can
do, for example, is to compile code on the fly as you type. Using the
parser from the Java compiler also gives you really accurate information
about the code, and allows you to build code refactoring tools that are
more powerful than what's available in other tools today.
Speaking of refactoring, you may have heard of the Jackpot project that
defines a pattern language for matching in a Java syntax tree and then,
more important, for doing transformations on that tree. Jackpot came out
of SunLabs, and is now available in development builds of NetBeans.
The implications of these tools are pretty profound, because they change
the meaning of how you deal with backwards compatibility, and how much
of an issue backwards compatibility is. Suppose that I'm maintaining a
library, and need to make some backward-incompatible change. I paint
myself into a corner where I can't fix a bug without breaking some part
of the API, for instance, by making something that was legal, illegal in
the new version. Nobody designs their APIs perfectly from the get-go, so
those situations happen.
With these tools, I can write a simple transform that anybody using this
library can run against their code, and that transformer will update
their code to the new version. I'm not talking about a shell script, but
something built around stuff that's in Java source files, something that
does that update correctly, and is pretty fool-proof. For instance, we
are shipping a rule that converts |StringBuffer|usages to
|StringBuilder|, and another one that updates |StringTokenizer| to
|Scanner|.
Jackpot has the potential to do rather large refactorings correctly, and
it actually brings down the cost of writing transformations or
refactorings rather, makes those refactorings reasonable even in
esoteric situations. Just the other day, I was contemplating how to
refactor existing Swing code that uses |ActionListener|s on UI controls
to turn all those |ActionListener|s into |Action| objects, move the
right code to the right places, and end up with something better
factored, easy to understand, and compilable. That sort of thing nobody
would have attempted prior to Jackpot---it would have just been too
ambitious and too hard to get right for the amount of value such a tool
would bring.
There are still cases where subtleties and mismatches prevent you from
automatical update. For ninety-nine percent of the cases, you can write
a transformer that removes the upgrade pain. And the transformer can
flag even that remaining one percent. Sometimes the replacement for
something that was deprecated or removed before may not have a direct
equivalent for a method, if that method was rarely used. For that
situation, deciding the right thing is up to the user. For all those
transformations, you can see a preview and diff for every change that is
to be made. So it's not just refactoring, it's code re-engineering.
Almost every piece of software is an evolving beast. Being able to
integrate these transforms, and actually have upgrading not be painful
in the long-term, is going to make a big difference in the way people
code and in how people design."
--
Peter Fabian
AIM:fabianpetergabor
Sun Instant Messaging: pf120168 at sun.com
http://blogs.sun.com/fp
További információk a(z) Javalist levelezőlistáról