Sl1mb0 commented on issue #1797:
URL: https://github.com/apache/iceberg-rust/issues/1797#issuecomment-3458136783

   I will share my thoughts as someone who has used `iceberg-rust`
   
   ## Current Challenges
   
   One complaint I have is that the Rust implementation relies on the Java 
implementation as a reference; as opposed to just implementing the spec in 
Rust. As a result there are a lot of legacy constructs in the `iceberg-rust` 
crate that are (in my view) java-flavored; so trying to wield the crate within 
a Rust project isn't ergonomic at all, and because of that its easy to shoot 
yourself in the foot.
   
   There are a lot of complexities to iceberg. The metadata serialization, 
handling, and validation planes are very tightly coupled in `iceberg-rust`. As 
an example trying to implement something related to serialization would then 
require you to understand the handling & validation as well. Not bad in a 
vacuum, but because the Java implementation serves as the guiding reference - I 
need to then look at Iceberg java code as a Rust dev in order to understand the 
context for why things are done the way they are in `iceberg-rust`, whilst also 
trying to understand the actual underlying behavior of the implementation. This 
creates friction for new contributors that I frankly just don't think should be 
there.
   
   ## What am I willing to do?
   
   I'm not sure. Personally the biggest roadblock to my ability to contribute 
is the community agreeing that the above is even a problem. I am sure the core 
maintainers have valid reasons for using the Java implementation as a 
reference, but it's something that does not make sense to me AT ALL considering 
that the entire purpose of having an iceberg specification is to allow 
implementations to be agnostic in how they uphold it's requirements. In my view 
there are several fundamental problems with the crate as a result of using the 
Java impl as the reference.
   
   I would also like to point out that I lack a lot of historical/contextual 
iceberg knowledge; so while I may view the above as a problem I accept that the 
community might not agree with me for their own valid reasons.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to