Skip to content

Should we deprecate [verb]Blobentry[!] in favour of explicit [verb]VariableBlobentry[!]? #1194

@Affie

Description

@Affie

For historic reasons — variables were the only nodes that had blob entries — we had [verb]Blobentry instead of [verb]VariableBlobentry. In a call on NavAbility/NavAbilitySDK.jl#298, @dehann said that should no longer be the case. I couldn't find the decision written down, so opening this issue to formalize it and avoid any possible miscommunication. After looking at the implementation, I agree.

The reason to not have addBlobentry! == addVariableBlobentry!:

  • Julia’s multiple dispatch allows generic addBlobentry!(node, entry) to work, but other languages may not support this pattern; explicit names like addVariableBlobentry! are encouraged for multi-language use.
  • We can export addVariableBlobentry! for API stability and clarity, while keeping addBlobentry! public for advanced Julia users (see discussion).
  • This separation helps avoid accidental misuse, especially with by-reference mutations.
  • Variables do not receive special treatment; applying the same explicit naming pattern (e.g., getFactorBlobentry, getVariableBlobentry) across all node types makes the API more consistent and intuitive for users.

The same logic will be implemented in [verb]Bloblet[!] (although, no deprecation is needed as it is new functions).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions