Skip to content

Commit 54e3220

Browse files
authored
Merge pull request #133 from JohnLCaron/readmeEdits
Update readme
2 parents 518fc8d + ec1f9e1 commit 54e3220

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

Readme.md

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# netchdf
2-
_last updated: 5/14/2025_
2+
_last updated: 5/17/2025_
33

44
This is a rewrite in Kotlin of parts of the devcdm and netcdf-java libraries.
55

@@ -20,7 +20,18 @@ By focusing on read-only access to just these formats, the API and the code are
2020
In short, a library that focuses on simplicity and clarity is a safeguard for the huge investment in these
2121
scientific datasets.
2222

23-
### Why do we need an alternative to the standard reference libraries?
23+
### Why do we need another library besides the standard reference libraries?
24+
25+
Its a huge advantage to have independent implementations of any standard. If you dont have multiple implementations, its
26+
very easy for the single implementator to mistake the implementation for the actual standard. Its easy to hide problems
27+
that are actually in the standard by adding work-arounds in the code, instead of documenting problems and creating new
28+
versions with clear fixes. For Netcdf/Hdf, the standard is the file formats, along with their semantic descriptions. The API
29+
is language and library specific, and is secondary to the standard.
30+
31+
Having multiple implementations is a huge win for the reference library, in that bugs are more quickly found, and
32+
ambiguities more quickly identified.
33+
34+
### Whats wrong with the standard reference libraries?
2435

2536
The reference libraries are well maintained but complex. They are coded in C, which is a difficult language to master
2637
and keep bug free, with implication for memory safety and security. The libraries require various machine and OS dependent
@@ -58,7 +69,7 @@ open-source developers, and hopefully some of them will be willing to keep this
5869

5970
We are aiming to be within 2x of the C libraries for reading data. Preliminary tests indicate that's a reasonable goal.
6071
For HDF5 files using deflate filters, the deflate library dominates the read time, and standard Java deflate libraries
61-
are about 2X slower than native code. Unless the deflate libraries get better, theres not much gain in trying to make
72+
are about 2X slower than native code. Unless the deflate libraries get better, there's not much gain in trying to make
6273
other parts of the code faster.
6374

6475
Its possible we can use Kotlin coroutines to speed up performance bottlenecks. TBD.
@@ -161,7 +172,7 @@ local to the variable they are referenced by.
161172
#### Compare with HDF5 data model
162173
* Creation order is ignored
163174
* We dont include symbolic links in a group, as these point to an existing dataset (variable)
164-
* Opaque: hdf5 makes arrays of Opaque all the same size, which gives up some of its usefulness. If theres a need,
175+
* Opaque: hdf5 makes arrays of Opaque all the same size, which gives up some of its usefulness. If there's a need,
165176
we will allow Opaque(*) indicating that the sizes can vary.
166177
* Attributes can be of type REFERENCE, with value the full path name of the referenced dataset.
167178

0 commit comments

Comments
 (0)