Hi, David
I use Mathematica for physics, mathematics, engineering, and ... most importantly ... designing and prototyping software. I write software in C, C++, Python, Clojure, Common Lisp, and many other languages, but I usually start in Mathematica, work out the design (interfaces, functions, protocols, data types), then transcribe into other languages as needed. For this kind of use, Notebooks are (usually) ideal, because I can write about my design and prove correctness results with prototypes written in Mathematica.
Occasionally, I need to collaborate on Mathematica code with other people, and that's happening now. For this kind of application, I need the Mathematica code in pure-text form, so that we can generate textual diffs in git repositories. That's where I have a need to take my Notebooks and save them out as .wl or .m files for collaboration.