
The Julia Programming Language
3 HN recommenders · recommended in 5 months, 2018–2022
19:12 · 7.4K views · Jul 17, 2017
Jiahao Chen's JuliaCon 2017 talk argues that vector transposes should be taken seriously in type systems and linear algebra libraries. It explains why treating vectors as matrices causes trouble in languages.
Strongly recommended for anyone working with vectors for its clear take on how they should be treated in types.
5 comments from Hacker News
> Purist test The short answer is. Yes, but if your PL treats it that way you will wind up in trouble [0]. The long answer is: this video (but seriously take the time to watch this, it's fantastic). [0] Separately C- and often C-derived languages/frameworks like numpy also treat them as 1xN matrices, but that's a nearly tabs-vs-spaces level religious war, with actual consequences. I think a lot of people got confused when translating andrew ng's early octave-based ML coursera course (Nx1) to python (1xN), and also in the back and forth between math ML papers which use Nx1 and python.
Addendum: Also really good is this video about how one should treat vectors and matrices in a type system. Has good lessons for python, R, and Matlab. Seriously anyone who does anything with vectors should watch this. this video
I happened to be the other way, I learned first that matrices were linear transformations and, being thick-headed, it took me a really long time to understand that matrices could also be used as "dumb excel spreadsheets". there's a fantastic historiography of linear algebra and why we're stuck in this situation here: this video
If you want a great video on the topic, see this video Or equivalently [LINK] There are basically two self-consistent choices for the design of linear algebra libraries.
If you will do a lot of matrix stuff you might want to listen to this video taking Vector Transpose Seriously