On the Internet a huge number of questions and not absolutely clear articles on connection of this display to Raspberry Pi through the shift register 74HC595. And if you find something, it will be written in rare Python or Ruby language which in real life practically aren’t used. My program is written on simple C. Fast and clear to any programmer. You can use it as you want. For example, to accept а line from stdin and send it to the display. To build project you’ll need to install WiringPi library.
On display: put RW to GROUND, put VDD to Raspberry Pi 5V, connect variable resistor (10-20 kOm) like in datasheet.
On 74HC595: put OE to GND, put MR to VDD.
Do not try to read 44780! Raspberry Pi is not 5V tolerant!
Fortune cookie: Tonight's piss is tommorrow's Tang. -- An American astronaut