I'm not quite sure they are underused, but that's a relative judgment. Streams took a while to get right in node, and even now they're a <i>little bit</i> clunky. Not terrible, but not "pick it right up and run with it" easy. (If you want to use them, you probably should look at Mississippi <a href="https://www.npmjs.com/package/mississippi" rel="nofollow">https://www.npmjs.com/package/mississippi</a> because that simplifies a lot of common tasks.)<p>AFAICT there used to be more energy in the community for them. Gulp.js was conceived as more powerful build pipeline that used streams (<a href="https://github.com/gulpjs/gulp" rel="nofollow">https://github.com/gulpjs/gulp</a>), and that's the last time I remember anybody getting psyched about streams as "more elegant" than a nonstream version (in that case, Grunt).<p>Now, I think people tend to reach for streams when there's a performance-based reason for it, since streams can do things like faster time-to-first-byte, and less memory overhead.