Hi, Apache Fury Community,
I'm standardizing the API in org.apache.fury.memory.MemoryBuffer in PR
https://github.com/apache/incubator-fury/pull/1480 . This class is used
widely in fury serialization for read/write, and is the core data structure
of a Serializer:
```
class Serializer {
public void write(MemoryBuffer buffer, T value) {
}
public T read(MemoryBuffer buffer) {
}
}
```
Currently, we use short/int/long/float/double as parts of
read/write/get/put methods, for example, we use
`putInt/putLong/writeInt/writeVarInt/writeLong/readInt/readLong/...` as the
method name.
But our type system spec uses
https://fury.apache.org/docs/specification/fury_xlang_serialization_spec#data-types
instead. And the `int32/int64/float32/float64` is used widely in
golang/C++/rust.
Also the float can't be used to express float16 in java, the long can't be
used to express the uint64 in java well too.
And when it comes to python, there is only one int type for all integers,
and one float type for all float numbers.
So I am considering changing all related names in MemoryBuffer in java from
short/int/long/float/double to int16/int32/int64/float16/float32/float64.
This is a breaking change in fury, and it's not idiomic in java since
ByteBuffer uses putLong/putInt/getLong/geteInt/getShort.
Please share your thoughts in this email or in
https://github.com/apache/incubator-fury/pull/1480 . Any suggestion would
be really appreciative.
Best regards,
Chaokun Yang