The Days of Shell and Rational Roses
That post reminded me of why UNIX and combining simple single function programs together made UNIX (and Linux) so amazing.
My first college CGI and my first corporate one (Database America’s Yellow Pages engine) were all written in bourne shell! I thought it was so primitive, but thinking back I was able to implement a functional, fast and solid application in only a few days. The school project was as a simple web interface to a C++ application I wrote to do some B-Tree application for class. I do remember making database calls through command line SQL tools and parsing the results wasn’t as clean or as safe as you would want, but that was really because the command line tools were not designed to fit into the standard UNIX change.
We eventually upgraded to Perl, which was really like ShellScript++.
I guess the takeaway here is that make small reusable components that function fast, simple and can be easily chained with other components to make a custom “tool”. Software is just a tool even when it looks like a fancy magazine or funky website. Hmm Pipes and Mule ESB have that same feel. Shell was the ultimate object reuse.
So you would do the painful, slow job of writing C++, even with Rational Rose UML to help guide you, it was painful. You had to hope you had the correct libraries and that there were free ones. STL was a great help, but you had to buy a license. I think we had to buy a bunch of licenses from RogueWave for database stuff as well. Now Java, Node.Js and the rest have a ton of free libraries for everything. Which is great, but you have to pick the right one, get it into a build script of some sort (ANT, Maven, Gradle, Rake, SBT, …), combine it with some other libraries and then write some code specific to that library. With tools like Eclipse and NetBeans, you can automate a lot of that, but even all the libraries and frameworks that help you add bulk and complexities. More points of failure, not an elegant connection of small tools, but a behemoth of patched together disjoint libraries.
Anyone remembermsql ? MySQL and msql competed for awhile and then MySQL crushed it..