Threw this together for a recent forum post. Not had any disagreement with what was written so I thought it would be useful to create a Glossary FAQ. Feel free, of course, to add/correct as needed.
Nodes - in Node-RED do the hard work. They are a collection of code that typically processes an incoming "message". If you are looking at creating your own node, you also need to understand that Nodes (with a capital) are packages of code with specific structures. But we also refer to nodes (small n) as an instance of a Node - that bit is confusing unfortunately. So you install a Node package (like node-red-contrib-uibuilder for example) to Node-RED and then you drag an instance of one of the nodes (small n) defined in the package onto your flow and then deploy it.
Wires - would be the "edges" in graph theory. They connect together the nodes. "Messages" run through the wires between nodes.
Messages - are chunks of data (JavaScript Objects strictly speaking) that are passed from one node to the next (that isn't actually what really happens and there are some subtlties related to how Node.js/JavaScript works).
Flows - are simply collections of nodes and wires. There is some overloading of the term though as the word applies to all of the nodes and wires in a Node-RED instance but it is also used to describe the nodes and wires that are collected into a visual tab in the Editor.
Editor - is the UI where you do your authoring of the logic using nodes and wires. It is the administrative interface for Node-RED
Package - is a collection of files published to npmjs.org (typically). In Node-RED, it contains everything needed to define one or more nodes.
Module - is a specific programming construct used in Node.js. You "export" some stuff in your module and you "import" it elsewhere. In Node-RED it is this capability that lets NR draw together different people's nodes into a single application.