[sip-comm-dev] Moving to Java 1.5 (in alpha3?)


#1

Hello all,

Many people have been asking if and when we are planning to remove the
Java 1.4 backwards compatibility requirement (BCR). I've mentioned in
previous mails that most of the SIP Communicator developers are just as
eager to get there as anyone else, and now I think that we could almost
put a date on the move.

I have just added "Moving to Java 1.5" as a milestone for the alpha3
release. One of the main reasons for not doing this earlier is the
reports about compatibility problem with JMF, however, now that we are
working on replacing it with FMJ (another alpha3 milestone), we could
afford to drop that 1.4 BCR.

What does this mean in terms of time?

We will probably start preparing the alpha2 release right after the end
of GSoC so that we could roll it out until the end of October (the idea
is to be able and add as much GSoC code in it as possible). Right after
this, two things are going to happen:

1. Developers would be allowed to use J1.5 semantics such as generics
for example.

2. We would have to go through most of the existing services and make
sure that we make uniform use of J1.5 semantics (or in other words - do
a face lift on existing code).

By the alpha3 release, which should be out _at_most_ 6 months after
alpha2 (but preferably before the end of February 2008), we should be a
happy 1.5 project.

Right now these are only milestones in the roadmap and we could change
and adjust them as we find fit, so I'd be very interested to hear any
comments on the issue.

Cheers
Emil

···

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#2

Hi all,

Emil Ivov <emcho@sip-communicator.org> a écrit :

Hello all,

Many people have been asking if and when we are planning to remove the
Java 1.4 backwards compatibility requirement (BCR). I've mentioned in
previous mails that most of the SIP Communicator developers are just as
eager to get there as anyone else, and now I think that we could almost
put a date on the move.

good news :slight_smile:

I have just added "Moving to Java 1.5" as a milestone for the alpha3
release. One of the main reasons for not doing this earlier is the
reports about compatibility problem with JMF, however, now that we are
working on replacing it with FMJ (another alpha3 milestone), we could
afford to drop that 1.4 BCR.

I have heard that the media compatibility issue doesn't exist on 1.6. Is that true ? If yes why not make a big jump ? Personnaly, I use JDK 1.6 (compiling with source set to 1.4). I have tried to set the source to 1.6 and haven't seen any big issue. Have I missed something ?

What does this mean in terms of time?

Well, perhaps I don't perceive the big work behind the move. It looks for me as a "simple" modification of the 1.4 source indication in the build.xml to 1.5 (or 1.6) :o) . Sure I am wrong ...

We will probably start preparing the alpha2 release right after the end
of GSoC so that we could roll it out until the end of October (the idea
is to be able and add as much GSoC code in it as possible). Right after
this, two things are going to happen:

1. Developers would be allowed to use J1.5 semantics such as generics
for example.

I like that.

2. We would have to go through most of the existing services and make
sure that we make uniform use of J1.5 semantics (or in other words - do
a face lift on existing code).

Hmm I don't understand. Does this means that we have to use generics and, replace old iteration loop with "foreach" style wherever it is possible ? Why ? The old fashion is still compatible and perhaps some developpers love vintage. Recently, a fellow answered me that he is not sick when I asked if he knows generics ...

++ Sympho

···

By the alpha3 release, which should be out _at_most_ 6 months after
alpha2 (but preferably before the end of February 2008), we should be a
happy 1.5 project.

Right now these are only milestones in the roadmap and we could change
and adjust them as we find fit, so I'd be very interested to hear any
comments on the issue.

Cheers
Emil

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#3

Hi Sympho, Emil and the rest of the world,

Moving away from Java 1.4 -> great news! :wink: It was clear that at some stage of the development this it going to happen - I'm really glad that the required libraries are mature enough to allow this.

I personally adore generics (back from the time of C++ templates). Apart from being a matter of personal preference, generics help address most of the problems related to collections being too general. The foreach loop Sympho gives as an example is a nice construct, but it's even nicer to know that whenever you have an Iterator<String> you can get only Strings out of it. I think that's what Emil was talking about - moving towards code that uses the supplied functionality as much as possible for the sake of better code reuse and compile-time errors verification (versus big bad ClassCastExceptions floating around during program execution). The backside is that not everyone is proficient in Java generics, and that sometimes the code looks weirder (with the < and > scattered around) - I think that Java API is an excellent example that these kinds of constructs actually help clear the code out. Furthermore all modern main-stream languages have these features, so I think it's almost impossible for a (modern;) programmer to have never used them.

