Jul 9, 2025, 3:03 AM
post Julia APIs InterfaceDesign

The many functions in Base and elsewhere with a signature like foo(v::Vector, from::Int, to::Int) or bar(s::String, start::Int, end::Int. Please use a view instead. It's a cleaner API. It's easier to understand how to use it. It's usually faster. There is no need to handle the edge cases e.g. where start < end. If your implementation of substring / subarray is too slow to replace signatures like this, your implementation is bad and you need a new one.

Nice gripe/point by Jakob Nissen in the Julia Slack about targeting the right kinds of objects (not just their inputs) with your function signatures.