The Days of Shell and Rational Roses
This 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 remember msql ? MySQL and msql competed for awhile and then MySQL crushed it..
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)





Comments
Wujek Srujek replied on Tue, 2013/01/29 - 4:49am
Are you sure Eclipse and NetBeans allow you to automate anything? I thought you needed to have the GUI open and clickt buttons / use keyboard shortcuts for everything, and the built tools actually automate dependency management / tests / building / deployments / whatever, name it.
Tim Spann replied on Tue, 2013/01/29 - 9:33am
in response to:
Wujek Srujek
Eclipse and other IDEs have automation in the sense of Wizards and configuration tools that do a lot of the basic work for you. There's also plugins to do some things. You can also have scripts in Maven, Roo, Gradle and Ant that can be run from the IDE to automate things.
And once you have a project setup, some shell code and unit tests and version control configured, Jenkins can automate your build/deploy/tests/... That first project setup is usually a wizard, template or a github base project. Spring IDE and JBOSS have some extra templates that really help you get started. That's still a lot of complexity.