Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

What you say is indeed true, if you take a monolithic approach to problem solving. And I tire of this approach--dammit, we're tool-builders! We have been shown the Unix Way, and yet we ignore it time and again, forcing us into suboptimal solutions to our problems.

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!



You're assuming that BAZ mainframe wants to let me move data away. They don't, so the only way to do so is with ugly hacks. That's the bulk of programming: making things that don't want to interoperate interoperate.

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.


If the mainframe won't cooperate, you'll have work to do no matter what. But you can isolate that work into as little as possible. That is what the Unix tools 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).


You are assuming the people that are being asked to write this code have the power to choose anything about the code or platform they use.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: