I think I disagree with you, but have to understand what you're arguing to be sure.
I think I disagree with you, but have to understand what you're arguing to be sure.
Moving "QUUX formatted records from BAZ mainframe to new Oracle Windows Java 7.0 Lightweight Enterprise Server" involves these things: a source, a sink and the pipe character. Your source and sink may necessarily be in Java--meh, whatever works. But now you have a decoupled framework for doing these kinds of jobs, and you haven't invested any more time or effort than you would have with your one-off, inflexible solution. And you can now stuff anything in that pipeline. And I regularly use racket for exactly this, using protocol buffers as the pipe character. It's not rocket science, it's the Unix Way. People, embrace it and free yourself from the monolithic millstone!
If everything was a service, then everything would be easy, and our tools would look a lot different. But if you can't change the world, you can at least make living in an imperfect world easy, and that's what Perl tries to do.
Everything is a service, if you make it so. A component is a service, offering the functionality of its interface. The 'wc' tool is a service--its interface is its command-line switches. And you're right, when everything is a service, everything is easy (I'd say easier).
http://planet.racket-lang.org/package-source/ryanc/db.plt/1/...