[gdal-dev] image-io extension
Even Rouault
even.rouault at mines-paris.org
Fri Dec 10 18:41:44 EST 2010
Le vendredi 10 décembre 2010 10:27:49, Simone Giannecchini a écrit :
> Ciao Even,
> I have asked daniele to make those changes (which have not been reviewed
> yet) in order to move away from the explicit usage of Vector and HashTable
> in method signatures in favour of using the respective interfaces (List
> and Map). Daniele can add more as needed...
Simone,
I can understand that you don't like using Vector or Hashtable in the API you
expose in imageio-ext, but you can also understand that it doesn't make a very
compelling reason to take your changes in the hope that they also fit the needs
of other users of the GDAL Java bindings.
You could certainly convert the Vector into an ArrayList on your side and
"hide" that. Not ideal, but there's no technical obstacle.
The GDAL Python bindings are also well-known for not being very "pythonish" by
some aspects (and some of those aspects can be sometimes very very painful !),
but it doesn't prevent them from being used successfully by a pretty
impressive amount of people.
>
> As you mentioned this change can break old code, but it should
> make the java bindings more ... javaish :).
I'd note that what is "javaish" or not is subject to trends that evolve over
time. Sometimes it is not bad to wait for the dust to settle ;-)
And concerning :
> On the other hand GDAL is well known for the rock solid stability of
> its API
Indeed, I prefer that the bindings are stable (and sometimes expose rough
corners due to past choices). Being "javaish" isn't an aim per se.
> but yeah this "instability" would apply only to the Java
> bindings and would follow a well known practice. """
I respectfully disagree with you on this. For example, most API of the
standard Java library dating back to the Java 1.0 era haven't been removed in
Java 1.6. And by the way, neither
http://download.oracle.com/javase/6/docs/api/java/util/Vector.html nor
http://download.oracle.com/javase/6/docs/api/java/util/Hashtable.html mention
those 2 to be deprecated at all ;-)
Now, you'll certainly find other Java projects that might have different habits
of course.
Let's be realistic : interface breakage can happen sometimes. But IMHO the
reasons must be very compelling (totally broken/unusable interface). And I'd
expect a consensus on this, or at least support from a majority of users.
>
> We have other changes in the queue which we might submit to your review
> early next year, but this is another topic...
If you wish that your changes to be integrated back into GDAL, I'm afraid this
isn't the best way to proceed. It is not very efficient and enjoyable to review
a code dump without prior discussion about its rationale and main orientations
(especially when it involves API breakage). Basically, I'm just recalling a
best-practice for collaboration with any FOSS project...
>
>
> Viji , I don't think you need to use the patch you are referring to since
> that is needed for imageio-ext 1.1 which has not been released yet.
I'm afraid that the packagers of imageio-ext 1.1 will face difficult
alternatives if your patch is still needed but not applied in upstream GDAL :
- Applying your patch and thus forking from upstream GDAL as far as the GDAL
Java API is concerned ? --> Most Linux distro (including Fedora unless I'm
wrong) have a policy to stick to upstream as much as possible and only patch
for serious reasons.
- Applying a patch to imageio-ext to make it work with upstream GDAL ?
Unlikely for the same reason as above and why would they make that effort
instead of upstream imageio-ext ?
- Finding a way to have a specific version of the patched GDAL Java bindings
only used by imageio-ext ? Technically possible I guess by "duplicating" the
java bindings (both the gdal.jar + the *jni.so) and embedding a specific
version in imageio-ext package. But then, you will have to make sure they
won't conflict in case someone wants to use both imageio-ext and "official" GDAL
java bindings. I also doubt that a packager would want to go into that.
Best regards,
Even
>
> Ciao,
> Simone.
> -------------------------------------------------------
> Ing. Simone Giannecchini
> GeoSolutions S.A.S.
> Founder
>
> Via Poggio alle Viti 1187
> 55054 Massarosa (LU)
> Italy
>
> phone: +39 0584962313
> fax: +39 0584962313
> mob: +39 333 8128928
>
>
> http://www.geo-solutions.it
> http://geo-solutions.blogspot.com/
> http://www.linkedin.com/in/simonegiannecchini
> http://twitter.com/simogeo
>
More information about the gdal-dev
mailing list