FilePaths: File system abstractions and why we need them
2019-07-23, 11:30–11:40, Room 349

Have you ever found yourself writing code that special cases different local and remote filesystems?
FilePath types are a great way to encapsulate filesystem specific logic and provide a common abstraction for interacting with various types of paths (e.g., posix, windows, S3, FTP).

We'll start by discussing filesystem libraries for other languages (e.g., pathlib for Python, Data.FilePath for Haskell, Paths in Rust) and how such abstractions may uniquely benefit from multiple dispatch in Julia.
I’ll review some examples of how we (myself and my colleagues) have used FilePathsBase.jl to simplify our application logic and avoid ambiguous code paths.
Finally, we'll conclude with an open discussion around how these abstractions can be better incorporated into the larger Julia ecosystem.