A Package is consisted of nodes. It is the smallest individual thing you can build in ROS and it is the way software is bundled for release.
Nodes are the units that perform the computation and are connected with each other through a network of streaming channels.
We create them using many languages as long as this language has the dedicated client library of ROS.
As an example, for a package that control a robot motion, it could be consisted of 3 nodes, one for reading sensors “A”, another one for sending commands for actuators “B” and the third for the control algorithm it self “C”. The control algorithm node “C” reads the sensors by communicating with the node “A” and pass the control action to the node “B” for execution.