In simplest words, Gulp is a task runner. It’s a toolkit that automates time-taking tasks.
You call it whatever you deem fit. The one characteristic that remains intact is that its primary purpose is automation.
What is a “Task Runner”?
Gulp is primarily used to do stuff that one usually does manually, for example, optimizing images, compiling Sass, refreshing browser page etc.
These kinds of actions can be built up as independent tasks.
You take these tasks and have Gulp automatically run them. This the reason Grunt and Gulp are called “task runners”.
Piping
Gulp handles the file operations differently, and that is one of the most significant differences between Gulp and other task runners.
Gulp passes a data stream from one to the next plugin without really writing that stream in any temporary file between the tasks.
This is known as streaming or “piping”.
Hence, with piping, you can take a file’s set and run the files through a plugin or a group of plugins.
Data Streams
Gulp uses data streams, unlike other task runners that write temporary files to the disk.
Hence, the file content is stored and conserved in a buffer.
It then passes on from one plugin to another until it reaches its last destination. The stream goes throw some modifications in between these plugins.
At last, you can minify it or write it to a disk. This is essentially how the piping works.