I think that Java 1.6 has some very nice features compared to 1.5 (great speed enhancements, improved GUI, integrated profiler, etc.) but as far as I know it's not available for all target platforms (it's not available for Mac OS for example). Anyway, I think that migrating to Java 1.5 would give us enough work to keep us busy. Moreover, all major changes (in fact I think that ALL changes) that are going to be made in the sake of making the code truly Java 1.5 compatible are going to remain unchanged in the next step when we're going to migrate to Java 1.6/1.7.. (some day..). Furthermore, one may use Java 1.6's VM to execute SIP Communicator on the supported platforms and benefit from some of the enhancements right away.

Regards<Best> Alex;

···

Le 27 août 07 à 14:07, symphorien.wanko-tchuente@ulp.u-strasbg.fr a écrit :

Hi all,

Emil Ivov <emcho@sip-communicator.org> a écrit :

Hello all,

Many people have been asking if and when we are planning to remove the
Java 1.4 backwards compatibility requirement (BCR). I've mentioned in
previous mails that most of the SIP Communicator developers are just as
eager to get there as anyone else, and now I think that we could almost
put a date on the move.

good news :slight_smile:

I have just added "Moving to Java 1.5" as a milestone for the alpha3
release. One of the main reasons for not doing this earlier is the
reports about compatibility problem with JMF, however, now that we are
working on replacing it with FMJ (another alpha3 milestone), we could
afford to drop that 1.4 BCR.

I have heard that the media compatibility issue doesn't exist on 1.6. Is that true ? If yes why not make a big jump ? Personnaly, I use JDK 1.6 (compiling with source set to 1.4). I have tried to set the source to 1.6 and haven't seen any big issue. Have I missed something ?

What does this mean in terms of time?

Well, perhaps I don't perceive the big work behind the move. It looks for me as a "simple" modification of the 1.4 source indication in the build.xml to 1.5 (or 1.6) :o) . Sure I am wrong ...

We will probably start preparing the alpha2 release right after the end
of GSoC so that we could roll it out until the end of October (the idea
is to be able and add as much GSoC code in it as possible). Right after
this, two things are going to happen:

1. Developers would be allowed to use J1.5 semantics such as generics
for example.

I like that.

2. We would have to go through most of the existing services and make
sure that we make uniform use of J1.5 semantics (or in other words - do
a face lift on existing code).

Hmm I don't understand. Does this means that we have to use generics and, replace old iteration loop with "foreach" style wherever it is possible ? Why ? The old fashion is still compatible and perhaps some developpers love vintage. Recently, a fellow answered me that he is not sick when I asked if he knows generics ...

++ Sympho

By the alpha3 release, which should be out _at_most_ 6 months after
alpha2 (but preferably before the end of February 2008), we should be a
happy 1.5 project.

Right now these are only milestones in the roadmap and we could change
and adjust them as we find fit, so I'd be very interested to hear any
comments on the issue.

Cheers
Emil

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#4

Hi guys,

(inline)

Alexander Pelov wrote:

Hi Sympho, Emil and the rest of the world,

Moving away from Java 1.4 -> great news! :wink: It was clear that at some
stage of the development this it going to happen - I'm really glad
that the required libraries are mature enough to allow this.

I personally adore generics (back from the time of C++ templates).
Apart from being a matter of personal preference, generics help
address most of the problems related to collections being too
general. The foreach loop Sympho gives as an example is a nice
construct, but it's even nicer to know that whenever you have an
Iterator<String> you can get only Strings out of it. I think that's
what Emil was talking about - moving towards code that uses the
supplied functionality as much as possible for the sake of better
code reuse and compile-time errors verification (versus big bad
ClassCastExceptions floating around during program execution).

Yes this is exactly what I meant. The one place where we'd definitely
need to do this (i.e. force generics wherever possible) is inside all
services.

Other than that, I don't think we'd need to replace every loop with a
foreach and use all possible J1.5 goodies.

The
backside is that not everyone is proficient in Java generics, and
that sometimes the code looks weirder (with the < and > scattered
around) - I think that Java API is an excellent example that these
kinds of constructs actually help clear the code out. Furthermore all
modern main-stream languages have these features, so I think it's
almost impossible for a (modern;) programmer to have never used them.

I think that Java 1.6 has some very nice features compared to 1.5
(great speed enhancements, improved GUI, integrated profiler, etc.)
but as far as I know it's not available for all target platforms
(it's not available for Mac OS for example).

Yes good point! And it's not available as a Debian package either.

Anyway, I think that
migrating to Java 1.5 would give us enough work to keep us busy.
Moreover, all major changes (in fact I think that ALL changes) that
are going to be made in the sake of making the code truly Java 1.5
compatible are going to remain unchanged in the next step when we're
going to migrate to Java 1.6/1.7.. (some day..). Furthermore, one may
use Java 1.6's VM to execute SIP Communicator on the supported
platforms and benefit from some of the enhancements right away.

Exactly, and we are actually already distributing our windows installers
with a 1.6 JRE.

Cheers
Emil

···

Regards<Best> Alex;

Le 27 ao�t 07 � 14:07, symphorien.wanko-tchuente@ulp.u-strasbg.fr a
�crit :

Hi all,

Emil Ivov <emcho@sip-communicator.org> a �crit :

Hello all,

Many people have been asking if and when we are planning to remove
the
Java 1.4 backwards compatibility requirement (BCR). I've mentioned in
previous mails that most of the SIP Communicator developers are
just as
eager to get there as anyone else, and now I think that we could
almost
put a date on the move.

good news :slight_smile:

I have just added "Moving to Java 1.5" as a milestone for the alpha3
release. One of the main reasons for not doing this earlier is the
reports about compatibility problem with JMF, however, now that we
are
working on replacing it with FMJ (another alpha3 milestone), we could
afford to drop that 1.4 BCR.

I have heard that the media compatibility issue doesn't exist on
1.6. Is that true ? If yes why not make a big jump ? Personnaly, I
use JDK 1.6 (compiling with source set to 1.4). I have tried to set
the source to 1.6 and haven't seen any big issue. Have I missed
something ?

What does this mean in terms of time?

Well, perhaps I don't perceive the big work behind the move. It
looks for me as a "simple" modification of the 1.4 source
indication in the build.xml to 1.5 (or 1.6) :o) . Sure I am wrong ...

We will probably start preparing the alpha2 release right after
the end
of GSoC so that we could roll it out until the end of October (the
idea
is to be able and add as much GSoC code in it as possible). Right
after
this, two things are going to happen:

1. Developers would be allowed to use J1.5 semantics such as generics
for example.

I like that.

2. We would have to go through most of the existing services and make
sure that we make uniform use of J1.5 semantics (or in other words
- do
a face lift on existing code).

Hmm I don't understand. Does this means that we have to use
generics and, replace old iteration loop with "foreach" style
wherever it is possible ? Why ? The old fashion is still compatible
and perhaps some developpers love vintage. Recently, a fellow
answered me that he is not sick when I asked if he knows generics ...

++ Sympho

By the alpha3 release, which should be out _at_most_ 6 months after
alpha2 (but preferably before the end of February 2008), we should
be a
happy 1.5 project.

Right now these are only milestones in the roadmap and we could
change
and adjust them as we find fit, so I'd be very interested to hear any
comments on the issue.

Cheers
Emil

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-
communicator.dev.java.net

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-
communicator.dev.java.net

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#5

Actually, Java6 has been in Debian (and Ubuntu) for a while now.

http://packages.debian.org/cgi-bin/search_packages.pl?keywords=sun-java6-jdk&searchon=names&subword=1&version=all&release=all

http://packages.ubuntu.com/cgi-bin/search_packages.pl?keywords=sun-java6-jdk&searchon=names&subword=1&version=all&release=all

According to the changelog it appeared in December 2006 and January
2007.

FWIW I think that moving to a minimum of 1.5 (or 1.6) is a good idea.

-Derrick

···

On Mon, 2007-08-27 at 15:25 +0200, Emil Ivov wrote:

I think that Java 1.6 has some very nice features compared to 1.5
(great speed enhancements, improved GUI, integrated profiler, etc.)
but as far as I know it's not available for all target platforms
(it's not available for Mac OS for example).

Yes good point! And it's not available as a Debian package either.


#6

Hi Derrick,

Derrick Hudson wrote:

I think that Java 1.6 has some very nice features compared to 1.5
(great speed enhancements, improved GUI, integrated profiler, etc.)
but as far as I know it's not available for all target platforms
(it's not available for Mac OS for example).

Yes good point! And it's not available as a Debian package either.

Actually, Java6 has been in Debian (and Ubuntu) for a while now.

http://packages.debian.org/cgi-bin/search_packages.pl?keywords=sun-java6-jdk&searchon=names&subword=1&version=all&release=all

http://packages.ubuntu.com/cgi-bin/search_packages.pl?keywords=sun-java6-jdk&searchon=names&subword=1&version=all&release=all

According to the changelog it appeared in December 2006 and January
2007.

Yes, I had the same comment from Enrico Marocco. It appears that I spoke
too quickly, and I am glad I was wrong. Thanks for pointing this.

Emil

···

On Mon, 2007-08-27 at 15:25 +0200, Emil Ivov wrote:

FWIW I think that moving to a minimum of 1.5 (or 1.6) is a good idea.

-Derrick

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net